ROS:一些基本命令行_ros查看消息结构-程序员宅基地

技术标签: 机器人  ubuntu  ROS  ROS入门学习  

一、打开小海龟

1.1终端,启动ROS Master:

roscore

在这里插入图片描述

1.2终端2,启动小海龟仿真器:

rosrun turtlesim turtlesim_node

在这里插入图片描述
输入rosrun turtlesim,敲两下Tab健可查看该命令下有哪些功能

1.3终端3,启动海龟控制节点:

rosrun turtlesim turtle_teleop_key

在这里插入图片描述

二、查看系统中的计算图

新建终端窗口:

rqt_graph

可展示系统中运行的计算图:
在这里插入图片描述
可以清晰地了解系统节点间通信的部分信息。
teleop_turtle节点(键盘控制节点)通过cmd_vel(topic)向turtlesim节点(海龟仿真器节点)发出消息,使得小海龟移动。

三、节点命令

3.1查看节点下的命令rosnode

rosnode

在这里插入图片描述

3.2显示节点列表rosnode list

rosnode list

在这里插入图片描述
可以看到有3个节点

3.3查看节点信息rosnode info /节点名

rosnode info /节点名

我们查看海龟仿真器节点/turtlesim的信息:

rosnode info /turtlesim

在这里插入图片描述
可以看到海龟仿真器节点/turtlesim自己有一些发布和订阅,也有一些服务

四、话题命令

rostopic命令工具能让你获取ROS话题的信息。

4.1查看话题命令rostopic

rostopic

在这里插入图片描述
在这里插入图片描述

4.2显示topic列表rostopic list

# (1) 列出当前已被订阅和发布的所有话题。
rostopic list
# (2) 列出所有发布和订阅的主题及其类型的详细信息。
rostopic list -v

在这里插入图片描述

4.3把数据发布到当前某个正在广播的话题上rostopic pub

rostopic pub (参数) 话题名 消息数据结构 “具体数据”
# 命令会发送一条消息给turtlesim,告诉它以2.0大小的线速度和1.8大小的角速度移动。
rostopic pub  /turtle1/cmd_vel geometry_msgs/Twist “linear [2.0, 0.0, 0.0]  [0.0, 0.0, 1.8]"

/turtle1/cmd_vel:这是要发布到的话题的名称
geometry_msgs/Twist:这是发布到话题时要使用的消息的类型。

还有一种快速输入的方法:先输入以下命令,然后双击Tab键,最后使用<-和->键修改linear和angular。

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist 

在这里插入图片描述
下面我们用 rostopic pub -r 命令来发布源源不断的命令:

# 命令以10Hz的频率发送消息给turtlesim,保证乌龟持续做圆周运动
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist “linear [2.0, 0.0, 0.0]  [0.0, 0.0, 1.8]"

在这里插入图片描述
在这里插入图片描述

五、查看消息数据结构

上例我们使用了消息数据结构定义了一个消息传给topic,我们可以查看有哪些消息数据结构。
查看消息数据结构使用:

rosmsg show …

在输入过程中,我们可以勤使用Tab键查看或填充内容。
在这里插入图片描述

六、服务通信

上面的例子我们使用了向topic传msg来控制节点,这次我们试试第二种通信方式service。

6.1查看服务列表rosservice list

rosservice list

在这里插入图片描述

6.2手动通过服务来进行操作rosservice call

这次我们通过人工产生服务(service)来诞生一只新海龟,使用rosservice call /spawn …
在服务列表中,有个/spawn服务,可以产生一只新的海龟。
格式:

rosservice call (参数) 服务名 “具体数据”

在这里插入图片描述
这时我们再输入rostopic list,可以看到turtle2已经在topic里了
在这里插入图片描述

七、话题记录和复现rosbag

试想我们尝试让海龟以我们指定的路径移动了一回,我们想要把它 记录下来,拷贝到自己的实验室再复现出来,我们就可以使用话题记录功能。
常用命令

rosbag record -a -O 文件名

比如我们使用之前打开的键盘操作器让海龟移动一圈并记录下来:
(1)打开新终端输入

rosbag record -a -O cmd_record

这样就开始记录了:
在这里插入图片描述
(2)移动一下
(3)到记录界面按Ctrl+C停止,文件就记录了
在这里插入图片描述
(4)接下去关闭所有打开的ros节点
重新开启roscore
在这里插入图片描述

开启海龟节点rosrun turtlesim turtlesim_node
在这里插入图片描述

这时我们输入

 rosbag play cmd_record

就可以复现之前的移动啦
在这里插入图片描述
参考视屏:古月居ROS入门21讲
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27928443/article/details/130918261

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签