ROS 社区需要遵循一些惯例,比如说 cmd_vel 用来表示控制命令,里程计用 odom 表示,激光雷达用 scan 表示,image_raw 用来表示图像

这些命名不是 ROS 2 强制规定,而是社区长期形成的通用惯例,好处是不同厂家、不同包之间可以互通:

  • /cmd_vel :速度控制指令,消息类型通常是 geometry_msgs/msg/Twist
  • /odom :里程计数据,消息类型是 nav_msgs/msg/Odometry
  • /scan :激光雷达扫描数据,消息类型是 sensor_msgs/msg/LaserScan
  • /image_raw :相机原始图像,消息类型是 sensor_msgs/msg/Image

实际排查时不用猜名字,直接看系统里到底有哪些话题:

ros2 topic list          # 列出所有话题
ros2 topic info /cmd_vel # 查看某个话题的消息类型和收发节点
ros2 interface show geometry_msgs/msg/Twist  # 查看消息结构

怎么在 ros2 里面修改文件

“修改文件” 分两种情况:

  1. 修改功能包源码:直接编辑 src/ 下的源码,然后回到工作空间根目录重新构建,例如 colcon build --packages-select <包名> ,再 source install/setup.bash 让改动生效。
  2. 修改参数:不需要重新编译,可以用命令行参数( --ros-args -p 参数名:=值 )、YAML 参数文件( ros2 run <包名> <节点> --ros-args --params-file xxx.yaml )等方式动态传入。

参考资料:ROS 2 CLI 工具官方文档

更新于 阅读次数 0

请我喝[茶]~( ̄▽ ̄)~*

bangdexuanyuan 微信支付

微信支付