技术分享 | 12个基础ROS常用命令讲解

技术分享 | 12个基础ROS常用命令讲解
最新回答
沫小默丿

2020-05-19 01:25:06

ROS(机器人操作系统)的12个基础常用命令涵盖主节点管理、节点启动、话题与服务操作、文件系统导航、日志清理及可视化等功能,是ROS开发的核心工具。 以下是具体命令的详细说明:

1. roscore
  • 功能:启动ROS主节点(Master Node),是所有ROS节点通信的核心枢纽。
  • 使用场景:任何ROS节点启动前必须运行roscore,否则节点无法建立连接。
  • 示例:终端直接输入命令后回车,看到类似“started core service”的提示即表示成功。

2. rosrun
  • 功能:启动单个ROS节点。
  • 语法:rosrun <功能包名> <可执行文件名>。
  • 细节

    可执行文件来源:C++文件编译生成(需在CMakeLists.txt中配置)或Python脚本(需添加可执行权限)。

    示例:启动turtlesim功能包中的turtlesim_node:

    rosrun turtlesim turtlesim_node
3. roslaunch
  • 功能:通过.launch文件启动多个节点,支持参数配置和依赖管理。
  • 语法:roslaunch <功能包名> <launch文件名>。
  • 优势

    批量启动节点,避免重复输入命令。

    可设置参数(如<arg>标签)和私有命名空间(<group ns>)。

    示例:启动turtlesim并设置背景色:

    <!-- launch文件内容 --><launch> <node name="sim" pkg="turtlesim" type="turtlesim_node"> <param name="background_r" value="0"/> </node></launch>终端运行:roslaunch turtlesim my_launch.launch
4. rostopic
  • 功能:管理ROS话题(Topic),包括查看、发布和订阅数据。
  • 常用子命令

    rostopic list:列出所有活跃话题。

    rostopic echo <话题名>:打印话题数据(如/cmd_vel的线速度和角速度)。

    rostopic pub <话题名> <消息类型> <数据>:发布测试数据。示例:向/turtle1/cmd_vel发布速度指令:

    rostopic pub /turtle1/cmd_vel geometry_msgs/Twist '{linear: {x: 2.0}, angular: {z: 1.0}}' -r 10
5. rosmsg
  • 功能:查看ROS消息(Message)的定义和类型。
  • 常用子命令

    rosmsg list:列出所有消息类型。

    rosmsg show <消息类型>:显示消息结构(如geometry_msgs/Twist的字段)。

    rosmsg package <功能包名>:查看功能包内的自定义消息。

6. rosservice
  • 功能:管理ROS服务(Service),包括调用和查询服务。
  • 常用子命令

    rosservice list:列出所有服务。

    rosservice call <服务名> <请求数据>:调用服务(如调用/clear清空turtlesim窗口)。示例:

    rosservice call /clear
7. rossrv
  • 功能:查看ROS服务消息(Service Message)的定义,用法与rosmsg类似。
  • 示例:查看/spawn服务的请求和响应类型:rossrv show turtlesim/Spawn
8. rosnode
  • 功能:管理ROS节点,包括监控和调试。
  • 常用子命令

    rosnode list:列出所有活跃节点。

    rosnode info <节点名>:查看节点详情(如订阅/发布的话题)。

    rosnode kill <节点名>:强制关闭节点。

9. rosls
  • 功能:列出功能包或元功能包(Metapackage)的目录内容。
  • 语法:rosls <功能包名>。
  • 示例:查看turtlesim功能包的文件:rosls turtlesim
10. roscd
  • 功能:快速切换到功能包所在目录,用于验证环境配置或解决路径冲突。
  • 语法:roscd <功能包名>。
  • 用途

    检查功能包是否被系统识别(若目录不存在,需检查ROS_PACKAGE_PATH环境变量)。

    定位同名功能包的优先级(ROS工作空间存在覆盖机制)。

11. rosclean
  • 功能:管理ROS日志文件,避免磁盘空间占用过大。
  • 常用子命令

    rosclean check:查看日志占用空间。

    rosclean purge:删除所有日志(通常日志超过1GB时系统会报警)。

12. rviz
  • 功能:ROS可视化工具,支持3D场景渲染、传感器数据(如激光雷达、点云)和机器人模型的实时显示。
  • 启动方式

    直接运行:rviz。

    通过rosrun启动:

    rosrun rviz rviz
  • 应用场景:调试SLAM算法时观察地图构建过程,或监控机器人运动状态。

(注:实际使用时需替换为有效图片链接)总结

掌握这12个命令可覆盖ROS开发中的基础操作,包括节点管理、通信调试、文件系统导航和日志维护。建议结合具体项目(如使用turtlesim模拟器)实践每个命令,以加深理解。更多高级功能(如参数服务器操作、动态重配置)可进一步查阅ROS官方文档。