《簡單手勢控制的機器人設計》由會員分享,可在線閱讀,更多相關《簡單手勢控制的機器人設計(2頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、簡單手勢控制的機器人設計
簡單手勢控制的機器人設計
2014/09/01
《黑龍江科技信息雜志》2014年第二十期
1設計方法
首先獲得Wiimote控制器中加速度計的數(shù)據(jù)。收到這些數(shù)據(jù)后,采用三次樣條插值理論將它轉(zhuǎn)換成我們在程序中使用的姿態(tài)數(shù)據(jù)。然后,判斷程序的當前模式是訓練模式還是控制模式,為訓練模式時,該數(shù)據(jù)被存儲在存儲器中作為訓練數(shù)據(jù);為控制模式時,數(shù)據(jù)發(fā)送給識別器,通過以前訓練的姿態(tài)數(shù)據(jù)來識別它代表的當前姿態(tài)。如果用戶認為訓練數(shù)據(jù)不夠,還可以在任何時候切換為
2、訓練模式。手勢被識別后,其關聯(lián)命令即會發(fā)送給機器人執(zhí)行。
1.1加速度數(shù)據(jù)。正如上面的討論,收集的Wiimote的數(shù)據(jù)通過藍牙傳輸。為此使用CWiid幫助連接到遙控器手柄從而得到按鈕和加速度傳感器的狀態(tài)。該加速度計給出一個包含三個值的數(shù)據(jù)點。這些值的范圍從0到255,三個數(shù)值分別代表圖1中所示不同的軸。得到的Wiimote數(shù)據(jù)會隨著姿勢的變化不斷改變。
1.2數(shù)據(jù)歸一化。當從Wiimote獲得數(shù)據(jù)后,對其進行處理并加入到訓練集或進行手勢識別。因為不同手勢所持續(xù)的時間不同,必須統(tǒng)一他們,使其持續(xù)時間大小固定且獨立。為次,數(shù)據(jù)進行時間歸一化處理,用三個長度為250的數(shù)組存儲加速度傳感器的數(shù)據(jù)。
3、
1.3訓練。首先應該按下Wiimote的按鈕1選擇進入訓練模式。然后,通過四個方向鍵中的其中一個下達移動命令。最后按下的方向按鈕為想要訓練的移動方向。為了記錄手勢,應該在按下按鈕A的同時完成手勢,然后松開按鈕A。這樣一來,發(fā)送的數(shù)據(jù)點將被存儲為一個手勢。
1.4控制??刂茩C器人時數(shù)據(jù)的獲取與訓練時一樣,唯一不同的是應該先按下按鈕2切換到控制模式。接收到數(shù)據(jù)后,識別器會識別出當前動作。
1.4.1識別器。對于識別器,采用K最鄰近節(jié)點算法(KNN)。首先根據(jù)數(shù)據(jù)的時間將數(shù)據(jù)劃分為250個階段,編號從0到249,在每一個時間段中,都需要判斷數(shù)值所代表的動作并將其分組,總共為四組,分為上,下,
4、左,右。識別手勢時,對于250個時間段,都使用KNN算法將其中數(shù)據(jù)分組。最終,選擇其中最常見的組點作為識別出的姿態(tài)。
1.4.2機器人控制。識別階段完成后,與手勢相關聯(lián)的命令被發(fā)送到機器人。機器人控制器是使用libplayerc++庫實現(xiàn)的。運動方向控制是通過調(diào)用SetSpeed(XSpeed,YSpeed)函數(shù)。將與手勢的關聯(lián)定義如下:向上-前進(y方向速度為0)向下-后退(y方向速度為0)向右-右轉(zhuǎn)(x方向速度為0)向左-左轉(zhuǎn)(x方向速度為0)在此控制模型中,每當用戶做出可被識別的手勢,機器人就會做相關聯(lián)的動作。按下B鍵,用戶暫停機器人,按下Home鍵可以結(jié)束控制,并停止機器人。
2結(jié)論
在這個項目中,我們發(fā)現(xiàn),使用Wiimote實現(xiàn)機器人體感控制是可行的,其中我們使用的是簡單算法KNN。廉價的硬件和簡單的算法可以幫助改善人與機器人之間的溝通。使用手勢控制機器人是非常直觀的,在今后的工作中,研究重點應該在使用其他分類算法來實現(xiàn)更復雜的手勢控制。
作者:倪欣高昌單位:東北林業(yè)大學
上一個文章: 低壓成套開關設備保護下一個文章: 變頻器應用技術的研究