-
ros
(機器人操作系統)
鎖定
ros是機器人操作系統(Robot Operating System)的英文縮寫。ROS是用於編寫機器人軟件程序的一種具有高度靈活性的軟件架構。ROS的原型源自斯坦福大學的STanford Artificial Intelligence Robot (STAIR) 和 Personal Robotics (PR)項目。
[1]
- 中文名
- 機器人操作系統
- 外文名
- Robot Operating System
- 簡 稱
- ROS
- 性 質
- 機器人軟件平台
rosROS是什麼
ROS設計者將ROS表述為“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通訊機制、工具軟件包、機器人高層技能以及機器人生態系統的集合體
[2]
。
關於ROS是什麼,一些不同解釋如下:
ROS wiki的解釋
ROS(Robot Operating System,下文簡稱“ROS”)是一個適用於機器人的開源的元操作系統。它提供了操作系統應有的服務,包括硬件抽象,底層設備控制,常用函數的實現,進程間消息傳遞,以及包管理。它也提供用於獲取、編譯、編寫、和跨計算機運行代碼所需的工具和庫函數。
ROS 的主要目標是為機器人研究和開發提供代碼複用的支持。ROS是一個分佈式的進程(也就是“節點”)框架,這些進程被封裝在易於被分享和發佈的程序包和功能包中。ROS也支持一種類似於代碼儲存庫的聯合系統,這個系統也可以實現工程的協作及發佈。這個設計可以使一個工程的開發和實現從文件系統到用户接口完全獨立決策(不受ROS限制)。同時,所有的工程都可以被ROS的基礎工具整合在一起。
Brian Gerkey的網上留言
我通常這樣解釋ROS:
1. 通道:ROS提供了一種發佈-訂閲式的通信框架用以簡單、快速地構建分佈式計算系。
2. 工具:ROS提供了大量的工具組合用以配置、啓動、自檢、調試、可視化、登錄、測試、終止分佈式計算系統。
3. 強大的庫:ROS提供了廣泛的庫文件實現以機動性、操作控制、感知為主的機器人功能。
4. 生態系統:ROS的支持與發展依託着一個強大的社區。ros.org尤其關注兼容性和支持文檔,提供了一套“一站式”的方案使得用户得以搜索並學習來自全球開發者數以千計的ROS程序包。
摘自《ROS by Example》的解釋
ROS的首要目標是提供一套統一的開源程序框架,用以在多樣化的現實世界與仿真環境中實現對機器人的控制。
rosROS的歷史
ROS是一個由來已久、貢獻者眾多的大型軟件項目。在ROS誕生之前,很多學者認為,機器人研究需要一個開放式的協作框架,並且已經有不少類似的項目致力於實現這樣的框架。在這些工作中,斯坦福大學在2000年年中開展了一系列相關研究項目,如斯坦福人工智能機器人(STandford AI Robot, STAIR)項目、個人機器人(Personal Robots, PR)項目等,在上述項目中,在研究具有代表性、集成式人工智能系統的過程中,創立了用於室內場景的高靈活性、動態軟件系統,其可以用於機器人學研究。
2007年,柳樹車庫(Willow Garage)提供了大量資源,用於將斯坦福大學項目中的軟件系統進行擴展與完善,同時,在無數研究人員的共同努力下,ROS的核心思想和基本軟件包逐漸得到完善。
ros許可協議
ROS生態系統中的每個軟件包都需要指定一個許可協議:
- 由於ROS軟件包還包含大量社區軟件包,這些軟件包不一定使用BSD協議,而是使用其他某種許可協議,如Apache 2.0協議、GPL協議、MIT協議或自定義的某種協議。
ros主要發行版本
ROS的發行版本(ROS distribution)指ROS軟件包的版本,其與Linux的發行版本(如Ubuntu)的概念類似。推出ROS發行版本的目的在於使開發人員可以使用相對穩定的代碼庫,直到其準備好將所有內容進行版本升級為止。因此,每個發行版本推出後,ROS開發者通常僅對這一版本的bug進行修復,同時提供少量針對核心軟件包的改進。截至2019年10月,ROS的主要發行版本的版本名稱、發佈時間與版本生命週期如下表所示
[4]
:
版本名稱 | 發佈日期 | 版本生命週期 | 操作系統平台 |
---|---|---|---|
ROS Noetic Ninjemys | 2020年5月 | 2025年5月 | Ubuntu 20.04 |
ROS Melodic Morenia | 2018年5月23日 | 2023年5月 | Ubuntu 17.10, Ubuntu 18.04, Debian 9, Windows 10 |
ROS Lunar Loggerhead | 2017年5月23日 | 2019年5月 | Ubuntu 16.04, Ubuntu 16.10, Ubuntu 17.04,Debian 9 |
ROS Kinetic Kame | 2016年5月23日 | 2021年4月 | Ubuntu 15.10, Ubuntu 16.04, Debian 8 |
ROS Jade Turtle | 2015年5月23日 | 2017年5月 | Ubuntu 14.04, Ubuntu 14.10, Ubuntu 15.04 |
ROS Indigo Igloo | 2014年7月22日 | 2019年4月 | Ubuntu 13.04, Ubuntu 14.04 |
ROS Hydro Medusa | 2013年9月4日 | 2015年5月 | Ubuntu 12.04, Ubuntu 12.10, Ubuntu 13.04 |
ROS Groovy Galapagos | 2012年12月31日 | 2014年7月 | Ubuntu 11.10, Ubuntu 12.04, Ubuntu 12.10 |
ROS Fuerte Turtle | 2012年4月23日 | -- | Ubuntu 10.04, Ubuntu 11.10, Ubuntu 12.04 |
ROS Electric Emys | 2011年8月30日 | -- | Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04, Ubuntu 11.10 |
ROS Diamondback | 2011年3月2日 | -- | Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04 |
ROS C Turtle | 2010年8月2日 | -- | Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04, Ubuntu 10.10 |
ROS Box Turtle | 2010年3月2日 | -- | Ubuntu 8.04, Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04 |
ros主要功能
ROS提供一些標準操作系統服務,例如硬件抽象,底層設備控制,常用功能實現,進程間消息以及數據包管理。ROS是基於一種圖狀架構,從而不同節點的進程能接受,發佈,聚合各種信息(例如傳感,控制,狀態,規劃等等)。
ROS可以分成兩層,低層是上面描述的操作系統層,高層則是廣大用户羣貢獻的實現不同功能的各種軟件包,例如定位繪圖,行動規劃,感知,模擬等等。
- 參考資料
-
- 1. ROS.org | History .ROS.2007-09-01[引用日期2019-10-11]
- 2. About ROS .ROS.org.2019-10-11[引用日期2019-10-11]
- 3. The 3-Clause BSD License .Open Source Initiative.2019-01-01[引用日期2019-10-11]
- 4. Distributions - ROS Wiki .ROS.org.2019-06-26[引用日期2019-10-11]