ROS2 常用指令速查表
2026/7/18 16:25:27 网站建设 项目流程

ROS2 常用指令速查表

整理自 ROS2 官方文档及社区资料。命令中的<distro>表示 ROS2 发行版名称(如humblefoxyironjazzy等),<...>为需替换的参数。


一、环境配置

# 加载 ROS2 环境变量(每次开新终端需执行)source/opt/ros/<distro>/setup.bash# 写入 ~/.bashrc 自动加载echo"source /opt/ros/<distro>/setup.bash">>~/.bashrc# 查看当前 ROS2 发行版echo$ROS_DISTRO# 安装 colcon 构建工具sudoaptinstallpython3-colcon-common-extensions

二、工作空间与功能包

# 创建工作空间mkdir-p~/ros2_ws/srccd~/ros2_ws# 创建功能包(C++ 版)ros2 pkg create<package_name>--build-type ament_cmake--dependenciesrclcpp std_msgs# 创建功能包(Python 版)ros2 pkg create<package_name>--build-type ament_python--dependenciesrclpy std_msgs# 构建工作空间colcon build# 推荐开发方式:软链接安装,源码修改后无需重新编译colcon build --symlink-install# 仅构建指定功能包colcon build --packages-select<package_name># 跳过测试构建colcon build --cmake-args-DBUILD_TESTING=OFF# 加载工作空间环境sourceinstall/setup.bash# 清理构建产物rm-rfbuild/ install/ log/

Colcon 其他常用选项

# 允许继续构建即使部分包失败colcon build --continue-on-error# 并行构建的包数量colcon build --parallel-workers<N># 运行测试colcontestcolcon test-result# 查看测试结果

三、节点(Node)

# 列出所有运行中的节点ros2nodelist# 查看某节点信息(发布/订阅的话题、服务)ros2nodeinfo<node_name># 运行某个节点ros2 run<package_name><node_name># 重映射节点名ros2 run<package_name><node_name>--ros-args-r__node:=<new_name>

四、话题(Topic)

# 列出所有话题ros2 topic list# 列出话题及其消息类型ros2 topic list-t# 查看话题信息ros2 topic info<topic_name># 实时查看话题消息内容ros2 topicecho<topic_name># 发布消息(单次)ros2 topic pub<topic_name><msg_type>"<data>"# 持续发布消息(按固定频率)ros2 topic pub-r<频率Hz><topic_name><msg_type>"<data>"# 查看话题发布频率ros2 topic hz<topic_name># 查看话题带宽ros2 topic bw<topic_name># 查看话题消息类型定义ros2 topictype<topic_name>

示例:

# 发布一条字符串消息ros2 topic pub /chatter std_msgs/msg/String"data: 'hello ros2'"# 持续以 2Hz 发布ros2 topic pub-r2/chatter std_msgs/msg/String"data: 'hello'"

五、服务(Service)

# 列出所有服务ros2servicelist# 列出服务及其类型ros2servicelist-t# 查看服务类型ros2servicetype<service_name># 按类型查找服务ros2servicefind<srv_type># 调用服务ros2servicecall<service_name><srv_type>"<request_data>"

示例:

ros2servicecall /add_two_ints example_interfaces/srv/AddTwoInts"{a: 2, b: 3}"

六、动作(Action)

# 列出所有动作ros2 action list# 列出动作及其类型ros2 action list-t# 查看动作信息ros2 action info<action_name># 查看动作类型ros2 actiontype<action_name># 发送目标ros2 action send_goal<action_name><action_type>"<goal_data>"# 发送目标并接收反馈ros2 action send_goal-f<action_name><action_type>"<goal_data>"

七、参数(Parameter)

# 列出某节点的所有参数ros2 param list<node_name># 获取参数值ros2 param get<node_name><param_name># 设置参数值ros2 paramset<node_name><param_name><value># 查看参数描述ros2 param describe<node_name><param_name># 导出参数到文件ros2 param dump<node_name># 从文件加载参数ros2 param load<node_name><parameter_file>

八、接口(Interface)

# 列出所有接口(msg/srv/action)ros2 interface list# 查看接口定义ros2 interface show<interface_type># 列出某包内的所有接口ros2 interface package<package_name># 显示消息包列表ros2 interface package std_msgs

示例:

ros2 interface show std_msgs/msg/String ros2 interface show example_interfaces/srv/AddTwoInts

九、数据录制与回放(ros2 bag)

# 录制指定话题ros2 bag record<topic1><topic2># 录制所有话题ros2 bag record-a# 录制并指定输出文件名ros2 bag record-o<file_name><topic_name># 回放数据ros2 bag play<bag_file># 查看录制文件信息ros2 bag info<bag_file>

十、启动文件(Launch)

# 启动 launch 文件ros2 launch<package_name><launch_file># 查看包的 launch 文件ros2 launch<package_name>

十一、TF 坐标变换

# 查看当前 TF 树ros2 run tf2_tools view_frames# 监听某坐标变换ros2 run tf2_ros tf2_echo<parent_frame><child_frame># 发布静态坐标变换ros2 run tf2_ros static_transform_publisher<x><y><z><yaw><pitch><roll><parent_frame><child_frame>

十二、其他实用命令

# 查看包路径ros2 pkg prefix<package_name># 列出已安装的包ros2 pkg list# 查找包含某关键字的包ros2 pkg list|grep<keyword># 查看正在运行的节点执行文件ros2 pkg executables<package_name># 查看守护进程状态ros2 daemon status ros2 daemon start ros2 daemon stop# ROS2 域 ID 设置(多机通信隔离)exportROS_DOMAIN_ID=<id>

十三、三种通信方式对比

通信方式适用场景特点典型用途
Topic 话题持续、高频数据流发布/订阅,异步,一对多传感器数据、里程计
Service 服务一次性请求-响应同步,短时,一对一触发某动作、查询状态
Action 动作长时间运行任务异步,可取消,带反馈与结果导航、机械臂运动

参考来源

  • ROS2 & Colcon 常用命令速查表 - CSDN
  • ROS2 命令行操作 - 古月居
  • Using colcon to build packages - ROS 2 官方文档
  • Understanding topics - ROS 2 文档
  • Understanding services - ROS 2 文档
  • Understanding actions - ROS 2 文档
  • ROS2 CLI Reference
  • 常用 ROS2 命令 - Seeed-Projects

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询