一款基于Kinect的機(jī)器人控制系統(tǒng)設(shè)計(jì)
摘要:設(shè)計(jì)一款可以通過人體動作對機(jī)器人進(jìn)行控制的機(jī)器人控制系統(tǒng)。該系統(tǒng)由主機(jī)和從機(jī)兩部分組成,通過Kinect體感傳感器采集人體動作信息,在主機(jī)中進(jìn)行圖像處理解析出相應(yīng)的人體動作,然后通過無線傳輸單元向機(jī)器人發(fā)送相應(yīng)的控制指令,控制機(jī)器人做出響應(yīng),完成相應(yīng)的一套動作或?qū)θ梭w動作進(jìn)行實(shí)時(shí)模仿、制作的機(jī)器人樣機(jī)運(yùn)行良好,能夠根據(jù)人體左右手的動作和語音命令,做出正確的響應(yīng)。
本文引用地址:http://2s4d.com/article/255888.htm隨著機(jī)器人控制技術(shù)的迅猛發(fā)展,各類機(jī)器人已廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、國防、科研、教育以及人們的日常生活等諸多領(lǐng)域。但目前機(jī)器人的操控方式卻不乏單調(diào),傳統(tǒng)意義上的控制基本上是通過遙控器、按鈕、操作手柄來實(shí)現(xiàn)的。文中則提供了一種新的控制方式——體感控制,即操作者可直接通過手勢對機(jī)器人進(jìn)行控制,巧妙地將Kinect體感技術(shù)與機(jī)器人控制技術(shù)結(jié)合,創(chuàng)造性地實(shí)現(xiàn)了機(jī)器人控制方式上的創(chuàng)新,實(shí)現(xiàn)更加自然的人機(jī)交互。
1 總體結(jié)構(gòu)與工作原理
本控制系統(tǒng)以Kinect體感傳感器作為圖像采集工具,結(jié)合機(jī)器人控制技術(shù),實(shí)現(xiàn)了人體動作對機(jī)器人的控制,使機(jī)器人更加智能化。裝置由主機(jī)和從機(jī)兩部分組成,系統(tǒng)總體結(jié)構(gòu)如圖1所示。主機(jī)用于人體動作信息采集,然后進(jìn)行圖像處理,識別出入體動作,并負(fù)責(zé)把人體動作信息無線傳送給從機(jī)。
主機(jī)系統(tǒng)由PC機(jī)、Kinect體感傳感器、XL02—232AP1無線傳輸模塊組成。主機(jī)用于人體動作信息采集,然后進(jìn)行圖像處理,識別出人體動作,并負(fù)責(zé)把人體動作信息無線傳送給從機(jī)。
從機(jī)則是一個(gè)動作執(zhí)行機(jī)器人,它的控制系統(tǒng)由AVRatmega128單片機(jī)、無線傳輸模塊、語音模塊、BT37970B直流電機(jī)驅(qū)動模塊等組成。它的機(jī)械結(jié)構(gòu)主要由多自由度的手臂和四輪驅(qū)動的底盤構(gòu)成。從機(jī)對信息進(jìn)行實(shí)時(shí)處理,控制機(jī)器人手臂各個(gè)關(guān)節(jié)旋轉(zhuǎn)相應(yīng)的角度,從而完成相應(yīng)的動作。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 主機(jī)
1)Kinect體感傳感器它是2010年由微軟對XBOX360體感周邊外設(shè)正式發(fā)布的名字,具有動態(tài)捕捉,影像辨識,語音識別等功能?;谠摷夹g(shù),可以利用手勢在游戲中開車、與其他玩家互動、通過互聯(lián)網(wǎng)與其他Xbox玩家分享圖片和信息等,這也顯示了它具有非常強(qiáng)大的圖像采集與處理功能。
Kinect可以同時(shí)獲取RGB和深度圖像數(shù)據(jù),支持實(shí)時(shí)的全身的骨骼追蹤,并可以識別一系列的動作。圖2是它的外觀圖,左邊鏡頭為紅外線發(fā)射器,中間鏡頭是一般常見的RGB彩色攝像頭,右邊鏡頭是紅外線CMOS攝像頭所構(gòu)成的3D深度傳感器。微軟在2011年6月推出的Kinect for Windows SDK Beta使開發(fā)人員可以直接取得距離傳感器、彩色攝像機(jī)以及四單元麥克風(fēng)數(shù)組的原始數(shù)據(jù)流進(jìn)行應(yīng)用程序開發(fā)。此套SDK能夠追蹤Kinect視野內(nèi)一位或兩位用戶的骨架映像,便于建立以體感操作的應(yīng)用程序。
Kinect不同于普通攝像頭的是,它有感知世界的CMOS紅外傳感器。該傳感器通過黑白光譜的方式來感知環(huán)境,純黑代表無窮遠(yuǎn),純白代表無窮近,黑白間的灰色地帶對應(yīng)物體到傳感器的距離。它收集視野范圍內(nèi)的每一點(diǎn),并形成一幅代表周圍環(huán)境的景深圖像。傳感器以每秒30幀的速度生成深度圖像流,實(shí)時(shí)3D地再現(xiàn)周圍環(huán)境。
利用Kinect采集到的深度圖信息,可以得到一個(gè)20點(diǎn)的人體骨架結(jié)構(gòu),其二維投影如圖3所示,前景分割與骨架提取該系統(tǒng)直接調(diào)用了SDK封裝函數(shù),得到人體20個(gè)節(jié)點(diǎn)的3維空間坐標(biāo)以及節(jié)點(diǎn)方向信息,進(jìn)而得到完整的人體骨架信息。
運(yùn)用這些信息可以提取出人體姿態(tài)特征以及運(yùn)動特征,用于人體基本動作的識別。譬如,通過比較右手與頭部的Y軸坐標(biāo)差值的閾值變化,可以解析出右手是否舉起,如圖4所示。
2)通訊模塊XL02—232AP1無線模塊是UART接口半雙工無線傳輸模塊,可以工作在433 MHz公用頻段。其傳輸距離約300 m,其工作電壓+5 V,低功耗,可以與單片機(jī)I/O口直接相連,發(fā)射模式下串口速率為1.2~115.2 kbps,抗干擾能力強(qiáng)。連接電路如圖5所示。
2.2 從機(jī)
1)動作執(zhí)行機(jī)器人
?、偈直蹌幼骺刂?/p>
本作品所使用的機(jī)器人有兩種結(jié)構(gòu)形式,分別是類人機(jī)器人和輪式機(jī)器人,不同點(diǎn)是一個(gè)是雙足站立的,一個(gè)是輪式的,它們每條手臂均由4個(gè)舵機(jī)構(gòu)成,通過控制每個(gè)舵機(jī)的旋轉(zhuǎn)角度可以得到不同的手臂動作和腿部動作,每8個(gè)舵機(jī)角度數(shù)據(jù)對應(yīng)于一個(gè)特定的手臂動作??梢詫⒚總€(gè)手臂動作對應(yīng)的8個(gè)舵機(jī)角度封裝在一個(gè)結(jié)構(gòu)體數(shù)組中,需要時(shí)可以直接調(diào)用。類人機(jī)器人的腿部動作的控制也是如此。
機(jī)器人手臂動作的執(zhí)行有兩種方式:根據(jù)從上位機(jī)傳來的動作指令,做出對應(yīng)的預(yù)先設(shè)定的一套動作;對人體的當(dāng)前動作進(jìn)行實(shí)時(shí)模仿,人體的動作信息解析出來后,在上位機(jī)中計(jì)算山對應(yīng)的各個(gè)角度數(shù)據(jù),然后將這些角度數(shù)據(jù)通過無線傳輸單元實(shí)時(shí)地傳送到機(jī)器人,機(jī)器人做出響應(yīng),模仿當(dāng)前人體手臂動作。
?、跈C(jī)器人平面運(yùn)動控制
機(jī)器人平面運(yùn)動的控制針對的是輪式機(jī)器人,機(jī)器人的平面運(yùn)動方式大致有4種,分別是前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn)。這4種運(yùn)動方式對應(yīng)于4個(gè)指令數(shù)據(jù),也同時(shí)對應(yīng)著4個(gè)操作者的手勢動作。通過真實(shí)的開車旋轉(zhuǎn)方向盤來控制機(jī)器車的旋轉(zhuǎn),通過右手相對于左手的超前或落后來控制車的前進(jìn)和后退,解析出這4個(gè)動作后,只需發(fā)送對應(yīng)的4個(gè)指令數(shù)據(jù)即可。機(jī)器人硬件結(jié)構(gòu)如圖6所示。
評論