From vins-fusion, only for test

gps_based_slam

from vins-fusion, only for test

RUN

roslaunch global_fusion debug_gps.launch

添加了一个GPS航迹推算的节点,即利用前后GPS坐标点计算其航向角yaw作为轨迹朝向,可以作为真实轨迹的参考。

vins-fusion中做基于GPS位置约束优化SLAM轨迹,注意时间对齐,以及选取一些GPS协方差较小的点,否则整个SLAM轨迹会被拉偏。

问题描述

LIO-SAM是一套耦合性较高的系统,后端因子图优化后的odomery会提供给前端点云去畸变使用,很难分离前后端。在整个SLAM系统初始化过程中,采用IMU RAW data的rpy角作为起始第一帧的朝向,初始位置0(默认为初始化的短时间内平移变化量为0),SLAM系统后续估计的所有位姿依赖初始帧朝向来进行递推。而六轴的IMU raw rpy只是一个相对值,和绝对的GPS系之间还有一个朝向的差距,如何去对齐坐标系?如图2-0.

image-20211204102102738 图2-0:GPS轨迹(绿色)和SLAM轨迹(蓝色)

问题分析

在SLAM系统中,世界坐标系一般是采集数据的第一帧确定的,第一帧位姿一般是单位帧或者随机给一个orentation。而GPS平面系是绝对的,即当前笛卡尔系的正北朝向。两者之间存在一个固定的变换。对齐坐标系,可以方便处理以下两件事,一是基于GPS的回环检测,二是基于GPS位置约束的后端优化。一般有以下两种思路,

(1)认为GPS系到SLAM系的转换是固定不变的,将同步好的GPS初始朝向给SLAM系统作为第一帧的朝向(T_gps2world * T_body2world.inverse() ), xchu_mapping中是这么实现的。

(2)认为GPS系到SLAM系的转换是动态变化的,将其作为gps外参的一部分来做优化,相当于GPS轨迹和SLAM轨迹的动态align,vins-fusion中采用此种方案效果不错。

测试结果分析

采用(1)方案的LIO-SAM-GPS系统尚未顺利实现,主要原因是其初始化流程非常繁琐,用IMU raw rpy,还涉及到imu odometry的初始xyz。

image-20211204102231485 图2-1:方案2中轨迹对比

采用(2)方案的LIO-SAM-GPS系统已实现,但存在一些问题,它和SLAM系统解耦的,在完成mapping后,再做一次基于GPS的优化,在这个过程中完成gps坐标系对齐,因此很难用来做基于gps的闭环检测。UST-CAMPUS dataset中的GPS非RTK,并且误差较大,LLA协方差在10-10-100这个量级。并且数据集初始一小段场景的GPS数据并不太理想,如果把它用作align gps系的话,会导致在后续SLAM过程中,很多质量一般的GPS点用来做位置约束优化,导致整个SLAM轨迹变形或者局部出现问题。

1)如图2-1,绿色轨迹为gps位置推算计算而来的轨迹,红色为基于GPS位置约束后的SLAM轨迹,发现在起始位置GPS数据不好的地方,SLAM轨迹被严重影响。因为我们选取了协方差在14m内的GPS点做优化,否则整个系统在开始一大段时间内无符合要求的GPS点,无法对齐坐标系,或者原SLAM轨迹被严重拉歪,如图2-4。此外,同一位置在前后不同时间经过的时候,GPS坐标也不一定固定,信号不好的地方会出现一些跳变,比如起始一小段距离,也会影响局部的SLAM轨迹,如图2-2和2-3。

2)初始化的第一帧GPS可能需要精度比较高。

image-20211204102250213 图2-2:GPS对齐和优化后的SLAM轨迹局部跳变

image-20211204102306452 图2-3:起始一小段往返的时候GPS跳变,导致SLAM轨迹拉歪

image-20211204102324760 图2-4:起始一段无符合要求的GPS点,后续对齐整个轨迹变形

Similar Resources

Port of Adafruit / NXP Sensor Fusion filter

AHRS Fusion Port of Adafruit NXP sensor fusion algorithms based on Kalman filters for rust. Resources https://github.com/adafruit/Adafruit_AHRS https:

