marker主题 ros_(五)ROS主题理解

参考网址:

1,小海龟例子

(1) 在新的终端打开roscore

$ roscore

---如果出错,请确定关闭所有ROS命令或者路径,重试。

(2) 在新的终端打开运行小海龟界面

$ rosrun turtlesim

turtlesim_node

得到结果:

[ INFO] [1294665184.346950426]: Starting turtlesim with node

name /turtlesim

[ INFO] [1294665184.358498715]: Spawning turtle [turtle1] at

x=[5.555555], y=[5.555555], theta=[0.000000]

此后小海龟运行的路径都记录在此终端

(3) 在新的终端打开鼠标控制终端

$ rosrun turtle_teleop

turtle_teleop_key

将鼠标放在此终端界面,然后用键盘上的“上,下,左,右”控制小海龟移动,以下是我运行的界面,是不是有点像SIAT?

2,ROS 主题

就像小海龟这个例子,turtlesim_node和turtle_teleop_key 节点在ROS

主题上进行通信,turtle_teleop_key在该主题上发送key strokes, turtlesim在相同主题上,预定该key

strokes。我们可以用rxgraph来显示该节点和主题间的交流。

(1) 主题显示

$ rxgraph --在新终端输入该命令

得到结果如图:

下面的图诠释了,节点,主题:

(2) rostopic 介绍

I,rostopic -h

$ rostopic -h

得到结果:

rostopic is a command-line tool for printing information about

ROS Topics.

Commands:

rostopic bw display bandwidth used by topic

rostopic echo print messages to screen

rostopic find find topics by type

rostopic hz display publishing rate of topic

rostopic info print information about active topic

rostopic list list active topics

rostopic pub publish data to topic

rostopic type print topic type

Type rostopic -h for

more detailed usage, e.g. 'rostopic echo -h'

II,rostopic echo [topic]

我们查看/turtel/command_velocity

主题通过turtle_teleop_key节点发布的数据,在新终端输入:

$ rostopic echo

/turtle1/command_velocity

当我们把鼠标放在turtle_teleop_key 终端页面,运行小海龟时,得到结果:

---

linear: 2.0

angular: 0.0

---

linear: 0.0

angular: -2.0

---

linear: 0.0

angular: 2.0

---

linear: -2.0

angular: 0.0

---

linear: 2.0

angular: 0.0

---

linear: 2.0

angular: 0.0

这样我们再看rxgraph显示的终端,如下,在INFO栏,显示了信息

III, rostopic list -h

返回所有主题当前预定和发布的数据,子命令如下:

Usage: rostopic list [/namespace]

Options:

-h, --help

show this

help message and exit

-b BAGFILE,

--bag=BAGFILE

list topics in .bag file

-v, --verbose

list full details about each topic

-p  list only

publishers

-s  list only

subscribers

例如,查询当前主题的预定和发布数据:

$ rostopic  list

-v

得到结果:

Published topics:

* /turtle1/color_sensor [turtlesim/Color] 1

publisher

* /turtle1/command_velocity

[turtlesim/Velocity] 1 publisher

* /rosout [roslib/Log] 3 publishers

* /rosout_agg [roslib/Log] 1 publisher

* /turtle1/pose [turtlesim/Pose] 1

publisher

Subscribed topics:

* /turtle1/command_velocity

[turtlesim/Velocity] 2 subscribers

* /rosout [roslib/Log] 1 subscriber

3,ROS消息

在ROS主题上,是通过消息进行通信的。发布者(turtle_teleop_key)和预定者(turtlesim_node)之间的通信,发布者和预定者发送和接受的同一类型的消息,这就决定了发布者决定主题类型。

I, rostopic type [topic]

返回当前运行主题的消息类型,例如小海龟例子:

$ rostopic type

/turtle1/command_velocity

得到结果:

turtlesim/Velocity

$rosmsg

show turtlesim/Velocity --查询消息类型细节

得到结果:

float32

linear float32 angular

4,将消息应用到主题上

