大(dà) 创 实 验 室

更多内容请联(lián)系我们

【干货(huò)】机器(qì)人(rén)操作(zuò)系(xì)统——ROS

发表时间:2018-09-04 15:10作者:中科四平(píng)网址:http://www.haozhou.shangrao.huangnan.sys.jixi.ww38.viennacitytours.com

微信图片_20180904150740.jpg

简述

       ROS为Robot Operating System(机器人操(cāo)作系统)的(de)简写,是一(yī)个面向机器人的开(kāi)源元(yuán)操作系统(open-source,meta-operating system)。它能够提供类(lèi)似传统(tǒng)操作系统的(de)诸多功能(néng),如硬件抽象、底层(céng)设备(bèi)控制、进(jìn)程间消息传递和程序包(bāo)管(guǎn)理(lǐ)等。此外,它还(hái)提(tí)供相(xiàng)关工(gōng)具和库,用于获(huò)取、编译、编辑代码以(yǐ)及(jí)在(zài)多个计算机之间(jiān)运行程序(xù)完成分(fèn)布式计算。ROS的(de)运行架构是一种使用ROS通信模块实现模块间P2P的松(sōng)耦合的网络连接(jiē)的处理架(jià)构,它执行若干种(zhǒng)类(lèi)型的通讯,包括基于服(fú)务(wù)的(de)同步RPC(远程过程调用(yòng))通讯、基于Topic的异步数据流(liú)通讯,还有参数服务(wù)器上的数据(jù)存储。

微信图片_20180825192915.jpg


历史

       ROS起源于2007年前后(hòu)斯坦福大学(xué)人工智能实(shí)验室STAIR(Stanford Artificial Intelligence Robot)项目(mù)与Willow Garage公司的个人机器人项目(Personal Robotics project)之(zhī)间的合作。在(zài)2009年初推出(chū)了ROS0.4,现在所(suǒ)用(yòng)系统(tǒng)的框架在这个版(bǎn)本中已初具雏形。经过近一年的测(cè)试后,于2010年初推出了(le)ROS1.0版,并在当年三(sān)月份推出(chū)了正式发行版本:ROS Box Turtle,到(dào)现在(zài)(2016年(nián)5月)已经发行了10个版本,最新版本是ROS Kinetic Kame。比较有趣的是,ROS各版本均以龟作为(wéi)发行代号,至今(jīn)已设计出(chū)10种造型奇特的“ROS龟”。

  2008年至2013年,ROS主要由Willow Garage公司管理(lǐ)维(wéi)护,但这并不意味着ROS是封闭的系统,相反(fǎn),它是(shì)由(yóu)众多学校及科研机(jī)构联(lián)合开(kāi)发(fā)及(jí)维护的,这种联合开发模式也为ROS系统生态的构建与壮大带来(lái)有力的促进。2013年,Willow Garage公(gōng)司被Suitable Technologies公司收购,此前几(jǐ)个月,ROS的开发和维护管理工作被移交给(gěi)了新成立的(de)开源基金会(huì) Open Source Robotics Foundation。

微(wēi)信图(tú)片_20180825192921.jpg


特(tè)点

       ROS的主要目标是为机器人研究和(hé)开发提供代码复用的支(zhī)持(chí)。ROS是一个分布式的进程(即(jí)“节点(diǎn)”)框架,这(zhè)些进程被封(fēng)装(zhuāng)在易于被分(fèn)享和发布的程序包(bāo)和功能包(bāo)中(zhōng)。ROS也支持一种(zhǒng)类似于代码储存库的联合(hé)系统,这个系统也可以实现工(gōng)程的协作及发(fā)布。可以使一个工程的(de)开发和实现(xiàn)从文件系统到用户接口完(wán)全独(dú)立决策(不受ROS限制)。同时(shí),所有的(de)工程(chéng)都可(kě)以被ROS的基础工具整合在一起。

ROS在某些程度上(shàng)和其他常见的机(jī)器人架构(gòu)有(yǒu)些相似之(zhī)处,如:Player、Orocos、CARMEN、Orca和Microsoft Robotics Studio。对于简单的(de)无机械手(shǒu)的移动(dòng)平台来(lái)说,Player是非(fēi)常不错的(de)选择。ROS则不(bú)同,它被(bèi)设计为适用于有机(jī)械臂(bì)和(hé)运动传(chuán)感(gǎn)器的移动(dòng)平台(倾角激光、云(yún)台、机械臂传感(gǎn)器)。与Player相比(bǐ),ROS更有利(lì)于(yú)分布式计算环境。当然,Player 提供了(le)较多的硬(yìng)件驱(qū)动程(chéng)序,ROS则在高层(céng)架构上提(tí)供了更多的算法应用(如集成OpenCV的视觉算法(fǎ))。

ROS的主要特点(diǎn)可以归纳为(wéi)以下几条:

微信图(tú)片_20180825192929.jpg


(1)点(diǎn)对(duì)点设(shè)计

  ROS通过点对点(diǎn)设计以及服务和节(jiē)点(diǎn)管理器等机制(zhì)可以分散由于计算机视觉和语音识(shí)别等功能带来的(de)实时计算(suàn)压力,这种设计能适(shì)应服务(wù)机(jī)器人遇到的调战。

