基于通信协议包开发使用
通信设置
- 总线接口:内置 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校验码,高字节在前
- 所有指令都有第一层接收反馈,位置模式控制有到位反馈。
基础控制
读取主控版本号
指令长度:3
功能码: 02
发送数据位:无
反馈数据位:版本号-1字节,需要/10.0
发送指令:FE FE 03 02 0D D1
反馈指令例如:FE FE 04 02 0A 51 7D, 此时版本号为V1.0读取机器人型号
指令长度:3
功能码: 03
发送数据位:无
反馈数据位:型号-2字节
发送指令:FE FE 03 03 CD 10读取末端更正版本号
指令长度:3
功能码:06
发送数据位:无
反馈数据位:字节1:更正版本号读取末端版本号
指令长度:3
功能码:09
发送数据位:无
反馈数据位:字节1:版本号,需要/10.0设置限制开关
指令长度:5
功能码:0E
发送数据位:字节1:1/2 1-位置超差,2-到位反馈;字节2:0/1 0-关闭,1-打开,默认打开,不掉电保存
反馈固定数据位:字节1-2: 0xFF 0x01读取限制开关
指令长度:3
功能码:0F
发送数据位:无
反馈数据位:字节1:位置超差开关状态,0/1 1-打开;字节2:到位反馈开关状态,0/1 1-打开,默认打开启动机器人
指令长度:3
功能码:0x10
发送数据位:无
反馈数据位:字节1:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下关闭机器人
指令长度:3
功能码:0x11
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01
反馈指令:FE FE 05 11 FF 01 E8 EC读取机器人启动状态
指令长度:3
功能码:0x12
发送数据位:无
反馈数据位:字节1:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下读取零位校准状态
指令长度:3
功能码:0x5A
发送数据位:无
反馈数据位:字节1:0/1;整机零位校准状态,1-已设置; 字节2-9: 1X7关节零位校准状态机器人仅通电,不能控制机器人
指令长度: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
全关节角度控制
指令长度: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单关节角度控制
指令长度: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
功能码: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全坐标控制
指令长度:0x10
功能码:0x25
发送数据位:字节1-12:2X6坐标(XYZ10.0,RXRYRZ100.0) 字节13:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01单坐标控制
指令长度:7
功能码:0x24
发送数据位:字节1:坐标轴; 字节2-3:坐标(XYZ10.0,RXRYRZ100.0) 字节4:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01读取全坐标
指令长度:3
功能码:0x23
发送数据位:无
反馈数据位:字节1-12:2X6坐标(XYZ/10.0,RXRYRZ/100.0)读取机器人运动状态
指令长度:3
功能码:0x2B
发送数据位:无
反馈数据位:字节1:运动状态0/1,0-未运动;1-运动中检测机器人是否到达点位
指令长度:角度: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-到位
- 字节1-12:26坐标(角度100.0,坐标XYZ10.0,RXRYRZ100.0);字节13:模式1/2-坐标;
运动暂停
指令长度:3
功能码:0x26
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01运动恢复
指令长度:3
功能码:0x28
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01运动结束
指令长度:3
功能码:0x29
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01检测运动是否暂停
指令长度:3
功能码:0x27
发送数据位:无
反馈数据位:字节1:暂停状态0/1,0-未手动暂停;1-已暂停关节持续运动
指令长度:6
功能码:0x30
发送数据位:字节1:关节1-7; 字节2:方向0/1 0-反转 1-正转 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01坐标持续运动
指令长度:6
功能码:0x32
发送数据位:字节1:坐标轴1-6; 字节2:方向0/1 0-反转 1-正转 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01RPY旋转
指令长度:6
功能码:0xF5
发送数据位:字节1:模式1-3 1-翻滚角(绕X轴) 2-俯仰角(绕Y轴) 3-偏航角(绕Z轴); 字节2:方向0/1 0-反转 1-正转 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01关节步进控制
指令长度:7
功能码:0x33
发送数据位:字节1:关节1-7; 字节2-3:步进值*100.0 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01坐标步进控制
指令长度:7
功能码:0x34
发送数据位:字节1:坐标轴1-6; 字节2-3:步进值(XYZ10.0,RXRYRZ100.0) 字节4:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01坐标JOG轨迹融合(配合6D鼠标)
指令长度:10
功能码:0xEC
发送数据位:字节1:坐标轴1-6; 字节2-3:步进值(XYZ10.0,RXRYRZ100.0) 字节4:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01计算运动学逆解
用于计算机械臂逆解,输入coords目标坐标 angles当前关节角度,输出solve_angles目标坐标对应的角度。 指令长度:0x1D
功能码:0x8D
发送数据位:字节1-12:2X6关目标坐标 字节13-26:2X7当前关节角度
反馈数据位:字节1-28:4X7关节角度(/100.0)启动拖动示教
指令长度:3
功能码:0x70
发送数据位:无
反馈数据位:0xFF 0x01暂停采样
指令长度:3
功能码:0x72
发送数据位:无
反馈数据位:0xFF 0x01执行示教点位
指令长度:3
功能码:0x71
发送数据位:无
反馈数据位:0xFF 0x01清除采样点
指令长度:3
功能码:0x73
发送数据位:无
反馈数据位:0xFF 0x01查询碰撞检测模式
指令长度:3
功能码:0xFD
发送数据位:无
反馈数据位:字节1:0/1,1-open 0-close设置碰撞检测模式
指令长度:4
功能码:0x74
发送数据位:1-open 0-close 开启碰撞检测后,机械臂在运动过程中发生持续(>200ms)且超出碰撞阈值的碰撞时会自动停下
反馈数据位:0xFF 0x01设置碰撞阈值
指令长度:5
功能码:0x75
发送数据位:- 字节 1: joint range:(1-7)
- 字节 2:radio range:(50-250)%
可以设置关节的碰撞阈值,默认为100%,该数值越小越容易触发碰撞
反馈数据位:0xFF 0x01获取碰撞阈值
指令长度:3
功能码:0x76
发送数据位:无
反馈数据位:- 字节1-7:全关节碰撞阈值
- 字节1-7:全关节碰撞阈值
设置力矩补偿系数
指令长度:5
功能码:0x77
发送数据位:- 字节 1: joint range:(1-7)
- 字节 2:radio range:(0-250)% 力矩环的摩擦力补偿系数,默认为[0, 0, 0, 0, 10, 30, 30],系数越大越容易拖动
反馈数据位:0xFF 0x01
- 字节 1: joint range:(1-7)
获取力矩补偿系数
指令长度:3
功能码:0x78
发送数据位:无
反馈数据位:- 字节1-7:全关节力矩补偿系数
- 字节1-7:全关节力矩补偿系数
设置动力学参数辨识模式
- 需要先关闭碰撞检测及零力拖动功能
指令长度:4
功能码:0x8E
发送数据位:字节1:1-open, 0-close获取动力学参数辨识模式
指令长度:3
功能码:0x8F
发送数据位:无
反馈数据位:字节1:1-open, 0-close执行动力学辨识轨迹
指令长度:4
功能码:0xF8
发送数据位:字节1:rank(0-4)- 0: A1单臂辨识轨迹
- 1:B1左臂辨识轨迹
- 2:B1右臂辨识轨迹
- 3:X1左臂辨识轨迹
- 4:X1右臂辨识轨迹
反馈数据位:0xFF 0x01
执行辨识轨迹,全时长9-20s,动作幅度较大注意安全- 0: A1单臂辨识轨迹
设置动力学参数
指令长度:8
功能码:0x97
发送数据位:- 字节1:rank(0-62)
- 字节2-5:data*1000
反馈数据位:0xFF 0x01
- 字节1:rank(0-62)
读取动力学参数
指令长度:4
功能码:0x98
发送数据位:字节1:rank(0-62)
反馈数据位:字节1-4:data*0.001圆弧轨迹运动
指令长度: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,三点确定一个圆弧,使机械臂以起始点、途经点、结束点的顺序执行圆弧轨迹设置运动控制模式
- 该接口执行时间较久,4ms左右
指令长度:4
功能码:0x1E
发送数据位:字节1:模式0/1 0-位置 1-力矩,零力拖动;默认位置模式
反馈数据位:字节1:0xFF, 字节2:0/1 0-设置失败,参数不对;1-参数正确
- 该接口执行时间较久,4ms左右
读取运动控制模式
指令长度:3
功能码:0x1F
发送数据位:无
反馈数据位:字节1:字节1:模式0/1 0-位置 1-力矩,零力拖动超限回零
- 超出限位后可以不用手动移到限位内;目前仅位置模式支持,刷新模式控制不支持
指令长度:3
功能码:04
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01
- 超出限位后可以不用手动移到限位内;目前仅位置模式支持,刷新模式控制不支持
获取采样点位
- 将储存的点位从采样队列中pop出来
指令长度:3
功能码:0x44
发送数据位:无
反馈固定数据位:字节1-28: 4*7 angels
- 将储存的点位从采样队列中pop出来
设置采样点位
- 将点位push进采样队列
指令长度:11
功能码:0x45
发送数据位:字节1-14: 2*7 angels
- 将点位push进采样队列
获取采样队列长度 指令长度:3
功能码:0x46
发送数据位:无
反馈固定数据位:字节1: Length获取零空间偏转角数值
- EDU版本无此接口
指令长度:3
功能码:0x35
发送数据位:无
反馈固定数据位:字节1:J1_angle_low,需要/100,字节2:J1_angle_high,需要/100
- EDU版本无此接口
设置零空间偏转角数值
- EDU版本无此接口
指令长度:6
功能码:0x36
发送数据位:字节1-2:angle(x100),字节3:速度 1-100
反馈固定数据位:字节1-2: 0xFF 0x01
- EDU版本无此接口
模组转动指令
- 控制指定电机往指定方向运动一段距离,当收到暂停/停止指令时会暂停/停止
指令长度:6
功能码:0x06
发送数据位:字节1:关节1-7,字节2:方向0/1 0-反向运动 1-正向运动 ,字节3:速度 1-100
反馈固定数据位:字节1-2: 0xFF 0x01
- 控制指定电机往指定方向运动一段距离,当收到暂停/停止指令时会暂停/停止
辅助功能
设置零位
指令长度:3
功能码:0x54
发送数据位:字节1:关节1-7
反馈固定数据位:字节1-2: 0xFF 0x01机器人关闭力矩输出,全关节放松
指令长度:3
功能码:0x13
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01机器人打开力矩输出,全关节锁紧
指令长度:3
功能码:0x18
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01设置单个电机掉电
指令长度:4
功能码:0x56
发送数据位:字节1:关节1-7
反馈固定数据位:字节1-2: 0xFF 0x01设置单个电机上电
指令长度:4
功能码:0x57
发送数据位:字节1:关节1-7
反馈固定数据位:字节1-2: 0xFF 0x01设置关节刹车开关
指令长度:5
功能码:0x19
发送数据位:字节1:关节1-7;字节2:0/1 1-打开
反馈固定数据位:字节1-2: 0xFF 0x01设置RGB颜色
指令长度:5
功能码:0x6A
发送数据位:字节1-3:R、G、B 范围0-255,全0-灯不亮
反馈固定数据位:字节1-2: 0xFF 0x01设置最大速度
指令长度:6
功能码:0x41
发送数据位:字节1:模式0/1 0-角度 1-坐标 字节2-3:速度,仅可在最大范围内设置
反馈固定数据位:字节1-2: 0xFF 0x01设置最大加速度
指令长度:6
功能码:0x43
发送数据位:字节1:模式0/1 0-角度 1-坐标 字节2-3:加速度,仅可在最大范围内设置
反馈固定数据位:字节1-2: 0xFF 0x01读取最大速度
指令长度:4
功能码:0x40
发送数据位:无
反馈数据位:字节1-2:速度读取最大加速度
指令长度:4
功能码:0x42
发送数据位:字节1:模式0/1 0-角度 1-坐标
反馈数据位:字节1-2:加速度设置关节最小角度
指令长度:6
功能码:0x4c
发送数据位:字节1:关节1-7, 字节2-3:最小角度*10.0;仅可设置为默认范围内的,掉电不报错
反馈固定数据位:字节1-2: 0xFF 0x01读取关节最小角度
指令长度:4
功能码:0x4a
发送数据位:字节1:关节1-7
反馈数据位:字节1-2:最小角度/10.0设置关节最大角度
指令长度:6
功能码:0x4d
发送数据位:字节1:关节1-7, 字节2-3:最大角度*10.0;仅可设置为默认范围内的,掉电不报错
反馈固定数据位:字节1-2: 0xFF 0x01读取关节最大角度
指令长度:4
功能码:0x4b
发送数据位:字节1:关节1-7
反馈数据位:字节1-2:最大角度/10.0读取单关节编码器值
指令长度:4
功能码:0x3b
发送数据位:字节1:关节1-7
反馈数据位:字节1-4:编码器值读取全关节编码器值
指令长度:3
功能码:0x3d
发送数据位:字节1:关节1-7
反馈数据位:字节1-28:4*7关节编码器值设置关节方向
- 设置前需要先回零,先读取当前方向,再设置
指令长度:5
功能码:0x7D
发送数据位:字节1:关节1-7, 字节2:方向0/1 1-同向 0-反向
反馈固定数据位:字节1-2: 0xFF 0x01读取关节方向
指令长度:3
功能码:0x7C
发送数据位:无
反馈数据位:字节1-7:1X7关节方向,1-同向 0-反向读取VR模式
指令长度:3
功能码:0x79
发送数据位:无
反馈数据位:字节:1-open 0-close
VR模式开启后会减少运动指令缓存长度,由80减少至2 适用于不希望积压运动缓存的开发场景,比如VR控制、遥控制设置VR模式
指令长度:4
功能码:0x7A
发送数据位:字节:1-open 0-close
反馈数据位:0xFF 0x01获取速度融合规划参数
- 用于修改位置环速度融合接口的速度和加速度
指令长度:4
功能码:0x4E
发送数据位:字节1:1-4,1-融合关节速度,2-融合关节加速度,3-融合坐标速度,4-融合坐标加速度
反馈数据位:字节1-2:速度融合规划参数设置速度融合规划参数
指令长度:4
功能码:0x4F
发送数据位:- 字节1:0-4,0-恢复默认参数(仅set可用),1-融合关节速度,2-融合关节加速度,3-融合坐标速度,4-融合坐标加速度
- 字节2-3:value,范围0-10000
反馈数据位:0xFF 0x01
- 字节1:0-4,0-恢复默认参数(仅set可用),1-融合关节速度,2-融合关节加速度,3-融合坐标速度,4-融合坐标加速度
获取监控状态
指令长度:3
功能码:0xFB
发送数据位:无
反馈数据位:字节1:1-open 0-close设置监控状态
- 开启监控模式之后,发送运动指令时会持续返回插补点位
指令长度:4
功能码:0xFC
发送数据位:字节1:1-open 0-close
反馈数据位:0xFF 0x01
IO控制
底部IO
设置底座IO输出
指令长度:5
功能码:0xA0
发送数据位:字节1:引脚号1-6, 字节2:状态0/1 0-低电平 1-高电平
反馈固定数据位:字节1-2: 0xFF 0x01读取底座IO输入
指令长度:4
功能码:0xA1
发送数据位:字节1:引脚号1-6
反馈数据位:字节1:状态0/1 0-低电平 1-高电平
末端IO
设置末端IO输出
指令长度:5
功能码:0x61
发送数据位:字节1:引脚号1/2 字节2:状态0/1 0-低电平 1-高电平
反馈固定数据位:字节1-2: 0xFF 0x01读取末端IO输入
指令长度:4
功能码:0x62
发送数据位:字节1:引脚号1-2
反馈数据位:字节1:状态0/1 0-低电平 1-高电平读取末端所有引脚状态
指令长度:3
功能码:0x5F
发送数据位:无
反馈数据位:字节1:输入1状态0/1 0-低电平 1-高电平;字节2:输入2状态;字节3:末端按钮状态末端按钮是否被按下
指令长度:3
功能码:0x6F
发送数据位:无
反馈数据位:字节1:0/1 1-被按下,0-未按下
末端夹爪控制
注意: Pro力控夹爪、三指请查看 下面的 "设置/读取末端配件值" 协议。
设置夹爪开合状态
指令长度:6
功能码:0x66
发送数据位:字节1:state 0/1 0-open 1-close, 字节2:速度 1-100,字节3:模式 1-pro自适应夹爪,2-平行夹爪,默认pro自适应夹爪
反馈固定数据位:字节1-2: 0xFF 0x01设置夹爪角度
指令长度:6
功能码:0x67
发送数据位:字节1:夹爪角度 0-100, 字节2:速度 1-100,字节3:模式 1-pro自适应夹爪,2-平行夹爪,默认pro自适应夹爪
反馈固定数据位:字节1-2: 0xFF 0x01设置夹爪零点
夹爪开到最大时设置零位
指令长度:3
功能码:0x68
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01
设置pro自适应夹爪使能
指令长度:4
功能码:0x58
发送数据位:字节1:0/1 1-使能
反馈固定数据位:字节1-2: 0xFF 0x01设置夹爪模式
模式:端口/透传模式,默认端口模式,模式掉电不保存;同时夹爪掉电后上电,自动为端口模式,切换为透传后,无法再设置为端口,除非夹爪掉电再上电
端口:2输出io,一高一低控制夹爪开合
透传:通过接口控制夹爪开合
指令长度:4
功能码:0x6D
发送数据位:字节1:模式 0-透传,1-端口
反馈固定数据位:字节1-2: 0xFF 0x01
获取夹爪模式
指令长度:3
功能码:0x6E
发送数据位:无
反馈固定数据位:字节1: 0/1 0-透传,1-端口设置电动夹爪开合
夹爪通电后,初次开合,需要先初始化,夹爪通电后夹爪LED红灯
指令长度:4
功能码:0x6B
发送数据位:字节1:0/1 1-关闭,0-打开
反馈固定数据位:字节1-2: 0xFF 0x01
设置电动夹爪初始化
夹爪通电后,初次开合,需要先初始化,夹爪通电后夹爪LED红灯
指令长度:3
功能码:0x6C
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01
设置末端配件值
读取末端配件值
- 仅支持Pro力控夹爪和三指
- 公共接口,其他具体功能接口:力控夹爪查看:力控夹爪通信协议;三指查看:三指通信协议
- 力控IO控制:1底2高:开,1高2低:关;用完io后485需要将io改为同状态,1、2同高或者同低
指令长度:6或者8
功能码:0xD9
发送数据位:- 字节1:夹爪ID,默认14
- 字节2-3:夹爪功能寄存器地址
- 字节4-5:data(可无)
反馈数据位:夹爪参数值
设置末端485通信
485恢复出厂设置
指令长度:3
功能码:0xB1
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01设置485通信
设置之前,需要先设置波特率
指令长度:3
功能码:0xB2
发送数据位:无
反馈固定数据位:字节1: 0/1 1-已设置读取485缓冲区长度
指令长度:3
功能码:0xB3
发送数据位:无
反馈固定数据位:字节1: len 0-255 可读的字节长度读取固定长度的数据
读取前,先读缓冲区长度,读取完后数据会被清除
指令长度:4
功能码:0xB4
发送数据位:字节1:最大长度45
反馈固定数据位:字节1-N: datas发送数据
指令长度:3+N
功能码:0xB5
发送数据位:字节1-N:datas,N:最大45
反馈固定数据位:字节1: len 0-45,一次发送的总长度清空缓冲区
指令长度:3
功能码:0xB6
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01设置485波特率
指令长度:7
功能码:0xB8
发送数据位:字节1-4:波特率,常用波特率9600、115200、1000000等,默认115200
反馈固定数据位:字节1-2: 0xFF 0x01设置485超时时间
指令长度:5
功能码:0xB9
发送数据位:字节1-2:超时时间,单位毫秒,默认30ms
反馈固定数据位:字节1-2: 0xFF 0x01
状态查询
读取机器人状态
指令长度: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异常;具体看报错信息和到位反馈表读取运动报错信息
指令长度:3
功能码:0x07
发送数据位:无
反馈数据位:字节1-2:报错信息,具体看报错信息和到位反馈表读取关节通信异常次数
指令长度:5
功能码:0xA3
发送数据位:字节1:关节1-7;字节2:类型1-4,1-关节发送异常次数,2-关节获取异常次数,3-末端发送异常次数,4-末端获取异常次数
反馈数据位:字节1-2:异常次数,范围 0-32700读取关节运行速度
指令长度:3
功能码:0xE1
发送数据位:无
反馈数据位:字节1-14:2X7运行速度/100.0 +30 ~ -30 rpm获取关节电流
指令长度:3
功能码:0xE2
发送数据位:无
反馈数据位:字节1-14:2X7关节电流 单位:MA获取关节状态
指令长度:3
功能码:0xE4
发送数据位:无
反馈数据位:字节1-14:2X7 范围:0-65535(欠压值为:8192),状态:0 - OK读取零位编码器值
指令长度:3
功能码:0x59
发送数据位:无
反馈数据位:字节4x7:关节J1-J7读取零位编码器值
指令长度:3
功能码:0xA5
发送数据位:无
反馈数据位:字节1-2:角度/100,默认21°读取运动中电机报错
指令长度:3
功能码:0x9C
发送数据位:无
反馈数据位:字节1-14:2x7
设置坐标系
设置工具坐标系
指令长度: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
- 字节1-2: x (±1000) (10xmm)
读取工具坐标系
指令长度: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)
- 字节1-2: x (±1000) (10xmm)
设置世界坐标系
指令长度: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
- 字节1-2: x (-2800~280) (10xmm)
读取世界坐标系
指令长度:3
功能码:0x84
发送数据位:无
反馈数据位:字节1-12: 2x6 coords设置基坐标系
指令长度:4
功能码:0x85
发送数据位:字节1:base type(0-基坐标系 1-世界坐标系)
反馈数据位:0xFF 0x01读取基坐标系
指令长度:3
功能码:0x86
发送数据位:无
反馈数据位:字节1:base type(0-基坐标系 1-世界坐标系)设置末端坐标系
指令长度:4
功能码:0x89
发送数据位:字节1:end type(0-法兰 1-工具)
反馈数据位:0xFF 0x01读取末端坐标系
指令长度:3
功能码:0x8A
发送数据位:无
反馈数据位:字节1:end type(0-法兰 1-工具)设置移动类型
切换移动类型(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
读取移动类型
指令长度:3
功能码:0x88
发送数据位:无
反馈数据位:字节1: movement type
异常清除
清除运动报错
清除读取运动报错,如超限、坐标无法到达等
指令长度:3
功能码:08
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01
关节异常恢复
清除部分关节电机报错
指令长度:4
功能码:0xE7
发送数据位:字节1:关节1-7、254-所有关节
反馈固定数据位:字节1-2: 0xFF 0x01
常见问题
机械臂无法运动?
- 查看机械臂是否已使能、关节电机有无报错、关节有无超限,可调用读取机器人状态
指令无响应
- 查看发送指令是否正确,所有指令都有第一层握手反馈。
开机仅通电:末端LED变黄色
- 开机上电成功:末端LED变绿色
- 运动超限、点位无法到达:末端LED变蓝色
- 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 | 启用处于非活动状态 | — |