Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

ROS

  • 又稱: Robot Operating System, ROS 2, ROS2
  • 類別: Software & tooling › Tools & formats
  • 標籤: ros, ros2, middleware, robot-frameworks, software

大多數機器人軟體賴以建立的開源中介軟體與生態系,也是這個領域許多共同詞彙的來源。

定義

ROS(Robot Operating System)並不是作業系統。它是中介軟體:一組函式庫與慣例,讓一台或多台機器上各自獨立的程式能找到彼此並交換資料,再加上圍繞它建立的工具與套件生態系。

核心概念是分解。機器人由許多小程式,也就是節點,組成,每個節點只做一件事:讀取攝影機、估計位姿、規劃路徑、驅動馬達。節點透過發布與訂閱具名的主題,或呼叫服務與長時間執行的動作來溝通。由於傳輸是匿名的,節點不知道也不在乎另一端的攝影機是真實硬體、模擬器,還是正在重播的錄製資料。正是這項特性讓同一套控制程式碼能在模擬中與機器人上執行,它也形塑了幾乎所有現代機器人軟體的結構。

ROS 2 是目前的世代,也是一次大幅改寫:它以 DDS 取代原本的自訂傳輸,移除了舊版主節點所代表的單點故障,並加入第一版所缺少的即時與多機器人支援。新的工作應以 ROS 2 為前提。

它更廣泛的意義在於詞彙。URDF、tf 座標框架、點雲訊息類型以及節點與主題的模型都源自這個生態系,如今的使用範圍遠超出它,包括從未匯入任何一個 ROS 函式庫的專案。因此,了解 ROS 與其說是了解一套框架,不如說是讀懂這個領域的共同語言。

為何重要

ROS 是機器人學中最接近共同平台的東西,它的概念滲透到各處。本詞彙表中許多其他術語,包括座標轉換、SLAM、里程計、URDF 與感測器融合,部分是以 ROS 的語言來描述自己的。懂它,你才讀得懂大多數機器人程式庫;知道它是中介軟體而不是作業系統,則能免去頭一個小時的困惑。

主要應用

  • 把機器人組織成各自獨立的節點,而不是一個龐大單一的程式
  • 在控制程式碼不變的情況下,替換底層的模擬與真實硬體
  • 在機器人上錄製感測器資料,並重播以進行離線除錯
  • 重複使用社群在導航、操作與感知方面的套件
  • 透過共用網路協調多台機器人
  • 以可攜的方式描述機器人幾何與座標框架

實際應用

一套運作中的系統,是一張一起啟動的節點圖,以主題名稱連接,並由一份 URDF 與一棵座標框架樹來描述。開發仰賴少數幾個工具:用來視覺化機器人所認知之狀態的 RViz、用來錄製與重播真實感測器資料的 rosbag,以及用來可重現地啟動整張節點圖的 launch 檔案。實務上,能錄製一次真實的執行並把它重播到未經修改的程式碼中,正是讓機器人除錯變得可行的關鍵。

常見誤解

  • ROS 是作業系統:它是在作業系統(通常是 Linux)之上執行的中介軟體
  • ROS 天生就是即時的:原版並不是;ROS 2 在搭配合適的執行器與 DDS 設定下讓即時成為可能,但不是自動的
  • ROS 2 只是版本號升級的 ROS 1:它是以不同傳輸方式、沒有主節點的改寫版本,兩者若沒有橋接便無法互通
  • 使用 ROS 就代表一切都用它:許多機器人以 ROS 處理感知與協調,即時控制迴路則放在微控制器上

誰需要了解

  • 任何閱讀開源機器人程式碼或為其做出貢獻的人
  • 在決定如何在機器人的多台電腦之間組織軟體的打造者
  • 任何希望模擬與硬體執行完全相同之控制程式碼的人
  • 從錄製的執行紀錄而不是現場重試來為機器人除錯的工程師
  • 第一次接觸節點、主題、tf 或 URDF 等術語的學生

相關術語

  • URDF
  • Transform
  • Coordinate Frame
  • SLAM
  • Sensor Fusion
  • Digital Twin

相關專案

  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • PX4 Autopilot: Open-source flight control software for drones and other unmanned vehicles
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenMower: Open-source project converting commercial mowers into autonomous RTK-GPS guided robots
  • PlotJuggler: Fast time-series visualization tool for ROS topics, rosbags, and robot debugging
  • ROS 2: Next-gen Robot Operating System for real-time production robotics

影片

  • Introduction to ROS Part 1: What is the Robot Operating System? | DigiKey: DigiKey
  • What is ROS and Why use ROS to Learn Robotics?: Kevin Wood | Robotics & AI

維基百科

  • 機器人作業系統

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。