基于手勢和語音進行機器人在線示教的方法
【專利摘要】本發(fā)明公開基于手勢和語音進行機器人在線示教的方法,包括以下步驟:S1、基于手勢的粗調(diào)過程;S2、基于語音的微調(diào)過程;S3、結(jié)合手勢與語音來進行機器人示教。本發(fā)明提出了一種機器人在線示教的方法,包括了手勢示教和語音示教,操作者可以通過手勢的粗調(diào)和語音的微調(diào)相互結(jié)合的方式來指導(dǎo)機器人完成相應(yīng)的動作。相比現(xiàn)有的技術(shù),顯得更加的自然,靈活,方便,易操控,操作者可以不必把精力放在如何操作機器人上,而可以全心全意的操控機器人完成某些任務(wù)。
【專利說明】
基于手勢和語音進行機器人在線示教的方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明屬于機器人示教領(lǐng)域,涉及了一種基于手勢和語音的人機交互方法。
【背景技術(shù)】
[0002] 隨著機器人技術(shù)的不斷發(fā)展,人們對機器人的研究越來越深入,對智能技術(shù)的要 求越來越高。當前人與機器人的智能交互與協(xié)作成為了機器人研究的熱點方向,而機器人 示教再現(xiàn)技術(shù)又是人機協(xié)作的基礎(chǔ)。機器人示教再現(xiàn)技術(shù)是指操作員預(yù)先對機器人展示要 完成的操作與任務(wù),機器人通過學(xué)習(xí)與記憶,再重現(xiàn)這些操作。國外示教再現(xiàn)技術(shù)起步較 早,并已取得了許多研究成果,如:穿戴金屬骨架示教,通過聰慧機器人示教等。雖然國內(nèi)的 示教技術(shù)再現(xiàn)技術(shù)起步較晚,但是發(fā)展十分迅速,除了傳統(tǒng)的通過操縱桿或者示教盒進行 示教,還有離線示教和虛擬示教,然而這些方法都依賴于特定的環(huán)境,具有一定的局限性。
[0003] 這篇發(fā)明提出了一種基于三維手勢和語音識別的機器人示教再現(xiàn)技術(shù),該技術(shù)有 很高的靈活性與非受限性。其中手勢示教采用Leap Motion傳感器獲取手勢的位置數(shù)據(jù)以 及手勢的姿態(tài)數(shù)據(jù),該技術(shù)還引用了混合卡爾曼濾波和粒子濾波方法對獲取的手勢數(shù)據(jù)進 行處理與優(yōu)化。通過手勢示教,機器人能獲取到操作者期望機器人所到達的位置信息并快 速移動到該位置。語音示教將會用到微軟Speech SDK對語音進行識別,把人的自然語言轉(zhuǎn) 化為機器人可以識別的指令,再利用已經(jīng)建立的控制指令語料庫執(zhí)行這些指令。本發(fā)明的 示教再現(xiàn)技術(shù)是基于手勢和語音識別對機器人進行示教,機器人利用手勢的識別與獲取對 操作位置進行粗定位,然后再利用語音識別對操作位置進行精細定位,再根據(jù)識別到的語 音的其他內(nèi)容進行相關(guān)操作。該技術(shù)具有很高的靈活性,準確性和高效性,操作員只需要使 用非常自然的語音手勢指令,機器人便能十分快速準確地完成示教在線任務(wù)。因此,本發(fā)明 認為該基于三維手勢和語音識別的示教再現(xiàn)技術(shù)必將是未來智能機器人發(fā)展的必然選擇, 并且將會十分有力地推動智能人機交互技術(shù)往更高的層面發(fā)展。
【發(fā)明內(nèi)容】
[0004] 這個發(fā)明提出了一種機器人在線示教的方法,包括了手勢示教和語音示教,操作 者可以通過手勢的粗調(diào)和語音的微調(diào)相互結(jié)合的方式來指導(dǎo)機器人完成相應(yīng)的動作。
[0005] 本發(fā)明基于手勢和語音進行機器人在線示教的方法,包括如下步驟:
[0006] S1、基于手勢的粗調(diào)過程;
[0007] S2、基于語音的微調(diào)過程;
[0008] S3、結(jié)合手勢與語音來進行機器人示教。
[0009] 所述步驟S1包括以下步驟:
[0010] 人的手勢具有自然、直觀、靈活等特點,操作人員可以很輕松的通過手勢來表示自 己的意圖,將之用在機器人示教上顯然具有很好的優(yōu)勢,手勢用來對機器人進行粗調(diào)操作。 操作人員可以直接通過手勢運動來控制機器人運動,手勢位置和方向等數(shù)據(jù)可以由Leap Motion來獲取得到,對手勢位置和方向這些數(shù)據(jù)進行處理之后就可以控制機器人運動。
[0011] 1)手勢坐標系統(tǒng)
[0012] Leap Motion是通過一個手勢跟蹤系統(tǒng)來進行手勢位置和方向等數(shù)據(jù)的捕獲,系 統(tǒng)內(nèi)設(shè)有三個坐標系。
[0013] 1:世界坐標系XwYwZw
[0014] 2:Leap Motion坐標系XlYlZl [0015] 3:手掌坐標系XhYhZh
[0016] 由手掌坐標系XhYhZh向Leap Motion坐標系XlYlZl的變換可以代表手勢位置。假設(shè) Leap Motion坐標系XhYhZh與手掌坐標系XlYlZl在X軸、Y軸、Z軸的旋轉(zhuǎn)方向分別為Φ、θ、φ,則 這些旋轉(zhuǎn)角(Φ、Θ、Φ)可以代表手勢方向。
[0017] 2)通過間隔卡爾曼濾波來進行位置估計
[0018] 通過Leap Motion獲取到的手勢位置不夠精確,可能會出現(xiàn)手抖動等誤差,這樣對 機器人在線示教會有很大的影響,雖然卡爾曼濾波可以運用在位置估計上,在一些環(huán)境相 對復(fù)雜的情況下,系統(tǒng)所得到的數(shù)據(jù)不確定,用卡爾曼濾波對物體進行位置估計出現(xiàn)的誤 差可能比較大,使用間隔卡爾曼濾波可以解決這個問題。
[0019] 間隔卡爾曼濾波的模型表示如下:
[0021] 這里4是k時刻的η X 1狀態(tài)向量,是1^11的狀態(tài)轉(zhuǎn)換矩陣,0是11\1控制輸出矩 陣,《L!是1 X 1的輸入向量,Cl·和ν?代表噪音向量;4是k時刻的mX 1的測量向量,每是mXη的 觀察矩陣。其中
[0023] 通過間隔卡爾曼濾波的位置估計,本發(fā)明可以將手勢狀態(tài)x'k在時刻k的狀態(tài)表示 如下:
[0024] X k -[ Px, k , Vx, k , Ax, k , Py, k , Vy, k , Ay, k , Pz, k , Vz, k , Az, k ] ( 3 )
[0025] 在這個過程中,噪音向量表示為:
[0026] w,k=[0,0,w,x,0,0,w,y,0,0,wz] T (4)
[0027] 其中(w'x,w'y,wz)是手掌加速度的過程噪音。通過間隔卡爾曼濾波融合后的手勢 位置數(shù)據(jù)就比較精確,可以用來對機器人進行粗調(diào)控制操作。
[0028] 3)通過改進的粒子濾波來進行姿態(tài)估計
[0029] 四元數(shù)算法可以用來進行剛體方向的估計,為了減少使用四元數(shù)算法所帶來的誤 差,使用改進的粒子濾波來增強數(shù)據(jù)融合。在tk時刻,后部密度的近似值定義為:
[0031] 其中4是tk時刻的第i個狀態(tài)粒子,N是樣本數(shù)目,4是tk時刻的第i個粒子的標準權(quán) 重,W ·)是狄拉克函數(shù)。
[0032] 因此,所分析的粒子可以被計算如下:
[0033] x,XA- + ) + vu- ],)
[0035] 在tk+1時刻每個粒子的四元數(shù)分量可以表示如下:
[0037]其中coaxls,k是角速度,t是樣本時間。通過改進的粒子濾波方法對手勢姿態(tài)的估 計,準確性也得到的很大的提高,因此也可以用來對機器人進行粗調(diào)控制操作。
[0038] 所述步驟S2包括以下步驟:
[0039] 語音具有自然,簡便,易操控等特點。操作者直接通過語音命令來控制機器人就會 變得簡單直接,語音用來對機器人進行微調(diào)操作。本發(fā)明將使用微軟Speech SDK來進行語 音的獲取,當用戶發(fā)出語音指令時,微軟Speech SDK從語音輸入中提取出關(guān)鍵詞,將語音信 息轉(zhuǎn)化為自然語言文本,再對該自然語言文本信息進行處理,將其中所蘊含的用戶意圖轉(zhuǎn) 化為機器人控制指令,最后將機器人控制指令轉(zhuǎn)化成相對應(yīng)的機器人操作,最后機器人完 成這個操作。因此可該過程可分為四個階段:語音輸入,語音識別,意圖理解,完成操作。其 中語音識別與意圖理解是最重要也是本發(fā)明接下來要論述的部分。在進行機器人示教再現(xiàn) 前本發(fā)明會預(yù)先設(shè)計一套完善的控制命令體系以及相對應(yīng)的語音控制指令語料庫。由于本 發(fā)明研究的是基于三維手勢和語音識別的機器人示教再現(xiàn)技術(shù),所以本發(fā)明設(shè)計的控制指 令語料庫中除了有語音控制指令,還要有手勢控制指令。同樣在設(shè)計語音控制命令體系時, 考慮到操作員下達語音指令的同時可能還伴隨著手勢指令,因此本發(fā)明將采用五個參數(shù) (Cdir,C Qpt,Chand,Cval,Cunit)來對指令進行識別。當操作員對機器人下達語音命令時,機器人 首先判斷該語音指令是否包含手勢指令,若包含,c hand設(shè)為1,轉(zhuǎn)為執(zhí)行手勢指令,若不包 含,Chand設(shè)為NULL,對語音進行識別,獲取指令語句中的方向,操作,特征值,單位等參數(shù)并 進行對應(yīng)操作。
[0040] 對語音識別完畢后,進入意圖理解部分。該部分主要是將自然語言指令轉(zhuǎn)化為對 應(yīng)的機器人控制指令。在對剛識別完的自然語言指令進行理解轉(zhuǎn)化之前,本發(fā)明要有一個 最大熵分類模型,本發(fā)明先從訓(xùn)練語料庫中提取文本特征,然后利用TF-IDF對文本特征進 行特征向量加權(quán),將文本表示為文本特征向量,有η個詞就表示為η維特征向量。然后利用最 大熵算法,對文本特征向量與對應(yīng)的意圖輸出標簽的條件概率進行建模,得到分布最均勻 的模型,利用公式:
[0042]得到最大熵概率分布,從而完成最大熵建模。其中為第i個特征函數(shù),若 文本向量與對應(yīng)的輸出標簽現(xiàn)在同一個樣本中,貝1|;^(1,7)等于1,否則為〇。\1為;^(1,7)對 應(yīng)的權(quán)值,z(x)為歸一化因子。最大熵分類模型建立之后,便可以對要測試的自然語言指令 進行轉(zhuǎn)化了。先從要測試的文本中提取文本特征,再用上述提到的方法將文本表示為文本 特征向量,然后利用建立好的最大熵分類模型對文本特征向量進行分類,最后得到機器人 控制指令。
[0043] 建模方式有兩種:統(tǒng)一屬性建模和獨立屬性建模。統(tǒng)一屬性建模是指將所有屬性 組合成一條指令,并對該指令進行最大熵建模,然后對文本進行測試。獨立屬性建模是指分 別對四個屬性進行最大熵建模,再對樣本進行測試,最后將測試結(jié)果組合成一條輸出指令。 統(tǒng)一屬性建模能考慮到各屬性之間相互的關(guān)聯(lián),會提高模型的精確度,但是這樣的建模方 法會使組合數(shù)量十分龐大,使分類變得困難很多。獨立屬性建模雖然組合數(shù)量會少很多,但 是屬性之間缺乏關(guān)聯(lián)性,模型的精確度會降低很多。使用統(tǒng)一屬性建模,以保證模型的精確 度。通過以上所建立的模型,可以實現(xiàn)語音的精確識別,因此,就可以通過語音來實現(xiàn)對機 器人的微調(diào)控制操作。
[0044] 所述步驟S3包括以下步驟:
[0045] 機器人在線示教通過手勢和語音兩種方式來進行,手勢是負責粗調(diào),語音負責微 調(diào)。語音控制分為兩種命令:控制性命令和命令性命令,操作者通過控制性命令可以開始或 結(jié)束機器人在線示教的過程,也可以在手勢指令和命令性命令之間做切換。在線示教的流 程圖如圖1所不:
[0046] 首先,操作者發(fā)出開始的語音命令,機器人收到命令之后就處于待命狀態(tài),隨時準 備接受新的指令。接著,操作者可以將命令設(shè)置為手勢控制狀態(tài),在這個狀態(tài)下,操作者可 以通過手勢來控制機器人的前后左右運動,此時運動的幅度比較大,所以手勢比較容易進 行控制。這稱為機器人的粗調(diào)過程。
[0047] 然而,在某些情形下,機器人所做的動作幅度較小,此時操作者通過手勢控制機器 人比較困難,因為人的手勢對于微小的距離不易控制,這時候就可以轉(zhuǎn)向語音控制,操作者 可以通過語音來切換成語音控制命令,由語音來控制機器人前后左右移動,這稱為機器人 的微調(diào)過程。
[0048] 在大多數(shù)情況下,機器人的粗調(diào)和微調(diào)是結(jié)合在一起的。例如,操作者手指著一個 方向,語音控制機器人向那個方向移動,此時機器人就會讀取語音指令的內(nèi)容,同時讀取手 勢所指的方向,做出正確的操作。在這里本發(fā)明運用了 IF-THEN規(guī)則來進行整體的控制,設(shè) 計了一系列的規(guī)則來實現(xiàn)手勢指令和語音指令之間的結(jié)合。
[0049] 最終,當操作結(jié)束之后,操作者發(fā)出結(jié)束的命令,機器人就會結(jié)束相應(yīng)的操作,整 個示教過程就完成了。
[0050] 這種手勢與語音相互結(jié)合起來的方式控制機器人運動,自然性和靈活性都很強, 便于操作。
[0051] 本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點及效果:
[0052]本發(fā)明提出了一種機器人在線示教的方法,包括了手勢示教和語音示教,操作者 可以通過手勢的粗調(diào)和語音的微調(diào)相互結(jié)合的方式來指導(dǎo)機器人完成相應(yīng)的動作。相比現(xiàn) 有的技術(shù),顯得更加的自然,靈活,方便,易操控,操作者可以不必把精力放在如何操作機器 人上,而可以全心全意的操控機器人完成某些任務(wù)。
【附圖說明】
[0053]圖1是在線示教的流程圖。
【具體實施方式】
[0054] 下面結(jié)合實施例對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。
[0055] 實施例:
[0056] 本發(fā)明基于手勢和語音來進行機器人在線示教包括如下步驟:
[0057] S1、基于手勢的粗調(diào)過程;
[0058] S2、基于語音的微調(diào)過程;
[0059] S3、結(jié)合手勢與語音來進行機器人示教。
[0060] 所述步驟S1包括以下步驟:
[0061] 人的手勢具有自然、直觀、靈活等特點,操作人員可以很輕松的通過手勢來表示自 己的意圖,將之用在機器人示教上顯然具有很好的優(yōu)勢,手勢用來對機器人進行粗調(diào)操作。 操作人員可以直接通過手勢運動來控制機器人運動,手勢位置和方向等數(shù)據(jù)可以由Leap Motion來獲取得到,對手勢位置和方向這些數(shù)據(jù)進行處理之后就可以控制機器人運動。 [0062] 1)手勢坐標系統(tǒng)
[0063] Leap Motion是通過一個手勢跟蹤系統(tǒng)來進行手勢位置和方向等數(shù)據(jù)的捕獲,系 統(tǒng)內(nèi)設(shè)有三個坐標系。
[0064] 1:世界坐標系XwYwZw
[0065] 2:Leap Motion坐標系XlYlZl
[0066] 3:手掌坐標系XhYhZh
[0067] 由手掌坐標系XhYhZh向Leap Motion坐標系XlYlZl的變換可以代表手勢位置。假設(shè) Leap Motion坐標系XhYhZh與手掌坐標系XlYlZl在X軸、Y軸、Z軸的旋轉(zhuǎn)方向分別為Φ、θ、φ,則 這些旋轉(zhuǎn)角(Φ、Θ、Φ)可以代表手勢方向。
[0068] 2)通過間隔卡爾曼濾波來進行位置估計
[0069]通過Leap Motion獲取到的手勢位置不夠精確,可能會出現(xiàn)手抖動等誤差,這樣對 機器人在線示教會有很大的影響,雖然卡爾曼濾波可以運用在位置估計上,在一些環(huán)境相 對復(fù)雜的情況下,系統(tǒng)所得到的數(shù)據(jù)不確定,用卡爾曼濾波對物體進行位置估計出現(xiàn)的誤 差可能比較大,使用間隔卡爾曼濾波可以解決這個問題。
[0070]間隔卡爾曼濾波的模型表示如下:
[0072]這里4是k時刻的η X 1狀態(tài)向量,<4是η X η的狀態(tài)轉(zhuǎn)換矩陣,Γ|是η X 1控制輸出矩 陣,a|_;^l X 1的輸入向量,I和4代表噪音向量;4:是k時刻的mX 1的測量向量,是mXn的 觀察矩陣。其中
[0074]通過間隔卡爾曼濾波的位置估計,本發(fā)明可以將手勢狀態(tài)x'k在時刻k的狀態(tài)表示 如下:
[0075] X k -[Px,k , Vx,k , Ax,k , Py,k , Vy,k , Ay,k , Pz,k , Vz,k , Az,k] ( 3 )
[0076] 在這個過程中,噪音向量表示為:
[0077] w,k=[0,0,w,x,0,0,w,y,0,0,w z]T (4)
[0078]其中(《\,《\,^)是手掌加速度的過程噪音。所以,位置估計的觀測矩陣可以被定 義如下:
[0080]由間隔卡爾曼濾波可以得到,模型誤差和觀測誤差的協(xié)方差為:
[0082]其中Δ Qt和Δ Rt是非負的常數(shù)矩陣。通過間隔卡爾曼濾波融合后的手勢位置數(shù)據(jù) 就比較精確,可以用來對機器人進行粗調(diào)控制操作。
[0083] 3)通過改進的粒子濾波來進行姿態(tài)估計
[0084]四元數(shù)算法可以用來進行剛體方向的估計,為了減少使用四元數(shù)算法所帶來的誤 差,使用改進的粒子濾波來增強數(shù)據(jù)融合。在tk時刻,后部密度的近似值定義為:
[0086] 其中4是tk時刻的第i個狀態(tài)粒子,N是樣本數(shù)目,4是tk時刻的第i個粒子的標準權(quán) 重,W ·)是狄拉克函數(shù)。
[0087] 因此,所分析的粒子可以被計算如下:
[0090] 在tk+1時刻每個粒子的四元數(shù)分量可以表示如下:
[0092]其中coaxls,k是角速度,t是樣本時間。通過改進的粒子濾波方法對手勢姿態(tài)的估 計,準確性也得到的很大的提高,因此也可以用來對機器人進行粗調(diào)控制操作。
[0093] 所述步驟S2包括以下步驟:
[0094] 語音具有自然,簡便,易操控等特點。操作者直接通過語音命令來控制機器人就會 變得簡單直接,語音用來對機器人進行微調(diào)操作。本發(fā)明將使用微軟Speech SDK來進行語 音的獲取,當用戶發(fā)出語音指令時,微軟Speech SDK從語音輸入中提取出關(guān)鍵詞,將語音信 息轉(zhuǎn)化為自然語言文本,再對該自然語言文本信息進行處理,將其中所蘊含的用戶意圖轉(zhuǎn) 化為機器人控制指令,最后將機器人控制指令轉(zhuǎn)化成相對應(yīng)的機器人操作,最后機器人完 成這個操作。因此可該過程可分為四個階段:語音輸入,語音識別,意圖理解,完成操作。其 中語音識別與意圖理解是最重要也是本發(fā)明接下來要論述的部分。
[0095] 在進行機器人示教再現(xiàn)前本發(fā)明會預(yù)先設(shè)計一套完善的控制命令體系以及相對 應(yīng)的語音控制指令語料庫。由于本發(fā)明研究的是基于三維手勢和語音識別的機器人示教再 現(xiàn)技術(shù),所以本發(fā)明設(shè)計的控制指令語料庫中除了有語音控制指令,還要有手勢控制指令。 同樣在設(shè)計語音控制命令體系時,考慮到操作員下達語音指令的同時可能還伴隨著手勢指 令,因此本發(fā)明將采用五個參數(shù)(Cdir,C〇 pt,Chand,Cvai,Cunit)來對指令進行識別。當操作員對 機器人下達語音命令時,機器人首先判斷該語音指令是否包含手勢指令,若包含,C hand設(shè)為 1,轉(zhuǎn)為執(zhí)行手勢指令,若不包含,chand設(shè)為NULL,對語音進行識別,獲取指令語句中的方向, 操作,特征值,單位等參數(shù)并進行對應(yīng)操作。
[0096]對語音識別完畢后,進入意圖理解部分。該部分主要是將自然語言指令轉(zhuǎn)化為對 應(yīng)的機器人控制指令。在對剛識別完的自然語言指令進行理解轉(zhuǎn)化之前,本發(fā)明要有一個 最大熵分類模型,本發(fā)明先從訓(xùn)練語料庫中提取文本特征,然后利用TF-IDF對文本特征進 行特征向量加權(quán),將文本表示為文本特征向量,有η個詞就表示為η維特征向量。然后利用最 大熵算法,對文本特征向量與對應(yīng)的意圖輸出標簽的條件概率進行建模,得到分布最均勻 的模型,利用公式:
[0098] 得到最大熵概率分布,從而完成最大熵建模。其中為第i個特征函數(shù),若 文本向量與對應(yīng)的輸出標簽現(xiàn)在同一個樣本中,貝1|;^(1,7)等于1,否則為〇。\1為;^(1,7)對 應(yīng)的權(quán)值,z(x)為歸一化因子。最大熵分類模型建立之后,便可以對本發(fā)明要測試的自然語 言指令進行轉(zhuǎn)化了。本發(fā)明先從要測試的文本中提取文本特征,再用上述提到的方法將文 本表示為文本特征向量,然后利用建立好的最大熵分類模型對文本特征向量進行分類,最 后得到機器人控制指令。
[0099] 建模方式有兩種:統(tǒng)一屬性建模和獨立屬性建模。統(tǒng)一屬性建模是指將所有屬性 組合成一條指令,并對該指令進行最大熵建模,然后對文本進行測試。獨立屬性建模是指分 別對四個屬性進行最大熵建模,再對樣本進行測試,最后將測試結(jié)果組合成一條輸出指令。 統(tǒng)一屬性建模能考慮到各屬性之間相互的關(guān)聯(lián),會提高模型的精確度,但是這樣的建模方 法會使組合數(shù)量十分龐大,使分類變得困難很多。獨立屬性建模雖然組合數(shù)量會少很多,但 是屬性之間缺乏關(guān)聯(lián)性,模型的精確度會降低很多。本發(fā)明將會使用統(tǒng)一屬性建模,以保證 模型的精確度。通過以上所建立的模型,可以實現(xiàn)語音的精確識別,因此,就可以通過語音 來實現(xiàn)對機器人的微調(diào)控制操作。
[0100] 所述步驟S3包括以下步驟:
[0101]機器人在線示教通過手勢和語音兩種方式來進行,手勢是負責粗調(diào),語音負責微 調(diào)。語音控制分為兩種命令:控制性命令和命令性命令,操作者通過控制性命令可以開始或 結(jié)束機器人在線示教的過程,也可以在手勢指令和命令性命令之間做切換。在線示教的流 程圖如圖1所不:
[0102] 首先,操作者發(fā)出開始的語音命令,機器人收到命令之后就處于待命狀態(tài),隨時準 備接受新的指令。接著,操作者可以將命令設(shè)置為手勢控制狀態(tài),在這個狀態(tài)下,操作者可 以通過手勢來控制機器人的前后左右運動,此時運動的幅度比較大,所以手勢比較容易進 行控制。這稱為機器人的粗調(diào)過程。
[0103] 然而,在某些情形下,機器人所做的動作幅度較小,此時操作者通過手勢控制機器 人比較困難,因為人的手勢對于微小的距離不易控制,這時候就可以轉(zhuǎn)向語音控制,操作者 可以通過語音來切換成語音控制命令,由語音來控制機器人前后左右移動,這稱為機器人 的微調(diào)過程。
[0104] 在大多數(shù)情況下,機器人的粗調(diào)和微調(diào)是結(jié)合在一起的。例如,操作者手指著一個 方向,語音控制機器人向那個方向移動,此時機器人就會讀取語音指令的內(nèi)容,同時讀取手 勢所指的方向,做出正確的操作。在這里本發(fā)明運用了 IF-THEN規(guī)則來進行整體的控制,設(shè) 計了一系列的規(guī)則來實現(xiàn)手勢指令和語音指令之間的結(jié)合。
[0105] 最終,當操作結(jié)束之后,操作者發(fā)出結(jié)束的命令,機器人就會結(jié)束相應(yīng)的操作,整 個示教過程就完成了。
[0106] 這種手勢與語音相互結(jié)合起來的方式控制機器人運動,自然性和靈活性都很強, 便于操作。
[0107] 上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的 限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化, 均應(yīng)為等效的置換
[0108] 方式,都包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1. 基于手勢和語音進行機器人在線示教的方法,其特征在于,包括W下步驟: 51、 基于手勢的粗調(diào)過程; 52、 基于語音的微調(diào)過程; 53、 結(jié)合手勢與語音來進行機器人示教。2. 根據(jù)權(quán)利要求1所述的基于手勢和語音進行機器人在線示教的方法,其特征在于,所 述步驟S1包括: 1) 手勢坐標系統(tǒng) Leap Motion是通過一個手勢跟蹤系統(tǒng)來進行手勢位置和方向數(shù)據(jù)的捕獲,其中設(shè)有 Ξ個坐標系, 1:世界坐標系XwYwZw 2:Leap Motion坐標系XiJlZl 3:手掌坐標系抽YhZh; 由手掌坐標系XhYhZh向Leap Motion坐標系Xl化Zl的變換可W代表手勢位置;假設(shè) LeapMotion坐標系抽化Zh與手掌坐標系Xl化孔在X軸、Y軸、Z軸的旋轉(zhuǎn)方向分別為Φ、目、4,貝。 運些旋轉(zhuǎn)角(Φ、Θ、Φ)可W代表手勢方向; 2) 通過間隔卡爾曼濾波來進行位置估計 通過Leap Motion獲取到的手勢位置不夠精確,使用間隔卡爾曼濾波解決運個問題,間 隔卡爾曼濾波的模型表示如下:(1) 運里4是k時刻的η X 1狀態(tài)向量,Φ!是η Xη的狀態(tài)轉(zhuǎn)換矩陣,巧是η X 1控制輸出矩陣,也1 是1X1的 輸入向量,也1和'?代表噪音向量;讀是k時刻的m X 1的測量向量,趣是m X η的觀察矩陣; 其中(2) 通過間隔卡爾曼濾波的位置估計,將手勢狀態(tài)X'k在時刻k的狀態(tài)表示如下: X'k=[f)x,k,Vx,k,Ax,k,Py,k,Vy,k,Ay,k,p)z,k,Vz,k,Az,k] (3) 在運個過程中,噪音向量表示為: W'k= [0,0,W'x,0,0,W'y,0,0,Wz]T (4) 其中(W'x,W'y,Wz)是手掌加速度的過程噪音;通過間隔卡爾曼濾波融合后的手勢位置 數(shù)據(jù)就比較精確,可W用來對機器人進行粗調(diào)控制操作; 3) 通過改進的粒子濾波來進行姿態(tài)估計 四元數(shù)算法能用來進行剛體方向的估計,使用改進的粒子濾波來增強數(shù)據(jù)融合;在tk時 亥IJ,后部密度的近似值定義為:(5) 其中4是tk時刻的第i個狀態(tài)粒子,N是樣本數(shù)目,4是tk時刻的第i個粒子的標準權(quán)重,δ (·)是狄拉克函數(shù); 因此,所分析的粒子能被計算如下:(6) 在tk+l時刻每個粒子的四元數(shù)分量可W表示如下:(7) 其中ω axis,k是角速度,t是樣本時間。3.根據(jù)權(quán)利要求1所述的基于手勢和語音進行機器人在線示教的方法,其特征在于,步 驟S2包括: 操作者直接通過語音命令來控制機器人,語音用來對機器人進行微調(diào)操作;使用微軟 Speech SDK來進行語音的獲取,當用戶發(fā)出語音指令時,微軟Speech SDK從語音輸入中提 取出關(guān)鍵詞,將語音信息轉(zhuǎn)化為自然語言文本,再對該自然語言文本信息進行處理,將其中 所蘊含的用戶意圖轉(zhuǎn)化為機器人控制指令,最后將機器人控制指令轉(zhuǎn)化成相對應(yīng)的機器人 操作,最后機器人完成運個操作;因此可該過程可分為四個階段:語音輸入,語音識別,意圖 理解,完成操作; 在進行機器人示教再現(xiàn)前預(yù)先設(shè)計控制命令體系W及相對應(yīng)的語音控制指令語料庫; 控制指令語料庫中除了有語音控制指令,還要有手勢控制指令;同樣在設(shè)計語音控制命令 體系時,考慮到操作員下達語音指令的同時可能還伴隨著手勢指令,因此采用五個參數(shù) (Cdir,C〇pt,Chand,Cval,Cunit)來對指令進行識別;當操作員對機器人下達語音命令時,機器人 首先判斷該語音指令是否包含手勢指令,若包含,Chand設(shè)為1,轉(zhuǎn)為執(zhí)行手勢指令,若不包 含,Chand設(shè)為NU化,對語音進行識別,獲取指令語句中的方向,操作,特征值,單位參數(shù)并進 行對應(yīng)操作; 對語音識別完畢后,進入意圖理解部分,將自然語言指令轉(zhuǎn)化為對應(yīng)的機器人控制指 令;在對剛識別完的自然語言指令進行理解轉(zhuǎn)化之前,要有一個最大賭分類模型,先從訓(xùn)練 語料庫中提取文本特征,然后利用TF-IDF對文本特征進行特征向量加權(quán),將文本表示為文 本特征向量,有η個詞就表示為η維特征向量;然后利用最大賭算法,對文本特征向量與對應(yīng) 的意圖輸出標簽的條件概率進行建模,得到分布最均勻的模型,利用公式:巧) 得到最大賭概率分布,從而完成最大賭建模;其中,fi(x,y)為第i個特征函數(shù),若文本向 量與對應(yīng)的輸出標簽現(xiàn)在同一個樣本中,則fi(x,y)等于1,否則為0。、為fi(x,y)對應(yīng)的權(quán) 值,z(x)為歸一化因子;最大賭分類模型建立之后,便對要測試的自然語言指令進行轉(zhuǎn)化 了;先從要測試的文本中提取文本特征,再用上述提到的方法將文本表示為文本特征向量, 然后利用建立好的最大賭分類模型對文本特征向量進行分類,最后得到機器人控制指令; 建模方式有兩種:統(tǒng)一屬性建模和獨立屬性建模,統(tǒng)一屬性建模是指將所有屬性組合 成一條指令,并對該指令進行最大賭建模,然后對文本進行測試;獨立屬性建模是指分別對 四個屬性進行最大賭建模,再對樣本進行測試,最后將測試結(jié)果組合成一條輸出指令。4.根據(jù)權(quán)利要求1所述的基于手勢和語音進行機器人在線示教的方法,其特征在于,所 述步驟S3包括: 機器人在線示教通過手勢和語音兩種方式來進行,手勢是負責粗調(diào),語音負責微調(diào);語 音控制分為兩種命令:控制性命令和命令性命令,操作者通過控制性命令可W開始或結(jié)束 機器人在線示教的過程,也可W在手勢指令和命令性命令之間做切換; 首先,操作者發(fā)出開始的語音命令,機器人收到命令之后就處于待命狀態(tài),隨時準備接 受新的指令;接著,操作者將命令設(shè)置為手勢控制狀態(tài),在運個狀態(tài)下,操作者可W通過手 勢來控制機器人的前后左右運動,此時運動的幅度比較大,所W手勢比較容易進行控制;運 稱為機器人的粗調(diào)過程; 然而,當機器人所做的動作幅度較小時,此時操作者通過手勢控制機器人比較困難,因 為人的手勢對于微小的距離不易控制,運時候就可W轉(zhuǎn)向語音控制,操作者可W通過語音 來切換成語音控制命令,由語音來控制機器人前后左右移動,運稱為機器人的微調(diào)過程; 在大多數(shù)情況下,機器人的粗調(diào)和微調(diào)是結(jié)合在一起的;操作者手指著一個方向,語音 控制機器人向那個方向移動,此時機器人就會讀取語音指令的內(nèi)容,同時讀取手勢所指的 方向,做出正確的操作;運用IF-T皿N規(guī)則來進行整體的控制,設(shè)計一系列的規(guī)則來實現(xiàn)手 勢指令和語音指令之間的結(jié)合; 最終,當操作結(jié)束之后,操作者發(fā)出結(jié)束的命令,機器人就會結(jié)束相應(yīng)的操作,整個示 教過程就完成。
【文檔編號】G06F3/16GK106095109SQ201610459874
【公開日】2016年11月9日
【申請日】2016年6月20日
【發(fā)明人】杜廣龍, 邵亨康, 陳燕嬌, 林思潔, 姜思君, 黃凱鵬, 葉玉琦, 雷穎儀, 張平
【申請人】華南理工大學(xué)