DDS 接口
底层通信提供了用户端PC与机器人之间的数据交互功能。
- 订阅话题
rt/lowstate(类型:pnd_adam.msg.dds_.LowState_) 获取 Adam 当前状态。 - 订阅话题
rt/handstate(类型:pnd_adam.msg.dds_.HandState_)获取手指当前状态。 - 发布话题
rt/lowcmd(类型:pnd_adam.msg.dds_.LowCmd_) 控制全身关节电机(不含灵巧手)、电池等设备。 - 发布话题
rt/handcmd(类型:pnd_adam.msg.dds_.Handcmd_) 控制手指关节电机。
接口说明
采用DDS API里介绍的方法订阅或发布话题。话题信息存储在由 IDL 定义的结构体中,常用结构体有:
| 结构体名称 | 说明 |
|---|---|
_HandCmd_.py |
灵巧手控制 |
_HandState_.py |
灵巧手状态 |
_IMUState_.py |
Adam IMU状态 |
_LowCmd_.py |
Adam 底层控制 |
_LowState_.py |
Adam 底层状态 |
_MotorCmd_.py |
Adam 电机控制 |
_MotorState_.py |
Adam 电机状态 |
DDS消息定义
下发消息:rt/lowcmd(身体期望位置)
| 字段 | 类型 | 维度 | 含义 |
|---|---|---|---|
motor_cmd |
MotorCmd_ |
* | 变长[1] |
reserve |
unsigned long |
1 | 保留字段 |
[1]motor_cmd 说明:其长度根据本机型号而定
- Adam Pro :31 维度执行器数据
- Adam Standard :29 维度执行器数据
- Adam Lite :23 维度执行器数据
订阅消息:rt/lowstate(身体实际状态)
| 字段 | 类型 | 维度 | 含义 |
|---|---|---|---|
imu_state |
IMUState_ |
9 | IMU数据 |
motor_state |
MotorState_ |
* | 变长[1] |
wireless_remote |
short |
40 | 定长[2] |
reserve |
unsigned long |
1 | 保留字段 |
[1]motor_state 说明:其长度根据本机型号而定
- Adam Pro :31 维度执行器数据
- Adam Standard :29 维度执行器数据
- Adam Lite :23 维度执行器数据
[2]wireless_remote 说明:索引20-40为空,0-19分别对应手柄遥控器按键:"lx", "ly", "rx", "ry", "lt", "rt", "xx", "yy", "a", "b", "x", "y", "lb", "rb", "back", "start", "home", "lo", "ro"
下发消息:rt/handcmd(手指期望位置)
| 字段 | 类型 | 维度 | 含义 |
|---|---|---|---|
position |
unsigned long |
12 | 手部期望位置 |
reserve |
unsigned long |
1 | 保留字段 |
订阅消息:rt/handstate(手指实际状态)
| 字段 | 类型 | 维度 | 含义 |
|---|---|---|---|
position |
unsigned long |
12 | 手部实际位置 |
reserve |
unsigned long |
1 | 保留字段 |
IMU数据类型:IMUState_
| 字段 | 类型 | 维度 | 含义 |
|---|---|---|---|
quaternion |
float |
4 | 四元数 |
gyroscope |
float |
3 | 角速度 |
accelerometer |
float |
3 | 加速度 |
ypr |
float |
3 | 姿态角 |
temperature |
short |
3 | 温度 |
单个关节数据类型:MotorCmd_
| 字段 | 类型 | 含义 |
|---|---|---|
mode |
octet |
模式(0) |
q |
float |
位置 |
dq |
float |
速度 |
tau |
float |
力矩 |
kp |
float |
刚度 |
kd |
float |
阻尼 |
reserve |
unsigned long |
保留字段 |
单个关节数据类型:MotorState_
| 字段 | 类型 | 含义 |
|---|---|---|
mode |
octet |
模式(0) |
q |
float |
位置 |
dq |
float |
速度 |
ddq |
float |
加速度 |
tau_est |
float |
力矩估计 |
state |
unsigned long |
当前状态 |
reserve |
unsigned long |
保留字段 |