基于通信协议包开发使用

通信设置

  • 总线接口:内置 ESP32
  • 波特率:115200
  • 数据位: 8
  • 奇偶校验:无
  • 停止位: 1

机械臂运动和速度参数表

关节 关节最小值(°) 关节最大值(°) 关节最大速度(°/s) 关节最大加速度(°/s²)
J1 -165 165 150 200
J2 -50 120 150 200
J3 -165 165 150 200
J4 -165 1 150 200
J5 -165 165 150 200
J6 -75 255 150 200
J7 -165 165 150 200
坐标 坐标最小值(mm) 坐标最大值(mm) 坐标最大速度(mm/s) 坐标最大加速度(mm/s²)
x -459 459 200 400
y -459 459 200 400
z -300 542 200 400
rx/ry/rz -180° 180° 40°/s 66°/s²

串口指令介绍

收发格式

发送和接收都以十六进制表示,每条指令包含5个部分,如下所示:
[帧头] [帧头] [长度] [功能码] [数据] [校验码-高字节] [校验码-低字节]
1、帧头2字节:0xFE 0XFE
2、有效长度1字节:3-N,长度从功能码开始,校验码结束
3、功能码1字节:1-255
4、数据位:0-N,高字节在前
5、帧尾:crc16校验码,高字节在前

  • 所有指令都有第一层接收反馈,位置模式控制有到位反馈。

基础控制

  1. 读取主控版本号
    指令长度:3
    功能码: 02
    发送数据位:无
    反馈数据位:版本号-1字节,需要/10.0
    发送指令:FE FE 03 02 0D D1
    反馈指令例如:FE FE 04 02 0A 51 7D, 此时版本号为V1.0

  2. 读取机器人型号

    指令长度:3
    功能码: 03
    发送数据位:无
    反馈数据位:型号-2字节
    发送指令:FE FE 03 03 CD 10

  3. 读取末端更正版本号

    指令长度:3
    功能码:06
    发送数据位:无
    反馈数据位:字节1:更正版本号

  4. 读取末端版本号

    指令长度:3
    功能码:09
    发送数据位:无
    反馈数据位:字节1:版本号,需要/10.0

  5. 设置限制开关

    指令长度:5
    功能码:0E
    发送数据位:字节1:1/2 1-位置超差,2-到位反馈;字节2:0/1 0-关闭,1-打开,默认打开,不掉电保存
    反馈固定数据位:字节1-2: 0xFF 0x01

  6. 读取限制开关

    指令长度:3
    功能码:0F
    发送数据位:无
    反馈数据位:字节1:位置超差开关状态,0/1 1-打开;字节2:到位反馈开关状态,0/1 1-打开,默认打开

  7. 启动机器人
    指令长度:3
    功能码:0x10
    发送数据位:无
    反馈数据位:字节1:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下

  8. 关闭机器人
    指令长度:3
    功能码:0x11
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01
    反馈指令:FE FE 05 11 FF 01 E8 EC

  9. 读取机器人启动状态
    指令长度:3
    功能码:0x12
    发送数据位:无
    反馈数据位:字节1:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下

  10. 读取零位校准状态
    指令长度:3
    功能码:0x5A
    发送数据位:无
    反馈数据位:字节1:0/1;整机零位校准状态,1-已设置; 字节2-9: 1X7关节零位校准状态

  11. 机器人仅通电,不能控制机器人
    指令长度:3
    功能码:0x1D
    发送数据位:无
    反馈数据位:字节1-2: 0xFF 0x01

