認識移動機器人
本篇內容將幫助大家認識移動機器人與其開發中的重要框架——機器人操作系統。
首先我們先介紹一種在我們身邊最為常見的移動機器人——掃地機器人。
掃地機器人作為目前出貨量最大的一種移動機器人類型,已成為一種比較常見的家用電器,相信大家在生活當中也一定見到過。
目前中高端的掃地機器人已經裝備了激光雷達、相機、超聲波、紅外等多種傳感器,集成SLAM、路徑規劃、多傳感器融合等眾多算法,確保在家庭復雜的環境中依然可以高效的完成掃地、拖地等功能。
這樣一個小小的掃地機器人,就是一個典型的移動機器人系統,我們將從這里展開,正式開始移動機器人原理與應用的學習。
1.1.1 移動機器人發展現狀
機器人誕生之后,首先在工業領域得到了廣泛的應用,隨著大范圍移動的需求,移動機器人這一分支也逐漸產生。時至今日,移動機器人已經在眾多領域得以應用,我們先通過兩個場景案例來直觀感受下目前移動機器人的發展現狀。
工業移動機器人,也就是我們常說的AGV和AMR(AGV:Automated Guided Vehicle,自動導引運輸車 ;AMR:Autonomous Moblile Robot,自主移動機器人),是目前移動機器人應用非常廣泛的一個方向,可能在我們的生活當中并不常見,但卻和每一個人都息息相關,比如電商會利用AMR構建智能化倉庫;在快遞公司的倉庫中,包裹也是被類似的機器人快速分揀到去往不同目的地的傳送帶上;還比如一些生產電子產品的工廠,也可以利用類似的移動機器人,替代原本需要很多人才能完成的物料搬運工作。
?
如果大家覺得工業場景距離我們生活稍遠,那么接下來我們就再舉一個離我們生活很近的場景——自動駕駛。
自動駕駛汽車也是一種典型的移動機器人系統,為了保證絕對安全的駕駛過程,汽車上裝配了非常多的傳感器,以及極為復雜的控制算法。
以上,我們就先通過這兩個場景案例來初步認識一下移動機器人。
移動機器人的概念
移動機器人的概念非常廣泛,自動駕駛汽車、無人機、水下機器人等各種位置可變的機器人都可以算作是“移動機器人”,在這里我們先劃分一下界限,本書所講的“移動機器人”概念,主要指地面上的移動機器人。
移動機器人:是一個集環境感知、動態決策與規劃、行為控制與執行等多功能于一體的綜合系統。
熱點研究領域:環境感知與建模、定位與導航、環境理解、多機器人協同、人機交互等。
移動機器人的發展趨勢
發展趨勢:
視覺SLAM,實現多傳感器融合;
深度學習,加強機器人對環境的理解;
多機協作,機器人規模化集群作業;
數字孿生,針對智能制造的全生命跟蹤;
人機共存,提高生活便捷性,釋放勞動力;
…
移動機器人市場發展情況
接下來我們通過工業移動機器人近幾年的銷量來看一下應用市場的增長情況。
圖1-4 2018-2020全球工業移動機器人市場規模情況(左)
圖1-5 2018-2020全球工業移動機器人市場分產品銷售情況(右)
如圖1-4所示,2018-2020年,全球工業移動機器人銷售數量和金額逐年增長;從平均銷售收入來看,2018-2020年呈現逐年遞減的態勢,這說明隨著市場和技術日益完善,產品單價在逐漸下降。
如圖1-5所示,從銷售的機器人產品結構來看,主要是由AGV和AMR組成,AGV是自動引導車,AMR是自主移動機器人,具備更高的智能化水平;從占比變化趨勢來看,AMR銷售規模增長較快。隨著機器人智能化算法的成熟與商業落地,AMR還有進一步的增長空間。對制造業柔性的需求、加快產品上市周期、降低成本以及對提高安全性等需求因素,將驅動AMR市場保持高速增長,全球移動機器人中對AMR的需求、收入和銷售額預計很快也會超過AGV。
不過,對于越來越復雜的機器人系統,已經不是一個人或者一個團隊可以獨立完成的了,如何高效開發機器人,是技術層面上非常重要的一個問題,針對這個問題,2007年一群斯坦福大學的有志青年嘗試給出一個答案,那就是機器人操作系統。
1.1.2 機器人操作系統發展與現狀
移動機器人操作系統(ROS)
機器人操作系統,Robot Operating System ,簡稱ROS,歷經十幾年的發展,已經成為機器人開發中的普遍標準,那么這樣一個軟件系統,是如何誕生與發展的呢,接下來我們一起來學習機器人操作系統的發展與現狀。
2007年,一群在斯坦福大學求學的年輕人,誕生了這樣一個想法,我們有沒有可能做一款個人服務機器人,幫助我們完成洗衣做飯收拾家務等一切我們不想做的事情,甚至還可以在我們無聊的時候,陪我們聊天玩耍。最后,他們真的做出來了。
當時,他們深知做出這樣一款機器人并不容易,機械、電路、軟件等都要涉及,而且橫跨很多個專業,他們自己肯定是做不到的,此時他們誕生了這樣一個想法:既然自己做不到,那為什么不聯合所有人一起干呢?如果我們設計一套標準的機器人平臺和其中的軟件,那豈不是可以讓所有人都在這樣一個平臺上做應用開發了么,因為應用軟件都基于統一的平臺,所以我們都有機會共享其他人開發的應用。
說干就干,初期的機器人原型是用實驗室可以找到的木頭和一些零部件組成的,后期有了充足的資金,才得以實現如圖1-7中這款外觀精致、性能強悍的機器人——PR2,Personal Robot 2代。
?
PR2這款機器人中的軟件框架就是我們現在看到ROS的原型,所以ROS因這款個人服務機器人而生,很快也從中獨立出來,成為了一款用于更多機器人的軟件系統。
如圖1-8所示,這是ROS發展歷程中一些重要的時間點。
圖1-8 ROS發展歷程
從這條ROS發展的時間軸中,我們不僅可以了解到ROS的發展過程,更重要的是熟悉ROS誕生的原因,以及對之后發展的影響。目前ROS已經在眾多機器人中廣泛應用,無論是我們平時開發所使用的機器人,還是實際場景中真正運行的機器人。
?
時至今日,ROS已經廣泛用于各種機器人的開發,無論是機械臂、移動機器人、水下機器人,還是人形機器人、復合機器人,統統都可以看到ROS的身影,可以說ROS已經成為機器人領域的普遍標準,如果我們想要開發一款機器人,也可以參考鏈接http://robots.ros.org中所列出的所有型號,大部分機器人在ROS中的軟件都是開源的,這些都可以作為我們開發過程中的重要參考。
?
歷經了十幾年的發展,接下來我們來看下ROS社區活躍度的情況。
ROS全球社區有幾個重要網站:
第一個是answers.ros.org,這是一個ROS問答網站,大家可以在這個網站上提出任何關于ROS的問題,全球很多開發者都很樂意回答我們的問題;第二個是wiki.ros.org,這是ROS的維基百科,記錄了ROS教程和各種功能包的使用;第三個是discourse.ros.org,這是ROS論壇,關于ROS開發的新鮮事都可以在這里發表和查看,比如ROS的活動、新功能包的發布等等,以上就是我們常用到的三個網站。
另外兩個網站,index.ros.org是ROS各種資源的一個索引網站,packages.ros.org是ROS功能包存儲的數據庫,大家有興趣也可以看一下。
這幾個網站的使用情況基本就可以代表ROS社區的活躍度了。
圖 ROS社區活躍情況
圖 ROS功能包下載次數統計地域排名
總而言之,通過這些數據,我們可以看到ROS發展迅猛,正在助推機器人革命這一波大浪潮,大家每一個人在其中都大有可為。
有人之前可能用過ROS或者聽說過ROS2,在這里我們也簡單介紹下ROS2,基于之前我們所提到的ROS誕生的原因,ROS2也應運而生,ROS2在2014年提出,2015年開始迭代,2017年推出第一個正式版,此后也在積極的推進。
與ROS1不同的是,ROS2誕生的目的就是為了讓更多機器人使用,所以在設計上更加符合技術的發展方向,也運用了很多最近的技術框架。從設計目標上來講,ROS2會著重支持以下5個方面:
比如支持多機器人協同控制,這在ROS1中是沒有成熟的控制方法的;鏟除原型與產品之間的鴻溝,也就是提高ROS自身的穩定性,讓ROS可以直接用于產品;支持微控制器,不論是筆記本電腦還是嵌入式系統,都可以使用ROS;支持實時控制,在某些對實時性要求比較高的底層控制方面,增加了更多保障機制;跨平臺支持,Linux、windows、MacOS都可以使用。這五點都是在目前的ROS1當中存在缺陷的地方。
但是ROS2目前還處于快速迭代當中,很多功能還不穩定,資料也比較匱乏,所以本系列內容依然以ROS1為主,只要大家熟悉ROS1之后,未來過渡到ROS2也會非常平滑,其中涉及到的眾多概念和編程方法都是類似的。
無論如何,ROS都是一個偏向“工具”性質的機器人軟件框架,實踐是至關重要的,希望大家可以跟隨我們的書本內容,加強實際操作的鍛煉,這樣才能掌握這個重要的開發工具。
審核編輯:黃飛
?
評論
查看更多