ROS2 常用命令详解
在 ROS 2 中,ros2
命令行工具提供了一系列子命令用于管理和调试 ROS 2 组件。下面详细介绍各个子命令的使用方法和适用场景。
- daemon: 自检/配置ROS 2守护程序
- launch: 运行launch文件
- lifecycle: 具有托管生命周期的自检/管理节点
- msg: 自检 msg 类型
- node: 自检ROS节点
- param: 在节点上自检/配置参数
- pkg: 自检ROS包
- run: 运行ROS节点
- security: 配置安全设置
- service: 自检/调用ROS服务
- srv: 自检 srv 类型
- topic: 自检/发布ROS话题
ros2 daemon
作用:用于管理和检查 ROS 2 守护进程(Daemon)。该守护进程在后台运行,缓存节点、话题等信息,以加速命令行工具的查询。
常见用法:
ros2 daemon status # 检查守护进程状态
ros2 daemon stop # 停止守护进程
ros2 daemon start # 启动守护进程(通常不手动执行)
ros2 daemon restart # 重新启动守护进程
适用场景:适用于命令运行缓慢时,重启守护进程加速查询。
ros2 launch
作用:用于启动 ROS 2 Launch 文件,该文件可以同时启动多个节点,并支持参数配置。
常见用法:
ros2 launch <package_name> <launch_file_name>.launch.py
ros2 launch turtlesim turtlesim.launch.py
适用场景:适用于同时启动多个 ROS 2 节点的场景。
ros2 lifecycle
作用:用于管理具有托管生命周期(Managed Lifecycle)的节点,可以控制节点的状态转换。
常见用法:
ros2 lifecycle list # 列出所有生命周期管理的节点
ros2 lifecycle get <node> # 获取节点当前的生命周期状态
ros2 lifecycle set <node> <state> # 设置节点状态(如 configure、activate)
适用场景:适用于对节点生命周期有严格管理的应用,如工业机器人。
ros2 msg
作用:查看消息类型
常见用法:
ros2 msg list
ros2 msg show std_msgs/msg/String
适用场景:用于调试消息格式,确认话题消息字段。
ros2 node
作用:管理 ROS 2 节点
常见用法:
ros2 node list
ros2 node info <node>
适用场景:用于调试节点的发布/订阅情况。
ros2 param
作用:用于查询和修改 ROS 2 节点的参数。
常见用法:
ros2 param list <node> # 列出节点的所有参数
ros2 param get <node> <param> # 获取节点参数值
ros2 param set <node> <param> <value> # 设置节点参数值
适用场景:适用于动态修改节点参数,如调整背景颜色。
ros2 pkg
作用:用于查询已安装的 ROS 2 软件包。
常见用法:
ros2 pkg list
ros2 pkg prefix <package>
适用场景:用于确认软件包是否安装以及查找路径。
ros2 run
作用:运行 ROS 2 节点
常见用法:
ros2 run <package> <executable>
ros2 run turtlesim turtlesim_node
适用场景:用于单独启动 ROS 2 节点。
ros2 security
作用:配置安全设置
常见用法:
ros2 security generate_artifacts <keystore_path>
适用场景:适用于安全通信场景,如工业和医疗应用。
ros2 service
作用:管理 ROS 2 服务
常见用法:
ros2 service list # 列出所有服务
ros2 service type <service> # 获取服务的类型
ros2 service call <service> <srv_type> <arguments> # 调用服务
适用场景:用于调试服务的调用和查询。
ros2 srv
作用:用于查询 ROS 2 服务(Service)的类型和结构,类似于 ros2 msg
但用于服务。
常见用法:
ros2 srv list
ros2 srv show std_srvs/srv/Empty
适用场景:用于检查服务的请求/响应格式。
ros2 topic
作用:管理 ROS 2 话题
常见用法:
ros2 topic list # 列出所有话题
ros2 topic echo <topic> # 订阅话题并打印数据
ros2 topic pub <topic> <msg> <data> # 发布话题消息
ros2 topic info <topic> # 获取话题信息
ros2 topic hz <topic> # 计算话题发布频率
适用场景:用于调试话题通信,发布或监听数据流。