本發(fā)明涉及機(jī)械手操控技術(shù)領(lǐng)域,具體地說,涉及一種基于感知增強(qiáng)的機(jī)械手遙操作方法及系統(tǒng)。
背景技術(shù):
近年來,隨著機(jī)械手操控技術(shù)的發(fā)展,尤其是通過采集人手動(dòng)作數(shù)據(jù)以模擬人手動(dòng)作的機(jī)械手操控技術(shù),使機(jī)械手在各行業(yè)具有很大的應(yīng)用前景。在該類操控技術(shù)中,常通過外骨骼、數(shù)據(jù)手套等穿戴設(shè)備對(duì)人手動(dòng)作數(shù)據(jù)進(jìn)行采集,而這類穿戴設(shè)備的采集是基于其上的傳感器,導(dǎo)致其售價(jià)偏高,很難實(shí)用化,尤其是民用化。
此外,隨著機(jī)器人技術(shù)的快速發(fā)展,尤其是民用服務(wù)機(jī)器人及類人機(jī)器人技術(shù),對(duì)低成本類操控技術(shù)的需求也越來越大,尤其是可對(duì)機(jī)械手進(jìn)行遠(yuǎn)程控制的遙操作技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于感知增強(qiáng)的機(jī)械手遙操作方法及系統(tǒng),以較低成本實(shí)現(xiàn)對(duì)機(jī)械手的遙操作。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供基于感知增強(qiáng)的機(jī)械手遙操作方法包括動(dòng)作識(shí)別步驟、動(dòng)作映射步驟、壓力反饋步驟及視覺反饋步驟;其中,動(dòng)作識(shí)別步驟包括識(shí)別出人手在運(yùn)動(dòng)過程中指尖與掌心的位置信息;動(dòng)作映射步驟包括將位置信息映射成機(jī)械手操作指令;壓力反饋步驟包括接收機(jī)械手上壓力傳感器的壓力數(shù)據(jù),并依據(jù)壓力數(shù)據(jù)控制人手處振動(dòng)器的振動(dòng)強(qiáng)度;視覺反饋步驟包括接收布置在機(jī)械手周圍兩臺(tái)以上的深度攝像機(jī)所獲取機(jī)械手工作臺(tái)的圖像信息,構(gòu)建3d實(shí)時(shí)操作場(chǎng)景。
在工作過程中,通過識(shí)別步驟識(shí)別出人手在運(yùn)動(dòng)過程中指尖與掌心的位置信息,由于是通過采集指尖、掌心的位置信息實(shí)現(xiàn)動(dòng)作的數(shù)據(jù)化,而可使用kinect等成本低采集設(shè)備,以降低機(jī)械手遙操技術(shù)的成本;通過動(dòng)作映射步驟,將動(dòng)作數(shù)據(jù)處理轉(zhuǎn)換為相應(yīng)的機(jī)械手操作指令,實(shí)現(xiàn)人類動(dòng)作數(shù)據(jù)到機(jī)械手操作指令的映射,從而可對(duì)機(jī)械手進(jìn)行遠(yuǎn)程操控;通過壓力反饋步驟,將機(jī)械手在仿真人手抓取過程中的壓力信息通過振動(dòng)強(qiáng)度反饋給人手,以實(shí)現(xiàn)人類感知機(jī)械手的壓力;通過視覺反饋步驟,使用兩臺(tái)深度攝像機(jī)獲取的圖像信息構(gòu)建出機(jī)械手操作的3d實(shí)時(shí)場(chǎng)景并反饋給操作人員,以實(shí)現(xiàn)感知增強(qiáng)的機(jī)械手遠(yuǎn)程控制操作。
具體的方案為識(shí)別出人手在運(yùn)動(dòng)過程中指尖與掌心的位置信息的步驟包括:接收由kinect獲取人手在運(yùn)動(dòng)過程中的彩色圖像、深度圖像及骨骼數(shù)據(jù);依據(jù)骨骼數(shù)據(jù),獲取人手掌心的位置信息;依據(jù)深度圖像、彩色圖像及掌心的位置信息,識(shí)別出設(shè)于人手指尖上的彩色標(biāo)記,獲取包括指尖三維坐標(biāo)信息的人手指尖位置信息。通過在人手指尖布置顏色標(biāo)記紙帶等彩色標(biāo)記,根據(jù)kinect深度信息與圖像信息,獲取指尖三維坐標(biāo)數(shù)據(jù)。
另一個(gè)具體的方案為將位置信息映射成機(jī)械手操作指令的步驟包括:依據(jù)位置信息,提取語義信息,將語義信息映射成機(jī)械手操作指令。
更具體的方案為提取語義信息的步驟包括:依據(jù)連續(xù)獲取的位置信息,將人手動(dòng)作歸類為移動(dòng)、靜止、抓取及釋放四種語義。有效地簡(jiǎn)化將人手位置信息映射機(jī)械手操作指令的映射算法。
另一個(gè)具體的方案為接收布置在機(jī)械手周圍兩臺(tái)以上的深度攝像機(jī)所獲取機(jī)械手工作臺(tái)的圖像信息,構(gòu)建3d實(shí)時(shí)操作場(chǎng)景的步驟包括:深度攝像機(jī)為kinect;依據(jù)kinect獲取的深度圖像、彩色圖像,構(gòu)建不同方向的3d點(diǎn)云數(shù)據(jù);據(jù)kinect獲取的深度圖像、彩色圖像,識(shí)別出機(jī)械手工作臺(tái)上布置的標(biāo)記;通過標(biāo)記進(jìn)行定標(biāo),將不同方向的3d點(diǎn)云數(shù)據(jù)融合成3d圖像模型;通過icp算法對(duì)3d圖像模型進(jìn)行優(yōu)化。便于操作人員通過屏幕或vr眼鏡觀察實(shí)時(shí)3d操作場(chǎng)景,以實(shí)現(xiàn)感知增強(qiáng)。
為了實(shí)現(xiàn)上述另一目的,本發(fā)明提供基于感知增強(qiáng)的機(jī)械手遙操作系統(tǒng)包括動(dòng)作識(shí)別單元、視覺反饋單元、壓力反饋單元及控制單元;其中,動(dòng)作識(shí)別單元包括用于獲取人手位置信息的kinect,視覺反饋單元包括獲取機(jī)械手工作臺(tái)圖像信息的兩臺(tái)以上的深度攝像機(jī);壓力反饋單元包括獲取機(jī)械手壓力的壓力傳感器及設(shè)于人手上的振動(dòng)器,控制單元包括與kinect、深度圖像攝像機(jī)、壓力傳感器及振動(dòng)器通訊連接的處理器。通過該機(jī)械手遙操作系統(tǒng)與機(jī)械手的配合,能夠以較低的成本實(shí)現(xiàn)對(duì)機(jī)械手的遠(yuǎn)程操控。
具體的方案為處理器用于:接收由kinect獲取人手在運(yùn)動(dòng)過程中的彩色圖像、深度圖像及骨骼數(shù)據(jù);依據(jù)骨骼數(shù)據(jù)獲取人手掌心的位置信息;依據(jù)深度圖像、彩色圖像及掌心的位置信息,識(shí)別出設(shè)于人手指尖上的彩色標(biāo)記,獲取包括指尖三維坐標(biāo)信息的人手指尖位置信息;依據(jù)連續(xù)獲取的人手掌心與指尖的位置信息,將人手動(dòng)作歸類為移動(dòng)、靜止、抓取及釋放四種語義,并將從位置信息中提取的語義信息映射成機(jī)械手操作指令;接收壓力傳感器的壓力數(shù)據(jù)并依據(jù)該壓力數(shù)據(jù)控制振動(dòng)器的振動(dòng)強(qiáng)度;接收深度攝像機(jī)所獲取的圖像信息,構(gòu)建3d實(shí)時(shí)操作場(chǎng)景。
本發(fā)明基于感知增強(qiáng)的機(jī)械手遙操作方法及系統(tǒng),其利用圖像技術(shù)、傳感技術(shù)、壓力-振動(dòng)反饋技術(shù)及3d視覺反饋技術(shù),通過將人手位置信息轉(zhuǎn)換成操作指令控制機(jī)械手仿生人手運(yùn)動(dòng)進(jìn)行操作,并把機(jī)械手在操作過程中的壓力與視覺反饋給操作人員,不僅便于操作人員對(duì)機(jī)械手進(jìn)行遠(yuǎn)程操控,而且相對(duì)采用穿戴式采集設(shè)備的現(xiàn)有技術(shù),有效降低實(shí)現(xiàn)成本。
附圖說明
圖1是本發(fā)明基于感知增強(qiáng)的機(jī)械手遙操作系統(tǒng)的結(jié)構(gòu)框圖;
圖2是本發(fā)明基于感知增強(qiáng)的機(jī)械手遙操作方法的工作流程圖。
具體實(shí)施方式
以下結(jié)合實(shí)施例及其附圖對(duì)本發(fā)明作進(jìn)一步說明。
實(shí)施例
參見圖1,本發(fā)明基于感知增強(qiáng)的機(jī)械手遙操作系統(tǒng)1包括機(jī)械手10、控制單元11、動(dòng)作識(shí)別單元12、壓力反饋單元13及視覺反饋單元14。
機(jī)械手10由機(jī)械臂和機(jī)械爪組成,其中機(jī)械臂采用epsonc4型號(hào)機(jī)械臂,機(jī)械爪采用robotiq三指機(jī)械爪。
動(dòng)作識(shí)別單元12包括一臺(tái)布置在使用者前方用于獲取操作人員在操作過程中人手位置信息的kinect。
壓力反饋單元13包括設(shè)于機(jī)械爪上以檢測(cè)其在執(zhí)行指令過程中與被操作對(duì)象接觸所受壓力的壓力傳感器及設(shè)于人手上以通過其振動(dòng)強(qiáng)度對(duì)壓力進(jìn)行反饋的振動(dòng)器,在本實(shí)施例中壓力傳感器采用flexiforce壓力傳感器,振動(dòng)器采用1027扁平馬達(dá)。
視覺反饋單元14包括兩臺(tái)以上布置在遠(yuǎn)程機(jī)械手工作平臺(tái)的不同方向上,用來獲取具有視差圖像以構(gòu)建3d實(shí)時(shí)操作場(chǎng)景的深度攝像機(jī)及用于顯示3d實(shí)時(shí)操作場(chǎng)景的顯示器、屏幕或vr眼鏡,在本實(shí)施例中,深度攝像機(jī)選用kinect。
控制單元11包括與壓力傳感器、kinect、振動(dòng)器、機(jī)械手及3d實(shí)時(shí)操作場(chǎng)景顯示裝置進(jìn)行通訊連接的處理器,在本實(shí)施例中,通訊連接為通過通訊線路進(jìn)行數(shù)據(jù)傳輸,通訊線路為包括一個(gè)或多個(gè)被配置在處理器與壓力傳感器、kinect、振動(dòng)器、機(jī)械手及3d實(shí)時(shí)操作場(chǎng)景顯示裝置間用于數(shù)據(jù)信息傳輸?shù)臄?shù)據(jù)線路,包括但不限于電線路、光學(xué)線路、無線線路及兩者以上的組合。
參見圖2,本發(fā)明基于感知增強(qiáng)的機(jī)械手遙操作方法包括動(dòng)作識(shí)別步驟s1、動(dòng)作映射步驟s2、壓力反饋步驟s3及視覺反饋步驟s4。
動(dòng)作識(shí)別步驟s1,識(shí)別出人手在運(yùn)動(dòng)過程中指尖與掌心的位置信息。
(1)接收kinect獲取的三種數(shù)據(jù):接收kinect獲取操作人員人手在運(yùn)動(dòng)過程中的骨骼數(shù)據(jù)、深度圖像及彩色圖像,若三種數(shù)據(jù)中的任意一種獲取失敗則返回重新獲取,這里選取距離kinect最近人的骨骼數(shù)據(jù);
(2)獲取限定手部區(qū)域:根據(jù)骨骼數(shù)據(jù)中右手的坐標(biāo),將坐標(biāo)映射成深度值和彩色圖像像素坐標(biāo),選取一個(gè)深度閾值和一個(gè)圖像寬度閾值,選取出彩色圖像中包含整個(gè)手部的矩形范圍;
(3)進(jìn)行顏色識(shí)別:將該矩形范圍內(nèi)的rgb圖像處理成yuv模型圖像,通過標(biāo)記顏色的yuv閾值以及深度閾值,找出符合閾值條件的彩色坐標(biāo),轉(zhuǎn)化為二值灰度圖像,如沒有標(biāo)記顏色,則回到步驟(1);
(4)對(duì)二值圖像進(jìn)行數(shù)學(xué)形態(tài)學(xué)處理:首先進(jìn)行腐蝕操作,除去噪音數(shù)據(jù),再執(zhí)行膨脹操作恢復(fù)圖像,最后進(jìn)行閉操作,對(duì)圖像進(jìn)行邊緣完善處理;
(5)獲取指尖坐標(biāo):找出二值圖像中最大的連通區(qū)域,計(jì)算中心位置,再將其轉(zhuǎn)化為kinect的三維坐標(biāo),即指尖坐標(biāo),將指尖坐標(biāo)轉(zhuǎn)化為指間距離。將指間距離和骨骼數(shù)據(jù)的手部坐標(biāo)發(fā)送給遠(yuǎn)端。
動(dòng)作映射步驟s2,將位置信息映射成機(jī)械手操作指令。
動(dòng)作映射是將采集到的數(shù)據(jù)作進(jìn)一步處理,提取語義,即根據(jù)當(dāng)前位置信息以及之前獲取一系列位置信息之間的相互關(guān)系,判斷當(dāng)前位置信息對(duì)應(yīng)的操作語義,操作語義包括靜止和移動(dòng)、抓取和釋放。當(dāng)人手發(fā)生移動(dòng)時(shí),掌心坐標(biāo)會(huì)與之前掌心坐標(biāo)的歐式距離發(fā)生較大偏差,由于數(shù)據(jù)噪音的原因,靜止時(shí)當(dāng)前掌心坐標(biāo)與之前掌心坐標(biāo)的歐式距離也會(huì)有波動(dòng),但該波動(dòng)范圍為在一個(gè)較小的范圍內(nèi),可以通過設(shè)置一個(gè)閾值,當(dāng)波動(dòng)大于該閾值時(shí),則人手發(fā)生移動(dòng)操作,當(dāng)小于閾值時(shí),則人手處于靜止。抓取和釋放采取同樣的方式,通過設(shè)置抓取和釋放的指間距離閾值,以判斷抓取與釋放行為。然后將語義轉(zhuǎn)換為對(duì)應(yīng)的機(jī)械手操作指令,首選采集多組運(yùn)動(dòng)與靜止、抓取與釋放等動(dòng)作的數(shù)據(jù),找出動(dòng)作的閾值,然后通過映射算法,轉(zhuǎn)換為指令發(fā)送給機(jī)械手。映射算法為:
(1)初始化機(jī)械手:分別向機(jī)械臂和機(jī)械爪發(fā)送初始化命令,使機(jī)械臂和機(jī)械爪執(zhí)行初始化操作;
(2)獲取指間距離,并對(duì)指尖距離作進(jìn)一步處理,將指尖距離轉(zhuǎn)化為機(jī)械爪抓取幅度參數(shù);
(3)獲取機(jī)械臂當(dāng)前坐標(biāo),判斷是否是第一次映射,若是,則記錄下當(dāng)前動(dòng)作數(shù)據(jù)作為初始位置數(shù)據(jù),并讓機(jī)械手執(zhí)行指定的初始位置操作,進(jìn)行定標(biāo),然后回到步驟(2);若否,則繼續(xù)執(zhí)行步驟(4);
(4)判斷是否完成上一次操作,即判斷當(dāng)前機(jī)械臂坐標(biāo)是否是上一次執(zhí)行操作的目的坐標(biāo);若否,則回到步驟(2),若是,則執(zhí)行步驟(5);
(5)判斷是否在進(jìn)行抓取釋放操作,若是,則執(zhí)行抓取釋放操作,控制機(jī)械爪運(yùn)行,機(jī)械臂不做操作,然后回到步驟(2);若否,則判斷當(dāng)前手是否靜止(手部運(yùn)動(dòng)的轉(zhuǎn)折點(diǎn)發(fā)送給機(jī)械臂,轉(zhuǎn)折點(diǎn)靜止),若否,則回到步驟(2),若是,則執(zhí)行步驟(6);
(6)坐標(biāo)轉(zhuǎn)換,根據(jù)步驟(3)中設(shè)置的初始位置,獲取當(dāng)前位置與初始位置的相對(duì)坐標(biāo),結(jié)合設(shè)置的機(jī)械臂初始位置坐標(biāo),將坐標(biāo)轉(zhuǎn)換為機(jī)械臂坐標(biāo)系中的坐標(biāo),執(zhí)行移動(dòng)操作,然后回到步驟(2)繼續(xù)執(zhí)行。
壓力反饋步驟s3,接收機(jī)械手上壓力傳感器的壓力數(shù)據(jù),并依據(jù)壓力數(shù)據(jù)控制人手處振動(dòng)器的振動(dòng)強(qiáng)度。
壓力反饋是將機(jī)械手抓取過程中的壓力信息反饋給操作人員,從而更好地幫助人遠(yuǎn)程控制抓取動(dòng)作。將壓力傳感器布置在機(jī)械爪的指尖,通過壓力傳感器來獲取機(jī)械手端的觸覺壓力信息;對(duì)于觸覺壓力信息的反饋,采用的方式是在操作者手上穿戴振動(dòng)傳感器的方式。傳感器分別連接到兩個(gè)arduino單片機(jī),arduino單片機(jī)連接著藍(lán)牙模塊,數(shù)據(jù)傳輸通過藍(lán)牙發(fā)送。采集到的壓力數(shù)據(jù)化分為5個(gè)等級(jí)強(qiáng)度,將等級(jí)強(qiáng)度數(shù)據(jù)發(fā)送給接收端,接收端根據(jù)等級(jí)強(qiáng)度數(shù)據(jù)設(shè)置arduino模擬端口的電壓值,控制振動(dòng)傳感器發(fā)生不同強(qiáng)度的振動(dòng),實(shí)現(xiàn)壓力反饋。
視覺反饋步驟s4,接收布置在機(jī)械手周圍兩臺(tái)以上的深度攝像機(jī)所獲取機(jī)械手工作臺(tái)的圖像信息,構(gòu)建3d實(shí)時(shí)操作場(chǎng)景。
視覺反饋是將機(jī)械手運(yùn)動(dòng)過程中的3d實(shí)時(shí)操作場(chǎng)景反饋給操作人員,以幫助觀察遠(yuǎn)程控制機(jī)械手。在機(jī)械手工作平臺(tái)的不同方向布置兩臺(tái)以上的kinect,首先進(jìn)行定標(biāo),識(shí)別kinect圖像場(chǎng)景中的標(biāo)記,獲取到標(biāo)記在kinect坐標(biāo)系中的坐標(biāo)位置,根據(jù)kinect與標(biāo)記的相對(duì)位置來將kinect坐標(biāo)系中所有點(diǎn)的坐標(biāo)轉(zhuǎn)換成標(biāo)記坐標(biāo)系的坐標(biāo),根據(jù)預(yù)設(shè)的標(biāo)記在全局坐標(biāo)系中的相對(duì)位置,將坐標(biāo)轉(zhuǎn)換為全局坐標(biāo),實(shí)現(xiàn)多臺(tái)kinect的點(diǎn)云數(shù)據(jù)的融合,構(gòu)建出實(shí)時(shí)的3d場(chǎng)景,再通過icp算法不斷迭代計(jì)算出一個(gè)旋轉(zhuǎn)和平移變換矩陣,使得不同的kinect的點(diǎn)云數(shù)據(jù)的同源點(diǎn)間的距離最小,從而優(yōu)化構(gòu)建出的3d場(chǎng)景,為了保證反饋的實(shí)時(shí)性,對(duì)迭代次數(shù)要做出限制,當(dāng)?shù)螖?shù)過高時(shí),返回次優(yōu)結(jié)果。機(jī)械手端獲取的kinect原始數(shù)據(jù)直接發(fā)送給遠(yuǎn)程端,遠(yuǎn)程端在將原始數(shù)據(jù)進(jìn)一步處理為點(diǎn)云數(shù)據(jù),避免直接發(fā)送點(diǎn)云數(shù)據(jù),數(shù)據(jù)量較大,影響視覺反饋的實(shí)時(shí)性。
在使用過程中,控制單元11中的處理器用于:
(1)接收由kinect獲取人手在運(yùn)動(dòng)過程中的彩色圖像、深度圖像及骨骼數(shù)據(jù);依據(jù)骨骼數(shù)據(jù),獲取人手掌心的位置信息;依據(jù)深度圖像、彩色圖像及掌心的位置信息,識(shí)別出設(shè)于人手指尖上的彩色標(biāo)記,獲取包括指尖三維坐標(biāo)信息的人手指尖位置信息;從而識(shí)別出人手在運(yùn)動(dòng)過程中指尖與掌心的位置信息。
(2)依據(jù)連續(xù)獲取的人手掌心與指尖的位置信息,將人手動(dòng)作歸類為移動(dòng)、靜止、抓取及釋放四種語義,并將從位置信息中提取的語義信息映射成機(jī)械手操作指令,再將操作指令分別發(fā)送給機(jī)械爪和機(jī)械臂。
(3)接收壓力傳感器的壓力數(shù)據(jù),將壓力數(shù)據(jù)分成5個(gè)等級(jí),并依據(jù)該壓力等級(jí)數(shù)據(jù)控制振動(dòng)器的振動(dòng)強(qiáng)度。
(4)依據(jù)kinect獲取的深度圖像、彩色圖像,構(gòu)建不同方向的3d點(diǎn)云數(shù)據(jù);依據(jù)kinect獲取的深度圖像、彩色圖像,識(shí)別出機(jī)械手工作臺(tái)上布置的標(biāo)記;通過標(biāo)記進(jìn)行定標(biāo),將不同方向的3d點(diǎn)云數(shù)據(jù)融合成3d圖像模型;通過icp算法對(duì)3d圖像模型進(jìn)行優(yōu)化。
具體操作過程如上述方法步驟中的描述,在此不再贅述。
本發(fā)明采用深度攝像機(jī)的數(shù)據(jù),獲取手部運(yùn)動(dòng)過程中的,通過映射算法,將數(shù)據(jù)轉(zhuǎn)化為語義信息,再進(jìn)一步轉(zhuǎn)換為對(duì)應(yīng)的機(jī)械手操作指令,發(fā)送給遠(yuǎn)端的機(jī)械手,遠(yuǎn)端的機(jī)械手通過布置在機(jī)械手指尖的壓力傳感器和布置在機(jī)械手不同方向的多臺(tái)kinect,將壓力數(shù)據(jù)和3d實(shí)時(shí)場(chǎng)景實(shí)時(shí)發(fā)回給操作人員,從而實(shí)現(xiàn)感知增強(qiáng)的遠(yuǎn)程控制。