Skip to content

核心概念

使用 C++ SDK 前需要了解以下关键概念。

连接生命周期

text
connect_robot() → 等待连接就绪 → 操作(伺服/运动/查询)

                              disconnect_robot()
  1. 连接: connect_robot(ip, port) 返回 socket 文件描述符(SOCKETFD),失败返回 ≤0
  2. 等待就绪: 连接成功后需轮询 get_connection_status() 直到返回 SUCCESS(0)
  3. 操作: 通过 socketFd 调用所有接口
  4. 断开: disconnect_robot(fd) 主动断开

坐标系

坐标系coord 参数说明
关节坐标0各关节电机的角度位置
直角坐标1末端相对于机器人底座的世界位置
工具坐标2末端安装工具后的工具端点位置
用户坐标3在工作台上自定义的局部坐标系

伺服状态机

text
停止(0) → 就绪(1) → 运行(3)
  ↑          ↓         ↓
  ←←←←← 报警(2) ←←←←←←
状态码说明
0停止 — 未使能,可进行清错操作
1就绪 — 已清错,等待上电
3运行 — 已上电,可执行运动指令

上电前必须先设为就绪状态:set_servo_state(fd, 1)set_servo_poweron(fd)

运动模式

模式函数特点
MoveJrobot_movej关节空间点到点,快速但路径不定
MoveLrobot_movel笛卡尔空间直线运动
Jogrobot_start_jogging / robot_stop_jogging手动点动
Queuequeue_motion_push_back_* + queue_motion_send_to_controller无作业文件队列运动
Servoservo_move7000 端口伺服跟踪

返回值

返回值含义
SUCCESS (0)调用成功
其他值错误码,具体含义参见错误码表

异步接口返回值仅表示"指令已接收",不代表执行完毕。实际执行结果通过回调或状态查询获取。

线程安全

  • 所有接口以 socketFd 区分连接,不同 socketFd 之间线程安全
  • 同一 socketFd 的并发调用需自行加锁
  • 回调函数内不应执行阻塞或耗时操作

坐标系深化

工具坐标系

工具坐标系定义末端工具的中心点(TCP)位置与姿态,默认工具坐标系原点为法兰盘中心,+Z 方向垂直法兰向外。

工具手参数:

参数含义单位
X/Y/Z工具 TCP 相对法兰中心的偏移量mm
A/B/C工具相对法兰坐标系绕 X/Y/Z 轴的旋转角°/rad

标定方式选择:

方式适用场景说明
6点标定已激光标定+焊枪校准工具手尺寸+姿态,C轴精度较好
7点标定6点标定 A/B 轴误差大校准尺寸+姿态,A/B 轴精度较好
12点标定未激光标定校准零点+工具手尺寸
15点标定高精度要求校准零点+尺寸+姿态
20点标定零点丢失校准零点+工具手尺寸

用户坐标系

用户坐标系是工作台上自定义的局部坐标系,默认 User0 与直角坐标系重合,新用户坐标系基于 User0 变换得到。

用户坐标参数:

参数含义单位
X/Y/Z用户坐标原点相对机器人基座原点的偏移mm
A/B/C用户坐标相对直角坐标系绕 X/Y/Z 轴的旋转角°/rad

标定步骤:

  1. 末梢移到期望的用户坐标原点位置,标定原点
  2. 向期望 X 轴正方向移动任意距离,标定 X 轴
  3. 向期望 Y 轴正方向移动任意距离,标定 Y 轴
  4. 计算并保存,提示成功后标定完成

标定体系

标定类型用途相关接口
工具手标定(6/7/12/15/20点)确定 TCP 偏移与姿态tool_hand_7_point_calibrate
用户坐标标定建立工作台局部坐标系calibration_oxyset_user_coordinate_datacalculate_user_coordinate
零点标定设置/偏移电机单圈零点set_axis_zero_positionset_zero_pos_deviation
4点标定(SCARA)计算杆长和轴零点偏移,填入 DH 参数set_four_point_markfour_point_calculationset_result_for_DH
20点标定高精度校准(支持 2/12/15/20/21 点法)tool_hand_2_or_20_point_calibrate

标定前将法兰盘平行于水平面,标定过程中保持参考点固定;计算结果大于 1 需重新标定。

工艺系统

工艺号(craftID,1-9)用于管理同一工艺的多套参数,示教器与 SDK 共享同一套工艺数据。

工艺工艺号参数读写方式
焊接1-9weld_set_config / weld_get_config + 摆焊参数
码垛1-9pallet_set_running_state / 状态查询
视觉0-98vision_set_basic_parameter / 标定/触发
激光切割1-9全局/工艺/模拟量/IO 四类参数
传送带跟踪1-9传送参数 + 编码器 + PID

使用前先设置当前工艺号,再读写参数,与示教器配置保持一致。

点位与变量

全局点位(GP/GE)

类型说明posInfo 长度
GP全局点位(机器人)14
GE全局点位(含外部轴)21

posInfo 格式(14 长度):

索引含义
[0]坐标系:0=关节,1=直角,2=工具,3=用户
[1]角度单位:0=角度制,1=弧度制
[2]形态(SCARA:1=左手,2=右手)
[3]工具手坐标序号
[4]用户坐标序号
[5]-[6]备用
[7]-[13]点位信息(关节角或 XYZ+姿态)

全局变量

系列类型说明
GIint全局整数变量
GDdouble全局浮点变量
GBbool全局布尔变量

错误处理机制

返回值语义

返回值含义
SUCCESS (0)调用成功
负数通信/执行错误(-1 接收失败、-2 断开连接、-6 超时等)
其他值业务错误码,参见错误码表

异步接口

异步接口返回值仅表示"指令已接收",实际执行结果通过:

  • 回调函数recv_messageset_receive_error_or_warnning_message_callback 等注册
  • 状态查询get_robot_running_stateget_servo_state 等轮询

报警与清错

  • 伺服报警后进入报警状态(状态码 2)
  • 清错操作:clear_error,清错后需重新下电再上电
  • 实时错误信息通过 set_receive_error_or_warnning_message_callback 回调接收