ROS2 常用命令表

环境激活

  • robotdev:激活自定义 Python 虚拟环境
  • deactivate:退出虚拟环境
  • source /opt/ros/<版本>/setup.bash:激活系统 ROS2 基础环境(如 humble、iron)
  • source install/setup.bash:工作空间编译后执行,让终端识别当前空间内的包与节点

一、工作空间相关

编译核心命令

  • colcon build:完整编译整个工作空间
  • colcon build --symlink-install:符号链接模式编译,修改 Python 脚本、launch 文件、配置文件后无需重新编译即可生效
  • colcon build --packages-select <包名>:仅编译指定的单个 / 多个功能包
  • colcon build --packages-up-to <包名>:编译指定包及其所有依赖包
  • colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release:Release 模式编译 C++ 代码,提升运行性能
  • colcon build --merge-install:合并安装目录,简化环境变量层级

配套工具

  • colcon list:列出工作空间下所有可识别的功能包
  • rosdep install --from-paths src --ignore-src -r -y:自动安装工作空间所有功能包的系统依赖
  • colcon clean <包名>:清理指定包的编译产物(需安装 colcon-clean 插件)

二、Package(功能包)相关

信息查询

  • ros2 pkg list | grep <关键词>:过滤查看指定包是否被系统识别
  • ros2 pkg executables <包名>:查看包内所有可执行节点
  • ros2 pkg prefix <包名>:查看功能包的安装路径
  • ros2 pkg xml <包名>:查看功能包的package.xml配置内容
  • ros2 pkg files <包名>:列出包内所有已安装的文件

创建功能包

  • ros2 pkg create --build-type ament_cmake <包名> --dependencies rclcpp std_msgs:创建 C++ 类型功能包并指定依赖
  • ros2 pkg create --build-type ament_python <包名> --dependencies rclpy std_msgs:创建 Python 类型功能包并指定依赖

三、Node(节点)相关

  • ros2 node list:查看当前运行的所有节点
  • ros2 node list -a:查看所有节点(包含系统隐藏节点)
  • ros2 node info <节点名>:查看节点完整信息(订阅 / 发布话题、服务、Action、参数等)

生命周期节点(Lifecycle Node)

  • ros2 lifecycle list <节点名>:查看节点支持的所有生命周期状态
  • ros2 lifecycle get <节点名>:查看节点当前所处的生命周期状态
  • ros2 lifecycle set <节点名> configure/activate/deactivate:手动切换节点的生命周期状态

四、Topic(话题)相关

信息查询

  • ros2 topic list:查看当前所有活跃话题
  • ros2 topic list -t:列出话题的同时显示对应消息类型
  • ros2 topic info <话题名>:查看话题类型、发布者 / 订阅者数量
  • ros2 topic type <话题名>:仅查看话题的消息类型
  • ros2 topic find <消息类型>:根据消息类型反向查找对应的所有话题

数据查看与发布

  • ros2 topic echo <话题名>:实时打印话题数据
  • ros2 topic echo --once <话题名>:只打印一次话题数据
  • ros2 topic hz <话题名>:统计话题的实际发布频率
  • ros2 topic bw <话题名>:统计话题的带宽占用
  • ros2 topic pub (--once) <话题名> <消息类型> "<数据>":发布话题数据,默认持续发布,加--once只发一次
  • ros2 topic pub -r 10 <话题名> <消息类型> "<数据>":以指定频率(Hz)持续发布话题

五、Service(服务)相关

信息查询

  • ros2 service list:查看当前所有服务
  • ros2 service list -t:列出服务的同时显示服务类型
  • ros2 service type <服务名>:查看服务的类型
  • ros2 service find <服务类型>:根据服务类型反向查找对应的所有服务

服务调用

  • ros2 service call <服务名> <服务类型> "<请求数据>":调用服务并传入请求参数,用于功能测试

六、Interface(接口)相关

  • ros2 interface show <接口名>:查看接口(msg/srv/action)的字段、请求 / 响应格式
  • ros2 interface list:列出系统中所有可用的接口
  • ros2 interface package <包名>:列出指定功能包下的所有接口
  • ros2 interface proto <接口名>:生成接口的示例数据模板,可直接复制用于topic pub/service call

七、Parameter(参数)相关

查询与修改

  • ros2 param list:查看所有节点的参数列表
  • ros2 param list <节点名>:查看指定节点的所有参数
  • ros2 param get <节点名> <参数名>:读取指定参数的值
  • ros2 param set <节点名> <参数名> <值>:运行时动态修改节点参数值
  • ros2 param describe <节点名> <参数名>:查看参数的类型、取值范围、描述信息

