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:生成详细的系统诊断报告
相关推荐
卷福同学2 小时前
不用服务器,不用配环境,我10分钟上线了一个AI Agent
人工智能·后端·算法
码兄科技3 小时前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
Zik----4 小时前
CCswitch-code
人工智能
yonlin4 小时前
Telegram Rss Bot - RssStream 面向创作者和开发者的 Telegram 自动化机器人简介
机器人·telegram·电报
至乐活着4 小时前
深入解析跳表SkipList:原理、实现与性能优化实战
数据结构·算法·跳表·skiplist·java实现
r_oo_ki_e_5 小时前
Java Map 集合学习笔记
java·笔记·学习
AI科技星5 小时前
全域谱分析:无穷维超复数信息场分形统一场论 ——自然、量子、金融多重分形第一性原理完整体系(中英双语终稿)
人工智能·机器学习·金融·乖乖数学·全域数学
stormzhangV5 小时前
为什么你的 AI 像智障
人工智能
Jerry5 小时前
LeetCode 383. 赎金信
算法
ai产品老杨5 小时前
H264 H265视频分析常见问题和排查清单
人工智能·算法·音视频