樹莓派之DWM1000融合MPU9250高精度室內定位

时间:2024-04-10 09:54:40

設計概要

本文介紹一套以樹莓派3為主板的室內定位開發平台,測距模組用DWM1000其測距精度在20cm以內精度高,姿態感測器MPU9250其輸出三軸加速度,三軸角速度及三軸磁場強度,還帶有一塊1602LCD模組以顯示實時定位效果。

硬體規格簡介

主控板樹莓派3,裝有基於Linux的NOOBS作業系統;MPU9250 IIC與樹莓派3通訊;DWM1000 SPI與樹莓派3通訊;LCD 8080通訊界面;樹莓派40pin接口。
樹莓派之DWM1000融合MPU9250高精度室內定位
樹莓派之DWM1000融合MPU9250高精度室內定位

樹莓派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.pyhttps://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融合定位。樹莓派之DWM1000融合MPU9250高精度室內定位

即時定位視頻資訊

我的優酷主頁:http://i.youku.com/robotfish
Email:[email protected]