参考指南 PubSub 接口
ℹ️ 说明:
使用 Fourier-GRX-N1 SDK PubSub API 前,请将
fourier-grx
配置为 服务器模式。 关于运行模式的配置,请参见 运行模式。
Fourier-GRX PubSub 接口使用 Zenoh 协议与机器人通信, 接口协议类似 Developer API, 提供了更为灵活的消息发布和订阅机制进行接口通信, 适用于远端控制或对开发灵活性有更高要求的应用场景。
PubSub 接口主要分为以下4类:
robot
:机器人相关信息task
:任务相关信息
对应的 zenoh 接口 topic 的 key 格式为:
- key 可以是 [“robot”, “task”]
fourier-grx/{key}/state
:机器人主控程序发出的状态信息 [机器人作为服务器]fourier-grx/{key}/control
:机器人主控程序接收的指令信息 [用户机作为客户端]
4.0.0 以上版本
状态信息
robot/state 接口协议 (状态信息)
key 说明列表:
key | 说明 | 数据类型 | 单位 | 具体描述 |
---|---|---|---|---|
imu_quat | 传感器 IMU 数据 | array(float, float, float, float) | 传感器 IMU 数据,四元数表示姿态,顺序为 x, y, z, w | |
imu_euler_angle | 传感器 IMU 数据 | array(float, float, float) | rad | 传感器 IMU 数据,欧拉角表示姿态,顺序为 roll, pitch, yaw |
imu_angular_velocity | 传感器 IMU 数据 | array(float, float, float) | rad/s | 传感器 IMU 数据,角速度,顺序为 x, y, z |
imu_acceleration | 传感器 IMU 数据 | array(float, float, float) | m/s^2 | 传感器 IMU 数据,线加速度,顺序为 x, y, z |
key | 说明 | 数据类型 | 单位 | 具体描述 |
---|---|---|---|---|
joint_position | 关节位置 | array(float) | rad | 关节测量位置 |
joint_velocity | 关节速度 | array(float) | rad/s | 关节测量速度 |
joint_effort | 关节力矩 | array(float) | Nm | 关节测量力矩 |
joint_current | 关节电流 | array(float) | A | 关节测量电流 |
task/state 接口协议 (状态信息)
key 说明列表:
key | 说明 | 数据类型 | 具体描述 |
---|---|---|---|
task_command | 任务指令 | int | 设置机器人任务值 (TID) |
component_command | 模块指令 | int | 设置机器人模块值 (MID) |
指令信息
robot/control 接口协议 (指令信息)
key 说明列表:
key | 说明 | 数据类型 | 单位 | 具体描述 |
---|---|---|---|---|
group_name | 关节组名称 | string | 关节组名称,目前只支持 whole_body | |
control_mode | 控制模式 | int | 0: 无控制,1: 电流控制,2: 力矩控制,3: 速度控制,4: 位置控制, 6: PD 控制 | |
kp | P 系数 | array(float) | 控制的 P 系数,单位为无量纲,参考 机器人关节序列 | |
kd | D 系数 | array(float) | 控制的 D 系数,单位为无量纲,参考 机器人关节序列 | |
position | 位置指令 | array(float) | rad | 关节位置指令,参考 机器人关节序列 |
task/control 接口协议 (指令信息)
key 说明列表:
key | 说明 | 数据类型 | 具体描述 |
---|---|---|---|
task_execute | 任务状态 | int | 当前机器人任务值 (TID) |
component_execute | 模块状态 | int | 当前机器人模块值 (MID) |