运动控制

  • 运动控制速度范围:1-100,实际速度百分比请看上方机械臂运动和速度参数表

  • 运动模式:位置插补、刷新打断、力矩,仅位置插补下有运动到位反馈

  • 到位反馈数据:FE FE 04 5B 状态 CRC-高 CRC-低;运动正常指令:FE FE 04 5B 00 CD 46 运动异常指令-J6超限:FE FE 04 5B 06 CF C6


  1. 全关节角度控制
    指令长度:0x12
    功能码:0x22
    发送数据位:字节1-14:2X7关节角度(角度*100.0) 字节15:速度1-100
    [90, 10, -90, 45, 80, -100, 10],运行速度50%,发送指令:FE FE 10 22 23 28 03 E8 DC D8 11 94 1F 40 27 10 03 E8 32 A3 E1
    第一层反馈固定数据位:字节1-2: 0xFF 0x01
    第二层到位反馈:仅插补运动模式有,FE FE 04 5B 00 CD 46

  2. 单关节角度控制
    指令长度:7
    功能码:0x21
    发送数据位:字节1:关节; 字节2-3:角度(角度*100.0) 字节4:速度
    J1运动到50°,运行速度10%,发送指令:FE FE 07 21 01 13 88 0A 82 7A
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  3. 读取全关节角度
    指令长度:3
    功能码:0x20
    发送数据位:无
    反馈数据位:字节1-14:2X7关节角度(角度/100.0)
    [90, 10, -90, 45, 80, -100, 10]反馈指令:FE FE 10 20 23 28 03 E8 DC D8 11 94 1F 40 27 10 03 E8 21 35

  4. 全坐标控制
    指令长度:0x10
    功能码:0x25
    发送数据位:字节1-12:2X6坐标(XYZ10.0,RXRYRZ100.0) 字节13:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  5. 单坐标控制
    指令长度:7
    功能码:0x24
    发送数据位:字节1:坐标轴; 字节2-3:坐标(XYZ10.0,RXRYRZ100.0) 字节4:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  6. 读取全坐标
    指令长度:3
    功能码:0x23
    发送数据位:无
    反馈数据位:字节1-12:2X6坐标(XYZ/10.0,RXRYRZ/100.0)

  7. 读取机器人运动状态
    指令长度:3
    功能码:0x2B
    发送数据位:无
    反馈数据位:字节1:运动状态0/1,0-未运动;1-运动中

  8. 检测机器人是否到达点位
    指令长度:角度:18,坐标:16
    功能码:0x2A,误差精度角度为1°内,坐标为2mm内
    发送数据位:

    • 字节1-12:26坐标(角度100.0,坐标XYZ10.0,RXRYRZ100.0);字节13:模式1/2-坐标;
    • 字节1-14:2*7关节角度;字节15:模式0-角度
      反馈数据位:字节1:到位状态0/1 0-未到位,1-到位
  9. 运动暂停
    指令长度:3
    功能码:0x26
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01

  10. 运动恢复
    指令长度:3
    功能码:0x28
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01

  11. 运动结束
    指令长度:3
    功能码:0x29
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01

  12. 检测运动是否暂停
    指令长度:3
    功能码:0x27
    发送数据位:无
    反馈数据位:字节1:暂停状态0/1,0-未手动暂停;1-已暂停

  13. 关节持续运动
    指令长度:6
    功能码:0x30
    发送数据位:字节1:关节1-7; 字节2:方向0/1 0-反转 1-正转 字节3:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  14. 坐标持续运动
    指令长度:6
    功能码:0x32
    发送数据位:字节1:坐标轴1-6; 字节2:方向0/1 0-反转 1-正转 字节3:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  15. RPY旋转
    指令长度:6
    功能码:0xF5
    发送数据位:字节1:模式1-3 1-翻滚角(绕X轴) 2-俯仰角(绕Y轴) 3-偏航角(绕Z轴); 字节2:方向0/1 0-反转 1-正转 字节3:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  16. 关节步进控制
    指令长度:7
    功能码:0x33
    发送数据位:字节1:关节1-7; 字节2-3:步进值*100.0 字节3:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  17. 坐标步进控制
    指令长度:7
    功能码:0x34
    发送数据位:字节1:坐标轴1-6; 字节2-3:步进值(XYZ10.0,RXRYRZ100.0) 字节4:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  18. 坐标JOG轨迹融合(配合6D鼠标)
    指令长度:10
    功能码:0xEC
    发送数据位:字节1:坐标轴1-6; 字节2-3:步进值(XYZ10.0,RXRYRZ100.0) 字节4:速度
    第一层反馈固定数据位:字节1-2: 0xFF 0x01

  19. 计算运动学逆解

  20. 用于计算机械臂逆解,输入coords目标坐标 angles当前关节角度,输出solve_angles目标坐标对应的角度。 指令长度:0x1D
    功能码:0x8D
    发送数据位:字节1-12:2X6关目标坐标 字节13-26:2X7当前关节角度
    反馈数据位:字节1-28:4X7关节角度(/100.0)

  21. 启动拖动示教
    指令长度:3
    功能码:0x70
    发送数据位:无
    反馈数据位:0xFF 0x01

  22. 暂停采样
    指令长度:3
    功能码:0x72
    发送数据位:无
    反馈数据位:0xFF 0x01

  23. 执行示教点位
    指令长度:3
    功能码:0x71
    发送数据位:无
    反馈数据位:0xFF 0x01

  24. 清除采样点
    指令长度:3
    功能码:0x73
    发送数据位:无
    反馈数据位:0xFF 0x01

  25. 查询碰撞检测模式
    指令长度:3
    功能码:0xFD
    发送数据位:无
    反馈数据位:字节1:0/1,1-open 0-close

  26. 设置碰撞检测模式
    指令长度:4
    功能码:0x74
    发送数据位:1-open 0-close 开启碰撞检测后,机械臂在运动过程中发生持续(>200ms)且超出碰撞阈值的碰撞时会自动停下
    反馈数据位:0xFF 0x01

  27. 设置碰撞阈值
    指令长度:5
    功能码:0x75
    发送数据位:

    • 字节 1: joint range:(1-7)
    • 字节 2:radio range:(50-250)%

    可以设置关节的碰撞阈值,默认为100%,该数值越小越容易触发碰撞
    反馈数据位:0xFF 0x01

  28. 获取碰撞阈值
    指令长度:3
    功能码:0x76
    发送数据位:无
    反馈数据位:

    • 字节1-7:全关节碰撞阈值
  29. 设置力矩补偿系数
    指令长度:5
    功能码:0x77
    发送数据位:

    • 字节 1: joint range:(1-7)
    • 字节 2:radio range:(0-250)% 力矩环的摩擦力补偿系数,默认为[0, 0, 0, 0, 10, 30, 30],系数越大越容易拖动

    反馈数据位:0xFF 0x01

  30. 获取力矩补偿系数
    指令长度:3
    功能码:0x78
    发送数据位:无
    反馈数据位:

    • 字节1-7:全关节力矩补偿系数
  31. 设置动力学参数辨识模式

    • 需要先关闭碰撞检测及零力拖动功能

    指令长度:4
    功能码:0x8E
    发送数据位:字节1:1-open, 0-close

  32. 获取动力学参数辨识模式

    指令长度:3
    功能码:0x8F
    发送数据位:无
    反馈数据位:字节1:1-open, 0-close

  33. 执行动力学辨识轨迹
    指令长度:4
    功能码:0xF8
    发送数据位:字节1:rank(0-4)

    • 0: A1单臂辨识轨迹
    • 1:B1左臂辨识轨迹
    • 2:B1右臂辨识轨迹
    • 3:X1左臂辨识轨迹
    • 4:X1右臂辨识轨迹

    反馈数据位:0xFF 0x01
    执行辨识轨迹,全时长9-20s,动作幅度较大注意安全

  34. 设置动力学参数

    指令长度:8
    功能码:0x97
    发送数据位:

    • 字节1:rank(0-62)
    • 字节2-5:data*1000
      反馈数据位:0xFF 0x01
  35. 读取动力学参数

    指令长度:4
    功能码:0x98
    发送数据位:字节1:rank(0-62)
    反馈数据位:字节1-4:data*0.001

  36. 圆弧轨迹运动
    指令长度:0x1C
    功能码:0x8C
    发送数据位:
    圆弧途经点transpoint 圆弧结束点endpoint
    字节1-2:transpoint.x(10) 字节3-4:transpoint.y
    字节5-6:transpoint.z 字节7-8:transpoint.rx(
    100)
    字节9-10:transpoint.ry
    字节11-12:transpoint.rz 字节13-14:endpoint.x(10)
    字节15-16:endpoint.y 字节17-18:endpoint.z
    字节19-20:endpoint.rx(
    100) 字节21-22:endpoint.ry
    字节23-24:endpoint.rz
    字节25:speed(1-100)
    反馈数据位:0xFF 0x01
    根据机械臂当前位置(起始点)、给定的圆弧途经点transpoint以及圆弧结束点endpoint,三点确定一个圆弧,使机械臂以起始点、途经点、结束点的顺序执行圆弧轨迹

  37. 设置运动控制模式

    • 该接口执行时间较久,4ms左右
      指令长度:4
      功能码:0x1E
      发送数据位:字节1:模式0/1 0-位置 1-力矩,零力拖动;默认位置模式
      反馈数据位:字节1:0xFF, 字节2:0/1 0-设置失败,参数不对;1-参数正确
  38. 读取运动控制模式
    指令长度:3
    功能码:0x1F
    发送数据位:无
    反馈数据位:字节1:字节1:模式0/1 0-位置 1-力矩,零力拖动

  39. 超限回零

    • 超出限位后可以不用手动移到限位内;目前仅位置模式支持,刷新模式控制不支持
      指令长度:3
      功能码:04
      发送数据位:无
      反馈固定数据位:字节1-2: 0xFF 0x01
  40. 获取采样点位

    • 将储存的点位从采样队列中pop出来
      指令长度:3
      功能码:0x44
      发送数据位:无
      反馈固定数据位:字节1-28: 4*7 angels
  41. 设置采样点位

    • 将点位push进采样队列
      指令长度:11
      功能码:0x45
      发送数据位:字节1-14: 2*7 angels
  42. 获取采样队列长度 指令长度:3
    功能码:0x46
    发送数据位:无
    反馈固定数据位:字节1: Length

  43. 获取零空间偏转角数值

    • EDU版本无此接口
      指令长度:3
      功能码:0x35
      发送数据位:无
      反馈固定数据位:字节1:J1_angle_low,需要/100,字节2:J1_angle_high,需要/100
  44. 设置零空间偏转角数值

    • EDU版本无此接口
      指令长度:6
      功能码:0x36
      发送数据位:字节1-2:angle(x100),字节3:速度 1-100
      反馈固定数据位:字节1-2: 0xFF 0x01
  45. 模组转动指令

    • 控制指定电机往指定方向运动一段距离,当收到暂停/停止指令时会暂停/停止
      指令长度:6
      功能码:0x06
      发送数据位:字节1:关节1-7,字节2:方向0/1 0-反向运动 1-正向运动 ,字节3:速度 1-100
      反馈固定数据位:字节1-2: 0xFF 0x01

辅助功能

  1. 设置零位
    指令长度:3
    功能码:0x54
    发送数据位:字节1:关节1-7
    反馈固定数据位:字节1-2: 0xFF 0x01

  2. 机器人关闭力矩输出,全关节放松
    指令长度:3
    功能码:0x13
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01

  3. 机器人打开力矩输出,全关节锁紧
    指令长度:3
    功能码:0x18
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01

  4. 设置单个电机掉电
    指令长度:4
    功能码:0x56
    发送数据位:字节1:关节1-7
    反馈固定数据位:字节1-2: 0xFF 0x01

  5. 设置单个电机上电
    指令长度:4
    功能码:0x57
    发送数据位:字节1:关节1-7
    反馈固定数据位:字节1-2: 0xFF 0x01

  6. 设置关节刹车开关
    指令长度:5
    功能码:0x19
    发送数据位:字节1:关节1-7;字节2:0/1 1-打开
    反馈固定数据位:字节1-2: 0xFF 0x01

  7. 设置RGB颜色
    指令长度:5
    功能码:0x6A
    发送数据位:字节1-3:R、G、B 范围0-255,全0-灯不亮
    反馈固定数据位:字节1-2: 0xFF 0x01

  8. 设置最大速度
    指令长度:6
    功能码:0x41
    发送数据位:字节1:模式0/1 0-角度 1-坐标 字节2-3:速度,仅可在最大范围内设置
    反馈固定数据位:字节1-2: 0xFF 0x01

  9. 设置最大加速度
    指令长度:6
    功能码:0x43
    发送数据位:字节1:模式0/1 0-角度 1-坐标 字节2-3:加速度,仅可在最大范围内设置
    反馈固定数据位:字节1-2: 0xFF 0x01

  10. 读取最大速度
    指令长度:4
    功能码:0x40
    发送数据位:无
    反馈数据位:字节1-2:速度

  11. 读取最大加速度
    指令长度:4
    功能码:0x42
    发送数据位:字节1:模式0/1 0-角度 1-坐标
    反馈数据位:字节1-2:加速度

  12. 设置关节最小角度
    指令长度:6
    功能码:0x4c
    发送数据位:字节1:关节1-7, 字节2-3:最小角度*10.0;仅可设置为默认范围内的,掉电不报错
    反馈固定数据位:字节1-2: 0xFF 0x01

  13. 读取关节最小角度
    指令长度:4
    功能码:0x4a
    发送数据位:字节1:关节1-7
    反馈数据位:字节1-2:最小角度/10.0

  14. 设置关节最大角度
    指令长度:6
    功能码:0x4d
    发送数据位:字节1:关节1-7, 字节2-3:最大角度*10.0;仅可设置为默认范围内的,掉电不报错
    反馈固定数据位:字节1-2: 0xFF 0x01

  15. 读取关节最大角度
    指令长度:4
    功能码:0x4b
    发送数据位:字节1:关节1-7
    反馈数据位:字节1-2:最大角度/10.0

  16. 读取单关节编码器值
    指令长度:4
    功能码:0x3b
    发送数据位:字节1:关节1-7
    反馈数据位:字节1-4:编码器值

  17. 读取全关节编码器值
    指令长度:3
    功能码:0x3d
    发送数据位:字节1:关节1-7
    反馈数据位:字节1-28:4*7关节编码器值

  18. 设置关节方向

    • 设置前需要先回零,先读取当前方向,再设置

    指令长度:5
    功能码:0x7D
    发送数据位:字节1:关节1-7, 字节2:方向0/1 1-同向 0-反向
    反馈固定数据位:字节1-2: 0xFF 0x01

  19. 读取关节方向
    指令长度:3
    功能码:0x7C
    发送数据位:无
    反馈数据位:字节1-7:1X7关节方向,1-同向 0-反向

  20. 读取VR模式
    指令长度:3
    功能码:0x79
    发送数据位:无
    反馈数据位:字节:1-open 0-close
    VR模式开启后会减少运动指令缓存长度,由80减少至2 适用于不希望积压运动缓存的开发场景,比如VR控制、遥控制

  21. 设置VR模式
    指令长度:4
    功能码:0x7A
    发送数据位:字节:1-open 0-close
    反馈数据位:0xFF 0x01

  22. 获取速度融合规划参数

    • 用于修改位置环速度融合接口的速度和加速度

    指令长度:4
    功能码:0x4E
    发送数据位:字节1:1-4,1-融合关节速度,2-融合关节加速度,3-融合坐标速度,4-融合坐标加速度
    反馈数据位:字节1-2:速度融合规划参数

  23. 设置速度融合规划参数
    指令长度:4
    功能码:0x4F
    发送数据位:

    • 字节1:0-4,0-恢复默认参数(仅set可用),1-融合关节速度,2-融合关节加速度,3-融合坐标速度,4-融合坐标加速度
    • 字节2-3:value,范围0-10000

    反馈数据位:0xFF 0x01

  24. 获取监控状态
    指令长度:3
    功能码:0xFB
    发送数据位:无
    反馈数据位:字节1:1-open 0-close

  25. 设置监控状态

    • 开启监控模式之后,发送运动指令时会持续返回插补点位

    指令长度:4
    功能码:0xFC
    发送数据位:字节1:1-open 0-close
    反馈数据位:0xFF 0x01

