博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ROS(三)——命令行工具的使用
阅读量:2135 次
发布时间:2019-04-30

本文共 1551 字,大约阅读时间需要 5 分钟。

ROS命令行工具的使用

命令行工具都是以ros开头的

常用命令

  • rostopic
  • rosservice
  • rosnode
  • rosparam
  • rosmsg
  • rossrV

 

以安装时作为验证的turtlesim小海龟仿真器为例

turtlesim是一个功能包名

那三步操作分别对应着

启动ROS Master ——>启动小海龟仿真器——>启动海龟控制节点

roscore是用来启动ROS Master的

ROS Master是ROS中所有节点的管理器,也是运行ROS系统当中必须要首先运行起来的

使用rosrun命令来运行一个节点。rosrun是用来运行我们在某个功能包里面某个节点的指令,后面要跟两个参数,一个是功能包名,一个是功能包里面的要运行的节点名

turtle_teleop_key是键盘控制节点

在turtle_teleop_key的页面下按方向键海龟才会动

 

rqt_graph  用来显示系统计算图

通过计算图可以看到系统全貌

turtlesim仿真器节点

teleop_turtle键盘控制节点

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

 

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

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

/rosout是默认出现的,用于提交日志信息

 

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

正在发布哪些话题、正在订阅哪些话题

 

rostopic  话题相关的命令

用指令发布数据让海龟移动

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

我们的键盘控制节点和海龟仿真器节点之间是通过话题 /turtle1/cmd_vel 做通信的

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

 

rostopic pub 话题名  消息结构 数据

rostopic pub 话题名 后按两次tab键就可以补全了

线速度,角速度    每个速度都有一个xyz的分量

单位是米/秒和弧度/秒

如果我们修改为这样,海龟将会按照1.0米/秒的速度向前运动

动了这一段又停下来了 

是因为pub指令只会发布一次,海龟不会一直在动

想让海龟一直在动我们可以给它一个循环

rostopic pub -r 10 

-r是频率,-r 10 就是10HZ的频率,1s中发布10次

可以看到海龟将一直运动知道撞墙

此时按ctrl+c 即可结束

 

还可以修改角速度

 

rosservice 服务相关命令

rosservice list 列出所有服务

服务的服务端都是仿真器,终端都是作为客户端去请求某个服务的

 

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

rosservice call /spawn

按两下tab也是可以自己补全

x和y是坐标,以左下角为零点

theta是角度

两行name,第二行是给的反馈信息

再用rostopic list查看可以看到turtle2的topic

 

话题记录rosbag

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

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

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

rosbag record -a -O cmd_record

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

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

cmd_record就是压缩包的名称

数据就保存在当前用户目录下

下面来复现一下

把之前的所有内容都先关掉(关掉就是ctrl+c就可了)

重新启动一下

roscore和仿真器节点

不启动键盘控制节点

下面通过数据包来复现已经录好的指令

rosbag play cmd_record.bag

 

 

 

 

转载地址:http://wtygf.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】172-Factorial Trailing Zeroes
查看>>
【LEETCODE】112-Path Sum
查看>>
【LEETCODE】9-Palindrome Number
查看>>
【极客学院】-python学习笔记-Python快速入门(面向对象-引入外部文件-Web2Py创建网站)
查看>>
【LEETCODE】190-Reverse Bits
查看>>
【LEETCODE】67-Add Binary
查看>>
【LEETCODE】7-Reverse Integer
查看>>
【LEETCODE】165-Compare Version Numbers
查看>>
【LEETCODE】299-Bulls and Cows
查看>>
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>
【LEETCODE】147- Insertion Sort List [Python]
查看>>
【算法】- 动态规划的编织艺术
查看>>
用 TensorFlow 让你的机器人唱首原创给你听
查看>>
对比学习用 Keras 搭建 CNN RNN 等常用神经网络
查看>>