本發(fā)明涉及無人機技術(shù)領(lǐng)域,具體涉及是一種體感控制方法。
背景技術(shù):
目前,隨著遙控器的發(fā)展,人們對體感遙控器的要求越來越高,并且將體感遙控器運用在無人機上成為目前的無人機領(lǐng)域的趨勢。
無人駕駛無人機簡稱“無人機”,是利用無線電遙控設(shè)備和自備的程序控制裝置操縱的不載人無人機,目前大量應(yīng)用在航拍、地貌的測量、運輸?shù)刃袠I(yè)。
無人機在使用中具有成本低、使用方便、環(huán)境適應(yīng)性強等特點,所以正逐步走進(jìn)人們的普通生活,廣受大家的喜愛與應(yīng)用,一般的無人機的飛手都是直接通過遙控器控制無人機的飛行狀態(tài),但是這種控制方法并不能滿足用戶的需求,用戶利用遙控器并不能真實感受無人機的無人機狀態(tài),現(xiàn)有的無人機遙控器越來越不能滿足用戶的需求。
因此,如何將人體的手勢動作轉(zhuǎn)換成控制無人機飛行的數(shù)據(jù),來控制無人機的飛行,成為目前亟待解決的技術(shù)問題。
有鑒于此特提出本發(fā)明。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)的不足,提供一種將人體的手勢動作轉(zhuǎn)換成控制無人機飛行的數(shù)據(jù),來控制無人機的飛行的體感控制方法。
為解決上述技術(shù)問題,本發(fā)明采用技術(shù)方案的基本構(gòu)思是:
本發(fā)明提供了一種體感控制方法,步驟包括:
s1,遙控器接收到體感激活命令時,獲得遙控器當(dāng)前姿態(tài)的初始矩陣dcminit;
s2,實時獲取遙控器姿態(tài)變化的當(dāng)前矩陣dcmcur;
s3,根據(jù)初始矩陣dcminit和當(dāng)前矩陣dcmcur計算得到中間矩陣dcmrelative;
s4,將中間矩陣dcmrelative轉(zhuǎn)換為最終矩陣dcmfinal;
s5,將最終矩陣dcmfinal換算成能夠控制無人機姿態(tài)的控制量;
s6,遙控器與無人機通信,無人機根據(jù)所述控制量實施姿態(tài)調(diào)整。
優(yōu)選地,所述步驟s1具體包括:
當(dāng)接收到體感激活命令之后,記錄初始四元數(shù)qinit,將初始四元數(shù)qinit轉(zhuǎn)換成初始矩陣dcminit。
優(yōu)選地,所述步驟s2具體包括:
每間隔預(yù)定時間就記錄一個當(dāng)前四元數(shù)qcur,并將當(dāng)前四元數(shù)qcur轉(zhuǎn)換成當(dāng)前矩陣dcmcur。
優(yōu)選地,所述預(yù)定時間為10ms至20ms。
優(yōu)選地,所述中間矩陣dcmrelative為:
dcmrelative=dcminitt*dcmcur。
優(yōu)選地,所述步驟s4具體包括:
將中間矩陣dcmrelative旋轉(zhuǎn)90度得到最終矩陣dcmfinal。
優(yōu)選地,所述步驟s5具體包括:
將所述最終矩陣dcmfinal轉(zhuǎn)換成歐拉角,并根據(jù)所述歐拉角換算得到能夠控制無人機姿態(tài)的控制量。
優(yōu)選地,遙控器上設(shè)有姿態(tài)傳感器,以姿態(tài)傳感器中心為坐標(biāo)原點o建立三維坐標(biāo)系,所述歐拉角包括:
遙控器圍繞x軸旋轉(zhuǎn)值roll,遙控器圍繞y軸旋轉(zhuǎn)值pitch,遙控器圍繞z軸旋轉(zhuǎn)值yaw。
優(yōu)選地,所述遙控器圍繞y軸旋轉(zhuǎn)值pitch為:
pitch=arcsin(-dcmfinal[2][0])。
優(yōu)選地,根據(jù)pitch的大小確定roll和yaw的值:
當(dāng)
當(dāng)
采用上述技術(shù)方案后,本發(fā)明與現(xiàn)有技術(shù)相比具有以下有益效果。
遙控器可以根據(jù)用戶的手勢操作來控制無人機的飛行狀態(tài),這樣給用戶帶來更加真實的體驗,方便用戶對無人機的操控,給用戶帶來便利。
附圖說明
為了更清楚的說明本發(fā)明具體實施方式中的技術(shù)方案,下面將對具體實施方式中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了本發(fā)明的一個實施例的體感控制方法的流程圖;
圖2示出了本發(fā)明的以姿態(tài)傳感器中心為坐標(biāo)原點o建立的三維坐標(biāo)系的示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式作進(jìn)一步詳細(xì)的描述。
圖1示出了本發(fā)明的一個實施例的體感控制方法的流程圖。
如圖1所示,本發(fā)明提供了一種體感控制方法,所述體感控制方法包括:
s1,遙控器接收到體感激活命令時,獲得遙控器當(dāng)前姿態(tài)的初始矩陣dcminit;
s2,實時獲取遙控器姿態(tài)變化的當(dāng)前矩陣dcmcur;
s3,根據(jù)初始矩陣dcminit和當(dāng)前矩陣dcmcur計算得到中間矩陣dcmrelative;
s4,將中間矩陣dcmrelative轉(zhuǎn)換為最終矩陣dcmfinal;
s5,將最終矩陣dcmfinal換算成能夠控制無人機姿態(tài)的控制量;
s6,遙控器與無人機通信,無人機根據(jù)所述控制量實施姿態(tài)調(diào)整。
在上述技術(shù)方案中,當(dāng)用戶按下遙控器上的體感按鈕,遙控器接收到體感激活命令后,就會獲取體感遙控器此時的狀態(tài),并將該狀態(tài)轉(zhuǎn)換為初始矩陣dcminit,然后用戶拿著體感遙控器進(jìn)行手勢操控過程中,就會實時獲取體感遙控器的實時狀態(tài),并將該實時狀態(tài)轉(zhuǎn)換成當(dāng)前矩陣dcmcur,這樣就可以將初始矩陣dcminit和當(dāng)前矩陣dcmcur進(jìn)行一定的運算后得到中間矩陣dcmrelative;
另外,在歐拉角的奇點無法用歐拉角表示遙控器的姿態(tài);歐拉角是描述剛體轉(zhuǎn)動的三個軸角,為了要避開歐拉角的奇點需要對中間矩陣dcmrelative進(jìn)行轉(zhuǎn)換,并確定出最終矩陣dcmfinal,最后,就可以將最終矩陣dcmfinal轉(zhuǎn)換成能夠控制無人機姿態(tài)的控制量,并將這些控制量發(fā)送給無人機,進(jìn)而控制無人機的飛行。
其中,無人機姿態(tài)的控制量包括:向前、后、左、右、上、下飛行,以及翻轉(zhuǎn)等能夠操控?zé)o人機飛行姿態(tài)的各個控制量。
通過上述技術(shù)方案,遙控器可以根據(jù)用戶的手勢操作來控制無人機的飛行狀態(tài),這樣給用戶帶來更加真實的體驗,方便用戶對無人機的操控,給用戶帶來便利。
優(yōu)選地,所述步驟s1具體包括:
當(dāng)接收到體感激活命令之后,記錄初始四元數(shù)qinit,將初始四元數(shù)qinit轉(zhuǎn)換成初始矩陣dcminit。
在上述技術(shù)方案中,首先,體感遙控器在接收到體感激活命令之后,就會獲取遙控器此時的初始四元數(shù)qinit,其中,初始四元數(shù)為qinit=[w,x,y,z],當(dāng)中的qinit是四元數(shù),w,x,y,z是四元數(shù)qinit的4個參數(shù),體感遙控器是用陀螺儀和加速度計來算出四元數(shù)的,qinit中的每個四元數(shù)分別為:
w=cos(theta/2);x=ax*sin(theta/2);y=ay*sin(theta/2);z=az*sin(theta/2);(ax,ay,az)表示軸的矢量,theta表示繞此軸的旋轉(zhuǎn)角度
通過上述技術(shù)方案,能夠快速準(zhǔn)確地計算出體感遙控器初始狀態(tài)時的四元數(shù)qinit,并且將qinit轉(zhuǎn)換為初始矩陣dcminit,為:
優(yōu)選地,所述步驟s2具體包括:
每間隔預(yù)定時間就記錄一個當(dāng)前四元數(shù)qcur,并將當(dāng)前四元數(shù)qcur轉(zhuǎn)換成當(dāng)前矩陣dcmcur。
在上述技術(shù)方案中,每間隔預(yù)定時間就會記錄一次當(dāng)前四元數(shù)qcur,然后將qcur轉(zhuǎn)換成當(dāng)前矩陣dcmcur,當(dāng)前四元數(shù)qcur和當(dāng)前矩陣dcmcur的轉(zhuǎn)換關(guān)系如下:
qcur=[w,x,y,z]
在上述技術(shù)方案中,為了保證獲取當(dāng)前四元數(shù)qcur的實時性,將預(yù)定時間設(shè)定為10ms至20ms。
優(yōu)選地,所述中間矩陣dcmrelative為:
dcmrelative=dcminitt*dcmcur。
優(yōu)選地,所述步驟s4具體包括:
將中間矩陣dcmrelative旋轉(zhuǎn)90度得到最終矩陣dcmfinal。
在上述技術(shù)方案中,歐拉角是描述剛體轉(zhuǎn)動的三個軸角,由于在歐拉角的奇點無法用歐拉角表示遙控器的姿態(tài),因此為了避開歐拉角的奇點,需要將中間矩陣dcmrelative旋轉(zhuǎn)90度得到最終矩陣dcmfinal,旋轉(zhuǎn)方式如下:
通過上述技術(shù)方案,避免了dcmrelative在歐拉角的奇點無法確定轉(zhuǎn)動方向的角度的問題,進(jìn)而為無人機的正常飛行提供了保障。
優(yōu)選地,所述步驟s5具體包括:
將所述最終矩陣dcmfinal轉(zhuǎn)換成歐拉角,并根據(jù)所述歐拉角換算得到能夠控制無人機姿態(tài)的控制量。
在上述技術(shù)方案中,為了能夠根據(jù)用戶的手勢操作控制無人機的飛行姿態(tài),需要將最終矩陣dcmfinal轉(zhuǎn)換成歐拉角,并將相應(yīng)的歐拉角轉(zhuǎn)換成能夠控制無人機飛行姿態(tài)的控制量,并將這些控制量發(fā)送到無人機上,進(jìn)而控制無人機的飛行姿態(tài)。
優(yōu)選地,遙控器上設(shè)有姿態(tài)傳感器,如圖2所示,以姿態(tài)傳感器中心為坐標(biāo)原點o建立三維坐標(biāo)系,所述歐拉角包括:
遙控器圍繞x軸旋轉(zhuǎn)值roll,遙控器圍繞y軸旋轉(zhuǎn)值pitch,遙控器圍繞z軸旋轉(zhuǎn)值yaw。
在上述技術(shù)方案中,為了讓無人機能夠更好的根據(jù)用戶的手勢動作完成相應(yīng)的動作,遙控器上設(shè)有姿態(tài)傳感器,需要建立以姿態(tài)傳感器中心為坐標(biāo)原點o的坐標(biāo)系,并分別用pitch、roll和yaw,代表圍繞x軸旋轉(zhuǎn)值、圍繞y軸旋轉(zhuǎn)值和圍繞z軸旋轉(zhuǎn)值,這樣就可以直接將用戶的手勢動作轉(zhuǎn)換成相應(yīng)的歐拉角,進(jìn)而再將相應(yīng)的歐拉角轉(zhuǎn)換成能夠控制無人機的控制量,并將相應(yīng)的控制量轉(zhuǎn)換為控制電信號發(fā)送至無人機,控制無人機的飛行。
優(yōu)選地,所述遙控器圍繞y軸旋轉(zhuǎn)值pitch為:
pitch=arcsin(-dcmfinal[2][0])。
優(yōu)選地,根據(jù)pitch的大小確定roll和yaw的值:
當(dāng)
當(dāng)
在上述技術(shù)方案中,首先根據(jù)dcmfinal得出無人機圍繞x軸旋轉(zhuǎn)值roll,并且判斷
通過上述技術(shù)方案,能夠?qū)⒆罱K矩陣dcmfinal轉(zhuǎn)換為無人機飛行姿態(tài)的三維控制量pitch、roll和yaw,將pitch、roll和yaw的具體數(shù)值轉(zhuǎn)換為能夠發(fā)送給無人機的控制量,進(jìn)而控制無人機的飛行姿態(tài),完成用戶想要無人機完成的動作。
上述實施例中的實施方案可以進(jìn)一步組合或者替換,且實施例僅僅是對本發(fā)明的優(yōu)選實施例進(jìn)行描述,并非對本發(fā)明的構(gòu)思和范圍進(jìn)行限定,在不脫離本發(fā)明設(shè)計思想的前提下,本領(lǐng)域中專業(yè)技術(shù)人員對本發(fā)明的技術(shù)方案做出的各種變化和改進(jìn),均屬于本發(fā)明的保護(hù)范圍。