俞鎮洋
當今世界各地自然災害頻繁發生,地震、泥石流、海嘯等災難不斷[1]。災難事故發生后,現場建筑結構坍塌,導致地形環境發生巨大變化,空間狹小不穩定,嚴重威脅著人類安全和社會穩定。許多遇難者因得不到及時的救援而失去寶貴的生命,因此救援人員如何快速高效的開展救援工作關系著被困人員的生命安全[2]。隨著社會科技水平不斷進步,機器人在人類的生活中扮演的角色越來越重要,而以科學技術和高新產業為基礎,現代社會已然成為一個科技社會,在科技的催產下,機器越來越智能化和自動化。機器人的觸手已然伸入我們的工作和生活的各個角落,偵察、探測、救援、生產等各個方面都可以見到它們的身影,在這些我們無法觸及和高難度的情況下,它們可以提供幫助,助人類一臂之力,它們加速著社會的發展。將機器人技術應用到救援中已成為常態,救援機器人可代替工作人員去面對危險,減少傷亡[3]。但傳統的救援機器人通常需要技術人員在救援裝置里操作機器的運轉和現場破壞程度的檢查,這些情況會導致救援行動充滿不確定性,或者造成二次傷亡等。
本文設計了一種基于Kinect 的體感救援機器人,對發生災難的區域能代替人來進行探測救援,以具有越障能力的履帶車作為移動平臺,能對復雜地形有很好的適應性,機械臂作為實現遠程手部動作的直接載體,使用Kinect 體感傳感器將人的手臂動作以機械臂的運動展現出來,可遠程操控,減少二次傷亡,提高工作效率等優點[4]。
在設計救援機器人的結構時,我們主要考慮了以下幾個要求[5]:1)救援機器人應滿足基本的移動功能;2)救援機器人需要具備適應惡劣地形環境的能力,例如越障、抗沖擊等;3)救援機器人應充分考慮控制的安全性;4)視頻流的傳輸應避免較長的延時。
本文設計的救援機器人三維建模如圖1 所示,可實現救援機器人的功能需求,完成危險環境的救援活動。圖a 為救援機器人三維模型圖,圖b 為救援機器人各部件位置圖。
救援機器人整個系統的機械結構如圖1 所示,在SolidWorks 三維建模軟件中將救援機器人系統的機械結構以及空間位置建模出來,然后將各部件結構的二維圖導出來,在CAD 軟件中進行圖紙繪制修改,已達到生產加工出所需的零件。整個系統結構攝像頭、樹莓派、樹莓派屏幕、STM32 單片機[6]、照明燈、機械臂系統,以及構成機械臂的舵機、支架、機械臂爪等零部件。
救援機器人系統硬件部分由STM32 單片機、上位機及檢測模塊、關節角度變化識別模塊、移動模塊、執行模塊等硬件組成。系統總體結構框圖如圖2 所示。
系統的具體工作原理為:攝像頭拍攝到地形被破壞后的實時畫面,將視頻流傳輸到樹莓派端,可在遠程通信的PC 屏幕上觀察拍攝的地形畫面。通過Kinect 傳感器檢測遠程端操作人員的上肢手臂關節變化,將角度更新數據信息發送給PC 端的上位機軟件,然后將信息指令發送給STM32 單片機,單片機把處理后的信息指令以PWM 脈沖控制機械臂上的各舵機運動,從而實現手臂遠程控制機械臂運動,其中Kinect 傳感器與STM32 通過串口通信方式,救援機器人的移動功能由上位機PC 端軟件界面控制,可實現救援機器人的前進、后退、左轉、右轉、停止、越障等功能。另外,本系統下位機外接24V 供電電池以及電壓轉化器,起作用時將外接9V 電池電壓轉換為穩定的5V 電壓,給所有模塊供電。上述工作原理流程可實現了救援機器人的多種功能,下文將對各子模塊進行說明介紹。
STM32 單片機作為整個系統的核心控制器,用于實現上下位機等模塊的信息交互處理,是整個系統不可或缺的一部分。STM32 單片機采用STM32f103芯片作為系統的下位機核心處理器,其內核是Cortex-M3,具有電源管理、低功耗、模數轉換器、DMA 和多種調試模式,可通過藍牙、串口等通信端口來接收上位機發送的指令數據。
上位機及檢測模塊是由樹莓派和攝像頭組成,其中攝像頭主要是將救援現場環境的視頻流通過遠程通信方式傳輸到樹莓派PC 端[7],用于實時監控遠程環境情況和確定救援方案。遠程通信方式采用2.4G 無線通信模塊,2.4G 無線通信技術是一種工作在全球免申請ISM 頻道2 400M-2 483M 范圍內的無線通信技術,可以實現點對點近距離無線傳輸,具有使用方便、傳輸距離遠、功耗低等優點[8]。
本次使用的是Raspberry Pi3(model B+),具有4 個USB 口、支持有線網絡、功耗1W、512M RAM、40 個GPIO。樹莓派作為上位機可以和下位機STM32 單片機建立聯系,可直接在樹莓派上安裝Keil 進行開發,具有很好的開發效果,運行穩定。本次救援機器人實現了樹莓派將攝像頭拍攝的視頻流顯示在PC 端上,同時可與STM32 單片機進行數據通信,進而控制救援機器人各功能的穩定實現。