参数导入导出

  • ros2 param dump <节点名>:导出节点所有参数为 YAML 格式(打印到终端)
  • ros2 param dump <节点名> > params.yaml:将参数导出保存为 yaml 文件
  • ros2 param load <节点名> params.yaml:从 yaml 文件批量加载参数到运行中的节点

八、节点运行与启动

单节点运行

  • ros2 run <包名> <可执行文件名>:运行单个节点
  • ros2 run <包名> <可执行文件名> --ros-args -r __node:=<新节点名>:重映射节点名称后运行
  • ros2 run <包名> <可执行文件名> --ros-args -r __ns:=/<命名空间>:在指定命名空间下运行节点
  • ros2 run <包名> <可执行文件名> --ros-args -p <参数名>:=<值>:启动节点时直接设置参数

Launch 文件启动

  • ros2 launch <包名> <launch文件名>:启动 launch 文件(批量启动节点、加载参数、启动工具等)
  • ros2 launch -s <包名> <launch文件名>:查看 launch 文件支持的启动参数
  • ros2 launch <包名> <launch文件名> <参数名>:=<值>:启动时传入自定义 launch 参数

九、Action(动作)相关

信息查询

  • ros2 action list:查看当前所有 Action
  • ros2 action list -t:列出 Action 的同时显示动作类型
  • ros2 action info <action名>:查看 Action 的客户端、服务端信息
  • ros2 action type <action名>:查看 Action 的类型

发送目标

  • ros2 action send_goal <action名> <动作类型> "<目标数据>":发送 Action 目标
  • ros2 action send_goal --feedback <action名> <动作类型> "<目标数据>":发送目标并实时接收执行反馈

十、Bag 数据录制与回放

录制

  • ros2 bag record <话题1> <话题2>:录制指定话题的数据
  • ros2 bag record -a:录制当前所有活跃话题
  • ros2 bag record -o <输出目录名> <话题>:指定输出的 bag 目录名称
  • ros2 bag record --duration 30 <话题>:录制指定时长(秒)后自动停止

回放与信息查看

  • ros2 bag info <bag目录>:查看 bag 的基本信息(话题、消息数、总时长等)
  • ros2 bag play <bag目录>:正常回放 bag 数据
  • ros2 bag play -r 2 <bag目录>:以指定倍速回放(示例为 2 倍速)
  • ros2 bag play --loop <bag目录>:循环回放 bag
  • ros2 bag play --topics <话题名> <bag目录>:只回放指定的话题

十一、TF 坐标变换相关

  • ros2 run tf2_tools view_frames:生成当前 TF 树的 PDF 文件,查看完整坐标变换关系
  • ros2 run tf2_ros tf2_echo <父坐标系> <子坐标系>:实时打印两个坐标系之间的平移、旋转变换
  • ros2 run rqt_tf_tree rqt_tf_tree:可视化交互查看 TF 树(rqt 插件)

十二、调试与可视化工具

  • rqt_graph:可视化节点 - 话题通信拓扑图
  • rqt:打开综合调试工具(可加载话题监控、动态调参、TF 树等插件)
  • rviz2:ROS2 可视化工具,用于显示机器人模型、点云、图像、路径等
  • gazebo:物理仿真环境(需安装gazebo_ros相关包)
  • ros2 doctor:快速检查 ROS2 环境是否存在配置问题
  • ros2 doctor --report:生成详细的系统诊断报告
相关推荐
环球科讯1 小时前
爱征信 惠民生 促发展——建行江西省新余市分行开展征信知识进商户宣讲活动
人工智能
云烟成雨TD1 小时前
Agent Scope Java 2.x 系列【19】Harness:从零搭建 MySQL 文件系统
java·人工智能·agent
keyanbanyungong1 小时前
AI绘图行业乱象:科学失真、素材侵权,MedPeer如何重构科研可视化行业
人工智能
qeen871 小时前
【Linux】Linux简单介绍与基本指令(上)
linux·运维·服务器·学习
咕咕AI学堂1 小时前
并发编程模式:从生产者-消费者到 Actor 的工程实践
人工智能
指掀涛澜天下惊1 小时前
AI 基础知识十九 强化学习前言
人工智能·机器学习·强化学习
.千余1 小时前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
X54先生(人文科技)1 小时前
《元创力》纪实录·卷宗2.2 会议室的裂缝:当“真实高于完美”第一次被写在会议纪要里
人工智能·开源·ai写作·零知识证明
自传.1 小时前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding