ROS命令行工具的使用

Posted 等不到星光等时光呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS命令行工具的使用相关的知识,希望对你有一定的参考价值。

前言:ROS常用命令及其功能

rosnode显示系统当中所有节点相关信息
rqt_graph用来显示系统计算图
rostopic话题相关的命令
rosservice服务相关命令
rosbag话题记录与复现

一、小海龟仿真器实例

1、在Ubuntu系统中打开一个终端,输入以下命令运行ROS的节点管理器——ROS Master,这是ROS必须运行的管理器节点。

roscore

ypf

2、然后打开一个新终端,使用rosrun命令启动turtlesim仿真器节点.

rosrun turtlesim turtlesim_node

在这里插入图片描述
3、该例程会通过键盘控制小乌龟在界面中的移动,现在仿真界面已经出现了,我们还需要打开一个新终端,运行键盘控制的节点。

rosrun turtlesim turtle_teleop_key

在这里插入图片描述
之后就可以通过键盘控制小海龟的移动了。下面最终运行的结果。

需要注意的是
使用rosrun命令来运行一个节点。
rosrun是用来运行我们在某个功能包里面某个节点的指令,后面要跟两个参数,一个是功能包名,一个是功能包里面的要运行的节点名。
turtle_teleop_key是键盘控制节点
在turtle_teleop_key的页面下按方向键海龟才会动

在这里插入图片描述

二、ROS中的常用命令

1、rosnode 显示系统当中所有节点相关信息

在rosnode 后面加入相应的参数可以实现不同的功能,在Ubuntu系统中打开一个终端,输入rosnode回车后,会有相应的参数信息,及其功能。
在这里插入图片描述

(1)rosnode list 把系统中所有节点都列出来

在这里插入图片描述

(2)rosnode info + 节点 查看某一个节点的具体信息

在这里插入图片描述
其他的命令,可自行进行验证查看。

2、rqt_graph 用来显示系统计算图

在这里插入图片描述
其中
turtlesim仿真器节点

teleop_turtle键盘控制节点

两个节点之间有一个话题 turtle1/cmd_vel做通讯

3、rostopic 话题相关的命令

在rostopic后面加入相应的参数可以实现不同的功能,在Ubuntu系统中打开一个终端,输入rostopic回车后,会有相应的参数信息,及其功能。
在这里插入图片描述

(1)rostopic list 打印出当前系统所有的话题列表

在这里插入图片描述
我们的键盘控制节点和海龟仿真器节点之间是通过话题 /turtle1/cmd_vel 做通信的

我们同样也可以 通过指令给话题发布数据,让海龟运动。

(2)rostopic pub 话题名 消息结构 数据(发布消息)

在这里插入图片描述
线速度,角速度 每个速度都有一个xyz的分量

单位是米/秒和弧度/秒
果我们修改为这样,海龟将会按照1.0米/秒的速度向前运动
在这里插入图片描述

4、rosservice 服务相关命令

rosservice 后面加入相应的参数可以实现不同的功能,在Ubuntu系统中打开一个终端,输入rosservice 回车后,会有相应的参数信息,及其功能。

在这里插入图片描述

(1)rosservice list 列出所有服务

在这里插入图片描述
服务的服务端都是仿真器,终端都是作为客户端去请求某个服务的

(2)spawn 这个服务是用来产生一个新的海龟

在这里插入图片描述

5、话题记录与复现rosbag

在这里插入图片描述

记录当前系统中的所有话题数据,保存下来,下次用的时候再复现出来

这一般用在例如有一个无人机,想做调试,但是不可能每一次都让飞机飞起来做调试,这非常不方便。

一般会做一次飞行,飞行时把所有数据都保存下来,回到实验室再把数据复现出来,再做实验

rosbag record -a -O cmd_record

-a就是-all,把所有数据都保存下来

-O 是把数据保存成一个压缩包

cmd_record就是压缩包的名称

在这里插入图片描述
然后通过键盘控制小海鬼,使其运动

之后输入:

rosbag play cmd_record123.bag

在这里插入图片描述
小海龟就会按之前的路径进行运动。

以上是关于ROS命令行工具的使用的主要内容,如果未能解决你的问题,请参考以下文章

ROS1学习笔记:ROS命令行工具的使用(ubuntu20.04)

ROS命令行工具

ROS命令行工具

wstool ros空间管理工具

《ROS理论与实践》学习笔记海龟仿真器的命令行控制

ROS基础笔记一