ros机器人操作系统Node节点和Package包介绍

这一期我们将了解 ROS 中最基本的程序单元 Node,也就是节点

➢ 以及节点的组词形式 package, 我们称之为包。

➢ 之前我们说过, ROS 和安卓有很多相似之处,安卓系统是由很多的 APP 组成。

➢ 我们在使用安卓手机的时候,实际上就是在使用具体的 APP

➢ 打电话是一个 APP,发短信是一个 APP,拍照是一个 APP,玩游戏也是一个 APP。

➢ 在 ROS 中也一样,当我们在使用 ROS 的时候,实际上是在使用 ROS 中的某一个或者某一些节点,这些节点有的是管建图的,有的是管导航的,有的是控制底盘,有的是驱动雷达

➢ 尽管节点们有着各自完全不同的功能,

➢ 但是每个节点在代码上的结构是遵循一个固定的套路的,

➢ 先干嘛, 再干嘛,最后干嘛,这些都是事先安排好的。

➢ 如果不按这个套路来,就可能会和 ROS 的核心配合失败,导致程序运行不起来。

➢ 所以我们只要掌握了这个套路,以后无论是阅读代码臃肿的节点程序,还是自己实现一

个繁琐复杂的需求,都不会感觉无法入手。

➢ 只要在代码中找到几个关键的环节,基本上对整个程序的内容分布就比较清楚了。

➢ 其实按照 ROS 的模块化设计理念,单个节点的功能一般不会弄得太过复杂,

➢ 有时候我们看到一些 ROS 机器人能够实现一些非常复杂的任务,那其实是一堆节点相

互合作的结果

➢ 把它们拆开来看,每个节点都是一个很单一的功能,

➢ 当我们逐个击破调节了每一个节点的具体功能之后, 再把这些节点串联起来,就不难理解整个任务的实现原理了。

➢ 所以我们可以从最简单的节点程序入手,先熟悉节点的基本结构,然后再在这个结构中逐步的装填其他的功能。

➢ 等按照课程一步步地完成一系列小的功能点之后,

➢ 再回过头来看,就会发现其实已经实现了一个相当智能的机器人程序。

➢虽然 ROS 程序的基础单元是节点,但我们并不能像手机下载 APP 一样只安装单个节点,而是必须以包为单位进行安装。

➢ 在之前我们使用 apt 安装的 Turtlesim 和从 GitHub 下载的 wpr_simulation 都是下载的一整个软件包
虽然我们最后只用到了这个软件包里的一个或几个节点,但是还是得把整个软件包下载下来。

➢ ROS 采用的模块化的设计理念,强调功能的相互独立,所以造成了单个节点的功能比较单一,要想实现一个完整的任务,通常需要几个节点的配合才能够完成。

➢ 同时 ROS 使用 cmake 和 catkin 作为编译工具,引入了 package 包的概念,正好可以把散落的节点规整起来,

➢ 一次安装一个包,也就是一组节点,省去了一个安装节点的繁琐操作,

➢ 跟超市购物一样,把所有关联的节点都装在一个包里,就可以一次全部带走。

➢ 所以我们也可以简单地将包理解为节点的容器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值