多機器人系統、人機互動與軟體

機器人作業系統

機器人作業系統,幾乎總是被簡稱為 ROS,是一套免費、開源的工具箱,用來建構驅動機器人的軟體。儘管名字裡有「作業系統」,它其實並不是像 Windows 或 Android 那樣、負責啟動你電腦的作業系統。它更像是一套共享的車間工具,外加一種大家約定好的「語言」,執行在普通作業系統之上,好讓機器人體內眾多的小程式能彼此交談,並重用別人已經做好的工作。如果沒有 ROS 這樣的東西,每個團隊都得一遍又一遍地重新發明:攝影機程式該怎麼把一張圖片交給導航程式。

它的核心思路,是把機器人的「大腦」拆成許多各司其職的小程式,稱為節點:一個讀攝影機,一個找障礙物,一個規劃路徑,一個驅動輪子。ROS 給這些節點提供了一個共同的「郵局」,讓它們能互相傳遞訊息,而每個程式都不必確切知道其他程式跑在哪裡、是用什麼寫的。在這套「管道」之上,ROS 還打包了社群分享出來的成千上萬個現成零件——真實馬達和感測器的驅動、建圖與導航的程式庫,以及讓你觀察資料流動、或回放一段錄製執行的工具。正因為可重用的東西如此之多,一個小團隊幾週就能搭起一台能用的機器人,而不必耗上幾年。

ROS 經歷了兩個大時代:最初的 ROS 1,它讓這些理念在科研實驗室裡流行起來;以及更新的 ROS 2,它被重新打造得更可靠,以適應真實產品、同時協調多台機器人,並滿足安全與資訊安全方面的要求。如今 ROS 是這個領域裡最接近「公共地基」的存在,被大學講授,也被用在從倉庫機器人到科研人形機器人的方方面面。

一支學生團隊在做送貨機器人時,直接拿來一個現成的 ROS 導航軟體套件,接上他們自己寫的攝影機節點,一個下午就讓機器人沿著走廊跑了起來——而不必從零開始寫路徑規劃的數學。

重用共享的 ROS 軟體套件,把幾個月的工作變成一個下午。

ROS 本身主要是一個框架加中介軟體,再加上一大庫共享軟體套件——它通常執行在 Linux 之上,所以它是機器人軟體的一個「層」,而不是一個真正的作業系統。

又稱
ROSROS 2