首页 > Udacity机器人软件工程师课程笔记(八)-ROS Turtlesim 包的相关命令

Udacity机器人软件工程师课程笔记(八)-ROS Turtlesim 包的相关命令

Turtlesim 包的相关命令

这个部分包含五个子主题,分别是

  • 列出所有活动节点
  • 列出所有主题
  • 获取有关主题的信息
  • 显示消息信息
  • 实时回应消息

1.列出所有的活动节点

为了获取所用的活动且向ROS Master注册的节点,我们使用命令

rosnode list

运行如下

在这里插入图片描述

我们可以看到有三个活动且注册的节点显示在ROS界面上,分别是/rosout, /teleop_turtle, 和/turtlesim

/rosout

这个节点由roscore发布。他订阅标准/rosout主题,及所有节点发送日志消息的主题

/teleop_turtle

这个是我们的键盘输入节点,这个节点不是以turtle_teleop_key命名的,所以说不要求节点的广播名称与其相关联的可执行文件相同

/turtlesim

与turtlebot_sim节点管来年的节点名称

2.列出所有主题

我们可以查询ROS Master 来获取所有主题的列表,使用命令

rostopic list

输出如下

在这里插入图片描述

/rosout_agg

发布到/ rosout的消息汇总。

/turtle1/cmd_vel

发送/接收速度命令的主题。将速度消息发布到此主题将命令turtle1移动。

/turtle1/color_sensor

turtlesim中的每只乌龟都配有一个颜色传感器,传感器的读数也会发布到这个主题。

/turtle1/pose

turtle1的位置和方向发布到此主题。

3.获取有关特定主题的信息

使用命令

rostopic info …

例如,查看主题/turtle1/cmd_vel

在这里插入图片描述

在该主题上注册了两个节点,分别是发布者teleop_turtle节点和订阅者turlesim节点。

此外,我们可以看到此主题使用的消息类型是geometry_msgs/Twist

4.显示消息信息

为了获得geometry_msgs/Twist关于主题/turtle1/cmd_vel更多的信息,使用命令

rossg info

我们可以看到一条Twist消息包含两条Vector3消息,其中一个用于线速度,另一个用于角速度,速度分量用float64表示。

注意:

为确定更详细的信息,使用命令

rosed geometry_msgs Twist.msg

来查看消息定义中文件的注释

5.主题的回应信息

为了实时查看主题发布的消息,使用命令

rostopiv echo

在这里插入图片描述

例如,查看/turtle1/cmd_vel主题

rostopic echo /turtle1/cmd_vel

然后再turtle_teleop_key窗口控制乌龟的移动,我们就能够看到实时的输出消息

更多相关:

  • 写在前面Android TV 电视开发,主题换肤,我感觉有两种层级的方式,一种是 系统级,另一种 是应用级,我记得很早在 Linux 桌面开发的时候,我们之前的公司在GTK+上也实现了一套换肤UI框架,包括我们看到的QQ,掘金,简书,等应用,无缝切入主题,不需要重启应用。为何需要主题切换,因为UI库改来改去也就那些东西,不过在变换一些...

  • Ctrl+K Ctrl+M设置 Ctrk+K Ctrl+T选择这个绿茶婊主题怎么样?   对图标样式有洁癖的可以选择上面这个图标主题...

  • 上图(做图是原生的主题,有图是自定义的颜色主题)          仔细看才发现右侧的顶部那个复选框靠左了,百思不得其解,尝试了各种骚操作无果 于是拿着新的主题样式index.css和老的比对发现他多了一段代码(左边是原生主题样式,右边是自定义主题样式)      于是去掉了padding-left和padding-righ...

  • 当一个IT组织开始走到需要实施网络边缘的旅程时,他们很快意识到面对的挑战与他们在传统数据中心内所经历的挑战不同。 第一个挑战是空间。与更大的核心或区域数据中心同类产品相比,许多边缘站点的物理尺寸更小,因此,需要仔细计划好,尝试在未为其专门设计的空间中安装硬件。  第二个挑战是运行环境。还必须解决的可能面对的冷热温度变化 ,天气,无...

  • 单向循环链表单链表的一个变形是单向循环链表, 链表的最后一个节点的next域不再为None, 而是指向链表的头节点.单向循环链表如图所示:单向循环链表同样单向循环链表也是要使用python来对它的基本功能进行一个封装. 总体大致的功能如下:is_empty() 判断链表是否为空length() 返回链表的长度travel() 遍历ad...

  • 题目: 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一...

  • 题目:删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为...

  • 【从零开始的ROS四轴机械臂控制】(一)- 实际模型制作、Solidworks文件转urdf与rviz仿真 一、模型制作 1.实际模型制作 2.Solidworks模型制作 二、Solidworks文件转urdf 1.sw_urdf_exporter插件 2.添加坐标系和转轴 3.导出urdf文件 三、rivz仿真...

  • 首先对微擎的工作原理做简单描述, 微擎使用规则和模块的机制来处理公众平台的请求数据并返回响应的结果.执行流程描述为: 粉丝用户与公众号码进行对话或交互, 而后公众平台将粉丝用户的请求消息(当前包括: 文本, 图片, 位置, 链接, 事件. 请参阅消息类型)传递给微擎系统, 微擎系统按照消息类型和对应的公众号所设定的规则列表匹配到合适的...

  • 消息队列的使用场景以下介绍消息队列在实际应用常用的使用场景。异步处理、应用解耦、流量削锋和消息通讯四个场景。1】异步处理:场景说明:用户注册后,需要发注册邮件和注册短信。引入消息队列后架构如下:用户的响应时间=注册信息写入数据库的时间,例如50毫秒。发注册邮箱、发注册短信写入消息队列后,直接返回客户端,因写入消息队列的速度很快,基...

  • 下面是我凭记忆想到的几个题目,有需要的同学就拿去吧,我也算做了点善事. 中体骏彩C++笔试题 2013-11-18 1.指针的含义是:B A.名字 B.地址 C.名称 D.符号 2.给出下面的程序输出: #include #include #include ...

  • 双端通信描述 利用消息队列针对发送接受消息的类型唯一性 进行多个客户端之间消息传递,而不需要server端进行消息转发。 同时消息队列的读阻塞和写阻塞特性(消息队列中已经写入数据,如果再不读出来,则无法再次写入)让消息队列的实现过程只能如下: 客户端1的父进程用来处理类型1的消息写,子进程处理类型2的消息读客户端2的父进程处理类型...

  • 文章目录基本介绍编程接口代码实例消息队列的发送和接收消息队列中的消息对象的属性控制 基本介绍 支持不同进程之间以消息(messages)的形式进行数据交换,消息能够拥有自己的标识,且内核使用链表方式进行消息管理。进程之间的通信角色为:发送者和接受者 发送者: a. 获取消息队列的ID(key或者msgid) b. 将数据放入...