圖2 救援機器人控制系統總體框圖
系統的關節角度變化識別模塊的核心部分是Kinect 傳感器,Kinect 傳感器有三只眼睛,分別為紅外投影機、彩色攝像頭和紅外深度攝像頭(自左向右),搭配PrimeSense 技術、PS1080 系統級芯片和麥克風。用來檢測人體上肢關節角度,使用骨骼追蹤技術來深度處理人體各個關節的坐標數據。

圖3 行星減速電機驅動器引腳圖
救援機器人的移動模塊的實現是采用雙輪差速驅動,具體為輪式履帶結構,兩后輪差速驅動,其余輪與履帶嚙合配合。驅動電機為100W 行星減速電機,通過24V 雙通道直流有刷電機驅動器與STM32 單片機相連,直流電機驅動器引腳圖如圖3 所示,圖中右側引腳為驅動器功率接口,M1 與M2 的A、B 口分別對應行星減速電機的引腳線,P+與P-口對應兩個電機的電源正負極輸入,外接24V 電源。左側1、6 口為VCC,2、7 口為PWM 占空比調速,3、4、8、9 為控制邏輯高低電平信號口,5、x 口為隔離電源GND。

圖4 機械臂與Kinect傳感器實物圖
如圖4 所示,機械臂有六個自由度,可代替正常救援人員手臂來清理救援現場,實現基本的手臂運動狀態,通過Kinect 傳感器采集救援工作人員上肢關節角度的變化,然后將變化指令發送給下位機STM32 單片機,進而控制機械臂隨手臂的同步運動,完成救援活動中系統執行模塊的同步運動功能。具體可以使肩關節能夠完成可以完成水平面內的肩關節內收外展運動和矢狀面的屈伸運動,使肘關節可以完成矢狀面的屈伸運動,腕關節的屈伸和側彎運動均由肩關節運動和肘關節運動帶動[9]。
救援機器人機械臂的尺寸設計需要應對救援行動中各種復雜突發情況,避免在遇到特殊情況時,機械臂無法工作而導致錯過最佳救援時機。
在系統的軟件設計主要分為上位機軟件界面設計、救援機器人移動軟件設計和機械臂鏡像運動軟件設計三大部分,下面將對各部分詳細介紹。

圖5 系統上位機操作主界面
上位機軟件設計是基于WPF(Windows Presentation Foundation)環境進行設計的,WPF是微軟推出的基于Windows 的用戶界面框架,它提供了統一的編程模型、語言和框架,可靈活、容易上手[10]。系統上位機主界面如圖5 所示,上位機左側上部分為平板電腦端操縱救援機器人實現移動功能,下部分為機械臂鏡像運動的實現功能,界面最上側為整個系統的名稱,右側為救援機器人的三維模型。主界面的設計主要是為了實現人機交互,用來操作救援機器人的救援行動。當工作人員點擊救援機器人運動和機械臂鏡像運動按鈕時,將會跳轉到各自的實時操作界面,具體界面如圖6 和圖8所示。
當點擊主界面的救援機器人移動按鈕時,界面將跳轉如圖6 所示,此時界面有6 個按鈕,分別代表前進、后退、左轉、右轉、停止和返回,用來控制救援機器人的移動。

