2016年8月31日 星期三

機器人作業系統ROS+成發展多種應用機器人關鍵

器人作業系統ROS 成發展多種應用機器人關鍵

2016/09/01 01:55-DIGITIMES企劃  


機器人是否能投入應用場域較關鍵的問題在機器人的自主動作能否順暢運行,例如,自動感測空間位置做出對應拿取或應用操作,其間環境感測、動作判斷、動作執行與回饋等,都會影響機器人的實用價值,畢竟不是生產線的工站自動化工序處理,而是存在高度變化的操作運作條件差異...

機器人智慧化應用中,機器人作業系統(Robot Operation System;ROS)是最關鍵的一環,因為機器人要能投入生活或是醫療等不同應用場景,都需面對相較生產線自動化更複雜的空間環境,有別於產線自動化的機器人僅需在定點提供自動加工服務,在智能化機器人服務範疇中,機器人本身可能有搭配運行載具或是雙足配合行動,行動過程就必須仰賴環境空間進階感測搭配自身載具導航至定點、同時判斷被服務對象與機器人間的距離與環境空間限制,驅動對應手臂或是夾具提供持物或是服務,此處ROS系統的效用就等同於大腦中樞,不僅實時匯集環境變動數據,也同時分析機體與被服務對象的相對空間位置,並精準做出對應自主智能動作提供進階服務。

運用ROS系統框架進行機器人動作開發,可加速開發時程。GeorgiaTech
   
不管是採輪型載具還是雙足架構開發機器人載具,都需要一套導航與定位系統,提供機器人做出正確導航路徑規劃。KUKA
發展智能機器人  ROS開發整合為其關鍵

智能化機器人首先需克服自主定位導航的技術門檻,也就是說機器人本體先不管驅動載具是採是多輪或是雙足架構,智能機器人至少要能達到能自動導航至服務對象身旁的基本操作,當機器人運行至使用者身旁後,機器人系統ROS還需透過感測器測量服務對象的空間位置,進而提供對應服務操作,整個過程可能須在幾秒內完成,產生的大量分析、判斷與決策執行,就是核心ROS的運行工作。

先討論什麼是ROS?其實ROS系統源起於2007年Stanford University與Willow Garage針對其Personal Robots Program專案開發完成最初的ROS雛形,而後Willow Garage針對此專案成果持續更深入優化發暗指,而在2012年WillowGarage公司將ROS發展團隊獨立,組建OSRF(the Open Source Robotics Foundation)非營利組織,進行ROS後續更新、維護,也為機器人開發社群提供更優化的開放原始碼工具與應用支援。ROS目前約逐年發佈新版,在系統核心為採用Linux為主。

在ROS的特性與優勢方面,ROS被通稱為應用於機器人的作業系統,其實ROS在整個機器人設計架構中比較像是做為通信中介軟體的應用角色,同時,在一個既有的作業系統基礎下組構針對機器人應用設計的完整系統整合框架,同時ROS另工具和軟體庫,機器人開發者可維護原有設計,甚至以原有的原始碼進行新增功能擴展。

有趣的是ROS最初即考量到開發者使用程式語言存在不同系統差異,ROS將開發語言獨立,並可運用如C++、python等多種開發語言進行整合。前面也提到ROS並不為開發語言設限,因此,除官方提供的開發套件資源外,ROS另可擴展使用各式開源資源,豐沛的開源資源也和ROS共同組構強大機器人整合開發生態系。

銜接豐沛開源資源  ROS發展彈性與擴展性高
ROS可應用官方甚至銜接開源開發資源的彈性頗高,但實際上ROS仍有其系統的不足與缺陷存在,對機器人開發業者來說,若導入ROS進行產品開發,較主要的效益在於可加快較耗時、耗資源的機器人導航、定位與路徑規劃等基礎設計架構,且透過完整、可搭配開源專案的ROS核心加上SLAM(simultaneous localization and mapping)即時定位與地圖建構演算法,即可加速智慧型機器人開發時程,也能加快雛型設計完成。但以開放源碼為基礎的ROS機器人作業系統,其實也存在一些問題,例如,ROS將應用功能分佈在不同運行節點、節點間的資訊為透過消息傳遞機制轉送,系統耗費較多資源進行數據通信處理,導致使用ROS來實踐SLAM會產生運算資源問題,例如,需更強的硬體規格因應等...,這對於嵌入式系統設計,在運算核心、記憶體都會因為頻繁存取資料交換導致運行效能低落。

