樹莓派之DWM1000融合MPU9250高精度室內定位
設計概要
本文介紹一套以樹莓派3為主板的室內定位開發平台,測距模組用DWM1000其測距精度在20cm以內精度高,姿態感測器MPU9250其輸出三軸加速度,三軸角速度及三軸磁場強度,還帶有一塊1602LCD模組以顯示實時定位效果。
硬體規格簡介
主控板樹莓派3,裝有基於Linux的NOOBS作業系統;MPU9250 IIC與樹莓派3通訊;DWM1000 SPI與樹莓派3通訊;LCD 8080通訊界面;樹莓派40pin接口。
樹莓派3之MPU9250庫
下載和安裝庫,所有文件放在/home/pi/kts文件夾下:
mkdir kts
cd kts
安裝IIC庫:
sudo apt-get install i2c-tools
確認MPU9250與樹莓派IIC通訊成功,可以看到地址為68的設備:
sudo i2cdetect -y 1
下載和安裝cmake,選擇y(yes)安裝完成:
sudo apt-get install cmake
下載和安裝python工具:
sudo apt-get install python-dev
下載和安裝Ellipsoid Fit Calibration:
sudo apt-get install octave
最後拷貝RTIMULib庫函式:
git clone https://github.com/richards-tech/RTIMULib2.git
每顆IMU都存在自身bias,RTIMULib庫中RTIMULibCal可以校正bias,校準得準確與否影響估算姿態角的誤差,校準步驟如下:
cd RTIMULib2/Linux/RTIMULibCal
RTIMULibCal
按照校準說明一步步完成校準,加速度校準比較簡單,磁場校準比較麻煩一點,原理是各個軸都要感應到當前最大最小值,計算出bias,最後會把校準結果輸出到RTIMULib.ini文件,我的測試函式放在/home/pi/kts/scripts/下,吧校準結果複製進去:
cp RTIMULib.ini /home/pi/kts/scripts/
測試MPU9250的函式庫可以下載這一篇,執行imu.py:https://github.com/OldCC/scripts
把想看的參數,自己在程式裡面加上,比如查看姿態:
print fusionPose
樹莓派3之DWM1000庫
DWM1000之python庫函式參考這裡:https://github.com/ThingType/DW1000_Python_library
其中spidev、monotonic和RPi.GPIO三個基本的庫請自行安裝,例程演示的是測距,兩塊樹莓派中一個執行Anchor程式,另一塊執行Tag可以輸出當前距離。
室內定位系統
本文demo的室內定位系統安裝如圖所示,15*25m的室內牆壁上裝有四顆Anchors(基站),Tag為移動目標定位,定位方法簡單的分三角定位,最小平方定位等,作者採用EKF融合定位。
即時定位視頻資訊
我的優酷主頁:http://i.youku.com/robotfish
Email:[email protected]