ROS 機器人操作系統介紹
本篇將會告訴大家,ROS 到底是一個什麼樣的系統。同時,我們也將規劃一系列的 ROS 基礎教學文章,讓大家除了熟悉 ROS 系統,也能夠獲得與世界級企業接觸的機會喔!
機器人的發展歷史可回溯到 1950年代,美國人 George Devol 首先提出了工業機器人的概念。此後的 20 年,機器人的發展便進入了一個黃金時代。
上圖的機器人為美國斯坦福國際研究所研製的機器人。它本身帶有視覺感測器,並且能根據人類所下達的指令,發現並抓取積木。雖然當時控制它的電腦跟一間普通的房間一樣大,卻也是一台能夠感知外部信息的機器人了。
會特別介紹 Shakey 的原因,是因為在這之後的數十年, 機器人的研發就進入了一個相對冷淡時期,隨後各國爭相發表的機器人,功能皆與 Shakey 機器人大同小異。
一直到了 2007 年,Willow Garage 公司組織有感於機器人的研發進度緩慢,推測主要原因在於每個公司或企業所研發的機器人,其系統皆為封閉式,說白一點便是每個公司研發的機器人系統與技術,皆無法與其他人共享。
因此 Willow Garage 公司便開發出了 「機器人操作系統 (Robot Operating System)」 , 期盼讓世界上的機器人開發者,都能夠使用這套系統來開發機器人,以便加快世界整體的機器人研發進度。也因為懷抱這遠大的夢想,因此 Willow Garage 便讓 ROS系統成為一個開源的系統,讓世界所有人都可以使用 ROS系統,進行研究、開發,甚至是商業的活動。
為了讓世界所有人都可以使用 ROS 系統 開發機器人,並且互相分享相關的技術與資源,Willow Garage 公司便讓 ROS系統擁有以下的特點:
1. 可用於絕大部分的活動,如研究、開發、教育甚至是商業活動。因為ROS系統採用的是 BSD 授權條款。
2. 擁有眾多的可視化工具協助,讓開發者可以不必再只透過一長串的英文字母,去一一檢查問題的發生原因。
3. 方便的通訊架構讓不同機器間的通訊使用較為便利,使得一般民眾也能夠快速地上手遠端傳輸與遙控等遠端通訊功能。ROS的通訊架構採用的是 TCP / IP 通訊架構( 也就是一般人常使用的 IP位置 )。
4. 可使用多種程式語言進行開發,讓開發者能夠使用自己熟悉的語言開發機器人。目前可支援的程式語言有:C++、Python、java、lisp ……等。
5. 統一的資料格式,讓使用不同程式語言開發的人員,能夠快速地分享彼此的技術與訊息。比如說 1號人員 使用 C++ 來撰寫影像辨識的程式碼,2號人員 則 可以利用 python ,直接使用 1 號人員的影像辨識成果。這加快了1號人員與2號人員之間的技術與資訊交流。
經由上述幾點的特性,讓 ROS 系統快速地在世界各地發芽茁壯。根據 ROS指標報告,從2011 年統計開始,直到2018年7月為止,每年訪問 ROS 官方網站的人數成長率,皆有 21% 以上;其餘如 ROS系統下載數、ROS問答數、ROS的 package 下載數,年增長率也都 擁有15 % 以上的數據。
除此之外,在世界工業界領域裡,也成立了使用 ROS 系統解決工業問題的組織:ROS industrial consortium。台灣也有一家上市公司也參與了 ROS industrial consortium ,是為「凌華科技股份有限公司 ( ADLINK ) 」。
而微軟也在 2018年時加入了 ROS industrial consortium,並且宣布 ROS 也將可在win 10 系統上使用 ,相信這將會讓更多人開始使用 ROS系統。
由此可見,ROS系統在世界上,的確是越來越多人知道,並且開始使用 來開發機器人呢 !。接下來,創客萊吧 Makerlab 將會使用 「霹靂車」,一款 ROS 教學移動平台,來開始教導大家踏入如何使用 ROS系統的世界囉 !