环境激活
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:查看当前所有 Actionros2 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目录>:循环回放 bagros2 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:生成详细的系统诊断报告