raw-gnss-fusion 项目教程
1、项目介绍
raw-gnss-fusion
是一个开源项目,旨在通过融合原始GNSS数据与其他传感模态(如IMU和激光雷达)来实现移动机器人在全球地球坐标系中的无漂移和无间断定位。该项目使用因子图优化技术,不仅利用GNSS数据来锚定机器人的轨迹并消除漂移,还通过GNSS接收器的载波相位观测实现高精度的局部定位,而无需基站支持。
该项目的主要贡献者包括 Jonas Beuchert、Marco Camurri 和 Maurice Fallon,并在2023年IEEE国际机器人与自动化会议(ICRA)上发表了相关论文。
2、项目快速启动
环境准备
-
安装依赖:
sudo apt update sudo apt install -y cmake git swig wget libtbb-dev libboost-all-dev pip
-
安装Python 3.7:
mkdir raw-gnss-fusion-libs cd raw-gnss-fusion-libs wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh bash Miniconda3-py37_4.10.3-Linux-x86_64.sh exit
-
安装GPS Toolkit:
cd raw-gnss-fusion-libs git clone https://github.com/SGL-UT/GPSTk.git cd GPSTk ./build.sh -ue
-
安装GTSAM:
git clone https://github.com/borglab/gtsam.git cd gtsam python3.7 -m pip install -r python/requirements.txt python3.8 -m pip install -r python/requirements.txt mkdir build cd build cmake -DGTSAM_BUILD_PYTHON=1 -DGTSAM_PYTHON_VERSION=3.7 make python-install
-
克隆并安装项目依赖:
git clone https://github.com/JonasBchrt/raw-gnss-fusion.git python3.7 -m pip install pyubx2==1.1.7 matplotlib numpy geographiclib pymap3d folium
运行示例脚本
cd raw-gnss-fusion
python3.7 demo_doublediff_timerelative_carrierphase_factor_zed_f9p.py
3、应用案例和最佳实践
应用案例
raw-gnss-fusion
项目特别适用于需要在复杂环境中(如密集的商业森林)进行高精度定位的移动机器人。由于这些环境中的卫星导航信号受限,多路径效应和电磁干扰严重,传统的GNSS方法难以提供可靠的定位。通过融合原始GNSS数据与IMU和激光雷达数据,该项目能够在这些挑战性环境中实现无漂移和无间断的定位。
最佳实践
- 数据预处理:在运行项目之前,确保GNSS数据和IMU数据的同步和校准。
- 参数调整:根据具体应用场景调整因子图优化中的参数,以获得最佳的定位精度。
- 结果验证:通过对比实际轨迹和计算轨迹,验证定位结果的准确性。
4、典型生态项目
- GTSAM:用于因子图优化的开源库,是
raw-gnss-fusion
项目的关键依赖。 - GPSTk:用于GNSS数据处理的工具包,提供了丰富的GNSS数据处理功能。
- pyubx2:用于解析u-blox GNSS接收器数据的Python库。
通过这些生态项目的协同工作,raw-gnss-fusion
能够实现高精度的GNSS数据融合和定位。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考