Skip to main content

灵犀 Gloria-D 系列舵机通信协议手册

1. 概述

本文档适用于灵犀 Gloria-D 系列机械臂的舵机通信控制。

2. 通信协议规范

2.1 基本通信参数

  • 波特率: 1000000 bps (默认)
  • 数据位: 8 位
  • 停止位: 1 位
  • 校验位: 无
  • 通信方式: 半双工 UART 通信

2.2 数据包格式

通信数据包采用以下格式:

Header (1字节) + ID (1字节) + Length (1字节) + Instruction (1字节) + Parameters (N字节) + Checksum (1字节)
  • Header: 固定为 0xFF
  • ID: 舵机ID (0-254, 0xFE为广播ID)
  • Length: 参数长度 + 3 (Instruction + Checksum)
  • Instruction: 命令类型
  • Parameters: 命令参数
  • Checksum: 校验和

2.3 校验和计算

校验和计算公式:

Checksum = ~(ID + Length + Instruction + Parameter1 + ... + ParameterN) & 0xFF

3. 主要命令说明

3.1 PING 指令

功能: 测试舵机是否正常连接

指令格式:

| Header | ID | Length | Instruction | Checksum
| ------ | -- | ------ | ----------- | --------
| 0xFF | ID | 0x02 | 0x01 | Checksum

响应:

| Header | ID | Length | Error | Checksum
| ------ | -- | ------ | ----- | --------
| 0xFF | ID | 0x02 | Error | Checksum

3.2 READ 指令

功能: 读取舵机数据

指令格式:

| Header | ID | Length | Instruction | Address | Length | Checksum
| ------ | -- | ------ | ----------- | ------- | ------ | --------
| 0xFF | ID | 0x04 | 0x02 | Address | Length | Checksum

参数说明:

  • Address: 读取起始地址
  • Length: 读取数据长度

3.3 WRITE 指令

功能: 写入数据到舵机

指令格式:

| Header | ID | Length | Instruction | Address | Data1 | Data2 | ... | Checksum
| ------ | -- | ------ | ----------- | ------- | ----- | ----- | --- | --------
| 0xFF | ID | Length | 0x03 | Address | Data | Data | ... | Checksum

3.4 REG WRITE 指令

功能: 写入数据并等待 ACTION 指令执行

指令格式:

| Header | ID | Length | Instruction | Address | Data1 | Data2 | ... | Checksum
| ------ | -- | ------ | ----------- | ------- | ----- | ----- | --- | --------
| 0xFF | ID | Length | 0x04 | Address | Data | Data | ... | Checksum

3.5 ACTION 指令

功能: 触发已写入的动作

指令格式:

| Header | ID | Length | Instruction | Checksum
| ------ | -- | ------ | ----------- | --------
| 0xFF | ID | 0x02 | 0x05 | Checksum

3.6 RESET 指令

功能: 重置舵机设置

指令格式:

| Header | ID | Length | Instruction | Checksum
| ------ | -- | ------ | ----------- | --------
| 0xFF | ID | 0x02 | 0x06 | Checksum

4. 控制表说明

4.1 基本信息区域 (Address 0-23)

地址名称描述长度访问
0Model Number L型号低字节1只读
1Model Number H型号高字节1只读
2Version固件版本1只读
3ID舵机ID1读写
4Baud Rate波特率1读写
5Return Delay Time返回延迟时间1读写
6CW Angle Limit L顺时针角度限制低字节1读写
7CW Angle Limit H顺时针角度限制高字节1读写
8CCW Angle Limit L逆时针角度限制低字节1读写
9CCW Angle Limit H逆时针角度限制高字节1读写
10System Data2系统数据21只读
11Limit Temperature最高温度限制1读写
12Down Limit Voltage最低电压限制1读写
13Up Limit Voltage最高电压限制1读写
14Max Torque L最大扭矩低字节1读写
15Max Torque H最大扭矩高字节1读写
16Return Level返回状态等级1读写
17Alarm LEDLED报警1读写
18Alarm Shutdown关机报警1读写
19Operating Mode运行模式1读写
20Down Calibration L下限校准低字节1读写
21Down Calibration H下限校准高字节1读写
22Up Calibration L上限校准低字节1读写
23Up Calibration H上限校准高字节1读写

4.2 状态信息区域 (Address 24-35)

地址名称描述长度访问
24Torque Enable扭矩使能1读写
25LEDLED状态1读写
26CW Compliance Margin顺时针顺从裕度1读写
27CCW Compliance Margin逆时针顺从裕度1读写
28CW Compliance Slope顺时针顺从斜率1读写
29CCW Compliance Slope逆时针顺从斜率1读写
30Goal Position L目标位置低字节1读写
31Goal Position H目标位置高字节1读写
32Moving Speed L移动速度低字节1读写
33Moving Speed H移动速度高字节1读写
34Torque Limit L扭矩限制低字节1读写
35Torque Limit H扭矩限制高字节1读写

