【机器人-基础知识】ROS1和ROS2对比

发布于:2025-08-18 ⋅ 阅读:(12) ⋅ 点赞:(0)

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

网站公告

今日签到

点亮在社区的每一天
去签到