如今,機(jī)器人已成為當(dāng)下研究的熱門,想要完成一個(gè)機(jī)器人的開發(fā)會(huì)涉及到機(jī)械、電子、通訊、軟件等諸多學(xué)科,作為一個(gè)系統(tǒng)性的工程,必然需要花費(fèi)大量時(shí)間,僅靠一人或一個(gè)團(tuán)隊(duì)之力去造出一個(gè)機(jī)器人顯然是不科學(xué)的。因此,隨著技術(shù)的進(jìn)步,機(jī)器人產(chǎn)業(yè)分工開始走向細(xì)致化、多層次化。如今的底盤、激光雷達(dá)、電機(jī)、攝像頭等等元器件都有不同企業(yè)專供,社會(huì)分工加速了機(jī)器人行業(yè)的發(fā)展。
隨著機(jī)器人的快速發(fā)展及復(fù)雜化,代碼復(fù)用性需求也越來越強(qiáng)烈,也因此誕生了很多開源機(jī)器人系統(tǒng),ROS(Robot Operating System)就是其中之一。ROS是專為機(jī)器人軟件開發(fā)所設(shè)計(jì)出來的一套電腦操作系統(tǒng)架構(gòu)。它是一個(gè)開源的元級(jí)操作系統(tǒng)(后操作系統(tǒng)),提供類似于操作系統(tǒng)的服務(wù),包括硬件抽象描述、底層驅(qū)動(dòng)程序管理、共用功能的執(zhí)行、程序間消息傳遞、程序發(fā)行包管理,它也提供一些工具和庫用于獲取、建立、編寫和執(zhí)行多機(jī)融合的程序。
ROS最初起源于2007年斯坦福大學(xué)的人工智能實(shí)驗(yàn)室項(xiàng)目與機(jī)器人技術(shù)公司W(wǎng)illow Garage的個(gè)人機(jī)器人項(xiàng)目之間的合作,該項(xiàng)目組創(chuàng)建了靈活的、動(dòng)態(tài)的軟件系統(tǒng)的原型,用于機(jī)器人技術(shù)。提供了大量資源進(jìn)一步擴(kuò)展了這些概念,經(jīng)過具體的研究測(cè)試實(shí)現(xiàn)之后,無數(shù)的研究人員將他們的專業(yè)性研究貢獻(xiàn)到ROS核心概念和其基礎(chǔ)軟件包,這期間積累了眾多的科學(xué)研究成果。ROS軟件的開發(fā)自始至終采用開放的BSD協(xié)議,在機(jī)器人技術(shù)研究領(lǐng)域逐漸成為一個(gè)被廣泛使用的平臺(tái)。
對(duì)于大多企業(yè)來說,利用ROS進(jìn)行機(jī)器人開發(fā),是想實(shí)現(xiàn)機(jī)器人的導(dǎo)航、定位與路徑規(guī)劃。自ROS的面世,開發(fā)者可以少走很多彎路,也大大降低了機(jī)器人領(lǐng)域的開發(fā)門檻,他們可以利用ROS的基礎(chǔ)框架配合選定的功能包快速實(shí)現(xiàn)系統(tǒng)原型,從而讓開發(fā)人員將重心集中于核心算法研究上,當(dāng)然用戶也可以單獨(dú)選用某些功能包,將其集成在已有的產(chǎn)品中,實(shí)現(xiàn)特定功能。當(dāng)然在借助ROS來實(shí)現(xiàn)機(jī)器人的定位導(dǎo)航,除了擁有一定優(yōu)點(diǎn)外,也存在一些不足之處。
ROS的優(yōu)點(diǎn)
ROS的設(shè)計(jì)者考慮到各開發(fā)者使用的開發(fā)語言不同,因此ROS的開發(fā)語言獨(dú)立。因此,除了官方提供的功能包之外,ROS還聚合了全世界開發(fā)者實(shí)現(xiàn)的大量開源功能包,如思嵐科技(SLAMTEC)就發(fā)布了針對(duì)其自主研發(fā)的激光雷達(dá)RPLIDAR的ROS功能包RPLIDAR_ROS。這些開源功能包與 ROS一起構(gòu)成了強(qiáng)大的開源生態(tài)環(huán)境。
ROS的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)也頗有特色,ROS運(yùn)行時(shí)是由多個(gè)松耦合的進(jìn)程組成,每個(gè)進(jìn)程ROS稱之為節(jié)點(diǎn)(Node),所有節(jié)點(diǎn)可以運(yùn)行在一個(gè)處理器上,也可以分布式運(yùn)行在多個(gè)處理器上。在實(shí)際使用時(shí),這種松耦合的結(jié)構(gòu)設(shè)計(jì)可以讓開發(fā)者根據(jù)機(jī)器人所需功能靈活添加各個(gè)功能模塊。
ROS的不足
除了以上優(yōu)點(diǎn)外,ROS也存在一定的不足之處,比如,ROS因?yàn)閷⒐δ芊植荚诟鱾€(gè)節(jié)點(diǎn)之中,節(jié)點(diǎn)間基于消息機(jī)制通信,通訊部分消耗了很多系統(tǒng)資源。尤其是當(dāng)所有節(jié)點(diǎn)位于同一個(gè)處理器時(shí),ROS仍然一直執(zhí)行相應(yīng)的消息分發(fā),節(jié)點(diǎn)間的數(shù)據(jù)傳遞通過內(nèi)存復(fù)制,大量的系統(tǒng)資源都浪費(fèi)在通訊上,使得系統(tǒng)必須選用高性能的處理器和存儲(chǔ)系統(tǒng)以彌補(bǔ)損耗。換句話說,利用ROS來實(shí)現(xiàn)SLAM,需要配備性能優(yōu)越的硬件設(shè)備,這對(duì)于一些小型化嵌入式平臺(tái),尤其是實(shí)際的機(jī)器人產(chǎn)品里,其對(duì)計(jì)算資源、存儲(chǔ)空間的消耗會(huì)使成本大幅上升。
除了ROS本身系統(tǒng)設(shè)計(jì)的局限性外,利用ROS實(shí)現(xiàn)SLAM需要深入的調(diào)整優(yōu)化,耗費(fèi)大量人力與時(shí)間成本。更為重要的是,針對(duì)具體的機(jī)器人產(chǎn)品,如掃地機(jī)器人,還需要獨(dú)特的貼邊清掃、折回清掃、多房間自主導(dǎo)航等功能,目前已有的ROS系統(tǒng),只能實(shí)現(xiàn)簡(jiǎn)單的建圖,無法滿足掃地機(jī)器人的實(shí)際需要。
除了ROS,在機(jī)器人商用化道路上,很多技術(shù)企業(yè)針對(duì)機(jī)器人定位導(dǎo)航也開發(fā)了對(duì)應(yīng)的產(chǎn)品,思嵐科技的SLAMWARE模塊化定位導(dǎo)航方案就是其中之一,將SLAM算法、導(dǎo)航、定位等功能集成在一個(gè)體積很小的模塊,并且提供了多平臺(tái)的SDK方便用戶使用。針對(duì)掃地機(jī)器人等具體領(lǐng)域應(yīng)用,思嵐科技也提供完整的解決方案,整合了其特有的貼邊清掃、往復(fù)式打掃、區(qū)域劃分、斷點(diǎn)續(xù)掃、自動(dòng)回充等功能,方便掃地機(jī)器人廠家進(jìn)行整合,不需要進(jìn)行二次開發(fā)。
ROS的出現(xiàn)加快了機(jī)器人產(chǎn)品原型設(shè)計(jì)及算法驗(yàn)證,為機(jī)器人研發(fā)提供了標(biāo)準(zhǔn)化的框架。但要做到真正的穩(wěn)定可靠性,選擇已有的成熟解決方案可以大大降低研發(fā)成本,快速獲得產(chǎn)品原型,搶占市場(chǎng)先機(jī)。
關(guān)鍵字:ROS,ROS是什么