您的位置:IT爆料网 > 互联网

终于有人把ROS机器人操作系统讲明白了

发布时间:2022-10-20 14:45:42  来源:互联网     背景:

   一ROS简介

可能很多初学者听到机器人操作系统,就被“操作系统”几个字吓住了。其实简单点说,ROS就是一个分布式的通信框架,帮助程序进程之间更方便地通信。

一个机器人通常包含多个部件,每个部件都有配套的控制程序,以实现机器人的运动与视听功能等。那么要协调一个机器人中的这些部件,或者协调由多个机器人组成的机器人集群,怎么办呢?这时就需要让分散的部件能够互相通信,在多机器人集群中,这些分散的部件还分散在不同的机器人上。解决这种分布式通信问题正是ROS的设计初衷。

随着越来越多的人参与ROS开发及源码贡献,社区涌现出大量的第三方工具和实用开源软件包,使ROS变成现在的样子。

一个经常让初学者困惑的地方是,学会了ROS就是学会机器人开发了吗?当然不是,严格意义上讲ROS只是一套通信框架而已,机器人中的各种算法和应用程序依然是用C++、Python等常见编程语言进行开发的。

1. ROS的性能特色

在正式学习ROS之前,先介绍ROS的几个特性,即元操作系统、分布式通信机制、松耦合软件框架、丰富的开源功能库等,来帮大家建立一些感性的认识。

ROS是一个机器人领域的元操作系统。也就是说,它并不是真正意义上的操作系统,其底层的任务调度、编译、设备驱动等还是由它的原生操作系统Ubuntu Linux完成。

ROS实际上是运行在Ubuntu Linux上的亚操作系统,或者说软件框架,但提供硬件抽象、函数调用、进程管理这些类似操作系统的功能,也提供用于获取、编译、跨平台的函数和工具。

ROS的核心思想就是将机器人的软件功能做成一个个节点,节点之间通过互相发送消息进行沟通。这些节点可以部署在同一台主机上,也可以部署在不同主机上,甚至还可以部署在互联网上。ROS网络通信机制中的主节点(master)负责对网络中各个节点之间的通信过程进行管理调度,同时提供一个用于配置网络中全局参数的服务。

ROS是松耦合软件框架,利用分布式通信机制实现节点间的进程通信。ROS的软件代码以松耦合方式组织,开发过程灵活,管理维护方便。

ROS具有丰富的开源功能库。ROS是基于BSD(Berkeley Software Distribution,伯克利软件发行)协议的开源软件,允许任何人修改、重用、重发布以及在商业和闭源产品中使用,使用ROS能够快捷地搭建自己的机器人原型。

2. ROS的发行版本

与Linux发行版类似,ROS发行版内置了一系列常用功能包,即将ROS系统打包安装到原生系统中。ROS最初是基于Ubuntu系统开发的,ROS的发行版本名称也和Ubuntu采用了同样的规则,即版本名称由两个相同首字母的英文单词组成,版本首字母按字母表递增顺序选取,图1-1展示了ROS的一些主要版本。

▲图1-1 ROS的主要版本

3. ROS的学习方法

要想学好以及用好ROS,需要进行大量的实践操作。因此在快速了解ROS的核心概念和编程范式后,就要结合大量的实际项目来深入理解ROS。学会用正确的方式解决问题,能帮你更快地提高能力。ROS的学习资源主要有以下几个。

官网:www.ros.org 源码:github.com Wiki:wiki.ros.org 问答:answers.ros.org 二ROS系统架构

安装完ROS后,很多朋友应该迫不及待想立马开始写程序。由于ROS的架构比较复杂,为了后面容易理解遇到的各种概念,这里先讨论一下ROS的系统架构,好让大家对ROS中的各种概念有全面性把控。按照官方的说法,可以分别从计算图、文件系统和开源社区视角来理解ROS架构。

1. 从计算图视角理解ROS架构

ROS中可执行程序的基本单位叫节点(node),节点之间通过消息机制进行通信,这样就组成了一张网状图,也叫计算图,如图1-3所示。

▲图1-3 ROS的计算图结构