May 14, 2022

BAAF-Net - Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021)

BAAF-Net - Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021)

Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021) This repository is for BAAF-Net introduce

Dec 29, 2022

Mars_lib - MaRS: A Modular and Robust Sensor-Fusion Framework

Mars_lib - MaRS: A Modular and Robust Sensor-Fusion Framework

Introduction The Modular and Robust State-Estimation Framework, or short, MaRS, is a recursive filtering framework that allows for truly modular multi

Jan 5, 2023

EKF-based late fusion

深蓝学院多传感器融合感知课程 项目实现了Lidar与Camera的后融合感知算法,融合的算法基于扩展卡尔曼滤波(Extended Kalman Filter,EKF)。输入数据为Lidar检测结果以及Camera检测结果,检测算法与Apollo 6.0一致,Lidar检测算法为PointPillar

Dec 7, 2022

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Jan 8, 2023

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Jan 8, 2023

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

Catch2 v3 is being developed! You are on the devel branch, where the next major version, v3, of Catch2 is being developed. As it is a significant rewo

Jan 9, 2023

Low dependency(C++11 STL only), good portability, header-only, deep neural networks for embedded

Low dependency(C++11 STL only), good portability, header-only, deep neural networks for embedded

LKYDeepNN LKYDeepNN 可訓練的深度類神經網路 (Deep Neural Network) 函式庫。 輕量,核心部份只依賴 C++11 標準函式庫,低相依性、好移植,方便在嵌入式系統上使用。 Class diagram 附有訓練視覺化 demo 程式 訓練視覺化程式以 OpenCV

Nov 7, 2022

BladeBit - Fast Chia (XCH) RAM-only k32-only Plotter

BladeBit Chia Plotter A fast RAM-only, k32-only, Chia plotter. Requirements 416 GiB of RAM are required to run it, plus a few more megabytes for stack

Dec 12, 2022

BladeBit - Fast Chia (XCH) RAM-only k32-only Plotter

BladeBit Chia Plotter A fast RAM-only, k32-only, Chia plotter. Requirements 416 GiB of RAM are required to run it, plus a few more megabytes for stack

Dec 12, 2022

Grassroots DICOM read-only mirror. Only for Pull Request.

This is the source code of GDCM. It is available from sf.net website. Official GIT repository is at: https://sourceforge.net/p/gdcm/gdcm/ For a genera

Dec 19, 2022

A testing micro framework for creating function test doubles

Fake Function Framework (fff) A Fake Function Framework for C Hello Fake World! Capturing Arguments Return Values Resetting a Fake Call History Defaul

Dec 29, 2022

This the contains the test examples and validator tool for the ISPD2021 Wafer-Scale Physics Modeling contest.

This the contains the test examples and validator tool for the  ISPD2021 Wafer-Scale Physics Modeling contest.

This readme documents information regarding the validator/scorer which will be used for the 2021 ISPD Contest problem: Wafer-Scale Physics Modelling

Aug 22, 2022

The BNG Blaster is a test tool to simulate thousands of PPPoE or IPoE subscribers including IPTV, traffic verification and convergence testing capabilities.

The BNG Blaster is a test tool to simulate thousands of PPPoE or IPoE subscribers including IPTV, traffic verification and convergence testing capabilities.

RtBrick BNG Blaster The BNG Blaster is a test tool to simulate thousands of PPPoE or IPoE subscribers including IPTV, traffic verification and converg

Dec 22, 2022

Implementations of FizzBuzz test, with different optimisations

fizzbuzz Optimisation of classic FizzBuzz test. supernaive The least efficient implementation, with 3 ifs and two printfs per number. It is so ineffic

Oct 25, 2022

test framework

