using System; using System.Collections.Generic; //using System.Numerics; using System.Text; using System.Runtime.InteropServices; namespace BPASmartClient.JakaRobot { public class JKTYPE { /** * @brief 笛卡尔空间位置数据类型 */ [StructLayout(LayoutKind.Sequential)] public struct CartesianTran { public double x; ///< x轴坐标,单位mm public double y; ///< y轴坐标,单位mm public double z; ///< z轴坐标,单位mm }; /** * @brief 欧拉角姿态数据类型 */ [StructLayout(LayoutKind.Sequential)] public struct Rpy { public double rx; ///< 绕固定轴X旋转角度,单位:rad public double ry; ///< 绕固定轴Y旋转角度,单位:rad public double rz; ///< 绕固定轴Z旋转角度,单位:rad }; /** * @brief 四元数姿态数据类型 */ [StructLayout(LayoutKind.Sequential)] public struct Quaternion { public double s; public double x; public double y; public double z; }; /** *@brief 笛卡尔空间位姿类型 */ [StructLayout(LayoutKind.Sequential)] public struct CartesianPose { public CartesianTran tran; ///< 笛卡尔空间位置 public Rpy rpy; ///< 笛卡尔空间姿态 }; /** * @brief 旋转矩阵数据类型 */ [StructLayout(LayoutKind.Sequential)] public struct RotMatrix { public CartesianTran x; ///< x轴列分量 public CartesianTran y; ///< y轴列分量 public CartesianTran z; ///< z轴列分量 }; /** * @brief 程序运行状态枚举类型 */ public enum ProgramState { PROGRAM_IDLE, ///< 机器人停止运行 PROGRAM_RUNNING, ///< 机器人正在运行 PROGRAM_PAUSED ///< 机器人暂停 }; /** * @brief 坐标系选择枚举类型 */ public enum CoordType { COORD_BASE, ///< 基坐标系 COORD_JOINT, ///< 关节空间 COORD_TOOL ///< 工具坐标系 }; /** * @brief jog运动模式枚举 */ public enum MoveMode { ABS = 0, ///< 绝对运动 INCR ///< 增量运动 }; /** * @brief 系统监测数据类型 */ [StructLayout(LayoutKind.Sequential)] public struct SystemMonitorData { public int scbMajorVersion; ///rate1>rate2>rate3>rate4>0 * 等级为1时,只能设置rate1,rate2两个等级。rate3,rate4的值为0 * 等级为2时,只能设置rate1,rate2,rate3 三个等级。rate4的值为0 * 等级为3时,能设置 rate1,rate2,rate3,rate4 4个等级 */ [StructLayout(LayoutKind.Sequential)] public struct VelCom { int vc_level; //速度柔顺控制等级 double rate1; //比率1等级 double rate2; //比率2等级 double rate3; //比率3等级 double rate4; //比率4等级 } /** * @brief 力传感器的受力分量和力矩分量 */ [StructLayout(LayoutKind.Sequential)] public struct FTxyz { double fx; // 沿x轴受力分量 double fy; // 沿y轴受力分量 double fz; // 沿z轴受力分量 double tx; // 绕x轴力矩分量 double ty; // 绕y轴力矩分量 double tz; // 绕z轴力矩分量 } } }