节点是可执行程序,通常也叫进程。ROS功能包中创建的每个可执行程序在被启动加载到系统进程中后,就是一个ROS节点,如图1-3中的节点1、节点2、节点3等。

节点之间通过收发消息进行通信,消息收发机制分为话题(topic)、服务(service)和动作(action)三种,如图1-3中的节点2与节点3、节点2与节点5采用话题通信,节点2与节点4采用服务通信,节点1与节点2采用动作通信。计算图中的节点、话题、服务、动作都要有唯一名称作为标识。

ROS利用节点将代码和功能解耦,提高了系统的容错性和可维护性。所以最好让每个节点都具有特定的单一功能,而不是创建一个包罗万象的庞大节点。如果用C++编写节点,需要用到ROS提供的roscpp库;如果用Python编写节点,需要用到ROS提供的rospy库。

消息是构成计算图的关键,包括消息机制和消息类型两部分。消息机制有话题、服务和动作三种,每种消息机制中传递的数据都具有特定的数据类型(即消息类型),消息类型可分为话题消息类型、服务消息类型和动作消息类型。消息机制和消息类型将在1.5节中展开讲解。

数据包(rosbag)是ROS中专门用来保存和回放话题中数据的文件,可以将一些难以收集的传感器数据用数据包录制下来,然后反复回放来进行算法性能调试。

参数服务器能够为整个ROS网络中的节点提供便于修改的参数。参数可以认为是节点中可供外部修改的全局变量,有静态参数和动态参数。静态参数一般用于在节点启动时设置节点工作模式;动态参数可以用于在节点运行时动态配置节点或改变节点工作状态,比如电机控制节点里的PID控制参数。

主节点负责各个节点之间通信过程的调度管理。因此主节点必须要最先启动,可以通过roscore命令启动。

2. 从文件系统视角理解ROS架构

ROS程序的不同组件要放在不同的文件夹中,这些文件夹根据不同的功能对文件进行组织,这就是ROS的文件系统结构,如图1-4所示。

▲图1-4 ROS的文件系统结构

工作空间是一个包含功能包、编译包和编译后可执行文件的文件夹,用户可以根据自己的需要创建多个工作空间,在每个工作空间中开发不同用途的功能包。在图1-4中,我们创建了一个名为catkin_ws的工作空间,其中包含src、build和devel三个文件夹。

src文件夹放置各个功能包和配置功能包的CMake配置文件CMakeLists.txt。这里说明一下,由于ROS中的源码采用catkin工具进行编译,而catkin工具又基于CMake技术,所以我们在src源文件空间和各个功能包中都会见到一个CMake配置文件CMakeLists.txt,这个文件起到配置编译的作用。 build文件夹放置编译CMake和catkin功能包时产生的缓存、配置、中间文件等。 devel文件夹放置编译好的可执行程序,这些可执行程序是不需要安装就能直接运行的。一旦功能包源码编译和测试通过后,可以将这些编译好的可执行文件直接导出与其他开发人员分享。

功能包是ROS中软件组织的基本形式,具有创建ROS程序的最小结构和最少内容,它包含ROS节点源码、脚本、配置文件等。

CMakeLists.txt是功能包配置文件,用于编译Cmake功能包编译时的编译配置。 package.xml是功能包清单文件,用xml的标签格式标记该功能包的各类相关信息,比如包的名称、开发者信息、依赖关系等,主要是为了使功能包的安装和分发更容易。 include/ 是功能包头文件目录,可以把功能包程序中包含的*.h头文件放在这里。include目录之所以还要加一级路径 是为了更好地区分自己定义的头文件和系统标准头文件, 用实际功能包的名称替代。不过这个文件夹不是必要项,比如有些程序没有头文件。 msg、srv和action这三个文件夹分别用于存放非标准话题消息、服务消息和动作消息的定义文件。ROS支持用户自定义消息通信过程中使用的消息类型。这些自定义消息不是必要的,比如程序只使用标准消息类型。 scripts目录存放Bash、Python等脚本文件,为非必要项。 launch目录存放节点的启动文件,*.launch文件用于启动一个或多个节点,在含有多个节点的大型项目中很有用,为非必要项。 src目录存放功能包节点所对应的源代码,一个功能包中可以有多个节点程序来完成不同的功能,每个节点程序都可以单独运行。这里src目录存放的是这些节点程序的源代码,你可以按需创建文件夹和文件来组织源代码,源代码可以用C++、Python等编写。 3. 从开源社区视角理解ROS架构