Photesthesis This is a small, experimental parameterized-testing tool. It is intended to be used in concert with another unit-testing framework (eg. C

Jun 2, 2021

I2C hardware test terminal/master mode emulator.

I2C hardware test terminal/master mode emulator.

I2C Master Mode Emulator The I2C master mode emulator allows communication with I2C devices by sending or receiving data to/from the I2C bus. To issue

Nov 5, 2022

A fun little project to test out the mic on the M5Stack CORE2

A fun little project to test out the mic on the M5Stack CORE2

M5Stack Core 2 Audio You can watch a video explainer here (YouTube) which goes into a bit more detail on the audio capabilities of the device. This pr

Dec 6, 2022

a undetectable tool by modify odyssey, support sign disable & dylib injection, test on iphoneX(13.5.1 expolit by FreeTheSandbox), our qqgroup is 703156427

a undetectable ios root access tool by modify odyssey, support sign disable & dylib injection, test on iphoneX(13.5.1 expolit by FreeTheSandbox), our

Nov 22, 2021
Docker files and scripts to setup and run VINS-FUSION-gpu on NVIDIA jetson boards inside a docker container.

jetson_vins_fusion_docker This repository provides Docker files and scripts to easily setup and run VINS-FUSION-gpu on NVIDIA jetson boards inside a d

Dec 18, 2022
QPEP (Quadratic Pose Estimation Problems) Enhanced VINS-Mono SLAM System

VINS-Mono-QPEP The QPEP (Quadratic Pose Estimation Problems) Enhanced VINS-Mono

Nov 2, 2022
3D reconstruction with L515, VINS-RGBD and voxblox
3D reconstruction with L515, VINS-RGBD and voxblox

3D-Recon: VINS-RGBD voxblox Recently we are trying to create dataset for 3D perception, so we need to create a 3D scanned environment like meta Replic

Nov 27, 2022
TestFrame - This is a test framework that uses Raylib and ImGui together to help test and develop concepts
TestFrame - This is a test framework that uses Raylib and ImGui together to help test and develop concepts

This is a test framework that uses Raylib and ImGui together to help test and develop concepts. It is made using C++ because it uses classes for windows and views.

Dec 29, 2022
A robust sensor fusion library for online localization.
A robust sensor fusion library for online localization.

libRSF - A Robust Sensor Fusion Library

Dec 2, 2022
R2LIVE is a robust, real-time tightly-coupled multi-sensor fusion framework, which fuses the measurement from the LiDAR, inertial sensor, visual camera to achieve robust, accurate state estimation.
R2LIVE is a robust, real-time tightly-coupled multi-sensor fusion framework, which fuses the measurement from the LiDAR, inertial sensor, visual camera to achieve robust, accurate state estimation.

R2LIVE is a robust, real-time tightly-coupled multi-sensor fusion framework, which fuses the measurement from the LiDAR, inertial sensor, visual camera to achieve robust, accurate state estimation.

Jan 5, 2023
VID-Fusion: Robust Visual-Inertial-Dynamics Odometry for Accurate External Force Estimation
VID-Fusion: Robust Visual-Inertial-Dynamics Odometry for Accurate External Force Estimation

VID-Fusion VID-Fusion: Robust Visual-Inertial-Dynamics Odometry for Accurate External Force Estimation Authors: Ziming Ding , Tiankai Yang, Kunyi Zhan

Nov 18, 2022
A Multi-sensor Fusion Odometry via Smoothing and Mapping.
A Multi-sensor Fusion Odometry via Smoothing and Mapping.

LVIO-SAM A multi-sensor fusion odometry, LVIO-SAM, which fuses LiDAR, stereo camera and inertial measurement unit (IMU) via smoothing and mapping. The

Dec 24, 2022
Visual-inertial-wheel fusion odometry, better performance in scenes with drastic changes in light
Visual-inertial-wheel fusion odometry, better performance in scenes with drastic changes in light

VIW-Fusion An visual-inertial-wheel fusion odometry VIW-Fusion is an optimization-based viusla-inertial-wheel fusion odometry, which is developed as a

Dec 30, 2022
Hands-On example code for Sensor Fusion and Autonomous Driving Stack based on Autoware
Hands-On example code for Sensor Fusion and Autonomous Driving Stack based on Autoware

Autoware "Hands-On" Stanford Lecture AA274 / Graz University of Technology M. Schratter, J. Zubaca, K. Mautner-Lassnig, T. Renzler, M. Kirchengast, S.

Dec 12, 2022