相信各位读过之前说的一些基础知识,应该很快来到第二章了。
博客摘录于:机器人操作系统(ROS)浅析--[美] Jason M. O'Kane 著--肖军浩 译
第2章 入门概述
2.1、安装ROS
个人觉得,刚开始学习直接用ISO就可以了,可以节省很多时间。参考exbot的iso。
2.4、功能包/软件包
在ROS中,所有软件都被组织为软件包的形式,称为ROS软件包或功能包,有时也简称为包;
对于使用apt-get安装的功能包,其所在根目录为/opt/ros/indigo,之外还包括一些列的头文件,库文件等。
2.5 master
ROS的一个基本目标是使机器人专家设计的很多称为节点(node)的几乎相对独立的小程序能够同时运行。为此,这些节点 必须能够彼此通信。ROS中实现通信的关键部分就是ROS节点管理器。要启动节点管理器,使用如下命令: roscore
2.6
rosout节点是一个特殊的节点,通过roscore自动启动。其作用有点类似于控制台程序中使用的标准输出(即std::cout)。我们将在4.4.2节中更详细地介绍rosout。
/rosout前面的反斜杠“/”表明该节点名称属于全局命名空间。
ROS中要求每个节点有不同的名称。
查看节点: 要获得特定节点的信息,使用如下命令: rosnode info node-name
这个命令的输出包括话题列表——节点是这些话题的发布者(publisher)或订阅者(subscriber);(在后面对node管理的时候非常的有用,因为你需要知道它的pub以及sub)。
终止节点: 要终止节点,使用如下命令: rosnode kill node-name
不像终止和重启节点管理器那样,终止和重启节点通常不会对其他节点有较大影响;即使节点间正在相互交换消息(message),这些连接也会在节点终止时断开,在节点重启时重新连接。
注意:还可以用Ctrl-C命令终止节点。但使用这种方法时可能不会在节点管理器中注销该节点,因此会导致已终止的节点仍然在rosnode列表中。这虽然没有什么坏处,但可能会让用户对当前系统的行为感到困扰。此时可以使用下面的命令将节点从列表中删除:rosnode cleanup
2.7 话题和消息
ROS节点之间进行通信所利用的最重要的机制就是消息传递。ROS节点管理器负责确保发布节点和订阅节点能找到对方;而且消息是直接地从发布节点传递到订阅节点,中间并不经过节点管理器转交。
打印消息内容 为了查看某个话题上发布的消息,可以利用rostopic命令的如下形式:rostopic echo topic-name
测量发布频率 有两个命令可以用来测量消息发布的频率以及这些消息所占用的带宽:
rostopic hz topic-name
rostopic bw topic-name
查看话题 利用rostopic info命令,你可以获取更多关于话题的信息:rostopic info topic-name
查看消息类型 要想查看某种消息类型的详情,使用类似下面的命令:rosmsg show message-type-name
理解消息类型的命名 和ROS里其他的程序一样,每条消息类型都属于一个特定的包。消息类型名总会包含一个斜杠,斜杠前面的名字是包含它的包:package-name/type-name
2.9 问题检查
当ROS没有按你的预期运行时,一种可能有帮助的工具,也是本章要学习的最后一个命令行工具,是roswtf,该命令可以不带参数运行:roswtf
这条命令会进行全面而深入的检测,包括检测你的环境变量、安装的文件以及运行的节点。可惜的是,由roswtf检测的完整列表只能在Python源码中才能找到。
2015年10月1日21:21:52