ROS是开源软件,各个独立的网络社区分享和贡献软件及教程,形成了强大的ROS开源社区,如图1-5所示。

▲图1-5 ROS的开源社区结构

ROS的发展依赖于开源和共享的软件,这些代码由不同的机构共享和发布,比如GitHub源码共享、Ubuntu软件仓库发布、第三方库等。ROS的官方wiki是重要的文档讨论社区,在里面可以很方便地发布与修改相应的文档页面。ROS的answer主页里有大量ROS开发者的提问和回答,对ROS开发中遇到的各种问题的讨论很活跃。

关于作者:张虎,深圳市睿思智行科技有限公司CEO。曾就职于深圳市智能机器人研究院,主持机器人自主导航方面的研究项目。工作期间以网名“小虎哥哥爱学习”在知乎、CSDN、bilibili等平台创作了大量机器人SLAM导航相关的优质博客文章及视频教程,深受广大网友的喜爱。他对强人工智能的研究非常感兴趣,并致力于将具有先进智能的机器人进行产业化落地。

 


本文标题:终于有人把ROS机器人操作系统讲明白了 - 互联网
本文地址:www.itbaoliao.com/hlw/3593.html

返回网站首页

本文评论
国家卫健委:31省份新增本土69+266
7月5日电,7月4日0—24时,31个省(自治区、直辖市)和新疆生产建设兵团报告新增确诊病例112例。其中境外输入病例43例;本土病例69例(安徽52例,陕西7例,北京3例,上海3例,山东3例,广东1例),含9例由无症状感染者转...
日期:10-08
人肉搜索引爆英国华人论坛
8月19日,在纽卡斯尔“中国留学生被杀案”发生后的第十天,英国警方称“又有了新线索”。中新网8月23日电 据英国《英中时报》报道,英国警方正在追踪一名曾租住在被害人家中的房客的下落,并称‘这对案情发展将起到重要作...
日期:09-01
甘肃10名律师欲告“偷菜”网 5成网友支持叫停
天水市秦州区的甘肃纪元律师事务所和甘肃昱晟律师事务所10名律师纷纷表态,准备联手状告“偷菜”游戏网站,并开始准备向法院提起公益诉讼。...
日期:09-13
纪检监察干部:安徽宿州移动副总裁应受党纪处分
宿州移动副总劝妻妾共夫未受党纪处分针对宾语的廉政空间反映的宿州移动公司副总王朝新的生活作风问题,昨天(3月5日)下午,安徽移动立即成立调查组进行调查。经调查核实,网上所反映的王朝新生活作风问题属实。安徽移动公司经研究决定,对王朝新予以免职...
日期:10-09
亚冠决赛刷新网络直播纪录 新浪体育台正式上线
2013亚冠大幕落下,广州恒大凭借客场进球优势最终如愿捧起冠军奖杯,中国俱乐部时隔23年重登亚洲之巅。连日来,恒大夺冠的喜讯席卷整个互联网。据了解,11月8日才正式上线的新浪体育台,从第二天下午15时开始,推出了由黄健翔、詹俊、李毅等名嘴担...
日期:09-07
天翼飞young第二季中国好声音巡演在京启动
中关村商情网讯:10月30日,天翼飞young第二季中国好声音巡演在北京举行了启动发布会,第二季好声音学员经过三个多月的艰苦鏖战,终于正式踏上了属于他们的音乐旅途。第二季16强中的大部分学员出席了发布会,并同时启动他们的易信账号,与歌迷全网...
日期:10-15
空姐飞行中玩手机 航空公司:查实将严惩
昨天,网友微博爆料称,一架从乌鲁木齐开往银川的飞机上,在飞机平飞后,乘务长与头等舱乘务员在舱内玩手机,并且持续了30分钟左右。微博一经发出,引发网友的大讨论,甚至有网友认为,这是在拿生命开玩笑。对此,相关航空公司负责人表示,将对此事进行调查核实,如若查实将严惩。...
日期:10-03
央视曝光9家电商7家售假 淘宝三星手机正品率0%
据央行统计,2014年上半年,我国网购用户达3.5亿人,平均每人消费超过3000元,网上消费总额达到1.05万亿元,而且这一数据与电商自己的数据相比较还略显保守。网上消费增多,伴随而来的是针对网络购物的投诉。有关部门指出,新增消费投诉基本来...
日期:10-08
lol2017德玛西亚杯正式开赛 德玛西亚杯12月赛程
英雄联盟2017年德玛西亚杯预选赛正式开战,目前预选赛正在直播中,今年德玛西亚杯的主赛场设置在青岛,参赛的十六支队伍中,除了获得2017年全国电竞大赛冠军的IG战队外,其他的队伍都要先进行预选赛。...
日期:10-09
腾讯2009年收入124.4亿 每秒钟净利润达163元
腾讯控股发布2009年全年财报。财报显示,腾讯2009年全年营收124.4亿元,同比增长73.9%,净利润达51.556亿元,同比增长85.2%,合每秒钟净利163元。...
日期:08-01
赶集网团购与窝窝团联营 退出模式或成借鉴
TechWeb编辑推荐:4月11日晚间,赶集网发布公告称,赶集网与窝窝团达成战略合作,即日起将联合运营赶集网团购业务。据悉,目前赶集网团购网页已跳转至窝窝团页面,该页面除了加有“赶集”标志以外,提供的团购服务和商品与...
日期:10-15
360快资讯《不吐不快》辩论赛火出圈 李银河犀利观点引发热议
4月27日,由360快资讯发起的线上辩论类节目《不吐不快》首期甫一上线,便凭借犀利的观点输出,引发......
日期:05-07
360智键4月3日12点正式发售 仅3.60元且买且珍惜
4月3日12时,奇虎360公司备受期待的另一款硬件产品——360智键正式在官网正式发售。这款可以搭配360随身WiFi使用的智能手机的周边设备,被老周在年会点名夸赞之后两个月,终于和用户见面了,用户可以在官网以仅3....
日期:10-09
华为P7销量公布:震惊了
华为P7销量公布:震惊了在华为P6发布的时候,余承东曾表示它的销量有望突破1000万台大关,但最终的事实证明它的出货量不过是400多万台而已,和预期差距很大。今年,华为发布了P6的升级版P7,相比P6来说,P7在硬件及软件层次上做出了...
日期:10-03
小黄狗环保科技:用公益推动垃圾分类习惯养成,重建新文明
一颗鸡蛋能做什么?也许在很多人眼里是普通的不能再普通的食材。在小黄狗环保科技的公益宣传片里,这......
日期:05-10
2016天猫双11晚会精彩汇总!明星大咖嗨翻全场
转眼一年一度的双11又来了,很多网友期待双11就如小时候期待过年一样。除了能够任性的买买买之外,收看双11的晚会也是很多网友最激动的时刻。早在9月份的时候,为了满足众多网友的好奇心,很多网站在9月份的时候就曝出了2016双11的节目清单,群星荟萃、大咖云集,给众多网友们无线遐想。...
日期:09-30
聚焦AI 赋能 牵引企业智慧前行
小A云——为行业客户提供定制化云呼叫服务...
日期:09-25
智慧丽江亮相数字中国建设峰会 百度科技助力古城智慧化转型
4月25-29日,云南丽江携智慧城市建设最新成果“智慧丽江城市大脑”亮相福州数字中国建设......
日期:05-06
神州行充值将赠话费 话费赠送率高可达36%
客户将享受到最高可达36%的话费赠送北京移动再次施价格屠刀。昨日,北京移动宣布,从11月3日起,推出新的神州行充值赠话费活动。活动历时28天,在此...
日期:10-10