概览#
推理节点使用标准ROS 2消息和 std_srvs/srv/Trigger。数据接口采用 KeepLast(1)、best_effort、volatile QoS。
消息接口#
| 方向 | 名称 | 类型与行为 |
|---|---|---|
| 订阅 | /joy |
sensor_msgs/msg/Joy |
| 订阅 | /cmd_vel |
geometry_msgs/msg/Twist;非joy控制模式取linear.x、linear.y、angular.z并按配置裁剪 |
| 条件订阅 | perception_obs_topic |
std_msgs/msg/Float32MultiArray;由策略配置选择 |
| 订阅 | /joint_ref_states |
sensor_msgs/msg/JointState;interrupt路径 |
| 发布 | /action、/joint_states |
sensor_msgs/msg/JointState |
| 发布 | /imu |
sensor_msgs/msg/Imu;当前实现填orientation和angular_velocity,未填linear_acceleration |
接口由所选策略启用。/depth_obs 用于RPO parkour;接入其他策略时核对 perception_obs_topic 与观测布局。
Trigger服务#
| 服务名 | 作用 |
|---|---|
init_motors / deinit_motors |
初始化/去初始化电机 |
start_inference / stop_inference |
启动/停止策略推理 |
read_joints / read_imu |
更新对应软件缓存 |
refresh_joints |
请求电机反馈并更新缓存 |
reset_joints |
启动异步关节重置 |
set_zeros |
下发标零;推理运行时拒绝 |
clear_errors |
下发电机错误清除 |
服务注册使用相对名字。默认无namespace时可按 /name 访问;有namespace时应先查询实际路径。
如何解释响应#
start_inference 检查电机已经初始化、推理尚未运行。reset_joints 的成功响应和 Joint reset started 只表示异步重置已开始,不表示动作完成。clear_errors 的成功响应表示回调完成,故障恢复仍需检查设备反馈与状态。
只查看接口的命令:
Bash
ros2 topic list
ros2 service list
ros2 topic info /joint_states在已有、可访问的ROS图上查询接口。软件停止与硬件急停的边界见 运行入口。