1. 数据结构说明

1.1. 关节位置数据类型

1/**
2* @brief 关节位置数据类型
3*/
4struct JointPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
7    public double[] jPos;   /* 六个关节位置,单位deg */
8}

1.2. 笛卡尔空间位置数据类型

1/**
2* @brief 笛卡尔空间位置数据类型
3*/
4struct DescTran
5{
6    public double x;    /* x轴坐标,单位mm  */
7    public double y;    /* y轴坐标,单位mm  */
8    public double z;    /* z轴坐标,单位mm  */
9}

1.3. 欧拉角姿态数据类型

1/**
2* @brief 欧拉角姿态数据类型
3*/
4struct Rpy
5{
6public double rx;   /* 绕固定轴X旋转角度,单位:deg  */
7public double ry;   /* 绕固定轴Y旋转角度,单位:deg  */
8public double rz;   /* 绕固定轴Z旋转角度,单位:deg  */
9}

1.4. 笛卡尔空间位姿数据类型

1/**
2*@brief 笛卡尔空间位姿类型
3*/
4struct DescPose
5{
6    public DescTran tran;     /* 笛卡尔空间位置  */
7    public Rpy rpy;                 /* 笛卡尔空间姿态  */
8}

1.5. 扩展轴位置数据类型

1/**
2* @brief 扩展轴位置数据类型
3*/
4struct ExaxisPos
5{
6    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
7    public double[] ePos;   /* 四个扩展轴位置,单位mm */
8}

1.6. 力矩传感器数据类型

 1/**
 2* @brief 力传感器的受力分量和力矩分量
 3*/
 4struct ForceTorque
 5{
 6    public double fx;  /* 沿x轴受力分量,单位N  */
 7    public double fy;  /* 沿y轴受力分量,单位N  */
 8    public double fz;  /* 沿z轴受力分量,单位N  */
 9    public double tx;  /* 绕x轴力矩分量,单位Nm */
10    public double ty;  /* 绕y轴力矩分量,单位Nm */
11    public double tz;  /* 绕z轴力矩分量,单位Nm */
12}

1.7. 螺旋参数数据类型

 1/**
 2* @brief  螺旋参数数据类型
 3*/
 4struct SpiralParam
 5{
 6    public int circle_num;            /* 螺旋圈数  */
 7    public float circle_angle;         /* 螺旋倾角  */
 8    public float rad_init;             /* 螺旋初始半径,单位mm  */
 9    public float rad_add;              /* 半径增量  */
10    public float rotaxis_add;          /* 转轴方向增量  */
11    public uint rot_direction;         /* 旋转方向,0-顺时针,1-逆时针  */
12}

1.8. 扩展轴状态类型

在 C#SDK-v1.0.6 版本加入.

 1/**
 2* @brief  扩展轴状态类型
 3*/
 4[StructLayout(LayoutKind.Sequential, Pack = 1)]
 5public struct ROBOT_AUX_STATE
 6{
 7    public byte servoId;           //伺服驱动器ID号
 8    public int servoErrCode;       //伺服驱动器故障码
 9    public int servoState;         //伺服驱动器状态
10    public double servoPos;        //伺服当前位置
11    public float servoVel;         //伺服当前速度
12    public float servoTorque;      //伺服当前转矩
13}

1.9. 机器人状态反馈结构体类型

在 C#SDK-v1.0.6 版本加入.

 1/**
 2* @brief  机器人状态反馈结构体类型
 3*/
 4[StructLayout(LayoutKind.Sequential, Pack = 1)]
 5public struct ROBOT_STATE_PKG
 6{
 7public UInt16 frame_head;           //帧头 0x5A5A
 8public byte frame_cnt;              //帧计数
 9public UInt16 data_len;             //数据长度  5
10public byte program_state;          //程序运行状态,1-停止;2-运行;3-暂停
11public byte robot_state;            //机器人运动状态,1-停止;2-运行;3-暂停;4-拖动
12public int main_code;               //主故障码
13public int sub_code;                //子故障码
14public byte robot_mode;             //机器人模式,0-自动模式;1-手动模式 16
15
16[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
17public double[] jt_cur_pos;                             //关节当前位置
18[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
19public double[] tl_cur_pos;                             //工具当前位姿
20[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
21public double[] flange_cur_pos;                         //末端法兰当前位姿
22[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
23public double[] actual_qd;                              //机器人当前关节速度
24[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
25public double[] actual_qdd;                             //机器人当前关节加速度
26[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
27public double[] target_TCP_CmpSpeed;                  //机器人TCP合成指令速度
28[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
29public double[] target_TCP_Speed;                       //机器人TCP指令速度
30[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
31public double[] actual_TCP_CmpSpeed;                 //机器人TCP合成实际速度
32[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
33public double[] actual_TCP_Speed;                       //机器人TCP实际速度
34[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
35public double[] jt_cur_tor;                             //当前扭矩
36public int tool;                        //工具号
37public int user;                        //工件号
38public byte cl_dgt_output_h;            //数字输出15-8
39public byte cl_dgt_output_l;            //数字输出7-0
40public byte tl_dgt_output_l;            //工具数字输出7-0(仅bit0-bit1有效)
41public byte cl_dgt_input_h;             //数字输入15-8
42public byte cl_dgt_input_l;             //数字输入7-0
43public byte tl_dgt_input_l;             //工具数字输入7-0(仅bit0-bit1有效)
44[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
45public UInt16[] cl_analog_input;        //控制箱模拟量输入
46public UInt16 tl_anglog_input;          //工具模拟量输入
47[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
48public double[] ft_sensor_raw_data;     //力/扭矩传感器原始数据
49[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
50public double[] ft_sensor_data;         //力/扭矩传感器数据
51public byte ft_sensor_active;           //力/扭矩传感器激活状态, 0-复位,1-激活
52public byte EmergencyStop;              //急停标志
53public int motion_done;                 //到位信号
54public byte gripper_motiondone;         //夹爪运动完成信号
55public int mc_queue_len;                //运动队列长度
56public byte collisionState;             //碰撞检测,1-碰撞;0-无碰撞
57public int trajectory_pnum;             //轨迹点编号
58public byte safety_stop0_state;  /* 安全停止信号SI0 */
59public byte safety_stop1_state;  /* 安全停止信号SI1 */
60public byte gripper_fault_id;    /* 错误夹爪号 */
61public UInt16 gripper_fault;     /* 夹爪故障 */
62public UInt16 gripper_active;    /* 夹爪激活状态 */
63public byte gripper_position;    /* 夹爪位置 */
64public byte gripper_speed;       /* 夹爪速度 */
65public byte gripper_current;     /* 夹爪电流 */
66public int gripper_tmp;          /* 夹爪温度 */
67public int gripper_voltage;      /* 夹爪电压 */
68public ROBOT_AUX_STATE auxState; /* 485扩展轴状态 */
69public UInt16 check_sum;         /* 和校验 */
70}