俞鎮(zhèn)洋
當(dāng)今世界各地自然災(zāi)害頻繁發(fā)生,地震、泥石流、海嘯等災(zāi)難不斷[1]。災(zāi)難事故發(fā)生后,現(xiàn)場(chǎng)建筑結(jié)構(gòu)坍塌,導(dǎo)致地形環(huán)境發(fā)生巨大變化,空間狹小不穩(wěn)定,嚴(yán)重威脅著人類安全和社會(huì)穩(wěn)定。許多遇難者因得不到及時(shí)的救援而失去寶貴的生命,因此救援人員如何快速高效的開(kāi)展救援工作關(guān)系著被困人員的生命安全[2]。隨著社會(huì)科技水平不斷進(jìn)步,機(jī)器人在人類的生活中扮演的角色越來(lái)越重要,而以科學(xué)技術(shù)和高新產(chǎn)業(yè)為基礎(chǔ),現(xiàn)代社會(huì)已然成為一個(gè)科技社會(huì),在科技的催產(chǎn)下,機(jī)器越來(lái)越智能化和自動(dòng)化。機(jī)器人的觸手已然伸入我們的工作和生活的各個(gè)角落,偵察、探測(cè)、救援、生產(chǎn)等各個(gè)方面都可以見(jiàn)到它們的身影,在這些我們無(wú)法觸及和高難度的情況下,它們可以提供幫助,助人類一臂之力,它們加速著社會(huì)的發(fā)展。將機(jī)器人技術(shù)應(yīng)用到救援中已成為常態(tài),救援機(jī)器人可代替工作人員去面對(duì)危險(xiǎn),減少傷亡[3]。但傳統(tǒng)的救援機(jī)器人通常需要技術(shù)人員在救援裝置里操作機(jī)器的運(yùn)轉(zhuǎn)和現(xiàn)場(chǎng)破壞程度的檢查,這些情況會(huì)導(dǎo)致救援行動(dòng)充滿不確定性,或者造成二次傷亡等。
本文設(shè)計(jì)了一種基于Kinect 的體感救援機(jī)器人,對(duì)發(fā)生災(zāi)難的區(qū)域能代替人來(lái)進(jìn)行探測(cè)救援,以具有越障能力的履帶車作為移動(dòng)平臺(tái),能對(duì)復(fù)雜地形有很好的適應(yīng)性,機(jī)械臂作為實(shí)現(xiàn)遠(yuǎn)程手部動(dòng)作的直接載體,使用Kinect 體感傳感器將人的手臂動(dòng)作以機(jī)械臂的運(yùn)動(dòng)展現(xiàn)出來(lái),可遠(yuǎn)程操控,減少二次傷亡,提高工作效率等優(yōu)點(diǎn)[4]。
在設(shè)計(jì)救援機(jī)器人的結(jié)構(gòu)時(shí),我們主要考慮了以下幾個(gè)要求[5]:1)救援機(jī)器人應(yīng)滿足基本的移動(dòng)功能;2)救援機(jī)器人需要具備適應(yīng)惡劣地形環(huán)境的能力,例如越障、抗沖擊等;3)救援機(jī)器人應(yīng)充分考慮控制的安全性;4)視頻流的傳輸應(yīng)避免較長(zhǎng)的延時(shí)。
本文設(shè)計(jì)的救援機(jī)器人三維建模如圖1 所示,可實(shí)現(xiàn)救援機(jī)器人的功能需求,完成危險(xiǎn)環(huán)境的救援活動(dòng)。圖a 為救援機(jī)器人三維模型圖,圖b 為救援機(jī)器人各部件位置圖。
救援機(jī)器人整個(gè)系統(tǒng)的機(jī)械結(jié)構(gòu)如圖1 所示,在SolidWorks 三維建模軟件中將救援機(jī)器人系統(tǒng)的機(jī)械結(jié)構(gòu)以及空間位置建模出來(lái),然后將各部件結(jié)構(gòu)的二維圖導(dǎo)出來(lái),在CAD 軟件中進(jìn)行圖紙繪制修改,已達(dá)到生產(chǎn)加工出所需的零件。整個(gè)系統(tǒng)結(jié)構(gòu)攝像頭、樹(shù)莓派、樹(shù)莓派屏幕、STM32 單片機(jī)[6]、照明燈、機(jī)械臂系統(tǒng),以及構(gòu)成機(jī)械臂的舵機(jī)、支架、機(jī)械臂爪等零部件。
救援機(jī)器人系統(tǒng)硬件部分由STM32 單片機(jī)、上位機(jī)及檢測(cè)模塊、關(guān)節(jié)角度變化識(shí)別模塊、移動(dòng)模塊、執(zhí)行模塊等硬件組成。系統(tǒng)總體結(jié)構(gòu)框圖如圖2 所示。
系統(tǒng)的具體工作原理為:攝像頭拍攝到地形被破壞后的實(shí)時(shí)畫(huà)面,將視頻流傳輸?shù)綐?shù)莓派端,可在遠(yuǎn)程通信的PC 屏幕上觀察拍攝的地形畫(huà)面。通過(guò)Kinect 傳感器檢測(cè)遠(yuǎn)程端操作人員的上肢手臂關(guān)節(jié)變化,將角度更新數(shù)據(jù)信息發(fā)送給PC 端的上位機(jī)軟件,然后將信息指令發(fā)送給STM32 單片機(jī),單片機(jī)把處理后的信息指令以PWM 脈沖控制機(jī)械臂上的各舵機(jī)運(yùn)動(dòng),從而實(shí)現(xiàn)手臂遠(yuǎn)程控制機(jī)械臂運(yùn)動(dòng),其中Kinect 傳感器與STM32 通過(guò)串口通信方式,救援機(jī)器人的移動(dòng)功能由上位機(jī)PC 端軟件界面控制,可實(shí)現(xiàn)救援機(jī)器人的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、越障等功能。另外,本系統(tǒng)下位機(jī)外接24V 供電電池以及電壓轉(zhuǎn)化器,起作用時(shí)將外接9V 電池電壓轉(zhuǎn)換為穩(wěn)定的5V 電壓,給所有模塊供電。上述工作原理流程可實(shí)現(xiàn)了救援機(jī)器人的多種功能,下文將對(duì)各子模塊進(jìn)行說(shuō)明介紹。
STM32 單片機(jī)作為整個(gè)系統(tǒng)的核心控制器,用于實(shí)現(xiàn)上下位機(jī)等模塊的信息交互處理,是整個(gè)系統(tǒng)不可或缺的一部分。STM32 單片機(jī)采用STM32f103芯片作為系統(tǒng)的下位機(jī)核心處理器,其內(nèi)核是Cortex-M3,具有電源管理、低功耗、模數(shù)轉(zhuǎn)換器、DMA 和多種調(diào)試模式,可通過(guò)藍(lán)牙、串口等通信端口來(lái)接收上位機(jī)發(fā)送的指令數(shù)據(jù)。
上位機(jī)及檢測(cè)模塊是由樹(shù)莓派和攝像頭組成,其中攝像頭主要是將救援現(xiàn)場(chǎng)環(huán)境的視頻流通過(guò)遠(yuǎn)程通信方式傳輸?shù)綐?shù)莓派PC 端[7],用于實(shí)時(shí)監(jiān)控遠(yuǎn)程環(huán)境情況和確定救援方案。遠(yuǎn)程通信方式采用2.4G 無(wú)線通信模塊,2.4G 無(wú)線通信技術(shù)是一種工作在全球免申請(qǐng)ISM 頻道2 400M-2 483M 范圍內(nèi)的無(wú)線通信技術(shù),可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)近距離無(wú)線傳輸,具有使用方便、傳輸距離遠(yuǎn)、功耗低等優(yōu)點(diǎn)[8]。
本次使用的是Raspberry Pi3(model B+),具有4 個(gè)USB 口、支持有線網(wǎng)絡(luò)、功耗1W、512M RAM、40 個(gè)GPIO。樹(shù)莓派作為上位機(jī)可以和下位機(jī)STM32 單片機(jī)建立聯(lián)系,可直接在樹(shù)莓派上安裝Keil 進(jìn)行開(kāi)發(fā),具有很好的開(kāi)發(fā)效果,運(yùn)行穩(wěn)定。本次救援機(jī)器人實(shí)現(xiàn)了樹(shù)莓派將攝像頭拍攝的視頻流顯示在PC 端上,同時(shí)可與STM32 單片機(jī)進(jìn)行數(shù)據(jù)通信,進(jìn)而控制救援機(jī)器人各功能的穩(wěn)定實(shí)現(xiàn)。
圖2 救援機(jī)器人控制系統(tǒng)總體框圖
系統(tǒng)的關(guān)節(jié)角度變化識(shí)別模塊的核心部分是Kinect 傳感器,Kinect 傳感器有三只眼睛,分別為紅外投影機(jī)、彩色攝像頭和紅外深度攝像頭(自左向右),搭配PrimeSense 技術(shù)、PS1080 系統(tǒng)級(jí)芯片和麥克風(fēng)。用來(lái)檢測(cè)人體上肢關(guān)節(jié)角度,使用骨骼追蹤技術(shù)來(lái)深度處理人體各個(gè)關(guān)節(jié)的坐標(biāo)數(shù)據(jù)。
圖3 行星減速電機(jī)驅(qū)動(dòng)器引腳圖
救援機(jī)器人的移動(dòng)模塊的實(shí)現(xiàn)是采用雙輪差速驅(qū)動(dòng),具體為輪式履帶結(jié)構(gòu),兩后輪差速驅(qū)動(dòng),其余輪與履帶嚙合配合。驅(qū)動(dòng)電機(jī)為100W 行星減速電機(jī),通過(guò)24V 雙通道直流有刷電機(jī)驅(qū)動(dòng)器與STM32 單片機(jī)相連,直流電機(jī)驅(qū)動(dòng)器引腳圖如圖3 所示,圖中右側(cè)引腳為驅(qū)動(dòng)器功率接口,M1 與M2 的A、B 口分別對(duì)應(yīng)行星減速電機(jī)的引腳線,P+與P-口對(duì)應(yīng)兩個(gè)電機(jī)的電源正負(fù)極輸入,外接24V 電源。左側(cè)1、6 口為VCC,2、7 口為PWM 占空比調(diào)速,3、4、8、9 為控制邏輯高低電平信號(hào)口,5、x 口為隔離電源GND。
圖4 機(jī)械臂與Kinect傳感器實(shí)物圖
如圖4 所示,機(jī)械臂有六個(gè)自由度,可代替正常救援人員手臂來(lái)清理救援現(xiàn)場(chǎng),實(shí)現(xiàn)基本的手臂運(yùn)動(dòng)狀態(tài),通過(guò)Kinect 傳感器采集救援工作人員上肢關(guān)節(jié)角度的變化,然后將變化指令發(fā)送給下位機(jī)STM32 單片機(jī),進(jìn)而控制機(jī)械臂隨手臂的同步運(yùn)動(dòng),完成救援活動(dòng)中系統(tǒng)執(zhí)行模塊的同步運(yùn)動(dòng)功能。具體可以使肩關(guān)節(jié)能夠完成可以完成水平面內(nèi)的肩關(guān)節(jié)內(nèi)收外展運(yùn)動(dòng)和矢狀面的屈伸運(yùn)動(dòng),使肘關(guān)節(jié)可以完成矢狀面的屈伸運(yùn)動(dòng),腕關(guān)節(jié)的屈伸和側(cè)彎運(yùn)動(dòng)均由肩關(guān)節(jié)運(yùn)動(dòng)和肘關(guān)節(jié)運(yùn)動(dòng)帶動(dòng)[9]。
救援機(jī)器人機(jī)械臂的尺寸設(shè)計(jì)需要應(yīng)對(duì)救援行動(dòng)中各種復(fù)雜突發(fā)情況,避免在遇到特殊情況時(shí),機(jī)械臂無(wú)法工作而導(dǎo)致錯(cuò)過(guò)最佳救援時(shí)機(jī)。
在系統(tǒng)的軟件設(shè)計(jì)主要分為上位機(jī)軟件界面設(shè)計(jì)、救援機(jī)器人移動(dòng)軟件設(shè)計(jì)和機(jī)械臂鏡像運(yùn)動(dòng)軟件設(shè)計(jì)三大部分,下面將對(duì)各部分詳細(xì)介紹。
圖5 系統(tǒng)上位機(jī)操作主界面
上位機(jī)軟件設(shè)計(jì)是基于WPF(Windows Presentation Foundation)環(huán)境進(jìn)行設(shè)計(jì)的,WPF是微軟推出的基于Windows 的用戶界面框架,它提供了統(tǒng)一的編程模型、語(yǔ)言和框架,可靈活、容易上手[10]。系統(tǒng)上位機(jī)主界面如圖5 所示,上位機(jī)左側(cè)上部分為平板電腦端操縱救援機(jī)器人實(shí)現(xiàn)移動(dòng)功能,下部分為機(jī)械臂鏡像運(yùn)動(dòng)的實(shí)現(xiàn)功能,界面最上側(cè)為整個(gè)系統(tǒng)的名稱,右側(cè)為救援機(jī)器人的三維模型。主界面的設(shè)計(jì)主要是為了實(shí)現(xiàn)人機(jī)交互,用來(lái)操作救援機(jī)器人的救援行動(dòng)。當(dāng)工作人員點(diǎn)擊救援機(jī)器人運(yùn)動(dòng)和機(jī)械臂鏡像運(yùn)動(dòng)按鈕時(shí),將會(huì)跳轉(zhuǎn)到各自的實(shí)時(shí)操作界面,具體界面如圖6 和圖8所示。
當(dāng)點(diǎn)擊主界面的救援機(jī)器人移動(dòng)按鈕時(shí),界面將跳轉(zhuǎn)如圖6 所示,此時(shí)界面有6 個(gè)按鈕,分別代表前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止和返回,用來(lái)控制救援機(jī)器人的移動(dòng)。
圖6 救援機(jī)器人移動(dòng)上位機(jī)界面
圖7 機(jī)器人移動(dòng)軟件設(shè)計(jì)流程圖
如圖7 所示,當(dāng)界面跳轉(zhuǎn)進(jìn)來(lái)時(shí),機(jī)器人移動(dòng)控制將進(jìn)行系統(tǒng)初始化,通過(guò)點(diǎn)擊控制按鈕,將上位機(jī)的信息指令發(fā)送到下位機(jī)STM32 單片機(jī)上,單片機(jī)將接收到的相應(yīng)的控制指令發(fā)送到電機(jī)驅(qū)動(dòng)器上,進(jìn)而使電機(jī)進(jìn)行運(yùn)動(dòng),最終機(jī)器人將執(zhí)行相應(yīng)的動(dòng)作行為,完成整個(gè)移動(dòng)系統(tǒng)的工作。
圖8 機(jī)械臂鏡像運(yùn)動(dòng)上位機(jī)界面
當(dāng)點(diǎn)擊主界面的機(jī)械臂鏡像運(yùn)動(dòng)按鈕時(shí)[11],界面將跳轉(zhuǎn)如圖8 所示,此時(shí)界面右側(cè)將顯示Kinect傳感器檢測(cè)的圖像,傳感器會(huì)自動(dòng)捕捉工作人員的上肢關(guān)節(jié)角度,同時(shí)在界面的左側(cè)開(kāi)始訓(xùn)練下方顯示的有相應(yīng)的關(guān)節(jié)角度值,本次系統(tǒng)設(shè)計(jì)主要展現(xiàn)了肩關(guān)節(jié)、肘關(guān)節(jié)、腕關(guān)節(jié)和指關(guān)節(jié)的角度變化,基本滿足對(duì)應(yīng)的機(jī)械臂運(yùn)動(dòng)。其中返回到主界面的按鈕在界面的左上方。
機(jī)械臂鏡像運(yùn)動(dòng)的軟件設(shè)計(jì)流程圖如圖9 所示,主要是Kinect 傳感器對(duì)上肢關(guān)節(jié)角度變化的計(jì)算和提取,從而實(shí)現(xiàn)上肢遠(yuǎn)程控制機(jī)械臂同步運(yùn)動(dòng)。
當(dāng)跳轉(zhuǎn)到控制界面時(shí),將會(huì)執(zhí)行救援機(jī)器人鏡像運(yùn)動(dòng)功能,此時(shí)Kinect 傳感器會(huì)通過(guò)自帶的攝像頭來(lái)檢測(cè)鏡頭下得上肢關(guān)節(jié)。如果系統(tǒng)界面沒(méi)有出現(xiàn)關(guān)節(jié)角度值,會(huì)返回初始化工作,反之當(dāng)系統(tǒng)界面出現(xiàn)關(guān)節(jié)角度值,將會(huì)進(jìn)行下一步檢測(cè)關(guān)節(jié)角度是否更新變化,如果否的話,系統(tǒng)會(huì)返回上一步來(lái)顯示關(guān)節(jié)角度值,是的話,系統(tǒng)把相應(yīng)的信心指令發(fā)送給下位機(jī),來(lái)控制對(duì)應(yīng)關(guān)節(jié)的舵機(jī)進(jìn)行運(yùn)動(dòng),最終實(shí)現(xiàn)機(jī)械臂與上肢同步運(yùn)動(dòng)。
圖9 機(jī)械臂鏡像運(yùn)動(dòng)軟件設(shè)計(jì)流程圖
系統(tǒng)的可靠性測(cè)試分析主要體現(xiàn)在救援機(jī)器人的移動(dòng)和機(jī)械臂的鏡像運(yùn)動(dòng)兩大部分,在調(diào)試好實(shí)物樣機(jī)的基礎(chǔ)上,隨機(jī)對(duì)志愿者進(jìn)行測(cè)試,最終得出本次設(shè)計(jì)的救援機(jī)器人的移動(dòng)控制完全實(shí)現(xiàn),機(jī)械臂的鏡像運(yùn)動(dòng)準(zhǔn)確度高達(dá)94.4%(34/36),滿足的設(shè)計(jì)要求。
為驗(yàn)證機(jī)械臂鏡像運(yùn)動(dòng)的控制精度,設(shè)計(jì)了如下實(shí)驗(yàn),實(shí)驗(yàn)步驟為:
1)由實(shí)驗(yàn)協(xié)助者隨機(jī)報(bào)出實(shí)驗(yàn)者上肢的運(yùn)動(dòng)指令(腕關(guān)節(jié)、肘關(guān)節(jié)和肩關(guān)節(jié)角度變化);
2)受試者在Kinect 傳感器檢測(cè)下改變關(guān)節(jié)角度;
3)觀察機(jī)械臂和患側(cè)上肢是否按照指令同步運(yùn)動(dòng),若是,則該單次實(shí)驗(yàn)視為成功,若不是,則視為失敗。
12 名隨機(jī)受試者“鏡像療法”的準(zhǔn)確度數(shù)據(jù)如表1 所示,表中“√”代表“成功”,“×”代表失敗。
表1 機(jī)械臂鏡像運(yùn)動(dòng)準(zhǔn)確度測(cè)試結(jié)果
結(jié)果顯示:編號(hào)2 受試者在肘關(guān)節(jié)測(cè)試中出現(xiàn)不響應(yīng),編號(hào)10 受試者在腕關(guān)節(jié)測(cè)試中時(shí)出現(xiàn)了失敗,經(jīng)計(jì)算其準(zhǔn)確度高達(dá)94.4%(34/36),失敗的原因可能是受試者關(guān)節(jié)角度變化未被捕捉、Kinect 本身具有一定的誤差以及受試者個(gè)體差異不同等,但總體控制精度接近95%,可保證系統(tǒng)具有高穩(wěn)定性。
本文設(shè)計(jì)了基于Kinect 傳感器的救援機(jī)器人系統(tǒng),主要完成了以下工作:
1)通過(guò)分析當(dāng)前救援任務(wù)和救援機(jī)器人的發(fā)展現(xiàn)狀,對(duì)救援機(jī)器人進(jìn)行了機(jī)械結(jié)構(gòu)設(shè)計(jì)、繪制三維模型。2)查詢了相關(guān)技術(shù)的發(fā)展,搭建了相應(yīng)的控制系統(tǒng),對(duì)系統(tǒng)進(jìn)行硬件設(shè)計(jì)、軟件設(shè)計(jì)、研制了實(shí)驗(yàn)樣機(jī)以及上位機(jī)控制軟件。3)對(duì)救援機(jī)器人各功能進(jìn)行可靠性測(cè)試分析,驗(yàn)證了其功能模塊是可實(shí)現(xiàn)的。
在接下來(lái)的工作將會(huì)繼續(xù)完善和優(yōu)化救援機(jī)器人的相關(guān)功能,提高機(jī)械臂的鏡像運(yùn)動(dòng)功能準(zhǔn)確度,在現(xiàn)今的基礎(chǔ)上增加自主導(dǎo)航、越障功能、完善救援行動(dòng)等。