IO控制

底部IO

  1. 设置底座IO输出
    指令长度:5
    功能码:0xA0
    发送数据位:字节1:引脚号1-6, 字节2:状态0/1 0-低电平 1-高电平
    反馈固定数据位:字节1-2: 0xFF 0x01

  2. 读取底座IO输入
    指令长度:4
    功能码:0xA1
    发送数据位:字节1:引脚号1-6
    反馈数据位:字节1:状态0/1 0-低电平 1-高电平

末端IO

  1. 设置末端IO输出
    指令长度:5
    功能码:0x61
    发送数据位:字节1:引脚号1/2 字节2:状态0/1 0-低电平 1-高电平
    反馈固定数据位:字节1-2: 0xFF 0x01

  2. 读取末端IO输入
    指令长度:4
    功能码:0x62
    发送数据位:字节1:引脚号1-2
    反馈数据位:字节1:状态0/1 0-低电平 1-高电平

  3. 读取末端所有引脚状态
    指令长度:3
    功能码:0x5F
    发送数据位:无
    反馈数据位:字节1:输入1状态0/1 0-低电平 1-高电平;字节2:输入2状态;字节3:末端按钮状态

  4. 末端按钮是否被按下
    指令长度:3
    功能码:0x6F
    发送数据位:无
    反馈数据位:字节1:0/1 1-被按下,0-未按下

末端夹爪控制

注意: Pro力控夹爪、三指请查看 下面的 "设置/读取末端配件值" 协议。

  1. 设置夹爪开合状态
    指令长度:6
    功能码:0x66
    发送数据位:字节1:state 0/1 0-open 1-close, 字节2:速度 1-100,字节3:模式 1-pro自适应夹爪,2-平行夹爪,默认pro自适应夹爪
    反馈固定数据位:字节1-2: 0xFF 0x01

  2. 设置夹爪角度
    指令长度:6
    功能码:0x67
    发送数据位:字节1:夹爪角度 0-100, 字节2:速度 1-100,字节3:模式 1-pro自适应夹爪,2-平行夹爪,默认pro自适应夹爪
    反馈固定数据位:字节1-2: 0xFF 0x01

  3. 设置夹爪零点

    • 夹爪开到最大时设置零位

      指令长度:3
      功能码:0x68
      发送数据位:无
      反馈固定数据位:字节1-2: 0xFF 0x01

  4. 设置pro自适应夹爪使能
    指令长度:4
    功能码:0x58
    发送数据位:字节1:0/1 1-使能
    反馈固定数据位:字节1-2: 0xFF 0x01

  5. 设置夹爪模式

    • 模式:端口/透传模式,默认端口模式,模式掉电不保存;同时夹爪掉电后上电,自动为端口模式,切换为透传后,无法再设置为端口,除非夹爪掉电再上电

    • 端口:2输出io,一高一低控制夹爪开合

    • 透传:通过接口控制夹爪开合

      指令长度:4
      功能码:0x6D
      发送数据位:字节1:模式 0-透传,1-端口
      反馈固定数据位:字节1-2: 0xFF 0x01

  6. 获取夹爪模式
    指令长度:3
    功能码:0x6E
    发送数据位:无
    反馈固定数据位:字节1: 0/1 0-透传,1-端口

  7. 设置电动夹爪开合

    • 夹爪通电后,初次开合,需要先初始化,夹爪通电后夹爪LED红灯

      指令长度:4
      功能码:0x6B
      发送数据位:字节1:0/1 1-关闭,0-打开
      反馈固定数据位:字节1-2: 0xFF 0x01

  8. 设置电动夹爪初始化

    • 夹爪通电后,初次开合,需要先初始化,夹爪通电后夹爪LED红灯

      指令长度:3
      功能码:0x6C
      发送数据位:无
      反馈固定数据位:字节1-2: 0xFF 0x01

  9. 设置末端配件值

    • 仅支持Pro力控夹爪和三指
    • 公共接口,其他具体功能接口:力控夹爪查看:力控夹爪通信协议;三指查看:三指通信协议
    • 力控IO控制:1底2高:开,1高2低:关;用完io后485需要将io改为同状态,1、2同高或者同低 指令长度:8-N
      功能码:0xD8
      发送数据位:

      • 字节1:夹爪ID,默认14
      • 字节2-3:夹爪功能寄存器地址
      • 字节4-N:data1, data2......最大字节60

      反馈数据位:字节1-2: 0xFF 0x01

  10. 读取末端配件值

    • 仅支持Pro力控夹爪和三指
    • 公共接口,其他具体功能接口:力控夹爪查看:力控夹爪通信协议;三指查看:三指通信协议
    • 力控IO控制:1底2高:开,1高2低:关;用完io后485需要将io改为同状态,1、2同高或者同低

    指令长度:6或者8
    功能码:0xD9
    发送数据位:

    • 字节1:夹爪ID,默认14
    • 字节2-3:夹爪功能寄存器地址
    • 字节4-5:data(可无)

    反馈数据位:夹爪参数值

设置末端485通信

  1. 485恢复出厂设置
    指令长度:3
    功能码:0xB1
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01

  2. 设置485通信
    设置之前,需要先设置波特率
    指令长度:3
    功能码:0xB2
    发送数据位:无
    反馈固定数据位:字节1: 0/1 1-已设置

  3. 读取485缓冲区长度
    指令长度:3
    功能码:0xB3
    发送数据位:无
    反馈固定数据位:字节1: len 0-255 可读的字节长度

  4. 读取固定长度的数据
    读取前,先读缓冲区长度,读取完后数据会被清除
    指令长度:4
    功能码:0xB4
    发送数据位:字节1:最大长度45
    反馈固定数据位:字节1-N: datas

  5. 发送数据
    指令长度:3+N
    功能码:0xB5
    发送数据位:字节1-N:datas,N:最大45
    反馈固定数据位:字节1: len 0-45,一次发送的总长度

  6. 清空缓冲区
    指令长度:3
    功能码:0xB6
    发送数据位:无
    反馈固定数据位:字节1-2: 0xFF 0x01

  7. 设置485波特率
    指令长度:7
    功能码:0xB8
    发送数据位:字节1-4:波特率,常用波特率9600、115200、1000000等,默认115200
    反馈固定数据位:字节1-2: 0xFF 0x01

  8. 设置485超时时间
    指令长度:5
    功能码:0xB9
    发送数据位:字节1-2:超时时间,单位毫秒,默认30ms
    反馈固定数据位:字节1-2: 0xFF 0x01

