2026-06-17
分类:服务器技术
阅读(57) 评论(0)
环境激活
- 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:生成详细的系统诊断报告