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}