下载&编译 pnd_ros2
git clone https://github.com/pndbotics/pnd_ros2.git
cd pnd_ros2
colcon build
source install/setup.bash
接口说明
采用ROS2方法订阅或发布话题。话题信息存储在由 MSG 定义的结构体中,常用结构体有:
| 结构体名称 | 说明 |
|---|---|
_HandCmd_.msg |
灵巧手控制 |
_HandState_.msg |
灵巧手状态 |
_IMUState_.msg |
Adam IMU状态 |
_LowCmd_.msg |
Adam 底层控制 |
_LowState_.msg |
Adam 底层状态 |
_MotorCmd_.msg |
Adam 电机控制 |
_MotorState_.msg |
Adam 电机状态 |
ROS2 消息定义
下发消息:lowcmd(身体期望位置)
| 字段 | 类型 | 维度 | 含义 |
|---|---|---|---|
motor_cmd |
MotorCmd_ |
* | 变长[1] |
reserve |
unsigned long |
1 | 保留字段 |
[1]motor_cmd 说明:其长度根据本机型号而定
- Adam Pro :31 维度执行器数据
- Adam Standard :29 维度执行器数据
- Adam Lite :23 维度执行器数据
订阅消息: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"
下发消息:handcmd(手指期望位置)
| 字段 | 类型 | 维度 | 含义 |
|---|---|---|---|
position |
unsigned long |
12 | 手部期望位置 |
reserve |
unsigned long |
1 | 保留字段 |
订阅消息: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 |
保留字段 |