【ROS】ROS常用命令

  • 一、前言
  • 二、常用命令
    • 2.1 ROS shell 命令
    • 2.2 ROS执行命令
      • 2.2.1 `roscore` [选项]
      • 2.2.2 rosrun:运行ROS节点
      • 2.2.3 roslaunch:运行多个ROS节点
      • 2.2.4 rosclean 检查及删除ROS日志
    • 2.3 ROS信息命令
      • 2.3.1 rostopic: ROS话题
      • 2.3.2 rosservice:ROS服务
      • 2.3.3 rosnode:ROS节点
      • 2.3.4 rosparam:ROS参数
      • 2.3.5 rosmsg: ROS消息信息
      • 2.3.6 rossrv:ROS服务信息
      • 2.3.7 rosbag:ROS日志信息
    • 2.4 ROS catkin命令
    • 2.5 ROS功能包命令

一、前言

  ROS可以通过在shell环境中输入命令来进行文件系统的使用、源代码编辑、构建、调试和功能包管理等。为了正确使用ROS,除了基本的Linux命令之外,还需要熟悉ROS专用命令。

二、常用命令

2.1 ROS shell 命令

  ROS shell命令又被称为rosbash。这使我们可以在ROS开发环境中使用Linux中常用的bash shell命令。我们主要使用前缀是ros且带有多种后缀的命令,例如cd、pd、d、ls、ed、cprun。相关命令如下:

roscd [功能包名称]    #ros+cd(changes directory) 移动到指定的ROS功能包目录
rosls [功能包名称]   #ros+ls(lists files) 显示ROS功能包的文件和目录
rosed [功能包名称] [文件名称]    #ros+ed(editor) 编辑ROS功能包的文件

2.2 ROS执行命令

  ROS执行命令管理ROS节点的运行。

roscore [选项] #ros+core master(ROS名称服务) + rosout(日志记录) + parameter server(参数管理)
rosrun  [功能包名称] [节点名称]      #ros+run 运行节点
roslaunch  [功能包名称] [launch文件名]  #ros+launch 运行多个节点或设置运行选项
rosclean  [选项]  #ros+clean 检查或删除ROS日志文件

2.2.1 roscore [选项]

roscore [选项]

  roscore命令会运行主节点,主节点管理节点之间的消息通信中的连接信息。主节点是使用ROS时必须首先被运行的必要元素。主节点接收多种信息的注册,如节点的名称、话题和服务名称、消息类型、URI地址和端口号,并在收到节点的请求时将此信息通知给其他节点。此外,会运行rosout,这个命令用于记录ROS中使用的ROS标准输出日志,例如DEBUG、INFO、WARN、ERRORFATAL。它还运行一个管理参数的参数服务器。

2.2.2 rosrun:运行ROS节点

rosrun [功能包名称] [节点名称]

  rosrun是执行指定的功能包中的一个节点的命令。以下例子运行turtlesim功能包的turtlesim_node节点。

rosrun turtlesim turtlesim_node

2.2.3 roslaunch:运行多个ROS节点

roslaunch [功能包名称] [launch文件名]

  roslaunch是运行指定功能包中的一个或多个节点或设置执行选项的命令。如果rosrun是执行一个节点的命令,那么roslaunch可以运行多个节点。除此之外,它还是一种在运行节点时可以附带如下各种选项的ROS命令: 修改参数或节点的名称,设置节点的命名空间,设置ROS_ROOTROS_PACKAGE_PATH,以及环境变量修改等选项的ROS命令,等。
这里举例说明roslaunch的使用:

roscd ros_topic_test/ #ros_topic_test为已经存在的节点,用来测试
mkdir launch
cd launch/
gedit union.launch

  如下编辑union.launch文件的内容。

