機器人越來越火,我們來談談它的那些「ROS龜」們

2020-12-01 雷鋒網

今年8月,雷鋒網(公眾號:雷鋒網)將在深圳舉辦一場盛況空前有全球影響力的人工智慧與機器人創新大會。屆時雷鋒網將發布「人工智慧&機器人Top25創新企業榜」榜單。目前,我們正在拜訪人工智慧、機器人領域的相關公司,從中篩選最終入選榜單的公司名單。如果你也想加入我們的榜單之中,請聯繫:2020@leiphone.com。

雷鋒網按:本文作者張玉坤/劉偉,來自北郵人機與認知實驗室(公號:人機與認知實驗室)。

ROS為Robot Operating System(機器人作業系統)的簡寫,是一個面向機器人的開源元作業系統(open-source,meta-operating system)。它能夠提供類似傳統作業系統的諸多功能,如硬體抽象、底層設備控制、進程間消息傳遞和程序包管理等。此外,它還提供相關工具和庫,用於獲取、編譯、編輯代碼以及在多個計算機之間運行程序完成分布式計算。ROS的運行架構是一種使用ROS通信模塊實現模塊間P2P的鬆耦合的網絡連接的處理架構,它執行若干種類型的通訊,包括基於服務的同步RPC(遠程過程調用)通訊、基於Topic的異步數據流通訊,還有參數伺服器上的數據存儲。

歷史

ROS起源於2007年前後史丹福大學人工智慧實驗室的STAIR(Stanford Artificial Intelligence Robot)項目與Willow Garage公司的個人機器人項目(Personal Robotics project)之間的合作。在2009年初推出了ROS0.4,現在所用系統的框架在這個版本中已初具雛形。經過近一年的測試後,於2010年初推出了ROS1.0版,並在當年三月份推出了正式發行版本:ROS Box Turtle,到現在(2016年5月)已經發行了10個版本,最新版本是ROS Kinetic Kame。比較有趣的是,ROS各版本均以龜作為發行代號,至今已設計出10種造型奇特的「ROS龜」。

從2008年至2013年,ROS主要由Willow Garage公司管理維護,但這並不意味著ROS是封閉的系統,相反,它是由眾多學校及科研機構聯合開發及維護的,這種聯合開發模式也為ROS系統生態的構建與壯大帶來有力的促進。

2013年,Willow Garage公司被Suitable Technologies公司收購,此前幾個月,ROS的開發和維護管理工作被移交給了新成立的開源基金會 Open Source Robotics Foundation。

ROS系統有什麼特點?

ROS的主要目標是為機器人研究和開發提供代碼復用的支持。ROS是一個分布式的進程(即「節點」)框架,這些進程被封裝在易於被分享和發布的程序包和功能包中。ROS也支持一種類似於代碼儲存庫的聯合系統,這個系統也可以實現工程的協作及發布。可以使一個工程的開發和實現從文件系統到用戶接口完全獨立決策(不受ROS限制)。同時,所有的工程都可以被ROS的基礎工具整合在一起。

ROS在某些程度上和其他常見的機器人架構有些相似之處,如:Player、Orocos、CARMEN、Orca和Microsoft Robotics Studio。對於簡單的無機械手的移動平臺來說,Player是非常不錯的選擇。ROS則不同,它被設計為適用於有機械臂和運動傳感器的移動平臺(傾角雷射、雲臺、機械臂傳感器)。與Player相比,ROS更有利於分布式計算環境。當然,Player 提供了較多的硬體驅動程序,ROS則在高層架構上提供了更多的算法應用(如集成OpenCV的視覺算法)。

ROS的主要特點可以歸納為以下幾條:

(1)點對點設計

ROS通過點對點設計以及服務和節點管理器等機制可以分散由於計算機視覺和語音識別等功能帶來的實時計算壓力,這種設計能適應服務機器人遇到的調戰。

(2)不依賴程式語言

ROS支持多種現代高級程式語言,C++、Python和Lisp語言已經在ROS中實現編譯,並得到應用,Octave和Java的測試庫也已經實現。為了支持多語言編程,ROS採用了一種語言中立的接口定義語言(language-neutral interface definition language,IDL )來實現各模塊之間的消息傳送。

(3)精簡與集成

ROS建立的系統具有模塊化的特點,各模塊中的代碼可以單獨編譯,而且編譯使用的CMake工具使它很容易的就實現精簡的理念。ROS基本將複雜的代碼封裝在庫裡,只是創建了一些小的應用程式為ROS顯示庫的功能,這就允許了對簡單的代碼超越原型進行移植和重新使用。作為一種新加入的有優勢,單元測試當代碼在庫中分散後也變得非常的容易,一個單獨的測試程序可以測試庫中很多的特點。