圖6 救援機器人移動上位機界面

圖7 機器人移動軟件設計流程圖
如圖7 所示,當界面跳轉進來時,機器人移動控制將進行系統初始化,通過點擊控制按鈕,將上位機的信息指令發送到下位機STM32 單片機上,單片機將接收到的相應的控制指令發送到電機驅動器上,進而使電機進行運動,最終機器人將執行相應的動作行為,完成整個移動系統的工作。

圖8 機械臂鏡像運動上位機界面
當點擊主界面的機械臂鏡像運動按鈕時[11],界面將跳轉如圖8 所示,此時界面右側將顯示Kinect傳感器檢測的圖像,傳感器會自動捕捉工作人員的上肢關節角度,同時在界面的左側開始訓練下方顯示的有相應的關節角度值,本次系統設計主要展現了肩關節、肘關節、腕關節和指關節的角度變化,基本滿足對應的機械臂運動。其中返回到主界面的按鈕在界面的左上方。
機械臂鏡像運動的軟件設計流程圖如圖9 所示,主要是Kinect 傳感器對上肢關節角度變化的計算和提取,從而實現上肢遠程控制機械臂同步運動。
當跳轉到控制界面時,將會執行救援機器人鏡像運動功能,此時Kinect 傳感器會通過自帶的攝像頭來檢測鏡頭下得上肢關節。如果系統界面沒有出現關節角度值,會返回初始化工作,反之當系統界面出現關節角度值,將會進行下一步檢測關節角度是否更新變化,如果否的話,系統會返回上一步來顯示關節角度值,是的話,系統把相應的信心指令發送給下位機,來控制對應關節的舵機進行運動,最終實現機械臂與上肢同步運動。

圖9 機械臂鏡像運動軟件設計流程圖
系統的可靠性測試分析主要體現在救援機器人的移動和機械臂的鏡像運動兩大部分,在調試好實物樣機的基礎上,隨機對志愿者進行測試,最終得出本次設計的救援機器人的移動控制完全實現,機械臂的鏡像運動準確度高達94.4%(34/36),滿足的設計要求。
為驗證機械臂鏡像運動的控制精度,設計了如下實驗,實驗步驟為:
1)由實驗協助者隨機報出實驗者上肢的運動指令(腕關節、肘關節和肩關節角度變化);
2)受試者在Kinect 傳感器檢測下改變關節角度;
3)觀察機械臂和患側上肢是否按照指令同步運動,若是,則該單次實驗視為成功,若不是,則視為失敗。
12 名隨機受試者“鏡像療法”的準確度數據如表1 所示,表中“√”代表“成功”,“×”代表失敗。

表1 機械臂鏡像運動準確度測試結果
結果顯示:編號2 受試者在肘關節測試中出現不響應,編號10 受試者在腕關節測試中時出現了失敗,經計算其準確度高達94.4%(34/36),失敗的原因可能是受試者關節角度變化未被捕捉、Kinect 本身具有一定的誤差以及受試者個體差異不同等,但總體控制精度接近95%,可保證系統具有高穩定性。
本文設計了基于Kinect 傳感器的救援機器人系統,主要完成了以下工作:
1)通過分析當前救援任務和救援機器人的發展現狀,對救援機器人進行了機械結構設計、繪制三維模型。2)查詢了相關技術的發展,搭建了相應的控制系統,對系統進行硬件設計、軟件設計、研制了實驗樣機以及上位機控制軟件。3)對救援機器人各功能進行可靠性測試分析,驗證了其功能模塊是可實現的。
在接下來的工作將會繼續完善和優化救援機器人的相關功能,提高機械臂的鏡像運動功能準確度,在現今的基礎上增加自主導航、越障功能、完善救援行動等。