ROS开发日记(1)——ROS基础知识

ROS,即开源机器人操作系统。

1 官方定义:ROS是面向机器人的开源的元操作系统(meta-operating system) 1 。它能够提供类似传统操作系统的诸多功能,
如硬件抽象、底层设备控制、常用功能实现、进程间消息传递和程序包管理等。此外,它还提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。

对比计算机系统:

如上图所示,计算机的操作系统将计算机硬件封装起来,而应用软件运行在操作系统之上,不用管计算机具体应用的是什么类型的硬件产品。这能大大提高软件开发效率(否则大家只能都写汇编了)。

同理,ROS则是对机器人的硬件进行了封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用。

2 ROS用节点(Node)的概念表示一个应用程序,不同node之间通过事先定义好格式的消息(Topic),服务(Service),动作(Action)来实现连接。使用ROS能够解决的机器人软件开发问题:

分布式计算(进程间的通信问题

软件复用(ROS标准包,ROS通信接口)

快速测试(ROS系统框架将底层硬件控制模块与顶层数据处理与决策模块分离;提供了一种简单的方法可以在调试过程中记录传感器数据以及其他类型的消息数据,并在试验后按时间戳回放)

3 安装ROS-配置账户-使用turtlesim的小例子-功能包/软件包(注意与操作系统软件包的区别)- 节点管理器 - 节点(ROS程序的运行实例)- 话题与消息 (发布与订阅)

ROS节点之间进行通信所利用的最重要的机制就是 消息传递。在ROS中,消息有组织地存放在 话题里。消息传递的理念是:
当一个节点想要分享信息时,它就会 发布(publish)消息到对应的一个或者多个话题;当一个节点想要接收信息时,它就会 订阅
(subscribe)它所需要的一个或者多个话题。ROS节点管理器负责确保发布节点和订阅节点能找到对方;而且消息是直接地从发布节点传递到订阅节点,中间并不经过节点管理器转交。

在 ROS 系统中查看节点之间的发布-订阅关系的最简单方式就是在终端输入如下命令:
rqt_graph

现在,我们对turtlesim遥控系统的工作原理有了一定的理解。当你按下一个键时,/teleop_turtle 节点会以消息的形式将这些运
动控制命令发布到话题/turtle1/cmd_vel;与此同时,因为turtlesim_node 订阅了该话题,因此它会接收到这个些消息,控制
海龟按照该预定的速度移动。

仿真海龟不关心(或者甚至不知道)哪个程序发布了这些cmd_vel 消息。任何向这个话题发布了消息的程序都能控制这个海龟。

远程操作程序不关心(或者甚至不知道)哪个程序订阅了它发布的 cmd_vel 消息。任何订阅了相关话题的程序都能自主选择是否响应这些命令。

话题列表  为了获取当前活跃的话题,使用如下命令:rostopic list

打印消息内容 为了查看某个话题上发布的消息,可以利用rostopic 命令的如下形式:rostopic echo topic-name,这条命令将会在终端里显示出指定话题

测量发布频率 有两个命令可以用来测量消息发布的频率以及这些消息所占用的带宽:
rostopic hz topic-name
rostopic bw topic-name

查看话题  利用 rostopic info 命令,你可以获取更多关于话题的信息:
rostopic info topic-name

查看消息类型 要想查看某种消息类型的详情,使用类似下面的命令
rosmsg show message-type-name

命令行发布消息 大多数时候,发布消息的工作是由特定的程序完成的。但是,你会发现有时候手动发布消息是很实用的。要实现该功能,利用rostopic命令行工具:
rostopic pub –r rate-in-hz topic-name message-type message-content
这条命令重复地按照指定的频率给指定的话题发布指定的消息。

理解消息类型的命名  和 ROS 里其他的程序一样,每条消息类型都属于一个特定的包。消息类型名总会包含一个斜杠,斜杠前
面的名字是包含它的包:
package-name/type-name
例如,turtlesim/Color 消息类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值