ROS 機械人軟體平台 一

2021-10-11 15:28:26 字數 2246 閱讀 1971

導論

ros簡介

「ros是乙個開放源**的機械人元作業系統。它提供了我們對作業系統期望的服務,包括硬體抽象、低階裝置控制、常用功能的實現、程序之間的訊息傳遞以及功能包管理。它還提供了用於在多台計算機之間獲取、構建、編寫和執行**的工具和庫。」

換句話說,ros包括乙個類似於作業系統的硬體抽象,但它不是乙個傳統的作業系統,它具有可用於異構硬體的特性。此外,它是乙個機械人軟體平台,提供了專門為機械人開發應用程式的各種開發環境。

第二, 是基於通訊的程式。 為了提供一種服務,很多時候在同乙個框架裡編寫很多程式:從感測器或舵機的硬體驅動到感測、識別和動作等所有種類的程式。但為了重用機械人軟體,根據每個處理器的用途將其分成更小的部分。根據平台的不同,我們將此稱為元件化或節點化。必須由劃分為最小執行單元的節點之間傳送和接收資料,而平台具有關於該資料通訊的所有一般資訊。而且,這與最小的單位程序連線到網路的物聯網(iot)的概念一致,因此可以用作物聯網平台。並且,被劃分成最小執行單元的程式可以進行小單元的除錯,這非常有助於找出錯誤。

第三, 提供開發工具。ros提供除錯相關的工具-2維繪圖和3維視覺化工具rviz,所以無需親手準備機械人開發所需的開發工具,可以直接拿來使用。例如,在機械人開發中,視覺化機械人的模型的情況比較多,通過遵守規定的資訊格式,可以直接確認機械人的模型,並且還提供3d**器,因此易於擴充套件到**實驗。另外,最近比較受人關注的點雲(point cloud)形式也可以從英特爾realsense或微軟的kinect獲得的3d距離資訊轉化過來。此外,實驗中使用的資料可以被記錄下來,因此需要的時候隨時都可以重現實驗當時的情況。像這樣,ros的乙個重要特點是通過為機械人開發提供必要的軟體工具,使開發的便利性達到最大化。

第四, 活躍的開發者社群。至今比較封閉的機械人學界和機械人業界都因為前述的功能而走向重視互相之間的合作的方向。其目的可能各自相異,但實際的合作正在通過這種軟體平台發生著。其核心是開源軟體平台的社群。例如,以ros為例,到2023年自願開發和共享的功能包數量超過了5,000個,而解釋如何使用它的wiki頁面超過1.7萬個,這些都由使用者個別參與。 而在社群中非常重要的問題和答案已有超過24,000個,使用者們通過這些建立著互惠互利的開發者社群。討論超越了單純的對於用法的議題,人們在尋找機械人工程軟體的必要因素,並摸索出規則。

第五, 生態系統的形成。前面提到的智慧型手機平台革命是由android和ios等軟體平台創造的生態系統造成的。這一趨勢在機械人領域延續著。起初,各種硬體技術氾濫,卻沒有能整合它們的作業系統。在這種情況下,如上所述,各種軟體平台已經出現,最受矚目的ros現在已經開始構建生態系統。這個正在形成的生態系統裡,機械人硬體領域的開發者、ros開發運營團隊、應用軟體開發者以及使用者也能像機械人公司和感測器公司一樣從中受益。起步雖然微不足道,但考慮到逐漸增多的使用者數量和機械人公司,以及急劇增加的相關工具和庫,我期待在不久的將來將會形成乙個圓滿的生態系統。

ros是robot operating system的縮寫,因此會認為是一種作業系統。尤其是那些對ros不熟悉的人會認為ros和上面提到的作業系統一樣。當我第一次遇到它時,我也認為ros是乙個新的機械人作業系統。

然而更確切地說,ros是乙個元作業系統(meta-operating system)。元作業系統不是乙個明確定義的術語,而是乙個利用應用程式和分布式計算資源之間的虛擬化層來運用分布式計算資源來執行排程、載入、監視、錯誤處理等任務的系統。

ros不是傳統的作業系統,如windows、linux和android,反而是在利用現有的作業系統。使用ros前需要先安裝諸如ubuntu的linux發行版作業系統,之後再安裝ros,以使用程序管理系統、檔案系統、使用者介面、程式實用程式(編譯器、執行緒模型等)。此外,它還以庫的形式提供了機械人應用程式所需的多數不同型別的硬體之間的資料傳輸/接收、排程和錯誤處理等功能。這個概念也被稱為中介軟體(middleware)或軟體框架(software framework)。

ros開發、管理和提供基於元作業系統的各種用途的應用功能包,並擁有乙個負責分享使用者所開發的功能包的生態系統(ecosystem)。如圖2-1所示。ros是在使用現有的傳統作業系統的同時,通過使用硬體抽象概念來控制機械人應用程式所必需的機械人和感測器,同時也是開發使用者的機械人應用程式的支援系統。

ros資料通訊可以在乙個作業系統中進行,但也適用於使用多種硬體的機械人開發,因為可以在不同的作業系統、硬體和程式之間交換資料。

ros具有以下特徵:

ROS機械人操作平台的安裝

sudo apt keyadv keyserver hkp pool sks keyservers net recv key 0xb01fa116 想要修改程式的 就要得到所有者的授權,上面一條的就是新增ros秘鑰,由於ros為開源作業系統,所以秘鑰可以許可所以的請求。3 安裝 下面為安裝對應的版本...

機械人ros通訊

除錯幾天,ros之間的通訊。雖然還有點bug,但總之網路配置成功,並且能夠正 常通訊,現在記錄一下這個過程。一,網路通訊除錯 1 利用ifconfig命令檢視主機master turtlebot的上網本 和客戶端即工作機的 ip。2 利用hostname命令檢視,上網本和工作機使用者名字。3 開啟h...

ROS多機械人通訊

ros設計的靈魂就在於其分布式計算。乙個優秀的節點不需要考慮在哪台機器上執行,它允許實時分配計算量以最大化的利用系統資源。有乙個特例 驅動節點必須執行在跟硬體裝置有物理連線的機器上 在多個機械人上使用ros是一件很簡單的事,你只需要記住一下幾點 1.你只需要乙個master,只要在乙個機器上執行它就...