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:生成详细的系统诊断报告
相关推荐
驴友花雕10 小时前
【花雕动手做】行空板 K10 系列实验之人工智能语音识别小车的10个参考案例
人工智能·单片机·嵌入式硬件·语音识别·行空板 k10 系列实验·花雕动手做·小车的10个参考案例
hsjiasb10 小时前
FreeRTOS学习(二十七)——任务栈与栈溢出检测
开发语言·stm32·学习·学习笔记·freertos
小弥儿11 小时前
GitHub今日热榜 | 2026-08-16:大模型微调与编码工具扎堆
学习·开源·github
火山引擎开发者社区12 小时前
DeepSeek-V4 Pro 发布,veStack Day 0 完成模型适配
人工智能
2501_9269783312 小时前
AGI 的四种瓶颈:资源型还是发现型--以及DSH的位置
人工智能·经验分享·笔记·ai写作
Q4639134912 小时前
线下销售复盘难落地,AI 会话设备能帮上啥忙
人工智能·自然语言处理
ebok.12 小时前
国产大模型落地业务系统的优选载体:京微智枢信创 AI 业务支撑平台
大数据·人工智能·低代码·ai
wujian831112 小时前
怎么用文心生成word文档?从格式错乱到智能导出,AI导出鸭让创作再无后顾之忧
人工智能·ai·word·豆包·deepseek·ai导出鸭
动物园猫13 小时前
猪危险行为目标检测数据集:3类别、5,000+张图像 | 目标检测
人工智能·目标检测·计算机视觉
ai产品老杨13 小时前
AI视频分析并发优化完整流程:解决多路视频并发不足与高延迟排查指南
人工智能·音视频