状态查询

  1. 读取机器人状态
    指令长度:3
    功能码:0xA2
    发送数据位:无
    反馈数据位:字节1:碰撞检测状态0/1 1-碰撞 ;字节2:移动状态0/1 1-运动中;字节3-9:1X7关节是否超限0/1 1-超限;字节10-23:2X7关节电机是否报错 0-正常 >0异常;字节24-37:2X7关节电机软件报错 0-正常 >0异常;具体看报错信息和到位反馈表

  2. 读取运动报错信息
    指令长度:3
    功能码:0x07
    发送数据位:无
    反馈数据位:字节1-2:报错信息,具体看报错信息和到位反馈表

  3. 读取关节通信异常次数
    指令长度:5
    功能码:0xA3
    发送数据位:字节1:关节1-7;字节2:类型1-4,1-关节发送异常次数,2-关节获取异常次数,3-末端发送异常次数,4-末端获取异常次数
    反馈数据位:字节1-2:异常次数,范围 0-32700

  4. 读取关节运行速度
    指令长度:3
    功能码:0xE1
    发送数据位:无
    反馈数据位:字节1-14:2X7运行速度/100.0 +30 ~ -30 rpm

  5. 获取关节电流
    指令长度:3
    功能码:0xE2
    发送数据位:无
    反馈数据位:字节1-14:2X7关节电流 单位:MA

  6. 获取关节状态
    指令长度:3
    功能码:0xE4
    发送数据位:无
    反馈数据位:字节1-14:2X7 范围:0-65535(欠压值为:8192),状态:0 - OK

  7. 读取零位编码器值
    指令长度:3
    功能码:0x59
    发送数据位:无
    反馈数据位:字节4x7:关节J1-J7

  8. 读取零位编码器值
    指令长度:3
    功能码:0xA5
    发送数据位:无
    反馈数据位:字节1-2:角度/100,默认21°

  9. 读取运动中电机报错
    指令长度:3
    功能码:0x9C
    发送数据位:无
    反馈数据位:字节1-14:2x7

设置坐标系

  1. 设置工具坐标系
    指令长度:0x0F
    功能码:0x81
    发送数据位:

    • 字节1-2: x (±1000) (10xmm)
    • 字节3-4: y(±1000)
    • 字节5-6: z (±1000)
    • 字节7-8: rx (±180) (100xRd)
    • 字节9-10: ry (±180)
    • 字节11-12: rz (±180)

      反馈数据位:0xFF 0x01

  2. 读取工具坐标系
    指令长度:3
    功能码:0x82
    发送数据位:无
    反馈数据位:

    • 字节1-2: x (±1000) (10xmm)
    • 字节3-4: y(±1000)
    • 字节5-6: z (±1000)
    • 字节7-8: rx (±180) (100xRd)
    • 字节9-10: ry (±180)
    • 字节11-12: rz (±180)
  3. 设置世界坐标系
    指令长度:0x0F
    功能码:0x83
    发送数据位:

    • 字节1-2: x (-2800~280) (10xmm)
    • 字节3-4: y(-2800~280)
    • 字节5-6: z (-2800~280)
    • 字节7-8: rx (±3140) (100xRd)
    • 字节9-10: ry (±3140)
    • 字节11-12: rz (±3140)

      反馈数据位:0xFF 0x01

  4. 读取世界坐标系
    指令长度:3
    功能码:0x84
    发送数据位:无
    反馈数据位:字节1-12: 2x6 coords

  5. 设置基坐标系
    指令长度:4
    功能码:0x85
    发送数据位:字节1:base type(0-基坐标系 1-世界坐标系)
    反馈数据位:0xFF 0x01

  6. 读取基坐标系
    指令长度:3
    功能码:0x86
    发送数据位:无
    反馈数据位:字节1:base type(0-基坐标系 1-世界坐标系)

  7. 设置末端坐标系
    指令长度:4
    功能码:0x89
    发送数据位:字节1:end type(0-法兰 1-工具)
    反馈数据位:0xFF 0x01

  8. 读取末端坐标系
    指令长度:3
    功能码:0x8A
    发送数据位:无
    反馈数据位:字节1:end type(0-法兰 1-工具)

  9. 设置移动类型

    • 切换移动类型(0-moveJ 1-moveL 2-moveF 3-moveS 4-CP)1为默认模式,2为关节速度融合模式,用于VR、摇控制等场合,3为速度环融合模式,4为CP连续轨迹控制模式

      指令长度:4
      功能码:0x87
      发送数据位:字节1:movement type((0-moveJ,1-moveL,2-moveF,3-moveS,4-CP))
      反馈数据位:0xFF 0x01

  10. 读取移动类型
    指令长度:3
    功能码:0x88
    发送数据位:无
    反馈数据位:字节1: movement type

异常清除

  1. 清除运动报错

    • 清除读取运动报错,如超限、坐标无法到达等

      指令长度:3
      功能码:08
      发送数据位:无
      反馈固定数据位:字节1-2: 0xFF 0x01

  2. 关节异常恢复

    • 清除部分关节电机报错

      指令长度:4
      功能码:0xE7
      发送数据位:字节1:关节1-7、254-所有关节
      反馈固定数据位:字节1-2: 0xFF 0x01