I,rostopic pub [topic] [msg_type] [args]

将数据发布到当前主题上,例如小海龟例子:

$rostopic pub -1 /turtle1/command_velocity turtlesim/Velocity --

2.0 1.8

命令诠释:

rostopic

pub ---在给定主题上发布消息

-1

---此选项表示rostopic只发布一个消息,然后退出

/turtle1/command_velocity

---给定的主题名

turtlesim/Velocity

---在给定主题上发布的消息类型

--

---双负号,表示词法选择器在此后的参数都不可用。这种情况发生在错误参数比如负数

2.0

1.8 ---当前主题消息的类型的数据值

得到的结果:

终端显示:

publishing

and latching message for 3.0 seconds

图运行的结果是:

另外,如果要保持小海龟一直移动,可以采用-r,例如:

$ rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 --

2.0 -1.8

运行结果:

我们查看下rxgraph图显示:

我们可以看到小海龟运行一个圈的轨迹。

II,rostopic hz [topic]

是用来报告哪个数据发布率,比如小海龟的例子:

$ rostopic hz /turtle1/pose

得到结果:

subscribed to [/turtle1/pose]

average rate: 44.767

min: 0.000s max: 0.053s std dev: 0.02014s window: 43

average rate: 44.994

min: 0.000s max: 0.054s std dev: 0.02016s window: 87

average rate: 45.382

min: 0.000s max: 0.054s std dev: 0.01993s window: 134

average rate: 45.032

min: 0.000s max: 0.063s std dev: 0.02003s window: 177

average rate: 45.165

min: 0.000s max: 0.063s std dev: 0.01999s window: 224

III,rxplot

是展示画出该主题上发布的数据,比如我们对小海龟转圈,这个例子

$rxplot

/turtle1/pose/x,/turtle1/pose/y /turtle1/pose/theta

---针对上面图得到:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一个通用的嵌入式驱动层

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删C 语言面向对象编程的最佳实践一、前言以STM32为例,打开网络上下载的例程或者是购买开发板自带的例程,都会发现应用层中会…

cks32和stm32_cks子,间谍,局部Mo子和短管

cks32和stm32本文是我们名为“ 用Mockito测试 ”的学院课程的一部分。 在本课程中,您将深入了解Mockito的魔力。 您将了解有关“模拟”,“间谍”和“部分模拟”的信息,以及它们相应的存根行为。 您还将看到使用测试双打和对象匹配器进行验证…

CSON+CJSON,解析json数据更优雅?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删前言json是目前最为流行的文本数据传输格式,特别是在网络通信上广泛应用,随着物联网的兴起,在嵌入式设备上&a…

服务总线yali测试_服务器的压力测试方法与流程