2)不依赖编程(chéng)语(yǔ)言

       ROS支持(chí)多种现代(dài)高级(jí)编程语言,C++、Python和Lisp语言已经在ROS中实现编(biān)译,并得到应用,Octave和Java的测试库(kù)也已经实现。为了(le)支持多语言编程,ROS采用了一种语言中立(lì)的(de)接口(kǒu)定义(yì)语言(languageneutral interface definition language,IDL )来(lái)实现各模块之间的消息传送。

微信图片_20180825192937.jpg

3)精简与集成

       ROS建立的系(xì)统具有(yǒu)模块化的特点,各模块中的代码可以单独编译,而且编译使用的CMake工具(jù)使它很(hěn)容易的就实现精简的理念。ROS基本将(jiāng)复杂的代码封装在库(kù)里,只(zhī)是创(chuàng)建了一些小的应(yīng)用程序为(wéi)ROS显示库的功能,这就允许了对简单的代码超(chāo)越原型进行(háng)移植和(hé)重新使(shǐ)用。作为一种(zhǒng)新(xīn)加入的有优势,单元测试当代码(mǎ)在库中分(fèn)散后也变得非常的容(róng)易(yì),一个单独的测试程(chéng)序可(kě)以测试库中(zhōng)很多的特点。

ROS不修(xiū)改用户的主函数,所以代码可以被其(qí)他的机器人软件使用。其优点是ROS很容易和其他的(de)机器人(rén)软件平台集成。例如(rú),在计算机视觉方面,ROS已(yǐ)经与OpenCV实现集(jí)成。在驱动、导航和模拟(nǐ)器方面,ROS已经与(yǔ)Player系统实现集成。在规划(huá)算法方(fāng)面,ROS也(yě)已与(yǔ)OpenAVE系统实现(xiàn)集成(chéng)。

4)便于(yú)测试(shì)

  为机器人(rén)开发软件(jiàn)比其他(tā)软件开发更具(jù)挑战性,主要是因为调试准备时间长(zhǎng),且调试过程复(fù)杂。况且,因(yīn)为硬件维修、经(jīng)费有限等(děng)因素,不一定随时有机器人可供使(shǐ)用。ROS提供两种策略来(lái)解决上述问题。

       1.精心设(shè)计(jì)的ROS系统框架将底层硬(yìng)件(jiàn)控制(zhì)模块和顶层数据处理与决(jué)策模块分离,从而可以使用模(mó)拟器替代(dài)底层硬件模块,独(dú)立测试顶层部(bù)分,提高测试(shì)效率。

       2.ROS另外提供了一(yī)种简单的方法可以在调试(shì)过(guò)程中记(jì)录传感器数据及其他类型的(de)消息数据,并在试验后按时间戳(chuō)回放。通过这种方(fāng)式,每次运行机器人可(kě)以获得更多(duō)的测试机会。例如,可以记录传感器的数据,并通过多次(cì)回放测试(shì)不同的数据处(chù)理算法。

(5)开源

微信图片_20180825192943.jpg

       ROS遵从BSD协议,这给了使(shǐ)用者很大的自由,使开(kāi)发者可以清楚(chǔ)的查看、自(zì)由的使用源(yuán)代(dài)码,如果有需要,可以根据不同的系统(tǒng)及硬(yìng)件环境(jìng)对源(yuán)代码进行修改,或(huò)者进行二次(cì)开发。

6)强大的(de)库及社区:

       ROS提供了广(guǎng)泛的(de)库(kù)文件(jiàn)实(shí)现以机动性、操作控制、感知为主的机器人(rén)功能。同时由于其开源(yuán)特性,ROS的支持与(yǔ)发展依托着一个强大的(de)社(shè)区。其官方网站尤其(qí)关注兼容(róng)性和支(zhī)持文档,提(tí)供了一套“一站式”的方案(àn)使得用户得(dé)以搜索(suǒ)并学习来自全球开(kāi)发者数以千计的ROS程序包。

小结

  随着技(jì)术的(de)发展及人们(men)需求的提高(gāo),机(jī)器人集成了越来越多的功能、传感器(qì),对(duì)用户来说这越来越方便,但对开发者来说(shuō)恰(qià)恰相反,功能(néng)的增加(jiā)带(dài)来开发与(yǔ)集成难度迅速上升,机器人操作系统的出现有效缓解了这种问题。从计算机和(hé)智能手机的发展过程来看,合适与成熟的操作(zuò)系统是智能机器人行业大规模(mó)发(fā)展和在人们的(de)生活中普及的必(bì)要条件。可以预见(jiàn),未来(lái)几年将会出现众多机器人操作系统,在经过充分(fèn)的发展竞(jìng)争后将会有为数不多的几个操作系统会发展壮大(dà)并占据绝大部分市场,就(jiù)像(xiàng)曾经的计算(suàn)机操(cāo)作(zuò)系统和现在的手机(jī)操(cāo)作(zuò)系统。

微信图片_20180825192951.jpg


中(zhōng)科四平公众号二维(wéi)码.jpg

扫描二维码关注

山东省济(jì)南(nán)市历下区舜华路750号大学科技园北区3号楼
服务热线:13256445996                                  www.haozhou.shangrao.huangnan.sys.jixi.ww38.viennacitytours.com

欧宝官方端平台-欧宝(中国)

欧宝官方端平台-欧宝(中国)