常见问题

  1. 机械臂无法运动?

    • 查看机械臂是否已使能、关节电机有无报错、关节有无超限,可调用读取机器人状态
  2. 指令无响应

    • 查看发送指令是否正确,所有指令都有第一层握手反馈。
  3. 开机仅通电:末端LED变黄色

  4. 开机上电成功:末端LED变绿色
  5. 运动超限、点位无法到达:末端LED变蓝色
  6. MyStudio-开发自由移动模式:末端LED变紫色

报错信息和到位反馈表

到位反馈表

0-20 关节超限、碰撞、暂停等

16进制(10进制) 说明
0 运动到位
1-7 关节超限
8 设置运动模式结束
10-13 碰撞保护
A(10) 缓停结束标志
B(11) 指令停止标志

20-23(32-35)坐标运动异常(检查关节限位)

16进制(10进制) 说明
20(32) 坐标无解
21(33) 直线运动无相邻解
22(34) 速度融合报错
23(35) 零空间运动无相邻解
24(36) 奇异位置无解
31(49) 辨识精度错误

41-47(65-71)关节异常

16进制(10进制) 说明
41-47(65-71) 1-7关节位置精度异常
51-57(81-87) 1-7关节碰撞检测异常
0x61-67 1-7关节can发送失败
0x71-77 1-7关节can接收异常
0x81-87 1-7关节掉使能
0x91-97 1-7关节电机报错(报错后可搭配0x9c接口使用)
0xA1-A7 1-7关节电机编码器报错
0xC1-C7 1-7关节位置超差

运动报错信息表

返回数据格式: 0xD0 + xx(例如:0xD001 表示1关节超限)

0-7 关节超限

状态码(10进制) 16进制 说明
0 0x00 运动正常
1 0x01 1关节超限
2 0x02 2关节超限
3 0x03 3关节超限
4 0x04 4关节超限
5 0x05 5关节超限
6 0x06 6关节超限
7 0x07 7关节超限

20-24(32-36)坐标运动异常

状态码(10进制) 16进制 说明
20(32) 0x14 坐标无解,请检查臂展是否临近限位
21(33) 0x15 直线运动无相邻解
22(34) 0x16 速度融合报错
23(35) 0x17 零空间运动无相邻解
24(36) 0x18 奇异位置无解,请使用关节控制离开奇异点

关节电机报错信息表

1 软件内的错误报警

比特位(2字节) 错误状态(1-异常,0-正常) 说明与处理建议
0 Can初始化异常 需检查主控板。修复控制板异常后,掉电再上电。
表现:机器无法使能、控制等
1 电机初始化异常 需检查电机通信线路等,修复异常后,掉电再上电。
表现:机器无法正常反馈关节信息、控制等
2 电机发送异常 需检查电机通信线路等。
表现:机器位置反馈等异常;可使用异常恢复清除
3 电机接收异常 需检查电机通信线路等。
表现:机器位置反馈等异常;可使用异常恢复清除。
此反馈可正常控制机器,无需提示用户,主要用于排查异常
4 位置超差 需检查电机编码器等。
表现:机器掉使能,无法运动控制;可使用异常恢复清除
5 末端发送异常 需检查末端通信线路等。
表现:末端接口反馈异常;可使用异常恢复清除
6 末端接收异常 需检查末端通信线路等。
表现:末端接口反馈异常;可使用异常恢复清除。
此反馈可正常控制机器,无需提示用户,主要用于排查异常
7 电机编码器报错 编码器报错时,不可运动,需要清除编码器报错。
旧版电机驱动板无报错-即使报了编码器错误,软件无法反馈异常。
如何区分新旧:板子上带电池的为新驱动板
8 掉使能反馈 运动前机器必须是使能状态

2 电机自带的错误报警

比特位(2字节) 错误状态 处理方式
0 CAN总线错误 可使用异常恢复,无法恢复时,检查通信线路,修复后重新通电使能
1 短路 可使用异常恢复
2 无效的设置数据
3 控制错误 可使用异常恢复
4 CAN通信错误 可使用异常恢复,无法恢复时,检查通信线路,修复后重新通电使能
5 反馈错误 可使用异常恢复
6 正限位开关激活
7 负限位开关激活
8 过流 可使用异常恢复
9 I2t保护 可使用异常恢复
10 过温 可使用异常恢复
11 驱动板过温 可使用异常恢复
12 过压 可使用异常恢复
13 欠压 可使用异常恢复
14 命令错误
15 启用处于非活动状态

results matching ""

    No results matching ""