本发明涉及服务器的测试技术领域,特别是涉及一种包括超路径互联总线的服务器的压力测试方法。技术背景QPI(Quick Path Interconnect,快速通道互联)总线技术是一种取代前端总线(FSB)的CPU(处理器)间点对点连接技术。英特尔公司在2017年发起UPI(Ultra Path…

deprecated_@Deprecated新外观可能是什么?

deprecatedJDK增强建议 (JEP)277(“ 增强的弃用 ”)建议“重新定义弃用注释,并提供加强功能生命周期尾端的工具。” 当前 java.lang.Deprecated的一些限制使我困扰了一段时间。 我特别希望能够使用Deprecated提供文本&…

轨道运营管理专业自荐书_轨道运营管理专业自荐信x

轨道运营管理专业自荐信尊敬的领导:您好!非常感谢您们在百忙之中审阅我的求职资料。这对一个即将步入社 会的学子来说是莫大的鼓舞。我是西安联合学院城市轨道运营管理专业的一名学生, 2011年 7 月即将步 入社会,心情是那么的激动…

让C语言源码可知自身函数的实际地址与大小

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删事情的起因大概是这样……在很久很久以前,我最早用的是MASM(Win32ASM)写程序,从平台兼容性、开发…

java设计模式迭代器模式_迭代器设计模式示例

java设计模式迭代器模式本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查…

平衡二叉树 C语言代码实现

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删1.什么是平衡二叉树平衡二叉树,我们也称【二叉平衡搜索树/AVL】,树中任何节点的两个子树的高度最大差别为1,巴拉巴拉。。…

api报错 javaee maven_maven test 换javaee6 无法加载spring的配置文件 ?报错-问答-阿里云开发者社区-阿里云...

maven 构建的springmvc项目,执行mvn test 时 如果是org.apache.openejbjavaee-api5.0-3那么执行test可以通过如果将version改为6.0-3 则报错, Failed to load ApplicationContextTest:RunWith(SpringJUnit4ClassRunner.class)ContextConfiguration(locations "classpath*…

研发项目wbs分解简单案例_做项目WBS(工作分解结构)

显示视图栏:右键左边灰色,选“视图栏”。预先设置:文件---》选项,可以设置日期等格式信息,比如可以把日期格式改成2009年1月28日 12:33, 把工期显示单位改成小时数,这样我们可以做更细的任务分解。新建日历…

hystrix熔断 简介_Hystrix简介–总结

hystrix熔断 简介这是其他两篇文章的后续文章– 动机 ,说明为什么在分布式系统中需要类似Hystrix的内容以及Hystrix的基本介绍 。 这将是我的Hystrix旅程的总结,其中包含各种属性的详细信息,这些属性可以进行调整以更改Hystrix的行为&#x…

UDP/TCP 包的大小限制知多少

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删一、MTU 简述 - 分包后数据包最大长度1、定义Maximum Transmission Unit(最大可传输单元) 的缩写,它的单位是…

autocad2014 菜单栏 闪退_AutoCAD2014闪退的原因与处理办法 1打开就闪退怎样办

软件安装:装机软件必备包关于电脑装机必须的软件,比如windows office系列办公软件、网页浏览器、杀毒软件、安全防护软件、刻录软件、压缩软件、下载工具、多媒体播放软件、多媒体编辑软件、输入法、图片查看和处理软件、聊天沟通工具、系统工具与驱动补…

java ee的小程序_扩展Java EE应用程序的基础

java ee的小程序老实说,“可扩展性”是一个详尽的主题,并且通常没有被很好地理解。 通常,它被认为与高可用性相同。 我已经看到新手程序员和“经验丰富”的建筑师都建议将“ 群集 ”作为可伸缩性和HA的解决方案。 它实际上没有任何问题&#…

28 张图,一次性说清楚 TCP,速度

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删做IT相关的工作,肯定都离不开网络,网络中最重要的协议是TCP。无论是实际工作还是笔试面试,你看哪里能少得了T…

晨风机器人怎么买奴隶_潮牌复刻和正品该怎么抉择???带你了解了解

今天带你们聊一聊潮牌复刻和正品,简单介绍一下我自己,在复刻圈子五年,我的原则从始至终就是质量放在第一位,之所以能走这么久也是这个原因。回归正题,接着往下看。无论是正品还是复刻,其实还要根据自己的能…

php cdi_本机CDI限定词:@Any和@Default

php cdi让我们看一下CDI中的开箱即用的限定词 CDI规范声明了三个限定符– Any, Default, New Any :将其视为无所不在的限定词。 它在那里,即使不是;-) Default :顾名思义,当没有其他限定符时&#xff0…

C语言字符串函数strcat | strcpy | strlen | strcmp的用法及原型

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删strcat(str1,str2) 意为将字符串str2连接到字符串str1之后strcat用法如下#include <stdio.h> #include <string.h>int main () {cha…

crntos7启动php命令_CentOS7设置php-fpm开机自启动

php-fpm安装成功后并不会开机启动&#xff0c;如果是运行正常的程序在系统重启后出现502报错(502 Bad Gateway)&#xff0c;通常就是php-fpm没启动起来。0 先确定几个文件的位置&#xff0c;记录下来备用a php-fpmwhich php-fpm/usr/sbin/php-fpmb conf#几个可能的位置#/etc/ph…