認識移動機器人
本篇內(nèi)容將幫助大家認識移動機器人與其開發(fā)中的重要框架——機器人操作系統(tǒng)。
首先我們先介紹一種在我們身邊最為常見的移動機器人——掃地機器人。
掃地機器人作為目前出貨量最大的一種移動機器人類型,已成為一種比較常見的家用電器,相信大家在生活當(dāng)中也一定見到過。
目前中高端的掃地機器人已經(jīng)裝備了激光雷達、相機、超聲波、紅外等多種傳感器,集成SLAM、路徑規(guī)劃、多傳感器融合等眾多算法,確保在家庭復(fù)雜的環(huán)境中依然可以高效的完成掃地、拖地等功能。
這樣一個小小的掃地機器人,就是一個典型的移動機器人系統(tǒng),我們將從這里展開,正式開始移動機器人原理與應(yīng)用的學(xué)習(xí)。
1.1.1 移動機器人發(fā)展現(xiàn)狀
機器人誕生之后,首先在工業(yè)領(lǐng)域得到了廣泛的應(yīng)用,隨著大范圍移動的需求,移動機器人這一分支也逐漸產(chǎn)生。時至今日,移動機器人已經(jīng)在眾多領(lǐng)域得以應(yīng)用,我們先通過兩個場景案例來直觀感受下目前移動機器人的發(fā)展現(xiàn)狀。
工業(yè)移動機器人,也就是我們常說的AGV和AMR(AGV:Automated Guided Vehicle,自動導(dǎo)引運輸車 ;AMR:Autonomous Moblile Robot,自主移動機器人),是目前移動機器人應(yīng)用非常廣泛的一個方向,可能在我們的生活當(dāng)中并不常見,但卻和每一個人都息息相關(guān),比如電商會利用AMR構(gòu)建智能化倉庫;在快遞公司的倉庫中,包裹也是被類似的機器人快速分揀到去往不同目的地的傳送帶上;還比如一些生產(chǎn)電子產(chǎn)品的工廠,也可以利用類似的移動機器人,替代原本需要很多人才能完成的物料搬運工作。
?
如果大家覺得工業(yè)場景距離我們生活稍遠,那么接下來我們就再舉一個離我們生活很近的場景——自動駕駛。
自動駕駛汽車也是一種典型的移動機器人系統(tǒng),為了保證絕對安全的駕駛過程,汽車上裝配了非常多的傳感器,以及極為復(fù)雜的控制算法。
以上,我們就先通過這兩個場景案例來初步認識一下移動機器人。
移動機器人的概念
移動機器人的概念非常廣泛,自動駕駛汽車、無人機、水下機器人等各種位置可變的機器人都可以算作是“移動機器人”,在這里我們先劃分一下界限,本書所講的“移動機器人”概念,主要指地面上的移動機器人。
移動機器人:是一個集環(huán)境感知、動態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多功能于一體的綜合系統(tǒng)。
熱點研究領(lǐng)域:環(huán)境感知與建模、定位與導(dǎo)航、環(huán)境理解、多機器人協(xié)同、人機交互等。
移動機器人的發(fā)展趨勢
發(fā)展趨勢:
視覺SLAM,實現(xiàn)多傳感器融合;
深度學(xué)習(xí),加強機器人對環(huán)境的理解;
多機協(xié)作,機器人規(guī)模化集群作業(yè);
數(shù)字孿生,針對智能制造的全生命跟蹤;
人機共存,提高生活便捷性,釋放勞動力;
…
移動機器人市場發(fā)展情況
接下來我們通過工業(yè)移動機器人近幾年的銷量來看一下應(yīng)用市場的增長情況。


圖1-4 2018-2020全球工業(yè)移動機器人市場規(guī)模情況(左)
圖1-5 2018-2020全球工業(yè)移動機器人市場分產(chǎn)品銷售情況(右)
如圖1-4所示,2018-2020年,全球工業(yè)移動機器人銷售數(shù)量和金額逐年增長;從平均銷售收入來看,2018-2020年呈現(xiàn)逐年遞減的態(tài)勢,這說明隨著市場和技術(shù)日益完善,產(chǎn)品單價在逐漸下降。
如圖1-5所示,從銷售的機器人產(chǎn)品結(jié)構(gòu)來看,主要是由AGV和AMR組成,AGV是自動引導(dǎo)車,AMR是自主移動機器人,具備更高的智能化水平;從占比變化趨勢來看,AMR銷售規(guī)模增長較快。隨著機器人智能化算法的成熟與商業(yè)落地,AMR還有進一步的增長空間。對制造業(yè)柔性的需求、加快產(chǎn)品上市周期、降低成本以及對提高安全性等需求因素,將驅(qū)動AMR市場保持高速增長,全球移動機器人中對AMR的需求、收入和銷售額預(yù)計很快也會超過AGV。
不過,對于越來越復(fù)雜的機器人系統(tǒng),已經(jīng)不是一個人或者一個團隊可以獨立完成的了,如何高效開發(fā)機器人,是技術(shù)層面上非常重要的一個問題,針對這個問題,2007年一群斯坦福大學(xué)的有志青年嘗試給出一個答案,那就是機器人操作系統(tǒng)。
1.1.2 機器人操作系統(tǒng)發(fā)展與現(xiàn)狀
移動機器人操作系統(tǒng)(ROS)
機器人操作系統(tǒng),Robot Operating System ,簡稱ROS,歷經(jīng)十幾年的發(fā)展,已經(jīng)成為機器人開發(fā)中的普遍標(biāo)準,那么這樣一個軟件系統(tǒng),是如何誕生與發(fā)展的呢,接下來我們一起來學(xué)習(xí)機器人操作系統(tǒng)的發(fā)展與現(xiàn)狀。
2007年,一群在斯坦福大學(xué)求學(xué)的年輕人,誕生了這樣一個想法,我們有沒有可能做一款個人服務(wù)機器人,幫助我們完成洗衣做飯收拾家務(wù)等一切我們不想做的事情,甚至還可以在我們無聊的時候,陪我們聊天玩耍。最后,他們真的做出來了。
當(dāng)時,他們深知做出這樣一款機器人并不容易,機械、電路、軟件等都要涉及,而且橫跨很多個專業(yè),他們自己肯定是做不到的,此時他們誕生了這樣一個想法:既然自己做不到,那為什么不聯(lián)合所有人一起干呢?如果我們設(shè)計一套標(biāo)準的機器人平臺和其中的軟件,那豈不是可以讓所有人都在這樣一個平臺上做應(yīng)用開發(fā)了么,因為應(yīng)用軟件都基于統(tǒng)一的平臺,所以我們都有機會共享其他人開發(fā)的應(yīng)用。
說干就干,初期的機器人原型是用實驗室可以找到的木頭和一些零部件組成的,后期有了充足的資金,才得以實現(xiàn)如圖1-7中這款外觀精致、性能強悍的機器人——PR2,Personal Robot 2代。
?
PR2這款機器人中的軟件框架就是我們現(xiàn)在看到ROS的原型,所以ROS因這款個人服務(wù)機器人而生,很快也從中獨立出來,成為了一款用于更多機器人的軟件系統(tǒng)。
如圖1-8所示,這是ROS發(fā)展歷程中一些重要的時間點。