<launch><group ns="ns1"><node pkg="ros_tutorials_topic" type="topic_publisher" name="topic_publisher"/><node pkg="ros_tutorials_topic" type="topic_subscriber" name="topic_subscriber"/></group><group ns="ns2"><node pkg="ros_tutorials_topic" type="topic_publisher" name="topic_publisher"/><node pkg="ros_tutorials_topic" type="topic_subscriber" name="topic_subscriber"/></group>
</launch>

  在<launch>标签中,描述了使用roslaunch命令运行节点所需的标签。<node>描述了roslaunch运行的节点。选项包括pkgtypename

  • pkg 功能包的名称
  • type 实际运行的节点的名称(节点名)
  • name 与上述type对应的节点被运行时,起的名称(运行名)。一般情况下使用与type相同的名称,但可以根据需要,在运行时更改名称。
  • group <group>是对指定节点进行分组的标签。选项有ns,这是命名空间(name space),是组的名称,属于该组的节点和消息都包含在由ns指定的名称中。

  如果创建了roslaunch文件,可以如下运行union.launch。请注意,当用roslaunch命令运行多个节点时,运行中的节点的输出(info、error等)不会显示在终端屏幕上,这会使调试变得困难。如果此时添加了--screen选项,终端上运行的所有节点的输出将显示在终端屏幕上。

roslaunch ros_tutorials_topic union.launch --screen

Launch标签
  在launch文件中根据XML13的编写方式可以实现多种功能。launch中使用的标签如下所示。

  • <launch>roslaunch语句的开始和结束。
  • <node> 这是对于节点运行的标签。您可以更改功能包、节点名称和执行名称。
  • <machine> 可以设置运行该节点的PC的名称、addressros-rootros-package-path
  • <include> 您可以加载属于同一个功能包或不同的功能包的另一个launch,并将其作为一个launch文件来运行。
  • <remap> 可以更改节点名称、话题名称等等,在节点中用到的ROS变量的名称。
  • <env> 设置环境变量,如路径和IP(很少使用)。
  • <param> 设置参数名称、类型、值等
  • <rosparam> 可以像rosparam命令一样,查看和修改loaddumpdelete等参数信息。
  • <group> 用于分组正在运行的节点。
  • <test> 用于测试节点。类似于<node>,但是有可以用于测试的选项。
  • <arg> 可以在launch文件中定义一个变量,以便在像下面这样运行时更改参数。

2.2.4 rosclean 检查及删除ROS日志

rosclean [选项]

  该命令检查或删除ROS日志文件。在运行roscore时,对所有节点的记录都会写入日志文件,随着时间的推移,需要定期使用rosclean命令删除这些记录。

rosclean check #查看
rosclean purge #清除

2.3 ROS信息命令

  ROS信息命令用于识别话题、服务、节点和参数等信息。尤其是rostopicrosservicerosnoderosparam经常被使用,并且rosbagROS的主要特征之一,它具有记录数据和回放功能,务必要掌握。

  • rostopic---------ros+topic 确认ROS话题信息
  • rosservice ---------ros+service 确认ROS服务信息
  • rosnode ---------ros+node 确认ROS节点信息
  • rosparam ---------ros+param(parameter) 确认和修改ROS参数信息
  • rosbag ---------ros+bag 记录和回放ROS消息
  • rosmsg ---------ros+msg 显示ROS消息类型
  • rossrv ---------ros+srv 显示ROS服务类型
  • rosversion ---------ros+version 显示ROS功能包的版本信息
  • roswtf ---------ros+wtf 检查ROS系统

2.3.1 rostopic: ROS话题

  • rostopic list 显示活动的话题目录
  • rostopic echo [话题名称] 实时显示指定话题的消息内容
  • rostopic find [类型名称] 显示使用指定类型的消息的话题
  • rostopic type [话题名称] 显示指定话题的消息类型
  • rostopic bw [话题名称] 显示指定话题的消息带宽(bandwidth)
  • rostopic hz [话题名称] 显示指定话题的消息数据发布周期
  • rostopic info [话题名称] 显示指定话题的信息
  • rostopic pub [话题名称] [消息类型] [参数] 用指定的话题名称发布消息

2.3.2 rosservice:ROS服务

  • rosservice list 显示活动的服务信息
  • rosservice info [服务名称] 显示指定服务的信息
  • rosservice type [服务名称] 显示服务类型
  • rosservice find [服务类型] 查找指定服务类型的服务
  • rosservice uri [服务名称] 显示ROSRPC URI服务
  • rosservice args [服务名称] 显示服务参数
  • rosservice call [服务名称] [参数] 用输入的参数请求服务

