Skip to main content
Version: 1.1.0 (Latest)

灵越上下位机通讯协议

阅读指南
  1. 《玄雅·灵越上下位机通讯协议》正在持续优化和迭代中。如在实际使用过程中发现与本协议存在版本不一致的情况,请与我们联系,我们将第一时间为您提供所需的技术支持;

  2. 本协议中的所有数值统一采用十进制或十六进制表示,其中以0x标识的数据为十六进制数,未有标识的数据一律为十进制数;

  3. 本协议适用于所有购买玄雅·灵越系列产品的用户。

上一次修改时间:2025年9月23日

1. 玄雅通讯协议基本构成

《玄雅·灵越上下位机通讯协议》是一种适用于多种通信方式的数据传输协议,采用固定帧格式设计,旨在确保数据传输过程中的稳定性与可解析性。协议数据帧由以下字段组成:

指令格式:

帧头指令数据长度参数数据校验帧尾
0xAA指令IDlengthfunctiondata1 ~ dataNcheck0xFF
  • 帧头:固定为 0xAA,数据帧的起始位置。

  • 指令:控制指令 ID,每个ID对应一种特定的控制逻辑或数据格式,便于程序在接收时动态匹配处理流程。

  • 指令长度:等于数据的长度 N 加上1,即 “N+1”。

  • 参数:每个指令中有不同的功能,各功能对应不同参数。

  • 数据

  • 校验位:校验 Check,计算方式:Check = (function + data1 +...data N) % 2。

  • 帧尾:固定为 0xFF,数据帧的结束位置

2. 关节控制指令

关节控制帧的指令ID为 0x06 ,该指令包含3个功能分别是获取左右臂即夹爪角度数据、控制右臂关节角度和控制左臂关节角度。

2.1 关节数据获取指令

  • 功能:获取左右臂关节及左右夹爪数据。
  • 指令:0x06
  • 参数:0x00
  • 数据长度:0x01
  • 数据:无
  • 机制:灵越的数据获取方式是应答式,即发送一次数据获取帧,回复一次关节数据。
  • 校验:check = (参数 + 数据) % 2

示例:获取关节和夹爪的角度数据。

帧头指令数据长度参数校验帧尾
0xAA0x060x010x000x000xFF

2.2 数据获取应答帧

  • 功能:反馈左右臂关节数据和夹爪开合角度。
  • 指令;0x06
  • 数据长度:0x21
  • 参数:0x38
  • 数据:一共32字节,前14个字节是右臂的七个关节角度,15-28字节是左臂的七个关节角度,最后四个字节是右臂和左臂夹爪的角度数据。
  • 机制:在发送数据获取帧之后就会回应一帧数据应答帧。
  • 校验:check = (参数 + 数据) % 2

示例:回复左右臂关节角度和夹爪角度。

帧头指令数据长度参数数据校验帧尾
0xAA0x060x210x3804 08 FE 07 FC 07 FF 03 00 08 03 08 02 08 03 08 FE 07 02 08 FE 07 FD 07 FE 07 01 08 B7 07 44 0B0x000xFF

2.3 关节控制指令

  • 功能:控制右边机械臂的各关节角度。
  • 指令;0x06
  • 数据长度:0x0F
  • 参数:0x01表示右侧机械臂,0x02 表示左侧机械臂。
  • 数据:一共14字节,机械臂的7个关节角度。
  • 校验:check = (参数 + 数据) % 2

示例:设置右臂各关节角度

帧头指令数据长度参数数据校验帧尾
0xAA0x060xF0x0100 07 00 08 00 08 00 08 00 08 00 08 00 08 0x010xFF

3 夹爪控制帧

夹爪控制帧用于单侧或双侧夹爪的开合角度控制,指令 ID 为 0x02

3.1 夹爪控制指令

  • 功能:控制左右夹爪的目标角度。
  • 指令:0x02
  • 参数:0x01 表示右侧夹爪,0x02 表示左侧夹爪。(后续如扩展双侧同时控制,可使用其它识别值)
  • 数据长度:识别字节 + 2 字节目标角度,共 3 字节,对应长度字段值:0x03
  • 数据:2 字节角度值,低位在前,高位在后,表示单个夹爪目标角度。
  • 校验:check = (参数 + 数据) % 2

示例:设置右侧夹爪角度(角度值示例为 0x0800,按小端发送为 00 08

帧头指令数据长度参数数据校验帧尾
0xAA0x020x030x0100 080x010xFF

4 设置零点指令帧

设置零点指令帧用于将机械臂当前姿态标定为零点,指令 ID 为 0x03

4.1 零点设置指令

  • 功能:设置左/右或双侧机械臂的零点基准。
  • 指令:0x03
  • 数据长度:0x01
  • 参数:0x01 右侧零点;0x02 左侧零点;0x03 双侧同时设置零点。
  • 校验:check = (参数) % 2

示例:设置右侧机械臂零点

帧头指令数据长度参数校验帧尾
0xAA0x030x010x010x010xFF

5 力矩开关指令帧

力矩开关指令用于打开或关闭机械臂伺服的力矩输出,指令 ID 为 0x13

5.1 力矩开关控制

  • 功能:控制左右或双侧机械臂的力矩使能状态。
  • 指令:0x13
  • 数据长度:0x02
  • 参数:0x01 右侧;0x02 左侧;0x03 双侧同时设置。
  • 数据:0x00 关闭力矩;0x01 打开力矩。
  • 校验:check = (参数 + 数据) % 2

示例:打开右侧机械臂力矩

帧头指令数据长度参数数据校验帧尾
0xAA0x130x020x010x010x000xFF

6 云台控制指令帧

云台控制指令用于控制云台的两个轴角度(X / Y),指令 ID 为 0x14

6.1 云台角度控制

  • 功能:设置云台 X 轴与 Y 轴目标角度。
  • 指令:0x14
  • 数据长度:0x04
  • 数据:共 4 字节,前 2 字节为 X 轴角度(低位在前,高位在后),后 2 字节为 Y 轴角度(低位在前,高位在后)。

示例:X 轴角度 0x0800,Y 轴角度 0x0800

帧头指令数据长度数据 (X_L X_H Y_L Y_H)校验帧尾
0xAA0x140x0400 08 00 080x000xFF