ros(機器人作業系統)

ros(機器人作業系統)

本詞條是多義詞,共5個義項
更多義項 ▼ 收起列表 ▲

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

基本介紹

  • 外文名:Robot Operating System
  • 簡稱:ROS
  • 性質:機器人軟體平台
  • 用途:提供類似作業系統的功能
ROS---(Robot Operating System)是一個機器人軟體平台,它能為異質計算機集群提供類似作業系統的功能。ROS的前身是斯坦福人工智慧實驗室為了支持斯坦福智慧型機器人STAIR而建立的交換庭(switchyard)項目。到2008年,主要由威樓加拉吉繼續該項目的研發。
ROS圖示ROS圖示
ROS提供一些標準作業系統服務,例如硬體抽象,底層設備控制,常用功能實現,進程間訊息以及數據包管理。ROS是基於一種圖狀架構,從而不同節點的進程能接受,發布,聚合各種信息(例如感測,控制,狀態,規劃等等)。目前ROS主要支持Ubuntu。
ROS可以分成兩層,低層是上面描述的作業系統層,高層則是廣大用戶群貢獻的實現不同功能的各種軟體包,例如定位繪圖,行動規劃,感知,模擬等等。
ROS(低層)使用BSD許可證,所有是開源軟體,並能免費用於研究和商業用途。而高層的用戶提供的包則可以使用很多種不同的許可證。
* 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的首要目標是提供一套統一的開源程式框架,用以在多樣化的現實世界與仿真環境中實現對機器人的控制。
* 關於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燈的開關是一個服務;移動機器人在給定起始和目標位置的條件下返回導航路線規劃也是一個服務。

相關詞條

熱門詞條

聯絡我們