2.3.3 rosnode:ROS节点

  • rosnode list 查看活动的节点列表
  • rosnode ping [节点名称] 与指定的节点进行连接测试
  • rosnode info [节点名称] 查看指定节点的信息
  • rosnode machine [PC名称或IP] 查看该PC中运行的节点列表
  • rosnode kill [节点名称] 停止指定节点的运行
  • rosnode cleanup 删除失连节点的注册信息

2.3.4 rosparam:ROS参数

  • rosparam list 查看参数列表
  • rosparam get [参数名称] 获取参数值
  • rosparam set [参数名称] 设置参数值
  • rosparam dump [文件名称] 将参数保存到指定文件
  • rosparam load [文件名称] 获取保存在指定文件中的参数
  • rosparam delete [参数名称] 删除参数

2.3.5 rosmsg: ROS消息信息

  • rosmsg list 显示所有消息
  • rosmsg show [消息名称] 显示指定消息
  • rosmsg md5 [消息名称] 显示md5sum
  • rosmsg package [功能包名称] 显示用于指定功能包的所有消息
  • rosmsg packages 显示使用消息的所有功能包

2.3.6 rossrv:ROS服务信息

  • rossrv list 显示所有服务
  • rossrv show [服务名称] 显示指定的服务信息
  • rossrv md5 [服务名称] 显示md5sum
  • rossrv package [功能包名称] 显示指定的功能包中用到的所有服务
  • rossrv packages 显示使用服务的所有功能包

2.3.7 rosbag:ROS日志信息

  在ROS中用bag格式保存各种消息,并在需要时将其回放,以便我们可以重现以前的情况。rosbag是一个实现生成、播放和压缩等功能的程序,它具有以下几种功能。

  • rosbag record [选项] [话题名称] 将指定话题的消息记录到bag文件
  • rosbag info [文件名称] 查看bag文件的信息
  • rosbag play [文件名称] 回放指定的bag文件
  • rosbag compress [文件名称] 压缩指定的bag文件
  • rosbag decompress [文件名称] 解压指定的bag文件
  • rosbag filter [输入文件] [输出文件] [选项] 生成一个删除了指定内容的新的bag文件
  • rosbag reindex bag [文件名称] 刷新索引
  • rosbag check bag [文件名称] 检查指定的bag文件是否能在当前系统中回放
  • rosbag fix [输入文件] [输出文件] [选项] 将由于版本不同而无法回放的bag文件修改成可以回放的文件

使用rosbag回放+rostopic输出msg信息到指定文件

rosbag record -a
rosbag info 2022-06-15-22-11-06.bag #举例
rostopic echo /ros_tutorial_msg | tee topic1.yaml
rosbag play 2022-06-15-22-11-06.bagcat topic.yaml
stamp: secs: 1655302267nsecs:    489132
data: 808
---

2.4 ROS catkin命令

ROS的catkin命令用于使用catkin 构建系统来构建功能包。

  • catkin_create_pkg 自动生成功能包
  • catkin_make 基于catkin 构建系统的构建
  • catkin_eclipse 把用catkin 构建系统生成的功能包修改,使得可以在Eclipse环境中使用
  • catkin_prepare_release 发布时用到的日志整理和版本标记
  • catkin_generate_changelog 发布时生成或更新CHANGELOG.rst文件
  • catkin_init_workspace 初始化catkin 构建系统的工作目录
  • catkin_find 搜索catkin

2.5 ROS功能包命令

  • rospack ros+pack(age) 显示与ROS功能包相关的信息
  • rosinstall ros+install 安装ROS附加功能包
  • rosdep ros+dep(endencies) 安装该功能包的依赖性文件
  • roslocate ros+locate 与ROS功能包信息有关的命令
  • roscreate-pkg ros+create-pkg 自动生成ROS功能包(用于旧的rosbuild系统)
  • rosmake ros+make 构建ROS功能包(用于旧的rosbuild系统)

