1. 系统架构区别
- ROS1(集中式架构):
依赖中心化的roscore,使用一个中心化的 roscore(包含 Master 节点)来管理整个系统。所有节点在启动时都必须向 Master 注册,并通过 Master 来查找和发现其他节点。 - ROS2(分布式去中心化架构):
没有中心管理节点,节点启动后,会通过底层通信中间件(DDS)自动向网络中广播自己的存在和信息。其他节点监听到广播后,如果发现有兼容的通信需求(如相同的主题、QoS配置),就会自动建立直接连接进行通信。
2. 常用命令
| 功能 | ROS 1 命令 | ROS 2 命令 |
|---|---|---|
| 启动 Master | roscore | 无(DDS 自动发现) |
| 启动节点 | rosrun pkg_name node_name | ros2 run pkg_name node_name |
| 启动 launch 文件 | roslaunch pkg_name file.launch | ros2 launch pkg_name file.launch.py |
| 列出节点 | rosnode list | ros2 node list |
| 节点信息 | rosnode info /node_name | ros2 node info /node_name |
| 列出话题 | rostopic list | ros2 topic list |
| 话题信息 | rostopic info /topic_name | ros2 topic info /topic_name |
| 发布话题 | rostopic pub /topic type data | ros2 topic pub /topic type data |
| 订阅话题 | rostopic echo /topic | ros2 topic echo /topic |
| 列出服务 | rosservice list | ros2 service list |
| 服务信息 | rosservice info /service_name | ros2 service info /service_name |
| 调用服务 | rosservice call /service args | ros2 service call /service type args |
| 列出参数 | rosparam list | ros2 param list |
| 获取参数 | rosparam get name | ros2 param get /node_name param_name |
| 设置参数 | rosparam set name value | ros2 param set /node_name param_name value |
| 录制 bag | rosbag record -a | ros2 bag record -a |
| 播放 bag | rosbag play file.bag | ros2 bag play file.db3 |
| 查看 bag | rosbag info file.bag | ros2 bag info file.db3 |
| 编译工作区 | catkin_make | colcon build |
| 清理构建 | catkin clean | colcon build --cmake-clean-cache 或手动删 build/install/log |
1万+

被折叠的 条评论
为什么被折叠?