ROS不修改用戶的主函數,所以代碼可以被其他的機器人軟體使用。其優點是ROS很容易和其他的機器人軟體平臺集成。例如,在計算機視覺方面,ROS已經與OpenCV實現集成。在驅動、導航和模擬器方面,ROS已經與Player系統實現集成。在規划算法方面,ROS也已與OpenAVE系統實現集成。

(4)便於測試

為機器人開發軟體比其他軟體開發更具挑戰性,主要是因為調試準備時間長,且調試過程複雜。況且,因為硬體維修、經費有限等因素,不一定隨時有機器人可供使用。ROS提供兩種策略來解決上述問題。 

1.精心設計的ROS系統框架將底層硬體控制模塊和頂層數據處理與決策模塊分離,從而可以使用模擬器替代底層硬體模塊,獨立測試頂層部分,提高測試效率。 

2.ROS另外提供了一種簡單的方法可以在調試過程中記錄傳感器數據及其他類型的消息數據,並在試驗後按時間戳回放。通過這種方式,每次運行機器人可以獲得更多的測試機會。例如,可以記錄傳感器的數據,並通過多次回放測試不同的數據處理算法

(5)開源

ROS遵從BSD協議,這給了使用者很大的自由,使開發者可以清楚的查看、自由的使用原始碼,如果有需要,可以根據不同的系統及硬體環境對原始碼進行修改,或者進行二次開發。

(6)強大的庫及社區:

ROS提供了廣泛的庫文件實現以機動性、操作控制、感知為主的機器人功能。同時由於其開源特性,ROS的支持與發展依託著一個強大的社區。其官方網站尤其關注兼容性和支持文檔,提供了一套「一站式」的方案使得用戶得以搜索並學習來自全球開發者數以千計的ROS程序包。

小結

隨著技術的發展及人們需求的提高,機器人集成了越來越多的功能、傳感器,對用戶來說這越來越方便,但對開發者來說恰恰相反,功能的增加帶來開發與集成難度迅速上升,機器人作業系統的出現有效緩解了這種問題。

從計算機和智慧型手機的發展過程來看,合適與成熟的作業系統是智慧機器人行業大規模發展和在人們的生活中普及的必要條件。可以預見,未來幾年將會出現眾多機器人作業系統,在經過充分的發展競爭後將會有為數不多的幾個作業系統會發展壯大並佔據絕大部分市場,就像曾經的計算機作業系統和現在的手機作業系統。

【附】:ROS方面的一些參考資料:

1.《開源機器人作業系統——ROS》(張建偉等編)