【ROS】ROS常用命令相关推荐

  1. ROS系统 常用命令行工具的使用

    启动ROS Master roscore 启动小海龟仿真器 rosrun turtlesim turtlesim_node 启动海龟控制节点 rosrun turtlesim turtle_teleo ...

  2. 第四篇:ROS常用命令行指令【重点】

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.常用的ROS命令行指令 1.系统类指令 2.启动类指令 3.节点 ...

  3. ROS系列(二)-常用命令和工具

    ROS系列(二)-常用命令和工具 一.新建工作空间 1. 创建工作空间,注意安装时创建catkin_ws是安装官方功能包用的,其他可以自己命名,不要与自己包搞混,catkin是ROS编译工具,node ...

  4. ROS学习(一)ROS常用命令行工具

    目录 一.常用命令 1.rostopic :显示系统中所有与话题相关消息的指令 2.rosservice:显示系统中所有与服务相关消息的指令 3.rosnode:显示系统中所有与节点相关消息的指令 4 ...

  5. 【ROS】常用可视化工具汇总

    相关教程 「ROS Kinetic」可视化工具RVIZ接收点和线 「ROS Kinetic」可视化工具 RVIZ接收各种形状 「ROS Kinetic」常用命令汇总 rosbag 测试数据包录制 采用 ...

  6. 蓝桥ROS机器人之命令行实践

    参考网址: github.com/jlevy/the-art-of-command-line 直接选择简体中文实践即可. github.com/jlevy/the-art-of-command-lin ...

  7. 在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等

    在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包.录制包等 1 添加密钥和ros2下载 2 更新源和安装ros-eloquent-desktop及其依赖 3 配置环境 3.1 ...

  8. linux rhel unix centos FreeBSD 查看CPU核数使用率 系统 位 内存大小 硬盘 HBA光纤卡号 常用命令

    一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name"   grep "model name" / ...

  9. 中兴PTN常用命令解析

    常用命令说明:1.清空原有配置::使用showrunning-config命令检查:清空配置的步骤如下:2.查看各个vlan与端口之:命令:showvlan:用途:查看我们建立的网管vlan通道是否已 ...

最新文章

  1. SQL语句删除重复记录
  2. BigData:根据最新2018人工智能行业创新企业Top100名单,绘制AI地区热点图,一目了然,看清哪个是AI最热门城市,以及VC最AI的热门领域
  3. AngularJS学习笔记一:简单入门
  4. c语言无限循环while(1)和for(;;)的区别
  5. RabbitMQ管理(4)——应用管理
  6. 低幼年龄段在线教育白皮书
  7. quickreport 加急!!!
  8. BGP——路由汇总造成次优选路问题
  9. pythonif有多个条件怎么办,Python if有多个条件怎么办
  10. telnet黑屏就是通_黑屏的智能农贸市场竟通过验收?市场监管部门:工作力度不够 | 电视问政...
  11. Linux下Eclipse给工程配置(附加库目录)
  12. LinuxMint下的Orionode源码安装
  13. mysql 慢查询日志记录
  14. wpdec函数_小波包分解常用函数
  15. 《如何让你爱的人爱上你》第一部分:第一印象
  16. 2010版gmp 计算机系统,2010版GMP附录:计算机化系统 整体及条款解读
  17. exchange server 2007 边缘传输服务器 垃圾邮件,边缘传输 启用反垃圾邮件更新向导 启用反垃圾邮件更新页...
  18. 自然常数e的矩阵指数
  19. xingtai - 时间
  20. 回顾过去,展望未来!

热门文章

  1. 自行车(山地车)拆脚踏
  2. 五子棋人机大战(Java菜鸟学习笔记)
  3. 云电视和智能电视是什么,之间有什么区别?
  4. 泛型相关用法(day3)
  5. 单词统计(哎呦我去!)
  6. R语言:reshape2包里的melt()、dcast()、acast()函数学习
  7. oracle中LOB字段相关概念(自动创建LOB索引段和重建索引方法)
  8. Intellij IDEA 查看所有断点
  9. html转换成移动端h5,HTML5移动端手机网站基本模板
  10. Linux Nginx启动报错:Failed at step EXEC spawning /etc/rc.d/init.d/nginx: Exec format error.