1. 数据结构说明

1.1. 接口调用返回值类型

1typedef  int errno_t;

1.2. 关节位置数据类型

1/**
2* @brief 关节位置数据类型
3*/
4typedef  struct
5{
6    double jPos[6];   /* 六个关节位置,单位deg */
7}JointPos;

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

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

1.4. 欧拉角姿态数据类型

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

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

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

1.6. 扩展轴位置数据类型

1/**
2* @brief 扩展轴位置数据类型
3*/
4typedef  struct
5{
6    double ePos[4];   /* 四个扩展轴位置,单位mm */
7}ExaxisPos;

1.7. 力矩传感器数据类型

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

1.8. 螺旋参数数据类型

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

1.9. 控制器状态反馈数据包

在 C++SDK-v2.1.3.0 版本发生变更.

 1/**
 2 * @brief  控制器状态反馈数据包
 3 */
 4typedef struct _ROBOT_STATE_PKG
 5{
 6    uint16_t frame_head;                /* 帧头,约定为0x5A5A */
 7    uint8_t  frame_cnt;                 /* 帧计数,循环计数0-255 */
 8    uint16_t data_len;                  /* 数据内容的长度 */
 9    uint8_t  program_state;             /* 程序运行状态,1-停止;2-运行;3-暂停;*/
10    uint8_t  robot_state;               /* 机器人运动状态,1-停止;2-运行;3-暂停;4-拖动 */
11    int      main_code;                 /* 主故障码 */
12    int      sub_code;                  /* 子故障码 */
13    uint8_t  robot_mode;                /* 机器人模式,1-手动模式;0-自动模式; */
14    double   jt_cur_pos[6];             /* 6个轴当前关节位置,单位deg */
15    double   tl_cur_pos[6];             /* 工具当前位置
16                                           tl_cur_pos[0],沿x轴位置,单位mm,
17                                           tl_cur_pos[1],沿y轴位置,单位mm,
18                                           tl_cur_pos[2],沿z轴位置,单位mm,
19                                           tl_cur_pos[3],绕固定轴X旋转角度,单位deg
20                                           tl_cur_pos[4],绕固定轴y旋转角度,单位deg
21                                           tl_cur_pos[5],绕固定轴z旋转角度,单位deg */
22    double   flange_cur_pos[6];         /* 末端法兰当前位置
23                                           flange_cur_pos[0],沿x轴位置,单位mm,
24                                           flange_cur_pos[1],沿y轴位置,单位mm,
25                                           flange_cur_pos[2],沿z轴位置,单位mm,
26                                           flange_cur_pos[3],绕固定轴X旋转角度,单位deg
27                                           flange_cur_pos[4],绕固定轴y旋转角度,单位deg
28                                           flange_cur_pos[5],绕固定轴z旋转角度,单位deg */
29    double   actual_qd[6];              /* 当前6个关节速度,单位deg/s */
30    double   actual_qdd[6];             /* 当前6个关节加速度,单位deg/s^2 */
31    double   target_TCP_CmpSpeed[2];    /* target_TCP_CmpSpeed[0],TCP合成指令速度(位置),单位mm/s
32                                           target_TCP_CmpSpeed[1],TCP合成指令速度(姿态),单位deg/s  */
33    double   target_TCP_Speed[6];       /* TCP指令速度
34                                           target_TCP_Speed[0],沿x轴速度,单位mm/s,
35                                           target_TCP_Speed[1],沿y轴速度,单位mm/s,
36                                           target_TCP_Speed[2],沿z轴速度,单位mm/s,
37                                           target_TCP_Speed[3],绕固定轴X旋转角速度,单位deg/s
38                                           target_TCP_Speed[4],绕固定轴y旋转角速度,单位deg/s
39                                           target_TCP_Speed[5],绕固定轴z旋转角速度,单位deg/s */
40    double   actual_TCP_CmpSpeed[2];    /* actual_TCP_CmpSpeed[0],TCP合成实际速度(位置),单位mm/s
41                                           actual_TCP_CmpSpeed[1],TCP合成实际速度(姿态),单位deg/s */
42    double   actual_TCP_Speed[6];       /* TCP实际速度
43                                           actual_TCP_Speed[0],沿x轴速度,单位mm/s,
44                                           actual_TCP_Speed[1],沿y轴速度,单位mm/s,
45                                           actual_TCP_Speed[2],沿z轴速度,单位mm/s,
46                                           actual_TCP_Speed[3],绕固定轴X旋转角速度,单位deg/s
47                                           actual_TCP_Speed[4],绕固定轴y旋转角速度,单位deg/s
48                                           actual_TCP_Speed[5],绕固定轴z旋转角速度,单位deg/s */
49    double   jt_cur_tor[6];             /* 6个轴当前扭矩,单位N·m */
50    int      tool;                      /* 应用的工具坐标系编号 */
51    int      user;                      /* 应用的工件坐标系编号 */
52    uint8_t  cl_dgt_output_h;           /* 控制箱数字量IO输出15-8 */
53    uint8_t  cl_dgt_output_l;           /* 控制箱数字量IO输出7-0 */
54    uint8_t  tl_dgt_output_l;           /* 工具数字量IO输出7-0,仅bit0-bit1有效 */
55    uint8_t  cl_dgt_input_h;            /* 控制箱数字量IO输入15-8 */
56    uint8_t  cl_dgt_input_l;            /* 控制箱数字量IO输入7-0 */
57    uint8_t  tl_dgt_input_l;            /* 工具数字量IO输入7-0,仅bit0-bit1有效 */
58    uint16_t cl_analog_input[2];        /* cl_analog_input[0],控制箱模拟量输入0
59                                           cl_analog_input[1],控制箱模拟量输入1 */
60    uint16_t tl_anglog_input;           /* 工具模拟量输入 */
61    double   ft_sensor_raw_data[6];     /* 力矩传感器原始数据
62                                           ft_sensor_raw_data[0],沿x轴力,单位N
63                                           ft_sensor_raw_data[1],沿y轴力,单位N
64                                           ft_sensor_raw_data[2],沿z轴力,单位N
65                                           ft_sensor_raw_data[3],沿x轴力矩,单位Nm
66                                           ft_sensor_raw_data[4],沿y轴力矩,单位Nm
67                                           ft_sensor_raw_data[5],沿z轴力矩,单位Nm */
68    double   ft_sensor_data[6];         /* 力矩传感器数据,
69                                           ft_sensor_data[0],沿x轴力,单位N
70                                           ft_sensor_data[1],沿y轴力,单位N
71                                           ft_sensor_data[2],沿z轴力,单位N
72                                           ft_sensor_data[3],沿x轴力矩,单位Nm
73                                           ft_sensor_data[4],沿y轴力矩,单位Nm
74                                           ft_sensor_data[5],沿z轴力矩,单位Nm */
75    uint8_t  ft_sensor_active;          /* 力矩传感器激活状态,0-复位,1-激活 */
76    uint8_t  EmergencyStop;             /* 急停标志,0-急停未按下,1-急停按下 */
77    int      motion_done;               /* 运动到位信号,1-到位,0-未到位 */
78    uint8_t  gripper_motiondone;        /* 夹爪运动完成信号,1-完成,0-未完成 */
79    int      mc_queue_len;              /* 运动指令队列长度 */
80    uint8_t  collisionState;            /* 碰撞检测,1-碰撞,0-无碰撞 */
81    int      trajectory_pnum;           /* 轨迹点编号 */
82    uint8_t  safety_stop0_state;        /* 安全停止信号SI0 */
83    uint8_t  safety_stop1_state;        /* 安全停止信号SI1 */
84    uint8_t  gripper_fault_id;          /* 错误夹爪号 */
85    uint16_t gripper_fault;             /* 夹爪故障 */
86    uint16_t gripper_active;            /* 夹爪激活状态 */
87    uint8_t  gripper_position;          /* 夹爪位置 */
88    int8_t   gripper_speed;             /* 夹爪速度 */
89    int8_t   gripper_current;           /* 夹爪电流 */
90    int      gripper_temp;              /* 夹爪温度 */
91    int      gripper_voltage;           /* 夹爪电压 */
92    robot_aux_state aux_state;
93}ROBOT_STATE_PKG;

1.10. 伺服控制器状态

在 C++SDK-v2.1.3.0 版本加入.

 1/**
 2* @brief  伺服控制器状态
 3*/
 4typedef struct ROBOT_AUX_STATE
 5{
 6    uint8_t servoId;        // servoId 伺服驱动器ID,范围[1-15],对应从站ID
 7    int servoErrCode;       //伺服驱动器故障码
 8    int servoState; //伺服驱动器状态 bit0:0-未使能;1-使能;  bit1:0-未运动;1-正在运动;  bit2 0-正限位未触发;1-正限位触发;bit3 0-负限位未触发;1-负限位触发;bit4 0-未定位完成;1-定位完成;  bit5:0-未回零;1-回零完成
 9    double servoPos;        //伺服当前位置 mm或°
10    float servoVel; //伺服当前速度 mm/s或°/s
11    float servoTorque;      //伺服当前转矩Nm
12} robot_aux_state;