2.《機器人作業系統(ROS)淺析》( Jason M. O'Kane著) 

3.《Learning ROS for Robotics Programming》(Aaron Martinez等著)

4.《ROS By Example》(Patrick Goebel著)

5. ROS官方wiki

註:轉載請聯繫授權並保留完整信息,不得刪減、修改文章。

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 機器人課程系列:如何安裝ROS(Robot Operating System,機器人操作...
    它是一個開源的元級作業系統(後作業系統),提供類似於作業系統的服務,包括硬體抽象描述、底層驅動程序管理、共享功能的執行、程序間消息傳遞、程序發行包管理,它也提供一些工具和庫用於獲取、建立、編寫和執行多機融合的程序。之前的課程裡分享了很多機器人的專案,很多夥伴也都有做各種不同的機器人,例如:雙足機器人、教育型機器人或是Arduino的關節型機器人。
  • 機器人作業系統從ROS升級到ROS2 部署不再是難題
    過去十年來,已經圍繞ROS建立了一個龐大的生態系統,並且它使參與機器人研究的人,特別是那些研究人員和在學術領域的人,能夠構建、共享、協作構建機器人所必須的軟體組件。某些情況下,這些軟體組件級別很低,像傳感器、攝像頭等接口。某些情況下,他們有更高級的功能,比如導航或者運動規劃。
  • 2019年全球十大基於ROS的機器人公司
    機器人作業系統正在成為機器人領域的標準,不僅用於機器人研究,還用於製造和銷售機器人的機器人公司。在本文中,我列出了基於ROS的全球十大機器人公司。這些機器人公司的機器人天生就能運行ROS。這意味著,一打開機器人,它正在運行ROS。
  • 機器人作業系統 ROS | 工業百條
    同時wiki.ros.org 網站的編輯和瀏覽量也上漲了30%。圖1展示了可應用於不同場景的軟體包逐年下載數量的變化。這些機器人不光用在傳統的研究和學術領域,同時在一些創業公司中也可以發現它們的身影:  (1)美國國家航空航天局(NASA):作為太空和航天領域的關鍵參與者,它選擇用廉價和方便的ROS 來開發它的「Swarmie」項目。在這個致力於未來火星任務的關鍵項目中,NASA 在基於ROS 的簡單機器人上模擬螞蟻的協作行為。
  • 世界地球日,我們來談談世界上那些有趣的動物們
    Our Planet《我們的星球》明天,4月22日,就是世界地球日了,不如我們也應景地來談談世界上那些有趣的動物們。Netflix最新的動物紀錄片《我們的星球》,再次被各大媒體譽為又一「神作」,豆瓣評分也高達9.8,甚至超越去年BBC裡程碑式的傑作《王朝》。據說這部節目,耗時整整4年,超過600名工作人員、花費3500多個拍攝日,走遍全球各大洲的50多個國家/地區,才有了這樣一檔捕獲地球生物奇蹟的作品。今天,我們不妨來一次「解構奇蹟」。
  • ROS 2 Crystal Clemmys版本上線,歡迎廣大工程師試用並反饋
    項目團隊歡迎工程師們閱讀安裝說明和教程(https://index.ros.org/doc/ros2/),開始體驗Crystal Clemmys。ROS 2版本發展迅速,Crystal Clemmys的發布意味著我們即將告別Ardent Apalone,同時還將收回191個文件包,首次發布的Crystal版本有297個文件包。
  • 那些國外來的「進口龜」,現在都混成啥樣了?
    巴西龜,這個不用再多介紹了,肯定不是咱的本土物種,聞名全球的。巴西龜最初是從美洲進口的。由於其強大的繁殖,現在不僅是數量龐大,也更是走進了大街小巷,各大市場,隨處可見巴西的蹤跡。論身價的話,可以說巴西的地位是很低的了,還有哪個品種比它更便宜嗎?巴西算是混得不行了,可是它的親戚和它的改良版目前都還行,不過也有高低層次之分了。論身價的話,還是那些變異個體會高,焦糖、雪粉也仍是比較高的價位。另外,像地圖、錦龜、火焰等等,雖然身價各不相同,但是受眾面積還是很廣的。
  • 人類越來越強,機器人甘願落後?來看看這些實力強大的機器人吧!
    哈嘍各位小夥伴們大家好,我是你們的老朋友小智,在現在的動漫中,各路反派們已經攔不住作為人類的主角們變強了。而且這些年以來,有關機器人的動漫越來越少,那些喜歡機甲的熱血宅男們都找不到自己喜歡的動漫了。今天,小智就來帶大家看一看那些在動漫中實力強大的機器人。
  • 嵌入式的我們為什麼要學ROS
    它是一個開源的元級作業系統(後作業系統),提供類似於作業系統的服務,包括硬體抽象描述、底層驅動程序管理、共用功能的執行、程序間消息傳遞、程序發行包管理,它也提供一些工具和庫用於獲取、建立、編寫和執行多機融合的程序。
  • 遊戲那些事:談談《輻射4》中的敵人:機器人篇
    ,去誘騙那些對美好生活充滿嚮往的傻瓜掉進英克雷的死亡陷阱。眼球機是《輻射》系列遊戲世界觀中最大的機器人生產廠商羅科科技的產品,它的主要功能是進行宣傳任務,當然為了阻止某些不法之徒盜取這些傢伙,羅科還給它加裝了鐳射武器。總之這玩意兒很容易就能被幹掉,在廢土上算不上什麼難對付的敵人。
  • 物理學科知識:談談牛頓前面的那些巨人們
    物理學科知識:談談牛頓前面的那些巨人們偉大的物理學家、數學家牛頓曾說過:「如果說我看得遠,那是因為我站在巨人們的肩上」,這並不是什麼謙虛之詞,它真實反映了物理學不斷向前發展的艱辛過程,任何一個物理規律、定理都不是一蹴而就的,牛頓不可能因為一個蘋果砸到腦袋上就發現了萬有引力定律,今天就讓我們談一談牛頓前面的那些巨人們。
  • 如何利用ROS MoveIt快速搭建機器人運動規劃平臺?
    用MoveIt官網(moveit.ros.org)的說法: 它是目前最先進的移動(坑)操作機器人軟體,整合了最先進的運動規劃、操作、3D感知、運動學、控制與導航算法。為這方面的開發人員提供了一個十分便利的開發平臺。 這個說法不太直觀,換個說法就是MoveIt = RobotGo,翻譯成中文就是「機器人,走你!」
  • 如何利用ROSMoveIt快速搭建機器人運動規劃平臺?
    用MoveIt官網(moveit.ros.org)的說法:它是目前最先進的移動(坑)操作機器人軟體,整合了最先進的運動規劃、操作、3D感知、運動學、控制與導航算法。為這方面的開發人員提供了一個十分便利的開發平臺。這個說法不太直觀,換個說法就是MoveIt = RobotGo,翻譯成中文就是「機器人,走你!」
  • 記憶中收藏的經典:那些年我們追過的機器人動畫片
    看動畫片是所有小孩子們的一大樂趣,而對於小男孩們來講,各種機甲機體更是讓人心之神往,當年的那些小孩子們都長大了,但是歲月中的經典依然讓人無法忘懷,這次就來和大家一同細數一些印象中的記憶經典,如有遺漏之處還希望小夥伴們多多補充。
  • 那些記憶中的巴西臉龜類,還有哪個在受你寵愛?
    龜界中一大家族,巴西臉!它的族群可不少啊,其中以密西西比紅耳龜最為牛逼,泛濫全球,位於龜界頂端。它的親戚繁多,大家都長著差不多的臉龐,所以我們都親切地稱之為:巴西臉。早年時候,除了我們的國龜草龜、花龜(黃喉都還蠻貴的以前)外,也就巴西臉更多的走進千家萬戶了。細數一下現在市場上常見的巴西臉有:紅耳、黃耳、火焰、地圖、東西南錦、格蘭德、甜甜圈、阿拉巴馬等等,這些是市場常見的。當然,真正的巴西臉家族遠遠不止這些,像亞馬遜彩龜,各種彩龜都可以算是,這就太多了。我們也是先回憶一下這些常見的吧。
  • 家庭養龜的一些禁忌:家養龜我們應該注意的事兒
    而且烏龜是屬水的,我們又常說女人是水做的動物,兩者相衝在風水上也是很忌諱的。②烏龜不是恆溫動物,它與蛇一樣屬於冷血動物,喜歡陰暗潮溼的環境,養烏龜久了之後,家中也會出現潮溼陰氣較重的情況,即便是不將烏龜放在水中養,在家中到處爬也會讓陰溼的體質影響家中的環境。
  • 龜之魅力,常見龜龜大盤點,總有你喜歡的!
    龜之魅力想必各位龜友都已是十分清楚,每個人心中都有自己對美的定義和詮釋。正如世界上沒有兩片相同的葉子一樣,世界上也不會有兩隻一模一樣的龜,所以我們每個人手上的龜都是獨一無二的,相信只有作為飼養者的你最能欣賞它的美了。今天小編和各位龜友一起來盤點一下我們平時常見的一些品種,相信總有「一款」是你鍾愛的。
  • 從安裝到做項目一步步教你ROS學習入門
    第一次接觸ROS是在瀋陽自動化所做項目的時候,那時候我才知道自己非常感興趣的機器人領域有一個叫做ROS(Robot Operating System)的平臺。仔細了解之後才知道ROS被機器人界看作是一套準標準平臺,很多人將其比作是手機界的安卓,電腦界的微軟。在我看來ROS最大的優點在於靈活、低耦合、分布式、開源以及功能強大而豐富的第三方功能包(類似於程式語言中的庫)。
  • 我們來科學的探討下烏龜的生殖器
    那些思想齷齪的各位可以速速退散了。在這篇文章裡,我們以科學的角度討論下烏龜的生殖器。而迫使我撰寫這篇文章的緣由也是因為最近很火的一張龜圖!(微信對圖片大小有限制,你們隨便感受下)雖說這玩意是龜的大事,但是貌似業界也沒多少人苦心研究啊。翻遍整個網絡也僅找到一篇2012年美國人對龜類生殖器的研究(美國人真厲害!)
  • 來看看動漫中那些黑科技的機器人
    現代科技的發展日新月異,人工智慧機器人遍地都是。它們能夠做到一些最基礎的交流的行為,但是與我們人類相比,還是差很多。而現實中無法實現的遺憾,在二次元中,則是充分彌補了。沒有現實的桎梏,各方作者大開腦洞,在作品中創造了各類黑科技機器人。