共找到4條詞條名為ros的結果 展開

ros

機器人操作系統

ROS(Robot Operating System)是一個機器人軟體平台,它能為異質計算機集群提供類似操作系統的功能。ROS的前身是斯坦福人工智慧實驗室為了支持斯坦福智能機器人STAIR而建立的交換庭(switchyard)項目。到2008年,主要由威樓加拉吉繼續該項目的研發。

系統介紹


ROS---(Robot Operating System)是一個機器人軟體平台,它能為異質計算機集群提供類似操作系統的功 能。
ROS提供一些標準操作系統服務,例如硬體抽象,底層設備控制,常用功能實現,進程間消息以及數據包管理。ROS是基於一種圖狀架構,從而不同節點的進程能接受,發布,聚合各種信息(例如感測,控制,狀態,規劃等等)。目前ROS主要支持Ubuntu。
ROS可以分成兩層,低層是上面描述的操作系統層,高層則是廣大用戶群貢獻的實現不同功能的各種軟體包,例如定位繪圖,行動規劃,感知,模擬等等。
ROS(低層)使用BSD許可證,所有是開源軟體,並能免費用於研究和商業用途。而高層的用戶提供的包則可以使用很多種不同的許可證。
* ROS wiki的解釋:
ROS(Robot Operating System,下文簡稱“ROS”)是一個適用於機器人的開源的元操作系統。它提供了操作系統應有的服務,包括硬體抽象,底層設備控制,常用函數的實現,進程間消息傳遞,以及包管理。它也提供用於獲取、編譯
ROS
ROS
、編寫、和跨計算機運行代碼所需的工具和庫函數。
ROS 的主要目標是為機器人研究和開發提供代碼復用的支持。ROS是一個分散式的進程(也就是“節點”)框架,這些進程被封裝在易於被分享和發布的程序包和功能包中。ROS也支持一種類似於代碼儲存庫的聯合系統,這個系統也可以實現工程的協作及發布。這個設計可以使一個工程的開發和實現從文件系統到用戶介面完全獨立決策(不受ROS限制)。同時,所有的工程都可以被ROS的基礎工具整合在一起。
* Brian Gerkey的網上留言:
我通常這樣解釋ROS:
1. 通道:ROS提供了一種發布-訂閱式的通信框架用以簡單、快速地構建分散式計算系。
2. 工具:ROS提供了大量的工具組合用以配置、啟動、自檢、調試、可視化、登錄、測試、終止分散式計算系統。
3. 強大的庫:ROS提供了廣泛的庫文件實現以機動性、操作控制、感知為主的機器人功能。
4. 生態系統:ROS的支持與發展依託著一個強大的社區。ros.org尤其關注兼容性和支持文檔,提供了一套“一站式”的方案使得用戶得以搜索並學習來自全球開發者數以千計的ROS程序包。
* 摘自《ROS by Example》的解釋:
ROS的首要目標是提供一套統一的開源程序框架,用以在多樣化的現實世界與模擬環境中實現對機器人的控制。
* 關於ROS的“通道(plumbing)”(摘自《ROS by Example》
ROS的核心是節點(node)。節點是一小段用Python或C++寫成的程序,用來執行某個相對簡單的任務或進程。多個節點之間互相傳遞信息(message),並可以獨立控制啟動或終止。某一節點可以面向其它節點針對特定標題(topic)發布信息或提供服務(service)。
例如:現有以節點將感測器讀數傳遞至機器人控制器,在“/head_sonar標題“下存在一條信息包含有變數值“0.5“,即意味著感測器檢測到的當前物體距離為0.5米。任何一個想要知道該感測器讀數的節點都只要訂閱(subscribe)/head_sonar標題即可。為了便於使用該讀數,針對該訂閱者的節點會定義一個回調函數,每當有新的信息傳遞到訂閱者標題時,即執行該函數。上述流程的運行頻率取決於發布者節點(publisher node)更新信息的頻率。
此外,節點還可以用來定義一個或多個服務(service)。ROS中服務的作用是在接收到來自其它節點的請求時回復該節點或執行某項任務。例如:控制LED燈的開關是一個服務;移動機器人在給定起始和目標位置的條件下返回導航路線規劃也是一個服務。

歷史沿革


ROS是一個由來已久、貢獻者眾多的大型軟體項目。在ROS誕生之前,很多學者認為,機器人研究需要一個開放式的協作框架,並且已經有不少類似的項目致力於實現這樣的框架。在這些工作中,斯坦福大學在2000年年中開展了一系列相關研究項目,如斯坦福人工智慧機器人(STandford AI Robot, STAIR)項目、個人機器人(Personal Robots, PR)項目等,在上述項目中,在研究具有代表性、集成式人工智慧系統的過程中,創立了用於室內場景的高靈活性、動態軟體系統,其可以用於機器人學研究。
2007年,柳樹車庫(Willow Garage)提供了大量資源,用於將斯坦福大學項目中的軟體系統進行擴展與完善,同時,在無數研究人員的共同努力下,ROS的核心思想和基本軟體包逐漸得到完善。

許可協議


ROS生態系統中的每個軟體包都需要指定一個許可協議:
● ROS核心代碼使用“三句版BSD協議” 。
● 由於ROS軟體包還包含大量社區軟體包,這些軟體包不一定使用BSD協議,而是使用其他某種許可協議,如Apache 2.0協議、GPL協議、MIT協議或自定義的某種協議。

主要發行版本


ROS的發行版本(ROS distribution)指ROS軟體包的版本,其與Linux的發行版本(如Ubuntu)的概念類似。推出ROS發行版本的目的在於使開發人員可以使用相對穩定的代碼庫,直到其準備好將所有內容進行版本升級為止。因此,每個發行版本推出后,ROS開發者通常僅對這一版本的bug進行修復,同時提供少量針對核心軟體包的改進。截至2019年10月,ROS的主要發行版本的版本名稱、發布時間與版本生命周期如下表所示:
版本名稱發布日期版本生命周期操作系統平台
ROS Noetic Ninjemys2020年5月2025年5月Ubuntu 20.04
ROS Melodic Morenia2018年5月23日2023年5月Ubuntu 17.10, Ubuntu 18.04, Debian 9, Windows 10
ROS Lunar Loggerhead2017年5月23日2019年5月Ubuntu 16.04, Ubuntu 16.10, Ubuntu 17.04,Debian 9
ROS Kinetic Kame2016年5月23日2021年4月Ubuntu 15.10, Ubuntu 16.04, Debian 8
ROS Jade Turtle2015年5月23日2017年5月Ubuntu 14.04, Ubuntu 14.10, Ubuntu 15.04
ROS Indigo Igloo2014年7月22日2019年4月Ubuntu 13.04, Ubuntu 14.04
ROS Hydro Medusa2013年9月4日2015年5月Ubuntu 12.04, Ubuntu 12.10, Ubuntu 13.04
ROS Groovy Galapagos2012年12月31日2014年7月Ubuntu 11.10, Ubuntu 12.04, Ubuntu 12.10
ROS Fuerte Turtle2012年4月23日--Ubuntu 10.04, Ubuntu 11.10, Ubuntu 12.04
ROS Electric Emys2011年8月30日--Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04, Ubuntu 11.10
ROS Diamondback2011年3月2日--Ubuntu 10.04, Ubuntu 10.10, Ubuntu 11.04
ROS C Turtle2010年8月2日--Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04, Ubuntu 10.10
ROS Box Turtle2010年3月2日--Ubuntu 8.04, Ubuntu 9.04, Ubuntu 9.10, Ubuntu 10.04