入門ROS其實也沒有那麼難!

作者:Tassel

相信提出這個問題的小夥伴已經對ROS有一定的了解,但不管是出於工程應用還是理論學習,我們都有必要談談ROS的概念,從概念去理解ROS。

ROS(機械人操作系統)是用於機械人應用程序的開源軟件開發工具包。ROS 為各行各業的開發人員提供了一個標準軟件平台,將他們從研究和原型設計一直帶到部署和生產。當你學會了使用ROS,就可以避免因為重複造輪子而浪費大量的時間。同時,ROS也為硬件與軟件算法之間提供了橋樑。

既然ROS這麼好用,那麼讓我們來看看如何零基礎入門ROS吧!

一、安裝

ROS 以發行版的形式發佈,也稱為「發行版」,一次支持多個 ROS 發行版。有些版本帶有長期支持 (LTS),這意味着它們更穩定並且經過了廣泛的測試。其他發行版較新,生命周期較短,但支持更新的平台及其組成 ROS 包的更新版本。有關更多詳細信息,請參閱分發列表。一般來說,每年世界海龜日都會發佈一個新的 ROS 發行版,LTS 發行版會在偶數年發佈。我們目前推薦以下版本之一:

 

 

詳細的安裝步驟可以點擊這裡官網:

//www.ros.org/wiki/groovy/Installation/)

需要注意的是不同系統版本有對應不同版本的ROS,比如Ubuntu18.04對應的是ROS Melodic、Ubuntu對應的是ROS Noetic。安裝完成後啟動小海龜進行測試,確保安裝成功。

二、支持

ROS為用戶提供了許多支持服務,比如:

//docs.ros.org/

在此站點上,您可以找到該項目的核心教程和文檔,以及為各個包生成的 API 文檔。

//answers.ros.org/

如果上述中的文檔沒有解決您的問題,不用擔心,也許有人和你遇到過同樣的問題,不同的是他早就解決了並且在該網站上發佈了解決方案。遇到問題時搜索與您類似的問題,它會給出答案或者類似的解決方法。如果您的問題尚未提出,請發佈一個新問題,網站會及時更他人對此問題的建議。

//discourse.ros.org/

要了解 ROS 社區的最新動態,您需要加入ROS Discourse論壇。這些論壇是發佈公告、新聞和普遍感興趣的討論的地方。

//index.ros.org/

當您想查找有關特定包的信息時,可以訪問上述網站,除了 ROS 軟件包的官方文檔外,該 wiki 還包含兩個您應該參考的關鍵資源:故障排除指南和常見問題解答。

三、ROS入門

Wiki上的例子都可以用作入門測試,對代碼有解釋,新手需要把這些代碼和例子弄明白。具體點擊下面網址:

//www.ros.org/wiki/ROS/Tutorials

ROS主要使用的語言就是C++Python,因此需要至少對其中一門語言有一定的基礎,針對這兩種語言的功能包分別是roscpp和rospy,根據個人情況學習使用。

ROS中包含了以下幾種功能包:

1. rviz

一款3D可視化工具包,我們可以在裏面創建自己的機械人模型,並且可以讓機械人運動。還可以創建地圖,顯示3D點雲等等,當然這些顯示都是通過消息的訂閱來完成的,機械人通過ROS發佈數據,rviz訂閱消息接收數據,然後在界面中顯示。

2. tf

ROS中的坐標變換系統,主要用於機械人的建模仿真中。

ROS中主要有兩種坐標系:

        (1)固定坐標系: 用於表示世界的參考坐標系;

        (2)目標坐標系:相對於攝像機視角的參考坐標系。

3. gazebo

ROS中的物理仿真環境,gazebo本身就是一款機械人的仿真軟件,基於ODE的物理引擎,可以模擬機械人以及環境中的很多物理特性。

4. 此外ROS中還有許多常用的機械人模型,PR2、TurtleBo’t等。

 

當我們對這些基本知識和功能應用都掌握了之後,你就可以自豪地說自己已經入門ROS學習了,當然學習過程中肯定會遇見許多難題,如果擔心時間不夠想要快速上手,不妨通過視頻課的學習來避免自己在學習過程中走彎路,在這裡推薦深藍學院的《ROS理論與實踐》和《C++基礎與深度解析》搭配學習,課程有課後作業,助教會及時批閱,學員可以在群里進行提問,還能認識許多志同道合的朋友,擴展自己的學習圈子。

Tags: