ros(robot operating system) 是乙個開源的機械人作業系統,目的是提供開發平台、工具及生態給開發人員,可以讓開發人員快速開發。本課程通過精心設計的案例,分析技術要點、理解執行原理,以達到舉一反三的效果,從而應用到自己的機械人開發工作中去。
本課程將詳細介紹 ros 的使用,課程包括了 topic 通訊,service 通訊,ros 自定義訊息,urdf視覺化,tf座標轉換等技術要點。每個技術點都會結合例子先把原理講解清楚,為了達到學以致用的目的,我們會再進行知識拓展,針對每個技術點實現對應的生動有趣的需求,保證學完後會有很大的收穫。
在進行 ros 專案開發前,首先介紹下整個 ros 專案在部署執行過程中分為幾個部分,以及了解工程結構中 workspace、package、node 它們之間的包含關係。
知識點系統基本架構
總體來說,整個 ros 專案在部署執行過程中,分為以下幾個部分:
例如我們用樹莓派作為開發板,用於機械人的運算和控制操作,那麼這就是軟體所執行的硬體環境。當然開發板上可能會外接一些其它硬體,如攝像頭,那麼這些也屬於硬體環境。
開發板上通常需要有作業系統,所裝的作業系統屬於軟體環境。
機械人執行起來後,內部會有很多單元程式執行,每個單元程式做很小的事情。比如讀取硬體驅動傳遞的資料、處理讀取的資料、判斷資料、發出指令等。
總之,ros 將複雜的程式分解成了很小的一部分,每部分幹很少的活,這樣每個部分還可以復用。
ros 軟體結構組成
我們開發的每個節點都需要到 ros master 中去註冊,如下圖所示:
啟動節點前,必須啟動 ros master。命令為roscore
。
ros node:
我們在 ros 中所做的其實就是開發節點工作:
工作目錄結構
標準的 workspace 工作目錄結構如下:
工作目錄理解
類似在企業中通過部門管理員工,俗話說人多瞎胡亂、雞多不下蛋。一旦專案變得複雜後,組織結構化和規範化就變得非常重要。
工作目錄說明
我們在開發乙個 ros 專案時,是以工作空間(workspace
)來表示乙個專案,乙個工作空間包含如下 5 個部分:
devel
:開發所需要的目錄。
src
:存放 package 的目錄。
cmakelists.txt
:整個工作空間編譯的指令碼。此檔案我們通常不用修改。
package
:工作單元。
乙個專案可以建立多個工作單元(package
),乙個工作單元包含如下幾個部分:
通過上面的實驗,我們熟悉了 ros 的系統架構以及 ros 檔案系統層次中的關鍵概念,並講解了 clion python 環境的搭建與配置,使我們更加清晰的了解 ros 的執行機制、能夠更高效的編寫程式。
wget
# 解壓縮,使用如下命令
tar -zxf code1.tar.gz
機械人作業系統ROS總結
ros有很詳細大文件 按照文件,按步驟學習即可。ros定義了程序間通訊的方式,程序可以是在同乙個機器上,也可以是分布式的。這非常便於搭積木 搭系統,但是,對於效能,要做真正產品,估計效率要再考慮。這樣,從不同到 來的軟體模組,可以方便的組合成乙個機械人系統。ros把軟體分成不同的package,裡面...
機械人作業系統ROS入門
三 ros安裝 四 其它 參考資料和資源 ros是機械人作業系統 robot operating system 的英文縮寫。ros是用於編寫機械人軟體程式的一種具有高度靈活性的軟體架構。ros的原型源自史丹福大學的stanford artificial intelligence robot stai...
機械人作業系統入門(ROS)入門)
外文名robot operating system 性 質機械人軟體平台 簡 稱ros 用 途提供類似作業系統的功能 通常這樣解釋ros 通道 ros提供了一種發布 訂閱式的通訊框架用以簡單 快速地構建分布式計算系。工具 ros提供了大量的工具組合用以配置 啟動 自檢 除錯 視覺化 登入 測試 終止...