方向的獲得通過加速度感測器和磁力計共同完成。獲得方向和步數後,就可以初步得到慣性導航座標,再根據之前獲得的指紋法座標,兩者進行卡爾曼演算法,即可獲得較精確的座標。
由於博主最近比較忙,就不詳細介紹了。直接放個**。
public
class
mainactivity
extends
implements
sensoreventlistener
@override
public
void
onsensorchanged
(sensorevent event)
if(event.sensor.
gettype()
== sensor.type_magnetic_field)
calculateorientation()
;}@override
public
void
onaccuracychanged
(sensor sensor,
int accuracy)
public
void
getsensormanager()
@override
protected
void
onresume()
}@override
protected
void
onpause()
}private
void
calculateorientation()
else
if(values[0]
>=
5&& values[0]
<85)
else
if(values[0]
>=
85&& values[0]
<=95)
else
if(values[0]
>=
95&& values[0]
<
175)
elseif(
(values[0]
>=
175&& values[0]
<=
180)
||(values[0]
)>=
-180
&& values[0]
<
-175
)else
if(values[0]
>=
-175
&& values[0]
<-95
)else
if(values[0]
>=-95
&& values[0]
<-85
)else
if(values[0]
>=-85
&& values[0]
<-5
)}}
慣性室內導航入門到精通(2) 移動平均法
接上章獲得了三軸的加速度值,但人行走時的隨意性和感測器的精度,導致加速度值並不準確從而不能直接拿來使用。所以在開始對資料進行處理。可採用簡單移動平均法 sma 來進行資料平滑。1,獲取k組資料,相加除以k,得到平滑的資料 2,下次獲取資料時,剔除第乙個資料並將獲取的資料加入 3,再將資料相加處理k,...
JAVA從入門到精通(4)
一 條件語句之if 語法 if 條件 解釋 需要先判斷條件,條件滿足後才執行後續的 注 如果if條件成立時的執行語句只有一條,是可以省略大括號的 但是執行語句有多條,那就不可以省略了。二 條件語句之if.else 語法 if 條件的布林表示式 else 解釋 條件成立時,則執行if部分的 塊 條件不...
MakeFile從入門到精通 4
makefile 變數 變數在makefile中大量使用,使得makefile更加靈活功能更加強大。同時造成了讀makefile更加難讀。所以我們要發點時間學學變數。變數基礎 變數分類 變數追加,條件賦值 目標變數 模式變數 自動變數 系統環境變數 變數傳遞 一般在makefile裡面的變數都是存的...