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