ROS机器人程序设计(原书第2版)2.4.5 使用ROS节点

2.4.5 使用ROS节点

正如我们在2.2.1节中解释的,节点都是可执行程序,这些可执行文件位于开发空间中。要学习和了解有关节点的知识,我们要使用一个名为turtlesim的功能包进行练习。

如果你进行了ROS系统的完整安装,那么你已经有了turtlesim功能包。如果还没有,请使用以下命令安装:

 

在开始之前,必须使用如下命令启动roscore:

 

为了获得节点信息,可以使用rosnode工具。为了查看命令接受哪些参数,可以输入以下命令:

 

你会获得一个可接受参数的清单,如下图所示:

 

如果你想获得关于这些参数更详细的解释,请使用以下命令:

 

现在roscore正在运行,我们想要获取正在运行节点的相关信息:

 

你会看到运行的节点仅有/rosout。这是正常的,因为这个节点总是随着roscore的运行而运行。

通过使用参数我们可以获得此节点的所有信息。也可以使用下列命令获得更详细的

信息:

 

现在我们要用rosrun命令启动一个新的节点,如下所示:

 

我们看到出现了一个新的窗口,窗口中间有一个小海龟,如右图所示:

如果我们再去查看节点列表,会看到出现了一个新的节点,叫做/turtlesim。你可以通过使用rosnode info nameNode命令查看节点信息。可以看到很多能用于程序调试的信息:

 

上一个命令输出如下信息:

 

 

在以上信息中,我们可以看到Publications(及相应主题)、Subscriptions(及相应主题)、该节点具有的Services(srv)及它们各自唯一的名称。

接下来介绍如何使用主题和服务与该节点进行交互。

时间: 2024-10-26 13:06:22

ROS机器人程序设计(原书第2版)2.4.5 使用ROS节点的相关文章

ROS机器人程序设计(原书第2版)第1章 ROS Hydro系统入门

第1章 ROS Hydro系统入门 欢迎开始阅读本书第1章.本章将介绍如何安装ROS系统,它是一种新的标准化机器人系统软件框架.本书是基于ROS Fuerte的<ROS机器人程序设计>一书的升级版.通过ROS,你可以使用大量的示例代码和开源程序轻松地完成机器人编程和控制.同时,你还能够理解如何使用各种传感器与执行器,并为你的机器人增加新的功能,如自动导航和视觉感知等.得益于开源理念,以及持续开发最先进算法并不断提供新功能的开源社区,ROS不断进步完善. 通过本书,你将学习到如下内容: 在特定版

ROS机器人程序设计(原书第2版)3.6 可视化节点诊断

3.6 可视化节点诊断 ROS节点可以使用diagnostics(诊断)主题提供诊断信息,并为此提供了一个API用于以标准方式发布诊断信息.信息遵循diagnostic_msgs/DiagnositcStatus的消息类型,它允许我们指定一个级别(警告.错误).名称.消息和硬件ID以及diagnostic_msgs /KeyValue列表,对应键(key)和值(value)字符串. 有趣的部分是收集诊断信息并将其可视化的工具.在最基本的层面上,rqt_runtime_monitor通过diagn

ROS机器人程序设计(原书第2版)2.2.1 节点与nodelet

2.2.1 节点与nodelet 节点都是各自独立的可执行文件,能够通过主题.服务或参数服务器与其他进程(节点)通信.ROS通过使用节点将代码和功能解耦,提高了系统容错能力和可维护性,使系统简化. ROS有另一种类型的节点,称为nodelet.这类特殊节点可以在单个进程中运行多个节点,其中每个nodelet为一个线程(轻量级进程).这样,可以在不使用ROS网络的情况下与其他节点通信,节点通信效率更高,并避免网络拥塞.nodelet对于摄像头和3D传感器这类数据传输量非常大的设备特别有用. 节点在

ROS机器人程序设计(原书第2版)2.2.6 节点管理器

2.2.6 节点管理器 ROS节点管理器向ROS系统中其他节点提供命名和注册服务.它像服务一样跟踪主题的发布者和订阅者.节点管理器的作用是使ROS节点之间能够相互查找.一旦这些节点找到了彼此,就能建立点对点的通信.你可以看到以图例显示的ROS执行步骤,包括广播一个主题,订阅一个主题,发布一个消息,如下图所示:   节点管理器还提供了参数服务器.节点管理器通常使用roscore命令运行,它会加载ROS节点管理器及其他ROS核心组件.

ROS机器人程序设计(原书第2版).

机器人设计与制作系列 ROS机器人程序设计 (原书第2版) Learning ROS for Robotics Programming,Second Edition 恩里克·费尔南德斯(Enrique Fernández) 路易斯·桑切斯·克雷斯波(Luis Sánchez Crespo) 阿尼尔·马哈塔尼(Anil Mahtani) 亚伦·马丁内斯(Aaron Martinez) 著 刘锦涛 张瑞雷 等译 图书在版编目(CIP)数据 ROS机器人程序设计(原书第2版) / (西)恩里克·费尔南

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

《机器学习与R语言(原书第2版)》一1.2 机器学习的使用与滥用

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.2节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 1.2 机器学习的使用与滥用 大多数人听说过下国际象棋的计算机深蓝(Deep Blue)-第一台和一位世界冠军对弈并获胜的计算机,或者在电视问答游戏节目Jeopardy中击败两个人类对手的计算机Watson.基于这些令人震惊的成绩,有人预测计算机智能将在许多信息科学领域取

《面向对象的思考过程(原书第4版)》一1.9 继承

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第1章,第1.9节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问"华章计算机"公众号查看. 1.9 继承 面向对象程序设计的最强大的功能之一就是代码重用.结构化设计提供的代码重用非常受限.你可以编写一个功能块,然后多次重用它.但是面向对象的设计更进一步,允许你定义类之间的关系,通过组织和识别不同类之间的共性,不仅可以实现代码重用,也可以指导设计.继承是实现该功能的主

《面向对象的思考过程(原书第4版)》一1.5 究竟什么是对象

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第1章,第1.5节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问"华章计算机"公众号查看. 1.5 究竟什么是对象 对象是面向对象程序中的基础材料.使用面向对象技术的程序本质上是对象的集合.举例来说,一个公司系统包含了代表公司雇员的对象.接下来的小节描述了这些对象的数据和行为. 1.5.1 对象数据 存放在对象中的数据代表了该对象的状态.在面向对象术语中,数据被称为

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一导读

前 言 致读者 本书是按照Java SE 8完全更新后的<Java核心技术 卷Ⅱ 高级特性(原书第10版)>.卷Ⅰ主要介绍了Java语言的一些关键特性:而本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题.因此,与本书卷Ⅰ和之前的版本一样,我们仍将本书定位于用Java技术进行实际项目开发的编程人员. 编写任何一本书籍都难免会有一些错误或不准确的地方.我们非常乐意听到读者的意见.当然,我们更希望对本书问题的报告只听到一次.为此,我们创建了一个FAQ.bug修正以及应急方案的网站http:/