智慧自主移動機器人應用技術介紹

作者:

廖育萱

刊登日期:2020/07/30

摘要:因應AI人工智慧及高科技日新月異的發展趨勢,本文將針對智慧自主移動式機器人之架構與應用技術,進行機器人作業系統(ROS)起源介紹與其架構用法基礎說明,接著探討智慧自主移動機器人所使用的定位與導航技術,同時介紹工業技術研究院中機械與機電系統研究所近期所發展的一款智慧無軌式運載機器人之相關研究與應用。
Abstract:Thanks to recent progress in hardware and software technologies as well as breakthrough in artificial intelligence, intelligent autonomous mobile robots can now operate more effectively in practical applications. This article introduces the architecture and application technologies of intelligent autonomous mobile robots. This includes the introduction of the origin of commonly used Robot Operating System (ROS) . Then this article gives a brief introduction of ROS architecture and its basic usage. Furthermore, we briefly explain the concept of the basic localization and navigation method used by mobile robots. Finally, this article discusses an autonomous mobile robot platform recently developed by Industrial Technology Research Institute’s robotic research team.

關鍵詞:移動式平台、無人載具、智慧機器人
Keywords:Mobile platform, Unmanned vehicles, Intelligent robot

前言
隨著科技蓬勃發展,電腦運算晶片運算速度加快,感測器的量測精度更加精準,工業加工水平提升,因此比起過去十年,科學家們於人工智慧、電腦視覺辨識、機器學習等技術有更大一步的進展,使得科幻電影中出現機器人如擁有人腦般可自主移動搬運物品不再只是夢想。舉凡自主移動式平台、室內掃地機器人、大型自主洗地機、自動駕駛車(或稱為無人車)、移動式手臂機器人等都可以被視為具有自主學習能力且靈活性及敏捷性高的智慧機器人一種,如圖1、圖2所示。
根據國際機器人聯合會(The International Federation of Robotics, IFR)發布的全球機器人技術報告2019(World Robotics report 2019)[1]一文中的數據顯示於2018年時全球工業機器人年銷售額已達到165億美元,目前亞洲為世界上最大的工業機器人市場,然而在亞洲市場中有些許變動,其中日本的機器人安裝量提高中國與韓國的安裝量下降,亞洲總體成長增加為1%。服務型機器人的銷售額至92億美元,不同於協作機器人(cobots)服務型機器人實現了高銷售數和高成長數,所以服務型機器人在所有機器人銷售中的所佔比例正持續往上升,已接近機器人市場的三分之一,而服務型機器人中又以物流系統市場中的機器人成長量增加最為明顯,例如工廠或是倉儲中所使用的自動導引車(Automated Guided Vehicle, AGV),目前大部分的AGV都需搭配磁軌或是色帶在軌道上運行,因此近年來國際的科技大廠都紛紛投入無軌道的自主移動機器人開發上,預期可以適用於除了工廠外的複雜環境上,例如實際的街道上、農田中或是商場中等。
本文主要探討可自主移動的無人載具的介紹與技術探討,首先會說明已實際運行於機器人電腦中的機器人作業系統(Robot Operating System, ROS)[2]的架構,接著會介紹工業技術研究院中機械與機電系統研究所目前研究發展中的智慧無軌式運載機器人之相關應用。
以下將分為智慧自主移動機器人技術與應用介紹、結論進行闡述,其中智慧自主移動機器人技術與應用介紹一節中含有機器人系統架構(Robot Operating System, ROS) 簡介、機器人的定位與導航技術、工業技術研究院機械與機電系統研究所之MP-1智慧無軌式運載機器人簡介。
智慧自主移動機器人技術與應用介紹
1. 機器人系統架構(Robot Operating System, ROS) 簡介
西元2007年時,基於史丹佛大學的機器人軟體基礎,美國Willow Garage公司創造出機器人作業系統(Robot Operating System, ROS),後續Willow Garage公司將ROS核心開發團隊獨立出來後建立機器人開源組織(Open Source Robot Foundation, OSRF)的非營利組織,進行ROS機器人系統架構往後的更新、開發與維護,提供了機器人開發社群較為方便的開發環境使得大家於統一平台上,制定好的程式撰寫規則使得於機器人系統開發上更為的有效率,ROS機器人系統架構目前已被廣泛的應用於全球機器人公司或是學校開發機器人系統相關的產品上。
在機器人系統中,ROS機器人系統架構的角色較像是作為機器人的硬體設備與演算法軟體通信的程式架構,在這個程式架構下可更加完善的整合機器人運轉系統。ROS機器人系統架構的其中一項優勢為開發者基於此架構進行演算法開發時能避免感測器硬體整合的前置開發事項,可較容易的方式得到感測器資訊後進行核心演算法的研究與開發。
ROS的系統核心採用Linux作業系統為主,支援多種程式語言撰寫,其中以C/C++及Python的開發佔大多數,另外也可以使用Java進行開發,有提供適用於Java的ROS函式庫,稱為ROS-Java。
ROS機器人系統架構中的程式架構描述方法如表1說明:
表1  ROS Package的程式碼資料結構
- Package
  - node
  - package.xml
  - CMakeList.txt

其中分為以下項目說明:
    ‧ Package中可以包含多個節點(Node)
   ‧ Node可以想像為一個可被執行的程式,程式的標頭檔(Header file)會放在include資料夾內,而程式碼(Source code)則放在src資料夾
   ‧ Package.xml則描述了此Package的名字、需要用到的相關程式庫、維護者、可使用的證照(License)
   ‧ CMakeList.txt記錄程式進行編譯時的環境設定
ROS機器人系統架構中使用的訊息格式(Message type) [3]定義訊息發送的資料結構,其中較為常用的Message有geometry_msgs, std_mgs等。
以geometry_msgs/PoseStamped [4]為例說明,進行表2簡略說明ROS Message於程式碼撰寫上的使用意義:

表2 geometry_msgs/PoseStamped的資料結構

geometry_msgs/PoseStamped
std_msgs/Header header
geometry_msgs/Pose pose

…本文未結束

更完整的內容 歡迎訂購 2020年8月號 449期

機械工業雜誌‧每期240元‧一年12期2400元

我要訂購