底盘驱动总览
scout_ros2、hunter_ros2、ugv_sdk 的关系与统一接口约束。
底盘驱动总览
Venom VNV 当前的轮式底盘驱动链路主要由三部分组成:
其中:
scout_ros2负责 Scout / Scout Mini 系列的 ROS 2 封装hunter_ros2负责 Hunter 系列的 ROS 2 封装ugv_sdk负责 CAN 通信、协议解析和底层机器人接口抽象
模块关系
用户应用 / bringup
↓ /cmd_vel
scout_ros2 或 hunter_ros2
↓ C++ 调用
ugv_sdk
↓ CAN 帧
CAN 适配器 / 车体控制器
支持硬件范围
- Scout 2.0
- Scout Mini
- Scout Mini Omni
- Hunter 1.0 / 2.0
- 以及
ugv_sdk支持的更多 AgileX/Weston Robot 平台
统一接口约定
对于 Venom VNV 来说,底盘驱动层优先保证以下接口统一:
| 方向 | 话题 / TF | 说明 |
|---|---|---|
| 订阅 | /cmd_vel |
接收上层速度控制指令 |
| 发布 | /odom |
发布底盘里程计 |
| 发布 | odom -> base_link |
广播底盘基础 TF |
| 发布 | 状态话题 | Scout 发布 /scout_status、/rc_status,Hunter 发布 /hunter_status |
如果后续整车接口要进一步标准化,优先在 odom、base_link、/cmd_vel 这一层保持兼容,不建议让上层直接耦合底层私有状态消息。
部署共性
无论是 Scout 还是 Hunter,部署时都要先把 CAN 链路打通。
CAN 适配器配置
更完整的步骤可参考:底盘 CAN 部署
sudo modprobe gs_usb
sudo ip link set can0 up type can bitrate 500000
ifconfig -a | grep can
ugv_sdk/scripts/ 下提供了常用脚本:
setup_can2usb.bash:首次配置 CAN-to-USB 适配器bringup_can2usb.bash:后续重插后快速拉起
基础验证
candump can0
如果连 candump 都收不到数据,先不要继续调 scout_ros2 或 hunter_ros2。
阅读顺序建议
- 先看 底盘 CAN 部署 完成物理链路与网卡配置
- 再根据底盘型号阅读 Scout 底盘驱动 或 Hunter 底盘驱动
- 需要看底层协议与通信抽象时,再看 UGV SDK
故障排查
- CAN 通信不通:先用
candump can0看总线是否有数据 - 底盘不动:检查遥控器模式、急停、供电状态
- 参数不一致:检查
port_name、odom_frame、base_frame、odom_topic_name - 状态话题正常但运动异常:继续往
ugv_sdk和车体协议层排查