4.3 反馈信息区域 (Address 36-49)

地址名称描述长度访问
36Present Position L当前位置低字节1只读
37Present Position H当前位置高字节1只读
38Present Speed L当前速度低字节1只读
39Present Speed H当前速度高字节1只读
40Present Load L当前负载低字节1只读
41Present Load H当前负载高字节1只读
42Present Voltage当前电压1只读
43Present Temperature当前温度1只读
44Registered Instruction注册指令1只读
45Reserved保留1只读
46Moving移动状态1只读
47Lock锁定1只读
48Punch L冲击低字节1读写
49Punch H冲击高字节1读写

5. 角度与位置转换

5.1 角度范围

  • 最小角度: 0°
  • 最大角度: 300° (根据具体型号而定)
  • 分辨率: 0.29°

5.2 位置值计算

位置值范围:0 - 1023

角度转位置值:

Position = (Angle / 300) * 1023

位置值转角度:

Angle = (Position / 1023) * 300

6. 完整示例:机械臂各舵机的角度控制与角度反馈

请用户详细参阅以下完整协议,并熟悉各部分的释义:

1. 帧头

默认为0xFF

| 0xFF | 0x01 | 0x02 | 0x01 | 0xFB |

2. 指令ID

0x01,执行PING指令:

| 0xFF | 0x01 | 0x02 | 0x01 | 0xFB |

3. 指令长度

0x02,表示指令长度为2字节:

| 0xFF | 0x01 | 0x02 | 0x01 | 0xFB |

4. 指令类型

0x01,PING指令:

| 0xFF | 0x01 | 0x02 | 0x01 | 0xFB |

5. 校验位

0xFB,校验和计算:

| 0xFF | 0x01 | 0x02 | 0x01 | 0xFB |

6. 响应帧

| 0xFF | 0x01 | 0x02 | 0x00 | 0xFB |

7. 完整示例:读取舵机当前位置

请用户详细参阅以下完整协议,并熟悉各部分的释义:

1. 帧头

默认为0xFF

| 0xFF | 0x01 | 0x04 | 0x02 | 0x24 | 0x02 | 0xD9 |

2. 指令ID

0x01,执行READ指令:

| 0xFF | 0x01 | 0x04 | 0x02 | 0x24 | 0x02 | 0xD9 |

3. 指令长度

0x04,表示参数长度为4字节:

| 0xFF | 0x01 | 0x04 | 0x02 | 0x24 | 0x02 | 0xD9 |

4. 指令类型

0x02,READ指令:

| 0xFF | 0x01 | 0x04 | 0x02 | 0x24 | 0x02 | 0xD9 |

5. 参数

0x24,读取起始地址(当前位置):

| 0xFF | 0x01 | 0x04 | 0x02 | 0x24 | 0x02 | 0xD9 |

6. 读取长度

0x02,读取2字节:

| 0xFF | 0x01 | 0x04 | 0x02 | 0x24 | 0x02 | 0xD9 |

7. 校验位

0xD9,校验和计算:

| 0xFF | 0x01 | 0x04 | 0x02 | 0x24 | 0x02 | 0xD9 |

8. 响应帧示例

| 0xFF | 0x01 | 0x04 | 0x00 | 0xE8 | 0x03 | 0x16 |

9. 响应解析

  • 0xFF: 帧头
  • 0x01: 舵机ID
  • 0x04: 数据长度
  • 0x00: 错误码(无错误)
  • 0xE8: 位置低字节
  • 0x03: 位置高字节
  • 0x16: 校验和

8. 错误代码

错误值含义
0无错误
1输入电压错误
2角度限制错误
4过热错误
8角度范围错误
16负载过大错误
32指令错误
64校验和错误

9. 注意事项

  1. 通信时序: 相邻两个数据包之间应有至少 1ms 的间隔
  2. 舵机ID: 建议使用 1-253 之间的ID,避免使用广播ID(0xFE)进行写操作
  3. 波特率设置: 修改波特率后需要重启舵机
  4. 温度监控: 长时间工作时注意监控舵机温度
  5. 负载限制: 确保舵机负载不超过额定值
  6. 固件升级: 定期检查并升级舵机固件

10. 故障排除

常见问题:

  1. 通信失败:检查波特率、舵机ID、连接线缆
  2. 舵机不响应:检查电源电压、舵机是否锁定
  3. 位置不准确:检查角度限制设置、校准参数
  4. 过热保护:降低负载、增加散热

本文档基于 FEETECH 舵机协议手册编写,适用于磁编码版本舵机。如有疑问,请参考官方最新文档。