參考資料:
1. 維基百科_機器人作業系統
2. 艾鍗學院_為什麼你必須要學ROS
3. 科技報橘_從 ROS 1.0 進化到 ROS 2.0,機器人作業系統會迎來何種革新?
4. 古月居_ROS2探索总结(二)——走近ROS2.0时代
5. 智慧應用_機器人作業系統ROS 成發展多種應用機器人關鍵
• ROS沿革與趨勢
ROS系統源起於2007年Stanford University與Willow Garage針對其Personal Robots Program專案開發完成最初的ROS雛形。ROS目前約逐年發佈新版,在系統核心為採用Linux為主。
機器人能快速發展要歸功於開源的 機器人作業系統(Robot Operating System, ROS),ROS 提供了機器人程式開發所需的各種工具與函式庫,讓開發者不需從頭做起,而能在前人的努力下往上堆疊發展。
由於開源碼的特性,所有開發者都可以檢視程式碼並依自己需求客製改寫,也可以在全球 ROS 社群中找到自己的同業並從中獲益,包括能將機器人於開發實體前進行模擬、產出資料視覺化、能留下日誌以了解機器人做了哪些動作等都是讓 ROS 廣受歡迎的原因。
相較於 ROS 1,ROS 2 做了許多改良,它是建立在產業標準上所打造的平台。包括在通訊方式、QoS 通訊服務品質、安全性上都有十足進展,能支援多平台以及更小型的系統設計。
關於兩者技術上的差異,我上次去ROS年會,有聽到一種說法覺得很好:
在ROS1,你這個英雄(client)想尋求其他英雄的幫助,就必須先向上呈報給天神(master),天神在一個一個問其他英雄(client)能不能幫忙,問完才會跟你回報;而ROS2就像每個英雄都有一隻無線電(DDS),當你這個英雄需要幫忙,藉由無線電,其他能幫忙的英雄都能及時回報。
• ROS特色
1. 支援C++、Python多種程式語言。
2. 開源、社群資源、便於測試。
3. 模組化的特點,且有點對點的設計。
舉例來說:
透過ROS的OpenSLAM、MoveIt等工具,你就可以快速實作出具有抓取功能的AGV(Automated Guided Vehicle,自動導引車)產品原型。
且,ROS擁有功能強大的可視化工具像是GUI工具 rqt、3D可視化工具 rviz、機器人模擬器 gazebo、資料存儲/重播功能 rosbag,方便你進行資料記錄、分析、模擬工具,方便調試。