- ROS 2機器人開發:從入門到實踐
- 桑欣
- 768字
- 2024-10-14 16:11:32
1.1.1 機器人與ROS
記得我剛開始找工作參加面試時,面試官問:“你認為機器人是什么?”我的回答是“像人一樣,可以自動完成某些任務(如搬運和清潔)的機器”。之所以這樣回答,是因為機器人的組成和行為與人體十分相似,舉一個最簡單的例子,當你感到熱的時候就會打開空調,我們將這個行為過程與機器人進行類比。如圖1-1所示,你的皮膚相當于機器人的傳感器,比如溫度傳感器就可以測量溫度;你的肌肉相當于機器人的執行器,比如可以控制角度的舵機;大腦相當于機器人的決策系統,將皮膚和肌肉與大腦相連的則是神經網絡。不難看出,ROS在機器人中的作用就是將傳感器的數據發送給決策系統,然后將決策系統的輸出發送給執行器執行。

圖1-1 機器人與人體行為類比
2006年,Eric Berger和Keenan Wyrobek通過調查發現,當時的機器人公司在開發機器人時把八成的精力都花在了搭建機器人的通信機制和基礎工具上,反而沒時間完善機器人的決策系統。更奇怪的是,即使是同一個組織,在開發不同的機器人時也會從零開始構建機器人的通信機制和工具,花費大量時間重復造輪子,不同公司重復造輪子[1]的時間和開展新研究的時間占比如圖1-2所示。
ROS就是在這種背景下出現的。聰明的你應該已經猜到,ROS本質上就是用于快速搭建機器人的軟件庫(核心是通信)和工具集。它的出現雖然解決了機器人開發中重復造輪子的問題,但隨著機器人軟硬件不斷進步,應用場景不斷豐富,ROS暴露出了在通信上缺乏穩定性、實時性和安全性等問題,因此ROS 2開始登上舞臺。
ROS 2采用第三方的通信組件代替ROS 1中的通信組件,使得數據傳輸更加穩定和強大。同時ROS 2引入了新的C++標準,在代碼規范性、接口一致性上都有了不小的提升。因此在本書中我們將基于最新的ROS 2進行介紹。
ROS 2是如何在ROS 1的基礎上更進一步的呢?帶著好奇心,我們一起來看下ROS 2的系統架構,揭開它的神秘面紗吧。

圖1-2 不同公司重復造輪子的時間和開展新研究的時間占比