國 立 交 通 大 學
電控工程研究所
碩 士 論 文
結合視覺之人機協同系統研發
Development of a Vision-Based Human-Robot
Collaboration System
研 究 生: 莊順盛
指導教授: 楊谷洋 博士
結合視覺之人機協同系統研發
Development of a Vision-Based Human-Robot
Collaboration System
研 究 生:莊順盛 Student: Shun-Sheng Chuang
指導教授:楊谷洋 博士 Advisor: Dr. Kuu-Young Young
國立交通大學
電控工程研究所
碩士論文
A Thesis
Submitted to Institute of Electrical Control Engineering College of Electrical and Computer Science
National Chiao Tung University In Partial Fulfillment of the Requirements
of the Degree of Master
in
Electrical Control Engineering April 2013
Hsinchu, Taiwan, Republic of China
中華民國 一百零二年四月
I
結合視覺之人機協同系統研發
研究生: 莊順盛 指導教授: 楊谷洋 博士
國立交通大學電
國立交通大學電
國立交通大學電
國立交通大學電控工程研究所
控工程研究所
控工程研究所
控工程研究所
摘要
機器人的應用已漸漸往人機協同作業的領域邁進,結合人類的技術以及機器 人的高效率、重複性,不僅增加作業的彈性,更提升了工作的效率。在這種人機 共工的合作下,人類與機器人間的距離將較於傳統產業大幅減小,由於工作環境 中常會有不可預見的變化發生,若機器人不能即時地做出適當的反應,可能會傷 害人類工作者,因此我們必須對於人機協同工作區進行檢測,使機器人認識周邊 環境資訊以及未知障礙,以避免碰撞。本論文之目標是以達到使用 6 軸機器臂系 統之製造單元(Work Cell)安全監控之要求,並使用 3D 感測器來建構一模擬驗證 平台,建立人與機器人合作的安全環境,研究內容包括人物體態偵測、追蹤以及 機器臂 3D 姿態資料融合快速運算技術,我們使用 Kinect 視覺系統即時偵測環境 的突發狀況,設計機器人避障策略,實地的建立一套即時虛擬人機操作介面,並 以實驗驗證之有效性。II
Development of a Vision-Based Human-Robot
Collaboration System
Student: Shun-Sheng Chuang Advisor: Dr. Kuu-Young Young
Institute of Electrical Control Engineering
National Chiao Tung University
Abstract
Robot applications nowadays are also going to human-robot collaboration,
which not only increases the flexibility, but also its efficiency. However, under the cellular manufacturing module, the distance between human and robot are much
shorter than ever. Due to unexpected events that may happen in the working environment, it demands in-time response to avoid damages to the human operator.
We thus propose developing an inspection system, so that the robot can recognize its nearby environment and also unknown obstacles. The main research topics include
fast computing and fusion methods for the data from human skeleton tracking sensors and 3D robot trajectory. We use Kinect vision system to detect unexpected
environmental changes, and also come up with a real-time collision avoidance approach for safe human-robot collaboration. A real-time virtual manipulation system
III
致謝
致謝
致謝
致謝
這篇論文可以順利完成,首先要感謝我的指導教授-楊谷洋教授。感謝教授 在這兩年來的指導跟鼓勵,從碩一時期的修課建議方向到碩二的論文內容,中間 大大小小的事情包含研究過程、實驗設計、論文內容或是口試,教授都給予相當 多的建議,還給予我充分的機會跟空間,鼓勵創新並勇敢向前去飛,這兩年跟在 教授身旁的時間,著實益我良多。同時要感謝張志永教授、周志成教授、邱添丁 教授撥冗參與我的論文口試,給予我許多寶貴的指導和建議。接著要感謝達志學 長和一哲學長在我實驗遇到瓶頸提供經驗分享,並時刻關心實驗與論文結果進度。 而對於要一起邁向人生的下一個關頭的畢業好夥伴:偉鐘、耀澤,這段一起為修 課做專題、一起為畢業打拼的苦日子,相信會是我們出社會後最甜的回憶,至於 還在實驗室努力的一弘、建斌、境晨、淳元、俊捷和邱涵,你們的陪伴讓我的生 活增色不少,也預祝你們研究順利。最後要感謝的是我的父母、家人,寬廣的大 海也脫離不了其源頭,在你們的支持下,我可以心無旁鶩的完成學業,感謝你們 為家裡的付出,也謝謝你們為我做的一切。謝謝我的女朋友恬羽,兩年來陪伴著 我去東邊探險、西邊踏青、如同遊龍一般的遊山玩水,豐富了我的學生生涯,未 來,還有很多地方等著我們去留下足跡! 在校園中的認識的師長、同學、夥伴感謝你們在我需要幫忙的時候伸出援手, 能結識你們真的是我上輩子修來的福氣;教室裡嬉鬧聲、實驗室的歡笑、校園中 所發生的點點滴滴,都是我回憶裡的一塊拼圖,缺一不可;未來的日子裡我會帶 著這塊記憶拼圖繼續走向人生的下一站。IV
目
目
目
目錄
錄
錄
錄
中文摘要... I 英文摘要... II 致謝... III 目錄... IV 表目錄... VI 圖目錄... VII 1.導論... 1 2.機器人操控器系統... 6 2.1 Kinect 影像資料擷取與分析 ... 8 2.1.1 視覺定位暨座標轉換... 10 2.1.2 人體偵測... 12 2.1.3 人體骨架定位系統... 13 2.1.4 即時定位策略... 16 2.2 影像即時回歸策略... 18 2.3 輔助策略... 20 2.3.1 碰撞狀態分析... 21 2.3.2 避障策略... 22 2.3.3 正交型避障策略... 24 2.4 機器手臂跟隨模式... 26 3.系統實現... 27 3.1 系統架構... 27 3.2 軟體實現... 29V 3.2.1 虛擬場景建構... 30 3.2.2 機器手臂角度運算... 34 3.3 硬體實現... 37 3.3.1 Mitsubishi RV-2A 六軸機器手臂... 37 3-3.2 Kinect... 40 4.實驗... 41 4.1 驗證 camshift 追蹤法及影像即時回歸策略 ... 44 4.2 驗證避障策略... 47 4.3 模擬人機搬運合作... 51 5.結論... 54 5.1 未來規劃... 55 參考文獻... 56
VI
表目錄
表目錄
表目錄
表目錄
表 3-1 RV-2A D-H 參數 ... 32 表 3-2 Mitsubishi RV-2A 六軸機器手臂規格表 ... 38 表 3-3 Mitsubishi RV-2A 六軸機器手臂控制器規格表 ... 39 表 3-4 Kinect 基本規格表... 40VII
圖目錄
圖目錄
圖目錄
圖目錄
圖 1-1 結合攝影機與雷射測距儀進行遠端操控工作[6]... 2圖 1-2 Work Cell 中 Kinect 配置圖[7] ... 2
圖 1-3 計算障礙物對機器手臂所造成的 potential field[12] ... 3 圖 1-4 基於手勢之遠端操控系統[16]... 5 圖 1-5 多軸機器手臂操作系統概念圖 ... 5 圖 2-1 機器人操控器之系統流程圖 ... 7 圖 2-2 Kinect 裝置... 8 圖 2-3 從 Kinect 可得到: (a)深度資訊和(b)影像資訊 ... 9 圖 2-4 工作區間內 Kinect 與機器手臂位置擺設示意圖... 10 圖 2-5 環境物件座標轉換示意圖 ... 11 圖 2-6 OpenNI 基本架構圖[21] ... 13 圖 2-7 人體骨架偵測姿勢 ... 14 圖 2-8 OpenNI 偵測人體骨架深度圖 ... 15 圖 2-9 人體骨架位置座標 ... 15 圖 2-10 meanshift 方法流程示意圖[28] ... 16
圖 2-11 即時定位: (a)左邊 Kinect 所拍攝影像,(b)右邊 Kinect 所拍攝影像, 及(c)虛擬場景 ... 17 圖 2-12 消失判定系統流程圖 ... 19 圖 2-13 camshiht 追蹤實境圖: (a)追蹤物被遮蔽和(b)無遮蔽 ... 19 圖 2-14 碰撞狀態分析示意圖:(a)沒有落於碰撞區間和(b)落於碰撞區間 ... 21 圖 2-15 避障輔助示意圖 ... 23 圖 2-16 避障輔助方向示意圖:(a)手臂往右下方逃離和(b)手臂往左上方逃離 .. 23 圖 2-17 避障輔助方向 3D 示意圖 ... 25
VIII 圖 3-1 系統架構圖 ... 28 圖 3-2 執行緒關係圖 ... 30 圖 3-3 利用 D-H model 建立機器人結構 ... 32 圖 3-4 虛擬機器人操控系統 master 端操作畫面... 33 圖 3-5 MITSUBISHI RV-2A 各軸角度運算示意圖 ... 34 圖 3-6 CR1-571 控制器外觀[25] ... 37 圖 3-7 Mitsubishi RV-2A 六軸機器手臂外觀[25] ... 38 圖 3-8 Kinect 外觀... 40
圖 4-1 實驗場景架設圖:(a)左、中 Kinect 擺設位置和(b)右邊 Kinect 擺設位置 ... 42
圖 4-2 實驗結果:(a)左邊 Kinect 影像,(b)中間 Kinect 影像及(c)虛擬場景 .... 42
圖 4-3 實驗結果:(a)左邊 Kinect 影像,(b)中間 Kinect 影像及(c)虛擬場景 .... 43
圖 4-4 實驗中所使用六角扳手、沙包、與紅色小球 ... 45
圖 4-5 在視覺影像中拉取搜索框 ... 45
圖 4-6 因物體消失而產生不連續影像: (a)物體消失前和(b)物體消失 ... 46
圖 4-7 實驗結果:(a)左邊 Kinect 影像,(b)右邊 Kinect 影像和(c)虛擬場景 .... 46
圖 4-8 實驗結果:(a)左邊 Kinect 影像,(b)右邊 Kinect 影像和(c)虛擬場景 .... 47
圖 4-9 實驗場景含實驗中所使用的靜態障礙物 ... 48 圖 4-10 手臂末端點跟障礙物移動軌跡(註:紅色圈為動態障礙物起始點,綠色圈 為機器手臂末端起始點)... 50 圖 4-11 加入靜態障礙物後手臂末端點避障軌跡 ... 50 圖 4-12 實驗操作過程實景 ... 50 圖 4-13 人機搬運實驗工作場景,由右至左依序為沙包,籃子,靜態障礙物 . 52 圖 4-14 人機搬運合作實驗實景 ... 52 圖 4-15 人機搬運合作實驗-閃避過程 ... 53
1
第一章
第一章
第一章
第一章
導論
導論
導論
導論
由於機器人領域的快速發展,機器人開始走進人群,近年來已逐步邁向人機 協同作業,結合人類的細心、技術、高彈性以及機器人的高效率、重複性,不僅 加速產品的生產,更可以確保產品的品質,工廠的產線中在這種人機共工的合作 下,人類與機器人間的距離將較於傳統產業大幅減小,由於工作環境中常會有不 可預見的變化發生,若機器人不能即時地做出適當的反應,可能會傷害人類工作 者,因此我們必須對於人機協同工作區進行檢測,使機器人認識周邊環境資訊, 以及未知障礙,以避免碰撞。本論文基於人機協同安全性的考量,針對人機協同 系統進行研發,提出一套安全防護所需的人機碰撞危險偵測程式並設計虛擬人機 操作介面,利用 Kinect 視覺裝置偵測人機合作空間內機器人與操作人員的相對 距離,計算人機共工作業可能發生的危險,並設計機器人避障策略,提升人機協 同產線安全防護效能。 對於人機協同系統的工作環境,設計一個安全的機器人、建立完善的控制性 統、預測碰撞發生的可能性、並提出有效的避障演算法相當重要[1][2][4][11], 一 套完善的即時避障演算法可由三個部分所來組成,第一部分是環境資訊的偵測, 第二部分是避障演算法,第三部分是機器人的操作控制。在環境資訊方面 Yu 及 Fritz 等人曾使用雷射測距儀偵測手臂末端與桌面間距離[5],藉以判斷桌面狀況 並設計相應的力與速度輔助策略導引操作者,但雷射測距儀有其不便之處,它只 能用於直線路徑上,中間也不能有障礙物阻擋;後來有 Veras 及 Khokar 等學者 加入攝影機於操控系統中搭配雷射測距儀使用[6],操作者邊看著影像邊操作機 器手臂來到目標附近,搭配雷射測距儀偵測機器手臂末端與目標間的距離,如圖2 1-1 所示;而近年來 Claus 等學者為了避免單台視覺裝置被障礙物所遮蔽,而無 法回傳正確的環境資訊,所以應用了三台 Kinect 視覺裝置[7],兩台拍攝工作環 境區間,另一台架在頭頂前上方,確保可以得到整個工作環境資訊,如圖 1-2 所 示。 圖 1-1 結合攝影機與雷射測距儀進行遠端操控工作[6]
3 在避障演算法方面,在過去的文獻中雖然有精準度、演算法難度也高的非即 時性的路徑規劃[8],但即時性的路徑規劃[9][10][11]才是能即時的避開障礙物確 保人機的安全性,所以在即時性的考量下,場效函數(potential field)成為相當多 的學者所常用的避障策略,有系統地將障礙物使用圓球所包覆與機器人各軸之間 的距離利用場效函數產生一條避障軌跡[12];也有系統結合場效函數和圓磁場 (circular field)應用於複雜的環境中[13];另外也有些系統結合虛擬彈簧應用於操 控器中,為了產生一條安全的路徑,避免碰撞[14][27];而在現今的工廠環境中, 為了避免因碰撞而造成不可預期的損害,也有開發一種輕量的機器人[11][17], 或是在機器人上加裝力感測器[27][28],當發生無可避免的碰撞時,可以利用力 感測器上資訊去即時的停止機器人,避免更嚴重的損傷。 圖 1-3 計算障礙物對機器手臂所造成的場效函數[12] (註:紅線表示障礙物到機器手臂各軸之最短距離) 第三部分就是機器手臂的操作控制,當避障系統提示將會發生碰撞,操作機 器手臂的操作者需要即時的反應,在操作器方面,早期的工業用機器手臂控制器 多為教導盒(teach pendant),但教導盒的設計在使用上非常不直覺,操作者無法 隨心所欲地操縱機器手臂。隨著科技的發展,越來越多的操作器得以開發,例如
4 使用資料手套、3D 力回饋搖桿來操控自走車或機器手臂[6][27][28],Kim 等人在 [16]中提出在手臂、手腕、手掌上各裝設不同的感測器,藉由感測器的資訊偵測 手臂的狀態來操作挖土機,如圖 1-5 所示,使用者可以很快的熟悉此系統並直覺 式地操作。 圖 1-4 基於手勢之遠端操控系統[16] 在上述的三部分中不論是環境中影像的資訊、即時避障策略演算法的結果、 甚至是機器人的操控,都必須呈現給操作者,而為了完整的呈現,學者提出虛擬 實境(Virtual Reality)的技術,虛擬實境的優點在於利用電腦的繪圖能力,將已知 物件繪於場景中,提供即時影像給使用者,並利用視覺、聽覺、力覺等回饋資訊 讓使用者如同親臨現場,掌握環境中的資訊以及機器人的狀況即時的反應。 基於以上的討論,可以了解到一個好的人機協同系統,除了要有完善的輔助 工具,更要能隨時偵測環境變化並主動學習採取應對的方式,確保人機協同的安 全性。本論文致力於開發一個符合上述討論的人機協同系統,如圖 1-5 之概念圖 所示,環境中的資訊透過 Kinect 的應用,物體的定位變的簡易可行,設計虛擬 環境介面則可讓操作者更易直接了解環境資訊,並可直接對於環境所發生的變化 做出即時反應,而訂定即時避障策略得以避免機器人與人類或障礙物的碰撞,提 升安全性。在系統發展初期,我們面臨到一些困境,例如障礙物的遮蔽使得虛擬
5 影像產生不連續性,定位也變得不準確,為了消彌障礙物消失的現象,我們額外 再加入多台視覺設備,但反而在傳輸資料的過程中難免會有資料遺失的發生,但 在過往的研究中對於如何改善此問題卻少有著墨。為了因應這些挑戰,我們將傳 遞資料的方式改為使用共享內存(share memory)的方式,使資料的傳遞更為快速, 最後透過實驗證明,引入本論文的系統架構,操作效率、人機協同合作安全性都 可以大幅提升及改善。 圖 1-5 多軸機器手臂操作系統念圖 本論文在第二章提出操控器系統,其中包含一易於直覺操作的虛擬人機介面, 並加入 Kinect 視覺輔助工具,結合環境資訊至虛擬介面,以及操作策略;第三 章介紹系統實現,分為軟體跟硬體兩個部分,在軟體方面,主要介紹虛擬環境與 虛擬機器人的構成和工作空間的轉換;在硬體分面則包含機器手臂、操控器及 Kinect 視覺裝置,另外也說明系統流程架構;在第四章介紹實驗,說明實驗流程 與目的,將第二章所開發的輔助策略一一驗證,並討論其實驗結果;而第五章則 提出結論以及未來工作。
6
第
第
第
第二
二
二章
二
章
章
章
機器人操作系統
機器人操作系統
機器人操作系統
機器人操作系統
在此章我們介紹本論文所提出的機器人操控系統,首先系統利用 Kinect 裝 置獲得真實工作區域的環境資訊,包含工作者人體骨架資訊、障礙物資訊以及機 器手臂當前的狀態、姿勢一併回傳給系統運算中樞,並顯示在虛擬介面上供操作 者使用,其架構圖如圖 2-1 所示,分為 master 端與 slave 端,master 端包含鍵盤、 滑鼠輸入裝置,和視覺、聽覺回饋的輸出裝置,包含虛擬操作介面及系統運算中 樞;slave 端包含機器手臂控制器、六軸機器手臂、Kinect 視覺裝置,兩端透過 網際網路來進行溝通,互相傳遞所需要的資料;虛擬機器人系統中的運算中樞主 要是計算機器手臂的各軸應該旋轉的角度,並藉由網路通訊傳輸至 slave 端的操 控 器 , 為 了 因 應 操 作 者 在 操 控 時 所 給 定 的 位 置 資 訊 不 夠 清 楚 或 是 inverse kinematics 計算後角度的劇烈變化造成機器手臂的震動,故在傳輸角度資訊至 slave 端之前,我們透過一指令平滑器先過濾掉高頻的部分,再將資料送出。由 於面對的未知環境,往往存在著許多操作風險,本系統為了應付機器手臂與外界 環境發生接觸、碰撞的情況,使用 Kinect 視覺裝置將環境中的資訊回傳給系統 運算中樞,並導入避障策略,避免碰撞的產生。 在操控期間,slave 端的機器手臂也會回傳當前手臂的各項資訊給系統運算 中樞,回傳後系統會更新虛擬場景,除了搭配力輔助策略和避障策略外,另外透 過螢幕與喇叭輸出裝置,將視覺、聽覺資訊回傳給操作者,視覺部分是利用所繪 製之虛擬實境介面[18][19][20],呈現仿真的機器手臂圖像,讓操作者可以掌握機 器手臂當前的姿勢狀態、與障礙物相對距離、動態障礙物移動速度資訊等,此外 還呈現手臂當前的的各項資訊、各類參數資料、指示表等;聽覺方面則是當操作7 者給予機器手臂不當操作的指令時,喇叭會發出「嗶、嗶」警示聲來提醒操作者, 避免機器手臂因此受損或是手臂與工作者碰撞產生不可預期的傷害。 接下來我們將詳細說明上述提及的系統架構及輔助策略,包括 2.1 節的視 覺定位,2.2 節的影像回歸策略,2.3 節的避障策略,以及 2.4 節的機器人操控。 圖 2-1 機器人操控系統架構流程圖
8
2.
..
.1 Kinect 影像資料擷取與分析
影像資料擷取與分析
影像資料擷取與分析
影像資料擷取與分析
Microsoft 的 Kinect 裝置原先是應用在電視遊樂器 XBOX 的體感遊戲中,藉
由官方網站上我們可以得知 Microsoft 研發出一種體感遊戲,不藉由手持裝置如 握把、搖桿、按鍵等等,而是完全以影像偵測為分析的基準點,當使用者在玩此 類型遊戲的時候,只需專注在於自己身體的位置,即可在遊戲中模擬出視覺所偵 測到的動作,達到人機一體的感受。在本論文中,遠端的 Kinect 則是用來獲取 目標的三維座標,另透過共享內存(shared memory)方法及網路連接將資料送給 近端系統運算,並繪製座標點於虛擬介面上。 圖 2-2 Kinect 裝置 Kinect 與一般攝影機的不同處在於 Kinect 運作可以得到三種資訊,第一為一 般 Webcam 的彩色影像資訊,第二為影像的深度資訊(視深),第三為聲音訊號。 先簡單介紹一般取得深度資訊常用的方法,時差測距(Time of Flight,ToF),從字 面上的意義就是計算光線飛行的時間,首先發射一道雷射光或紅外光,然後計算 該道光撞到物體後回來的時間差,由於光速為以知的定值,透過時間差及可計算 出相對距離。Kinect 取得深度資訊是使用 LightCoding[21]技術,此技術是藉由一 個紅外線訊號發射器發射加上了標記的紅外線,讓場景中充滿不同的標記,在藉 由紅外線攝影機把資料取回來,藉此判斷出場景的深度。Kinect 機身上有 3 顆鏡
9
頭,中間的鏡頭是一般常見的 RGB 彩色攝影機,左右兩邊鏡頭則分別為紅外線 發射器和紅外線 CMOS 攝影機,這兩者所構成的 3D 深度感應器,如圖 2-2 所 示,使 Kinect 具備 3D 測量的能力,其與 2D 測量最大的不同在於多捕捉了「深 度影像」(depth image) ,如圖 2-3(a)所示。若將 2D 影像如 2-3(b)結合深度影像, 我們即能得到 2D 影像中每個像素的深度資訊,接著利用投影的方式建立一個以 Kinect 機身中心為原點的三維空間,經過適當的座標轉換後,即能得到環境物件 在機器手臂空間的位置座標,此外若持續動態地對環境物件進行 3D 測量,也能 進一步開發出影像輔助工具,例如即時辨識物體在機器手臂空間中的縱深運動。 (a) 深度資訊 (b) 影像資訊 圖 2-3 利用 Kinect 可獲得環境中的(a)深度資訊和(b)影像資訊
10
2.
..
.1....1 視覺定位暨座標轉換
視覺定位暨座標轉換
視覺定位暨座標轉換
視覺定位暨座標轉換
本論文訂定的工作空間如圖 2-4 所示,假設長寬高大小為 2m × 2m × 2m, 為了避免偵測的死角,Kinect 的配置為中、左、右三組,設置於工作空間的制高 點處,朝向位置對準工作空間的中心,灰色區域為工作區域,目的是讓操作人員 及機器手臂的位置姿態,都可以讓 Kinect 偵測。但由於三台 Kinect 所拍攝得到 的資料值並非機器手臂的座標空間,故必須將其座標轉換至機器手臂空間。在此 部分中,之前已有開發過相關座標轉換經驗,分為三個階段,旋轉、平移、線性 座標變換。 圖 2-4 工作區間內 Kinect 與機器手臂位置擺設示意圖 當我們在點選物件時,我們只知道物件在 Kinect 影像畫面中的像素位置以 及該位置的深度值,所以還必須透過影像處理中投影的方式,系統才能取得物體 在 Kinect 空間中的位置座標,所使用的函式如下:
( )
OpenNI− ConvertProjectiveToRealWorld (2.1) 由上式我們可以獲得該物件在 Kinect 空間的座標,接著要做的是將此座標轉換 至機器手臂座標空間,如圖 2-5 所示,此部分可以分為三個階段,分別是旋轉、11 平移,線性變換。由於 Kinect 與工作平台間存在一個俯角 θ,因此座標轉換的第 一階段是將 Kinect 座標系以 X 軸為中心旋轉 θ,其轉換如(2.2)式所示: ′ ′ ′ 1 0 0 0 cos sin 0 sin cos (2.2) 上式裡的角度 θ 在本實驗室所架設的 Kinect 中定為 30 度,而 , , 代表 在 Kinect 空間中的座標, ′ , ′ , ′ 則代表旋轉θ後的座標,旋轉完畢後再 接著進行平移,使平台的中心為座標系原點,可得(2.3)式: ′′ ′ 1 0 0 0 cos sin 0 sin cos (2.3) 最後,旋轉座標軸使與機器手臂的座標軸一致: 1 0 00 0 1 0 1 0 ′ ′ ′ (2.4) 由上式(2.4)式我們即得到環境物件在機器手臂座標系中的 3D 位置 , , , 換到機器手臂座標系,即可在我們所開發的虛擬影像中將目標顯示出來,而其他 兩台 Kinect 也藉由視覺定位暨座標轉換方法轉換到機器手臂座標系。 圖 2-5 環境物件座標轉換示意圖
12
2.
..
.1....2 人體
人體
人體偵測
人體
偵測
偵測
偵測
在人機共工合作環境中,人體骨架的資訊相當的重要。Kinect 目前可透過 OpenNI 及 PrimeSense 軟體,搭配本身所擷取到的影像從本身晶片內存有的人體 模型比對,系統再將該模型轉換成虛擬人體,若該虛擬人體透過行為觸發,才進 行骨架生成追蹤定位,Kinect 藉由上述所提到的深度影像圖,再藉由 OpenNI 提 供全身分析。簡略地介紹一下 OpenNI(Open Natural Interaction) [21],大致上可 翻譯為「開放式自然操作」,然而 NI(Natural Interaction)對自然操作的定義包含 語音系統、手勢辨別、人體動作等等,基本上就是操作者身上不需要其他特殊裝 置的操作方式,OpenNI 提供多語言(以 C/C++為主)且跨平台的架構,如圖 2-6 所示。可提供程式開發者作為更進一步的研究開發,其架構圖分為三層,最上層
13
是應用程式(Application),也就是程式開發者需要撰寫的部分;中間層是 OpenNI 介面,負責和硬體部分的溝通,也在自身內部預留了中介軟體(middleware)的部 分,在中介軟體部分包含了四種元件分別為全身分析、手勢偵測以及場景分析, 本論文所使用的人體骨架追蹤就是採取其全身分析;最下層則是硬體部分,目前 支援的硬體則包含 3D Sensor、RGB Camera、IR Camera、和 Audio Device 這 四類。
2.
..
.1....3 人體骨架定位系統
人體骨架定位系統
人體骨架定位系統
人體骨架定位系統
OpenNI 定義的人體骨架資料,將人體分為頭(Head)、左右肩膀(Shoulder)、 左右手肘(Elbow)、左右手(Hand)、身體中心(Torso Center)、左右髖骨(Hip)、左 右膝(Knee)、左右腳(Foot),如圖 2-6 所示,取其各資料的深度資訊再藉由前述 2.1.1 節所提供的座標轉換方法,將這些資料以座標方法呈現。為了節省運算時 間,本論文中每個人體座標以 7 個點作為替代,一方面加快程式運算速度,且節 省運算所需資源;另一方面所取的點數也足夠用來描述一個人的姿態,所在位 置。 圖 2-6 OpenNI 定義之人體骨架資料[21]
14 人體骨架資料必須透過影像處理及骨架校正的處理才能為 Kinect 所取得, 取得姿勢的結果才得以傳輸至電腦中作繪製的處理,其中人體骨架校正所使用的 函式如下: :: xn SkeletonCapability (2.5) 要得到上述的骨架關節資訊,以 PrimeSense 為主的 OpenNI 需要搭配上式並且使 用者必須站在 Kinect 的視野範圍內,並擺出的「PSI」圖形,如圖 2-7 所示,當 偵測到此姿勢後骨架校正的函式即開始運行,目前使用 OpenNI 的程式開發者想 試著去更改這個校正姿勢,但很遺憾的在 OpenNI 提供更進一步的資訊前,這個 校準姿勢是無法被更改的。當骨架校正完姿勢後,即可追蹤各點的三維資訊骨架 資訊,包含其深度資訊如圖 2-8 所示,其中 OpenNI 的人體骨架構成[21]是由關 節(Joint)所構成,個別都包含位置(Position)和方向(Orientation)這兩種資料,位置 是由一組 X、Y、Z 軸所組成的三維座標,方向則是由一個 3 X 3 的旋轉矩陣 (Rotation Matrix),這兩者均包含信賴度(Confidence)值,即可用來判斷關節的可 信度,圖 2-9 顯示人體骨架位置座標。 圖 2-7 人體骨架偵測姿勢[21]
15
圖2-8 OpenNI偵測人體骨架深度圖
16
2.
..
.1....4 即時定位策略
即時定位策略
即時定位策略
即時定位策略
當操作者手動標定目標物後,目標物的位置就是我們所關心的資料,然而目 標物的資訊會隨時間有空間上的移動。對於移動的物體來說,我們使 meanshift 方法對其進行追蹤處理,並結合 Kinect 裝置使其自動追蹤並定位目標的新位置 [22]。在 meanshift 方法中,為了減少光照及亮度的影響,先將 Kinect 得到的影
像空間從 RGB 轉到 HSV (Hue, H:色相、Saturation, S:飽和度、Value, V:明度), 接著計算操作者事先選擇的 ROI (region of interest)內關於 H 分量的質心位置
(center of mass),再把新的 ROI 中心移往質心位置,這時因為 ROI 的內容改變
了,故須再重複前面的步驟得到新的質心位置,即可使 ROI 來到物體的中心位 置,此過程如圖 2-10 所示。若將 meanshift 方法拓展到連續影像中使用(又稱 camshift[23]),意指當物體位置改變位置時,ROI 能持續向著物體中心移動,並 使用先前所介紹過的 Kinect 定位方法,即能即時地更新物體位置座標,經過我 們實作測試,因為其基礎是用 color histogram,實作後發現這種方法在背景與目 標物的顏色差異大時,有不錯的表現。 圖 2-10 meanshift 方法流程示意圖[28]
17 圖 2-11 展示實際操作的情形,操作者一開始可得圖 2-11(a)、(b)兩張各由 左右邊 Kinect 所拍之影像,再由 Kinect 所看到的彩色影像中圈選物體,被選定 的目標將被紅色追蹤框所包圍(ROI)如 2-11(a)所示,取得物體的質心座標後,利 用本節的即時定位策略,開始進行追蹤,由於追蹤到的物體座標系統是 Kinect 裝置的座標系統,需再經由 2.1.1 節的座標轉換策略處理,即可將此物體座標轉 換至機器手臂的座標系統,並繪製於虛擬場景中如圖 2-11(c)。 (a)追蹤物被紅色 ROI 包圍 (b)未圈選追蹤物之一般影像 (c)所圈選的物體經由座標轉換後呈現於虛擬實景場景 圖 2-11 即時定位:(a)追蹤物被紅色 ROI 包圍影像,(b)未圈選追蹤物之一般影像, 及(c)所圈選的物體經由座標轉換後呈現於虛擬實景場景
18
2.
..
.2 影像即時回歸策略
影像即時回歸策略
影像即時回歸策略
影像即時回歸策略
由先前的研究中,我們可以得知不論是利用雷射測距或是 webcam 所得的影 像資訊,都會因為環境中的障礙物遮蔽而造成資訊錯誤或是影像不完整,這是在 追蹤環境物體時最大的挑戰,一旦偵測的物體被遮蔽住,系統就會誤判位置。所 以本系統的另一個特點就是具有影像即時回歸的功能。本系統利用 2.1.4 節所介 紹的 camshift 方法來追蹤影像,這種方法在背景與目標物的顏色差異大時有不錯 的表現,由於我們以左上方的 Kinect 視角為主要依據,故在某些姿勢的情況下 可能會發現目標物遺失,於此,我們提出一套控制策略,當所選擇之目標物消失, 系統仍可利用上方或者是右上方 Kinect 的視角,繼續保持追蹤,可以即時提供 目標物所在位置資訊給使用者。要達到影像即時回歸,首先由操作者選擇所要追 蹤的物體 p(x,y,z)的框架大小,定義搜索窗的寬度、高分別為 w,d,選完之後執 行 2.1.4 節所介紹的即時追蹤策略,由於物體隨著時間移動,追蹤框架持續搜尋 追蹤,此時追蹤框架仍保持一定大小。隨著被追蹤物與 Kinect 間的距離接近或 遠離,框架也會隨著變大變小,但大小卻不會與原本操作者所選定的相差甚遠, 此時判定物體仍在屬於追蹤範圍內;然而,當物體消失之後,不只搜索框架會過 於變大或縮小,其質心移動速度 v 可能會突然超過一般物體所能移動的速度,此 時我們判定追蹤物體消失於我們的搜索框中,為了兼顧一般物體的移動速度,我 們訂定此臨界速度 vth為 200mm/s ,圖 2-12 顯示上述消失判定系統流程圖。
19 圖 2-12 消失判定系統流程圖 以上述所提之影像回歸策略,不論所要追蹤的物體形狀、大小,只要將追蹤 物與環境中的其他物體可以明顯的以顏色區分,追蹤準確度會相對的提高;而在 本節中討論到搜索框的大小選定,操作者必須根據工作空間、任務複雜度、以及 追蹤物大小所加以事先定義,如 2.1.4 節中我們追蹤機器手臂末端紅球,移動機 器手臂使其靠近或遠離 Kinect 裝置,可從平面影像中得知其搜索框大小不會大 於 5 平方公分,故我們定義,當此刻搜索窗與操作者一開始所拉取之搜索窗視窗 大小相差 5 平方公分以上定義為誤判,如圖 2-13(a)左方 Kinect 的追蹤物因被遮 蔽而搜索框擴大欲尋找原先的紅球,而圖 2-13(b)追蹤物紅球沒被遮蔽而繼續保 持追蹤。 (a) 追蹤物被遮蔽 (b) 無遮蔽 圖 2-13 camshiht 追蹤實境圖: (a)追蹤物被遮蔽和 (b)無遮蔽
20
2.
..
.3 輔助
輔助
輔助
輔助策略
策略
策略
策略
在機器手臂的操作中,要能準確的避免碰撞,進而達到人機協同安全合作, 視差的問題是必須克服的瓶頸,每次的誤判都有可能造成不可彌補的傷害。在過 往的研究中,分析視差常遭遇的困難大概可分為三種: (1). 一般攝影機無法直接得到深度的資訊,得到的資訊跟實際目標位置有偏差; (2). 其他東西在空間中遮蔽視覺,則無法得到正確的目標位置資訊; (3). 即時知道物體實際的所在位置,普通的平面顯示器無法呈現 3D 位置座標。 針對此三個問題,本論文使用可以得到真實環境中環境物件的視覺設備 Kinect,已在本章的 2.1 節中介紹,而在第四章的實驗中,也會實際驗證其準確 性,如此一來就可以解決第一個問題;至於工作空間裡的物體不小心遮擋住視覺 設備,以致無法得到正確的目標位置,我們採用三台 Kinect 視覺裝置,搭配本 章的 2.2 節介紹的影像即時回歸策略,即可解決遮蔽性的問題;然而市面上所販 售的顯示器多為平面顯示器,無法有效地呈現三維座標位置,本論文所採用的方 法是藉由在平面顯示器中切換虛擬介面的視角,由於還是有可能產生視差的情況, 故在本系統中,我們引入了以場效函數 potential field[3][15]為基礎的方法來發展 避障策略,將在下面章節介紹所提出的避障策略。
21
2.
..
.3....1 碰撞狀態分析
碰撞狀態分析
碰撞狀態分析
碰撞狀態分析
在實現人機合作的時候,碰撞的預測是一個很重要的議題,而碰撞預測的關 鍵,就在於機器手臂與障礙物之間的相對運動與速度方向,由於障礙物或是人體 的移動軌跡或是運動方式無法百分之百的預測,甚至在大部分的情況下屬於變加 速度運動,為了安全性的考量,所以我們提出一種隨時更新預測的方式,在每個 時段中,以現在障礙物的位置與前一個時段障礙物的位置資訊的向量,來判斷是 否會發生碰撞。首先我們利用簡化模型來加以解釋,如圖 2-14 所示,我們將障 礙物中心點以點 PO代表,機器手臂末端點 Ps以半徑 rs的灰色保護球包住,結合 機器人與障礙物半徑,我們定義機器手臂新的保護球半徑 R: 0 s
r
r
R
= + +
r
′
(2.6) 其中 r0為障礙物半徑,rs為機器手臂保護球半徑,r
′
為安全區間,P1、P2則表示 障礙物下一刻的位置資訊,定義灰色部分為碰撞區間(Collision Region),如圖 2-14(a)所示當下一刻障礙物的位置在 P1 時,即θ>α,判斷不會撞到;反之圖 2-14(b)若當下一刻障礙物的位置在 P2時,即θ≦α,則以視覺回饋的方式反映 在虛擬介面上提醒操作有機會發生碰撞。 (a)判定不會撞到 (b)有機會發生碰撞 圖 2-14 碰撞狀態分析示意圖:(a)落於非碰撞區間 和(b)落於碰撞區間22
2.
..
.3....2 避障策略
避障策略
避障策略
避障策略
本系統所採取的避障導引策略,主要以場效函數(potential field)為基礎,工 作空間中的虛擬場效函數是一種描述位能或電能與距離的關係式,在六軸機器手 臂避障導引策略中,利用此概念可以避免機器手臂與障礙物或人體的碰撞產生, 接下來簡單介紹此場效函數的特性 : (1).當接近障礙物時,位能值會持續的放大,隨著距離的增加而減小; (2).位能場接近或遠離障礙物,有球形的對稱性; (3).位能的等值線在障礙物周圍且與障礙物有相似的形狀。 當設定 Pt、Ps分別代表目標物和手臂末端點(控制點)於工作空間中的位置座 標,根據場效函數,其吸力場與吸力可表示如下: 2
1
(
)
2
att s tU
=
k P
−
P
(2.7)( )
(
)
(
)
att att s t t sF
= −
grad U
= −
k P
−
P
=
k P
−
P
(2.8) 其中U
att為吸力場,F
att為吸力,k 為場效函數常數,可根據操作者穩定操作且 符合安全為原則調整,斥力場U
rep與斥力F
rep則表示如下: 0 2 0 0 0 for 1 1 1 for 2 rep U ρ ρ η ρ ρ ρ ρ ≥ = − ≤ , , (2.9)( )
0 0 2 0 0 for 1 1 1 for X rep rep F grad U ρ ρ ρ η ρ ρ ρ ρ ρ ≥ = ∂ − ≤ ∂ = − , , (2.10)23
其中
ρ
表控制點到障礙物的距離,ρ0表示斥力產生的最長距離,η
表場效函數斥力常數,而控制點受力的總和是吸引力加上排斥力的合成:
total att rep
F
=
F
+
F
(2.11) 利用上述的概念,我們引入機器手臂末端點與障礙物之間的位置關係,避免碰撞 的發生,具體避障導引公式如下: 0 0 0 0 for d ( ) for d t t s d V k p p d ≥ = − ≤ , , (2.12) 0 1 t r r k d η× + = (2.13) 其中V 是手臂末端點所需增加的向量,方向為遠離障礙物;Pt O、Ps分別代表障礙 物和手臂末端點於機器人空間中的位置座標;r0、r1 個別表示障礙物及手臂末端 所形成的虛擬保護球大小。圖 2-15 顯示避障示意圖,當手臂末端 Ps與障礙物 中心 PO 之間的距離 d 小於等於某個限定值(於此我們訂為 d0, d0 =r0+ r1),則啟 用避障策略,在本論文的實驗中,使用寶特瓶為障礙物,根據瓶身長度及半徑大 小的考量,我們採用 r0為 10cm,然而手臂末端點通常較容易發生碰撞造成人員 受傷或是工作中的物品掉落等,我們把手臂末端點的保護球大小設置為 10cm, 即表示說我們必須時常保持手臂與人員或是手臂與障礙物最短距離是 d0 = 20cm, 而此 d0 值可隨工作環境、工作內容,或安全性需求來調整。 圖 2-15 避障示意圖24
2.
..
.3....3 正交
正交
正交型
正交
型
型避障策略
型
避障策略
避障策略
避障策略
2.3.2 節所提的避障策略雖然有一定的成效,但因為手臂的移動是由馬達所 帶動,其轉速有一定的限制,所以無法閃避速度過快障礙物,在第四章的實驗中, 根據工業機器人進行人機協同合作 ISO-10218 的標準,工業機器人的最大運行速 度必須小於 250mm/s[24]。因此為了面對快速的障礙,本論文提供另一種的躲避 方式,乃以正交方式躲避閃躲,意即沿垂直方向逃離迎面而來的障礙物,不僅可 以確保成功逃離,還可以減省逃離的時間,所採用的公式與(2.12)-(2.13)式相同, 然而不同的地方在於方向性V ,當障礙物落於灰色部分的碰撞區間內且移動速度t 大於 250mm/s,先由障礙物上一個時刻的位置 P0,與障礙物現在位置 P1,以及 手臂末端點 Ps,三點構成一個空間上的平面,再取障礙物移動向量P01以虛線表 示,由P01與 Ps取正交向量V ,最後由t P01、Ps的相對位置決定向量V 的朝向如圖t 2-16 所示。而圖 2-17 表示 3D 模型的情形,其中 W 為由 P0、P1以及手臂末端點 Ps,三點所架構的平面。 (a)障礙物往機器手臂末端點的左側 (b)障礙物往機器手臂末端點的右側 圖 2-16 避障輔助方向示意圖: (a) 障礙物往機器手臂末端點的左側和(b) 障礙物 往機器手臂末端點的右側
25 圖 2-17 避障輔助方向 3D 示意圖 以場效函數為基礎的避障演算法在數學表示上相對簡潔,容易理解且易於實 現,而在我們實際地去做模擬實驗及操作時發現,多了正交型避障策略不僅增加 其安全性也減少機器手臂之逃離障礙物的時間,不過,場效函數有一些常見且難 以完全避免的缺點,例如可能會落於局部最小解(local minimum),甚至是無解(當 障礙物之間為緊密的相連)的產生,當此種類似的情況發生時,為了確保人機協 同的安全性,我們會緊急停止機器手臂的操控,將可能的損傷降至最低。
26
2.4
機器手臂
機器手臂
機器手臂跟隨
機器手臂
跟隨
跟隨
跟隨模
模
模
模式
式
式
式
機器手臂的移動是由馬達帶動,其轉速有一定的限制,故難以躲避移動速度 過快的障礙物,所以我們提出了在 2.3.3 節中提出正交型避障策略來進行閃避, 然而在當操作者操作機器手臂不當或是指令下達過快甚至是閃避的時候,機器手 臂可能會無法完全即時跟上我們所下達的指令,所以機器手臂必須隨後跟上操作 指令,其過程如下所述,操作者將機器手臂末端點的位置資訊利用鍵盤輸入,透 過 Inverse Kinematics 運算後可得到各軸的角度,但根據機器手臂上各軸馬達的 轉速限制,我們令機器手臂各軸以最高轉速來跟隨輸入的資料資訊。執行序更新 的頻率和各軸的最高轉速為以知,所以可以得知每一軸各時間點的轉動量Δi(i = 1,2,…,6 ),為了使機器手臂順暢移動來跟隨輸入指令,我們採取的演算法如下:,
i THi ri di i ri ri THi iif
then
else
θ
θ
θ θ
∆ ≤ ∆
=
∆
=
+
∆
∆
(2.14) 其中-i
θ
di
θ
ri
∆ =
(2.15) 上式以θdi 表示輸入的位置資訊經由 Inverse Kinematics 計算所得的角度;而θri 為目前機器手臂第 i 軸之角度,兩者的差值為Δi;ΔTHi 為每一軸在每一個時間 點所轉動的最大門檻值。若Δi小於或等於一差值的臨界角度ΔTHi 時代表機器人 第 i 軸角度和所需要主動的角度差異不大,讓θri直接等於當下的θdi,否則先將 機器手臂個軸的角度先慢慢逼近θdi ,只要中途沒有超過定義的工作區間(如機 器手臂本體、桌面、事先定義的障礙物等)或是超出機器手臂個軸最大角度限制 的狀況,就一直重複執行到滿足(2.14)式為止,若在逼近θdi 途中遇到上述兩者 之一,緊急停止在當下角度,並以視、聽覺等回饋方式提醒操作者改善其操作模 式,採用此種方法一方面可以保護機器手臂,另一方面可以隨時警示操作者的操 作方式。27
第三章
第三章
第三章
第三章
系統實現
系統實現
系統實現
系統實現
本章介紹我們設計的多軸機器手臂操控系統的完整架構,利用第二章所提出 的各種力輔助策略和即時定位策略,搭配各項軟硬體設備以及環境資訊加以實現。 3.1 節介紹整個系統的架構;3.2 節介紹軟體實現,包含系統所使用的軟體及虛 擬實境場景的介紹;3.3 節為硬體實現,介紹系統所採用的輸入輸出裝置、Kinect、 機器手臂等。
3.
..
.1 系統架構
系統架構
系統架構
系統架構
如圖 3-1 顯示所開發的機器人操作系統,包含近端(master)的個人電腦,遠 端(slave)端的六軸機械手臂,以及視覺設備-Kinect。其中個人電腦作為整個系統 的運算中樞,負責處理接收來自各裝置的輸入訊號、網路通訊,物件座標轉換等, 並繪製虛擬場景於螢幕上;近端有兩部顯示器,一部用於提供人機介面與系統資 訊,為我們所繪製的虛擬實境系統,另一部顯示 Kinect 的即時影像畫面,用來 輔助操作者進行實驗。遠端(slave)的機器手臂為主要操控對象,並機器手臂當前 各軸的角度資訊顯示於人機介面上,在經過運算後輔助使用者操作機器人,當遠 端工作人員與機械手臂最短距離小於安全距離時,利用避障策略進行閃避或是緊 急停止機械手臂以確保人機安全以防造成不可預期的傷害。
28
29
3.
..
.2 軟體實現
軟體實現
軟體實現
軟體實現
本論文中所使用的作業系統為 Windows 7,編譯軟體採用 Microsoft Visual
C++ 6.0 用來撰寫機器人程式以及虛擬介面的開發,Microsoft Visual Studio 2008
主要負責 Kinect 裝置的影像、環境資訊。近端(master)軟體部分主要分為三個部 分圖 3-2,分別為: A.即時更新人機介面中的虛擬場景; B.處理機械手臂資訊與網路傳輸; C.接收來自 Kinect 的物件座標資訊。 由於虛擬場景的繪製、網路封包的資料傳遞與接收、Kinect 的資訊傳收,三者的 更新頻率各不相同又需要同時執行,故在中樞運算系統中採用多執行緒方式來實 現,同步的使三者並行。執行緒 A 主要負責視覺系統部分,包含顯示機器人姿 態、環境中障礙物資訊、操作選單,所以更新頻率只需要 60Hz 即可以產生流暢 的影像;執行緒 B 主要負責機器人角度的計算和網路的傳輸部分,在更新機器 手臂角度之前系統會先執行安全措施的檢測,例如機器手臂各軸角度是否在允許 範圍內、是否會和環境中的操作人員產生碰撞,在確定安全後才會更新機器手臂 的角度並傳輸到遠端(slave)執行操控,否則將維持當前姿勢,其中的通訊傳輸是 藉由 TCP/IP 網路協定來溝通;最後執行緒 C 負責偵測環境中的人體骨架資訊 以及障礙物位置資訊,並傳遞至中央運算系統進行座標轉換運算,再以視覺效果 呈現於虛擬場景,而 Kinect 與個人電腦之間的資料傳輸用 USB 傳遞。在中央運 算系統中又以如何建構虛擬場景最為關鍵,針對此部分將再接下來 3.2.1 節說明 虛擬場景的建構,3.2.2 節說明機器手臂角度運算。
30 圖 3-2 執行緒關係圖
3.
..
.2....1 虛擬場景建構
虛擬場景建構
虛擬場景建構
虛擬場景建構
在虛擬場景中建構出一個虛擬機器人的目的是讓使用者了解 slave 端機器手 臂的姿態與狀況,在 master 端電腦以虛擬實境的繪圖方式繪出與真實機器手臂 相仿之虛擬機器手臂,並即時更新它的狀態,為了建構出真實性高的虛擬實境畫 面,我們採用了電腦繪圖引擎 - OpenGL,其優點為可調整光源的位置方向、陰 影變化,並可以自由改變視角,為了保持畫面的流暢,將畫面的更新頻率設定為 60Hz。
31 在建構虛擬機器手臂之前,必須先了解其組成結構,表 3-1 為 RV-2A 機器手 臂的 D-H 參數,且 D-H 變換矩陣如下所示: 1 ( ) 0 0 0 0 1 i i i i i i i i i i i i i i i i i i i i c s c s s a c s c c c s a s s c d θ θ α θ α θ θ θ α θ α θ θ α α − − − = A (3.1) 由於我們在機器手臂的末端裝置了三種工具,分別為夾爪、六角扳手以及梅花板 手,除了機器手臂本身的六個軸以外,我們將所裝置的工具視為第七軸,並利用 forward kinematics 加以計算: 0 0 1 2 3 4 5 6 7 = 1 2 3 4 5 6 7 A A A A A A A A (3.2) 可得到每個軸座標系之間的轉換關係,以及機器手臂上的工具末端的位置與方向, 藉由這些資訊,可將機器手臂的骨架進行建構,如圖 3-3 所示,其中d7、a7與
β
會隨著末端裝置的工具不同而改變,如果裝置的工具是夾爪,其參數設定如下: 7 d 為 95.5mm、a7為 0、β
為 0;如果是六角扳手,其參數值如下:d7為 199.5mm、 7 a 為 0、β
為 0;如果是梅花板手,其參數值如下:d7為 30mm、a7為 129.5mm、β
為 15 度。以此骨架為基礎,再將機器手臂的外觀加在骨架之外,即完成虛擬 機器手臂的繪製。另外視覺方面也因為了有半透明效果而不會影響到使用者的視 線,並且能有效地提供視覺提示,自由改變視角的功能可以讓視覺回饋不像平面 顯示器一樣會有死角的問題。32 表 3-1 RV-2A D-H 參數 Link ai αi di θi 1 a1 = 100mm -π/2 d1 = 350mm θ1 2 a2 = 250mm 0 0 θ2 3 a3 = 130mm -π/2 0 θ3 4 0 π/2 d4 = 250mm θ4 5 0 -π/2 0 θ5 6 0 0 d6 = 85mm + end-effector θ6 圖 3-3 利用 D-H model 建立機器人結構
33 完整的虛擬實境場景如圖 3-4 所示,遠端的機器手臂透過網路與中央運算系 統連線,Kinect 裝置藉由 USB 傳輸環境中的物件資訊,由此一來即可藉此畫面 提供使用者關於機器手臂的各項資訊,視窗的上方提供系統的各參數及障礙物位 置資訊,視窗的左下方主要為機器手臂與各軸角度等即時資訊,視窗的右下方為 功能選單,提供操作者選擇需要的輔助策略。 圖 3-4 虛擬機器人操控系統 master 端操作畫面
34
3.2.2 機器手臂角度運算
機器手臂角度運算
機器手臂角度運算
機器手臂角度運算
為了使機器手臂末端以及機器手臂本體避開障礙物,我們必須適當地計算出 機器手臂六軸應該轉動的角度,並且持續地擷取在虛擬空間中的位置與方向,再 利用這些資訊提供 Inverse Kinematics 計算角度。 圖 3-5 MITSUBISHI RV-2A 各軸角度運算示意圖 由圖 3-5,當得知機器人末端位置為 p 時,而機器人腕部位置 ! 可計算如下: 6 x y z pw w pw d pw = = − p p a (3.3) 機器人腕部位置相對於第二軸座標系為 1 1 1 1 1 1 0 1 1 1 1 1 a ( ) 1 1 1 x x y x y z y z x y z pw c pw s pw p w pw pw d p w pw s pw c pw p w − + − − + = = − + A (3.4) 因此可以得到 1 1 x 1 y z 0 s pw c pw p w − + = = (3.5)35 故第一軸的解可以寫成 1 1 tan 2( , ) or tan 2( , ) y x y x A pw pw A pw pw θ θ π = = ± (3.6) 上面兩組解中我們選擇第一組解,另外由圖3-7我們可以得知 1 1 Atan2(p w p wy, x)
φ
= (3.7) 1 2 1 2 ( x) ( y) r= p w + p w (3.8) 2 2 3 4 ( ) ( ) l= a + d (3.9) 1 4 3 tan (d ) a γ = − (3.10) 若r> +l a2,則 2 3θ φ
θ
γ
=
= −
(3.11) 若r≤ +l a2,則 2 2 2 2 2 (a ) 2 cos( ) l =r + − ra α (3.12) 2 2 2 1 2 2 ( ) cos ( ) 2 r a l ra α = − + − (3.13) 2 2 2 1 ( 2) cos ( ) 2 r l a lr β = − + − (3.14) 則可以得到兩組θ2、θ3解: 2 3 θ φ α θ α β γ = − = + − (3.15) 2 3 θ φ α θ α β γ = + = − − − (3.16)36 我們選定第一組解作為機器人的第二、三軸角度。在此我們將姿態的變換矩陣表 示成 [ ] x x x y y y z z z n o a n o a n o a = = R n o a (3.17) 由前面計算出前三軸的角度,我們可以計算第三軸相對於世界座標的方向為 0 0 1 2 3 = 1( )θ1 2(θ2) 3(θ3) R R R R (3.18) 接著我們可得到虛擬游標相對於當前第三軸座標系的方向為 3 3 3 3 0 3 4 5 3 3 3 6 3 4 5 6 3 3 3 4 5 6 4 6 4 5 6 4 6 4 5 4 5 6 4 6 4 5 6 4 6 4 5 5 6 5 6 5 ( ) x x x T y y y z z z n o a n o a n o a c c c s s c c c s c c s s c s c c s c s c c s s s c s c c = = = − − − − = + − + − − R R R R R R (3.19) 由 (3.19) 式,且θ5∈(0, )π ,則我們可以得到機器人四、五、六軸的解如下: 3 3 4 3 2 3 2 3 5 3 3 6 Atan2(- , - ) Atan2( ( ) ( ) , ) Atan2(- , ) y x x y z z z a a a a a o n θ θ θ = = + = (3.20) 若θ5∈ −( π, 0),則我們可以得到另一組解: 3 3 4 3 2 3 2 3 5 3 3 6 Atan2( , ) Atan2(- ( ) ( ) , ) Atan2( , - ) y x x y z z z a a a a a o n θ θ θ = = + = (3.21) 在解出每一軸的角度後,系統皆會採取各軸容許範圍(表3-2 )的偵測: min min min max max 1 max if < if < < if > i i i i i i i i i i θ θ θ θ θ θ θ θ θ θ θ = (3.22) 其中i = 1, 2,…, 6,代表六個軸,系統必須確保計算出的角度維持在機器人所限 制的範圍內。
37
3.
..
.3 硬體實現
硬體實現
硬體實現
硬體實現
硬體方面,master 端配有一台電腦,鍵盤為輸入裝置,slave 端則有機器人
的控制器、機器人本體與視覺裝置-Kinect。個人電腦主要用來實現虛擬場景系統,
中央處理器的規格為 Intel Core i5-3450 CPU 3.10GHz,此處理器能夠有效率
地處理多執行緒的運算,另外裝配8.00GB的記憶體,顯示卡為NVIDIAGeForce GTX 550 Ti。接下來我們逐一介紹本論文之機器人操控系統所採用的硬體,以 及各項硬體的特性與規格。
3.
..
.3....1
Mitsubishi
RV-2A 六軸機
六軸機
六軸機器
六軸機
器
器手臂
器
手臂
手臂
手臂
本論文使用的機器手臂為日本MITSUBISHI公司所生產的RV-2A六軸機器 手臂,搭配的控制器亦為該公司的CR1-571,圖3-6為控制器CR1-571外觀,圖 3-7為機器手臂RV-2A外觀,表3-2為機器手臂RV-2A的規格。系統採用的是C 語言搭配VC++編譯環境,在近端電腦下達控制命令後,將手臂六個角度的資料 封包傳送給 CR1-571,CR1-571 再對 RV-2A下控制命令,同時 CR1-571也回傳 機器手臂的當前角度資訊封包給近端電腦,另外,CR1-571控制器指令週期約為 7毫秒。圖3-6 CR1-571控制器外觀[25]
38
圖3-7 Mitsubishi RV-2A六軸機器手臂外觀[25]
表3-2 Mitsubishi RV-2A六軸機器手臂規格表[25]
39 表3-3Mitsubishi RV-2A六軸機器手臂控制器規格表[25]
40
3.
..
.3....2 Kinect
圖3-8顯示Kinect的外觀,中間的鏡頭是一般常見的RGB彩色攝影機,左 右兩邊分別為紅外線發射器和紅外線CMOS攝影機所構成的3D深度感應器,在 XBOX的體感遊戲中,Kinect主要就是靠3D深度感應器偵測玩家的動作,在本 系統裡則是用來偵測與目標物(障礙物)距離,表3-4為Kinect的產品基本規格。 圖3-8 Kinect外觀 表3-4 Kinect基本規格表 感應項目 有效範圍 顏色與深度 顏色與深度顏色與深度 顏色與深度 1.2 ~ 3.6 1.2 ~ 3.6 公尺1.2 ~ 3.6 1.2 ~ 3.6 公尺公尺公尺 骨架追蹤 骨架追蹤骨架追蹤 骨架追蹤 1.2 ~ 3.6 1.2 ~ 3.6 公尺1.2 ~ 3.6 1.2 ~ 3.6 公尺公尺公尺 視野角度 視野角度視野角度 視野角度 水平水平 水平水平 57 57 57 度57 度度度、、垂直、、垂直垂直垂直 43 43 43 43 度度度度 底座馬達旋轉 底座馬達旋轉底座馬達旋轉 底座馬達旋轉 上下各上下各 上下各上下各 28 28 28 度28 度度度 每秒畫格 每秒畫格每秒畫格 每秒畫格 30 FPS30 FPS 30 FPS30 FPS 深度解析度 深度解析度深度解析度
深度解析度 QVGA ( 320 x 240 )QVGA ( 320 x 240 ) QVGA ( 320 x 240 )QVGA ( 320 x 240 ) 顏色解析度
顏色解析度顏色解析度
顏色解析度 VGA ( 640 x 480 )VGA ( 640 x 480 ) VGA ( 640 x 480 )VGA ( 640 x 480 ) 聲音格式
聲音格式聲音格式
聲音格式 16KHz, 16 16KHz, 16 位元16KHz, 16 16KHz, 16 位元位元位元 mono pulse code modulation (PCM)mono pulse code modulation (PCM)mono pulse code modulation (PCM)mono pulse code modulation (PCM)
聲音輸入 聲音輸入聲音輸入
聲音輸入 四麥克風陣列四麥克風陣列、四麥克風陣列四麥克風陣列、、、雜音消除雜音消除雜音消除雜音消除、、、、 24
24 24
41
第
第
第
第四
四
四章
四
章
章
章
實驗
實驗
實驗
實驗
本章節進行實驗以驗證操作者使用本系統時,能增進人類工作者的安全,當 物體靠近機械手臂的安全區間,會發出警告式的聲響,並在虛擬介面中顯示,提 醒工作者不該靠近以免發生意外;當人類工作者沒有理會警告式的聲響,仍往手 臂的工作區間靠近,機器手臂將即時地避開工作者,防止發生更為嚴重的意外。 然而當追蹤物被障礙物所阻擋,失去追蹤目標,此時會發現物體消失,此時將必 須利用上方的 Kinect 的視覺系統,馬上重新定位物體。實驗共分三個小節,在 4.1節驗證所提出的camshift追蹤法和影像即時回歸策略,考驗系統的追蹤能力, 而在4.2節驗證避障策略,其中因為工作環境中常會有不可避免的靜態障礙物, 所以我們在這部分也將其列入討論,4.3節則是模擬真實工廠環境進行人機搬運 合作,由工作現場的工作者對產品進行簡單加工後放置到指定位置,再由操作者 操作機器手臂至指定位置搬運貨物,再將貨物移送至目的地,而在每個實驗隨後 我們附上實驗的結果以及分析。 由於在本論文中有提到人體骨架構成及骨架資訊的可信度,以及人體骨架資 訊將被我們在第三個實驗中所使用,所以我們在這邊先做一個小實驗來驗證 OpenNI的人體骨架的可信度。此實驗分別架設三台Kinect於機器手臂的左右兩 前側以及後中上方如圖4-1所示,可看出三台視覺系統所架設的位置以及所拍攝 的角度,一開始由操作者分別對兩台 Kinect 進行人體骨架追蹤並進行的座標轉 換使得由個別 Kinect 回傳的骨架資訊重疊,然後為了驗證其可信度的準確性, 依序使左手、右手消失於Kinect視覺影像,但須確保消失的手會出現在其他台42
視覺裝置中,如果實驗結果中可以在虛擬場景看到由各 Kinect 所回傳的骨架資
訊重疊的效果,即可以表示我們所提出的策略是成功的。
(a)左邊及中間Kinect擺設圖 (b)右邊Kinect擺設圖
圖4-1 實驗場景架設圖:(a)左、中Kinect擺設位置和(b)右邊Kinect擺設位置
(a) 左邊Kinect影像 (b) 中間Kinect影像
(c) 將Kinect人體資訊呈現於虛擬實景場景
圖4-2實驗結果:(a)左邊Kinect影像,(b)中間Kinect影像及(c) 將Kinect人體資
43 實驗結果我們可以從圖4-2,4-3中得知,在圖4-2(a)-(c)可以看出當人體骨 架追蹤成功後,各台Kinect回傳的人體資訊可完全重合,並在虛擬實境場景中 呈現。而當人體部位被物體所遮掩,Kinect會回傳該部位的信賴度(Confidence) 為零,藉由所回傳的信賴度判斷人體骨架的資料,當信賴度為零時,在虛擬實境 中,表示該人體部位的球會消失不見,如圖4-3(a)-(c),其中左邊Kinect影像回 傳的人體資訊我們在虛擬場景中以白球代替人體各關節,除左手腕以綠球代替外, 而中間Kinect影像回傳之人體資訊我們在虛擬場景中以紅球代替,而在實驗結 果圖4-3(a)中我們可以發現,在左邊Kinect影像中人體的左手被物體擋住,同時 在中間Kinect影像中會發現在左手沒有被物體所遮蔽如圖4-3(b),所以在虛擬場 景中只留下中間Kinect回傳的紅色球,這是因為在左邊影像中的左手腕被物體 所遮掩,而在中間影像並未發生此遮蔽現象,所以可以得知,當使用多台視覺裝 置時,若其中一台視覺裝置被物體所遮蔽時,我們仍可藉由其他台影像繼續保持 人體追蹤,呈現人體的完整資訊。 (a)左手被物體遮蔽 (b)無遮蔽現象 (c) 將Kinect人體資訊呈現於虛擬實景場景
圖4-3 實驗結果:(a)左邊Kinect影像左手被物體遮蔽,(b)中間Kinect無遮蔽現
44
4.
...1 驗證
驗證
驗證
驗證 camshift 追蹤法及影像即時回歸策略
追蹤法及影像即時回歸策略
追蹤法及影像即時回歸策略
追蹤法及影像即時回歸策略
此實驗是為了驗證我們所提出的影像追蹤法和即時回歸系統的可行性,由於
我們所提出的影像追蹤法 camshift 是以 color histogram 為基礎去做追蹤,所以
在此次實驗中我們在機器手臂末端裝置的6mm六角扳手上裝置一小紅球以便進 行追蹤如圖4-4所示,由於環境中的各種顏色可能會導致誤判,所以在環境中我 們架起白布以降低顏色追蹤失誤的機會,兩台 Kinect 分別架設於機器手臂的左 右 90 公分處,高50 公分處。操作者在 Kinect 影像畫面中的紅色小球上拉取搜 索框如圖4-5所示,接著進行影像追蹤,當兩台Kinect追蹤成功後,我們操作機 械手臂上下左右移動同時檢查是否影像中追蹤物仍可以準確地呈現在虛擬介面 上,當確定追蹤完成後,我們嘗試將機器手臂末端點往下移動使其末端紅球消失 於左邊障礙物,並確保右邊Kinect視覺裝置不被障礙物所遮蔽,保持追蹤。 在這個實驗中,使用了即時追蹤以及即時回歸策略,在實驗過程中當搜索框 面積大於操作者一開始所選取的追蹤框面積5平方公分則判定消失,而回歸機制 是必須當追蹤框內質心位置以及追蹤框大小誤差在容許範圍內才判定為回歸。另 一方面操作者也可以藉由螢幕所回歸的虛擬影像中獲得即時的提示,而此方法其 中更為方便的事情是當物體消失之後可以再次的重新圈選,以人為的方式再次選 取追蹤物免去追蹤失敗而導致實驗必須重新來過。
45 圖 4-4 實驗中所使用六角扳手、沙包、與紅色小球 圖4-5 在視覺影像中拉取搜索框 實驗的結果如圖4-6至4-8所示,實驗中我們藉由使用單台視覺裝置追蹤物 體,發生遮蔽時產生不連續影像的圖形,對比當使用多台視覺偵測追蹤之間的差 異性。當使用單台 Kinect 所追蹤之綠色沙包被紅色瓶子所遮蔽時會發現在虛擬 場景畫面中的追蹤物體位移過大產生影像不連續性如圖4-6所示;而當使用兩台 視覺偵測追蹤時將不會有此現象發生,從實驗結果圖 4-7(a)-(c)中可以看出當紅 色小球同時被兩台 Kinect 成功追蹤時,在虛擬場景中呈現的位置可完全重合, 其中左邊 Kinect 影像回傳的追蹤物資訊我們在虛擬場景中以藍色小球代替,而 右邊 Kinect 影像回傳之追蹤物資訊資訊我們在虛擬場景中以紅色小球代替,而 當機器手臂往下移動使其末端紅球消失於左邊影像並同時確保右邊 Kinect 視覺 裝置不被障礙物所遮蔽如圖 4-8(a)-(b)所示,最後我們在虛擬場景之中會發現只 剩下一顆由右邊 Kinect 所追蹤的紅色球而左邊Kinect 所追蹤回傳的藍色球會消
46 失不見如圖4-8(c)所示,這是因為在左邊影像中的追蹤物被物體所遮掩,而在右 邊影像中並未發生此遮蔽現象,所以由實驗結果可以得知,當使用多台視覺裝置 時,若其中一台視覺裝置被物體所遮蔽時,我們仍可藉由其他台影像繼續保持追 蹤,呈現追蹤物的完整資訊,並且可消除虛擬場景中的不連續性。 (a)物體消失前 (b)物體消失 圖4-6 因物體消失而產生不連續影像: (a)物體消失前和(b)物體消失
(a)左邊Kinect影像 (b)右邊Kinect影像
(c)追蹤物呈現於虛擬場景
47
(a) 紅色小球被物體遮蔽 (b)右邊Kinect影像
(c)虛擬場景中只剩下紅色小球
圖4-8實驗結果:(a)左邊Kinect影像,(b)右邊Kinect影像和(c)虛擬場景