圖1-8 ROS發(fā)展歷程
從這條ROS發(fā)展的時間軸中,我們不僅可以了解到ROS的發(fā)展過程,更重要的是熟悉ROS誕生的原因,以及對之后發(fā)展的影響。目前ROS已經(jīng)在眾多機器人中廣泛應(yīng)用,無論是我們平時開發(fā)所使用的機器人,還是實際場景中真正運行的機器人。
?
時至今日,ROS已經(jīng)廣泛用于各種機器人的開發(fā),無論是機械臂、移動機器人、水下機器人,還是人形機器人、復(fù)合機器人,統(tǒng)統(tǒng)都可以看到ROS的身影,可以說ROS已經(jīng)成為機器人領(lǐng)域的普遍標(biāo)準,如果我們想要開發(fā)一款機器人,也可以參考鏈接http://robots.ros.org中所列出的所有型號,大部分機器人在ROS中的軟件都是開源的,這些都可以作為我們開發(fā)過程中的重要參考。
?
歷經(jīng)了十幾年的發(fā)展,接下來我們來看下ROS社區(qū)活躍度的情況。
ROS全球社區(qū)有幾個重要網(wǎng)站:
第一個是answers.ros.org,這是一個ROS問答網(wǎng)站,大家可以在這個網(wǎng)站上提出任何關(guān)于ROS的問題,全球很多開發(fā)者都很樂意回答我們的問題;第二個是wiki.ros.org,這是ROS的維基百科,記錄了ROS教程和各種功能包的使用;第三個是discourse.ros.org,這是ROS論壇,關(guān)于ROS開發(fā)的新鮮事都可以在這里發(fā)表和查看,比如ROS的活動、新功能包的發(fā)布等等,以上就是我們常用到的三個網(wǎng)站。
另外兩個網(wǎng)站,index.ros.org是ROS各種資源的一個索引網(wǎng)站,packages.ros.org是ROS功能包存儲的數(shù)據(jù)庫,大家有興趣也可以看一下。
這幾個網(wǎng)站的使用情況基本就可以代表ROS社區(qū)的活躍度了。

圖 ROS社區(qū)活躍情況

圖 ROS功能包下載次數(shù)統(tǒng)計地域排名
總而言之,通過這些數(shù)據(jù),我們可以看到ROS發(fā)展迅猛,正在助推機器人革命這一波大浪潮,大家每一個人在其中都大有可為。
有人之前可能用過ROS或者聽說過ROS2,在這里我們也簡單介紹下ROS2,基于之前我們所提到的ROS誕生的原因,ROS2也應(yīng)運而生,ROS2在2014年提出,2015年開始迭代,2017年推出第一個正式版,此后也在積極的推進。

與ROS1不同的是,ROS2誕生的目的就是為了讓更多機器人使用,所以在設(shè)計上更加符合技術(shù)的發(fā)展方向,也運用了很多最近的技術(shù)框架。從設(shè)計目標(biāo)上來講,ROS2會著重支持以下5個方面:
比如支持多機器人協(xié)同控制,這在ROS1中是沒有成熟的控制方法的;鏟除原型與產(chǎn)品之間的鴻溝,也就是提高ROS自身的穩(wěn)定性,讓ROS可以直接用于產(chǎn)品;支持微控制器,不論是筆記本電腦還是嵌入式系統(tǒng),都可以使用ROS;支持實時控制,在某些對實時性要求比較高的底層控制方面,增加了更多保障機制;跨平臺支持,Linux、windows、MacOS都可以使用。這五點都是在目前的ROS1當(dāng)中存在缺陷的地方。
但是ROS2目前還處于快速迭代當(dāng)中,很多功能還不穩(wěn)定,資料也比較匱乏,所以本系列內(nèi)容依然以ROS1為主,只要大家熟悉ROS1之后,未來過渡到ROS2也會非常平滑,其中涉及到的眾多概念和編程方法都是類似的。
無論如何,ROS都是一個偏向“工具”性質(zhì)的機器人軟件框架,實踐是至關(guān)重要的,希望大家可以跟隨我們的書本內(nèi)容,加強實際操作的鍛煉,這樣才能掌握這個重要的開發(fā)工具。
審核編輯:黃飛
?
電子發(fā)燒友App




















評論