若要在智能機器人專案中導入ROS進行雛型開發,至少須先以產品硬體性能先進行評估,如果系統硬體核心選擇採小型嵌入式單晶片進行開發整合,亦即在實際整合ROS系統時可能在其運算資源、儲存空間、傳輸介面等各個硬體條件需先進行分析確認,甚或透過平台硬體架構進行升級對應,但如此一來也會導致開發硬體平台的成本提升。

此外,若在導入ROS期待透過現成的開放資源加快產品擴增SLAM應用需求,其實對其效益評估要更為審慎,因為在ROS或是開源資源中,對SLAM的資源相對有限,實際進行產品應用開發擴展可能還需更深入的重構跟優化,這些二次開發成本都是無法迴避的部分。

集中/分散節點控制設計各有利弊  視開發系統規劃而定

而搭配機器人的動作、運作條件差異,在高自由度的產品開發中可能其功能節點也會相對增加,ROS系統架構在節點(Node)增加部份可以採行集中於一處理器進行整合,或是採分散式將處理程序分流於不同處理器或功能模組進行處理,例如,在一組支援SLAM應用的產品中,可能需透過雷射或是感測器進行空間環境感測,為提升環境感知效果還可追加具深度分析的攝影鏡頭支援,對於ROS下的節點擴增則可在不影響現有架構下進行擴增,對於整合或擴增感測功能的改動影響並不會太大,提供相對較高的設計彈性。

對智能機器人開發專案,導入ROS作業系統的目標在提供一標準化的開發框架,便於後續整合開發或相關開發資源的重複利用,透過開源資源整合自然可以縮短前期開發的摸索與試誤的耗時,加速機器人雛型設計的速度、深入進行進階演算法開發與驗證程序,進而達到降低研發成本、縮短上市時間目的。

智能導航應用 解決機器人行的問題

而能讓機器人或是自動化乘載平台、可在自由空間進行移動,其實需要大量感測器輸入/輸出、馬達編碼器、環境空間感測與空間座標建構、機器人各控制節點坐標轉換、即時空間建圖/空間定位、路徑規劃、傳動機制等多項技術與軟/硬體機/電深度整合,實現的難度相當高。

在實作上機器人的每組感測器,都必須進行各式環境數據實時擷取,先經由每個感測器的驅動程式進行取得最底層數據資料,接著將感測器數據轉換成ROS可辨識的訊息,同時多節點的環境下也可以進行這些數據的擷取與對應處理。

另在環境空間座標、機器人各控制節點的座標轉換會直接影響實際動作效果,開發中必須定義各控制節點/關節的數據資料,即關節的座標與空間幾何關係,讓系統可以判斷空間與實際關節角度、位置關係,在機器人動作控制的設計中,也須有個隨時關注個元件在現實空間的位置關係狀態,才能讓控制系統指示機器人做出對應的正確動作。

至於機器人的對應動作,會不會因為現實空間的限制造成設備敲擊或是其他危險?其實就看感測器即時透過各端點數據彙整、建模的現實環境空間座標狀態是否能接近實際現況,讓機器人可以判斷自己在空間中的位置、做哪些動作不會產生碰撞或危險,透過演算法也能作目的地的路徑規劃、透過演算法與定位資訊參照處理,進而推斷機器人在空間內的相對關係。

路徑規劃(分層導航)部份,在ROS架構下為採用分層導航形式提升機器人導航安全性,一般會採用更新率較低的全域路徑進行起點與終點路徑設定,同時,在系統中以更高頻的節點基礎進行路徑,透過標定障礙物與可行進空間數值彙整為一組二元地圖(binary map)後、再轉成可用來引導機器人安全行進的地圖與路徑格式,以進行實質行進的路徑規劃,進行驅動與導航時,系統為根據空間建模數據與引導地圖資訊,進行路徑規劃演算,在有限的行進時限內規劃相對安全的行進路徑。

沒有留言:

方便性、能量密度、安全性、應用場景等各方面表現都更優異的奈米液流電池最終能打敗鋰電池嗎?

  當莫妮卡開著她的電動車前往母親家時,車上的電池指示器顯示需要重新充電。她在一個充電站停下來,在加油站刷了信用卡,把噴嘴插入車內,並在5分鐘內將400升用過的奈米液體換成新的。在她等待的過程中,一輛油罐車開過來為充電站補充燃料,交換數萬升充滿電的燃料。莫妮卡關上她的電動車的加油...