rpng / MINS

An efficient and robust multisensor-aided inertial navigation system with online calibration that is capable of fusing IMU, camera, LiDAR, GPS/GNSS, and wheel sensors. Use cases: VINS/VIO, GPS-INS, LINS/LIO, multi-sensor fusion for localization and mapping (SLAM). This repository also provides multi-sensor simulation and data.
GNU General Public License v3.0
427 stars 74 forks source link

Make MINS working with pcl 1.12 and Eigen 3.4 #3

Closed lnexenl closed 11 months ago

lnexenl commented 11 months ago

This is the initial pr message:

Destructors don't need to be called explicitly here. The smart ptr will do this when program exits.

If we print "SystemManager Destructor called!" in destructor of SystemManager, we can see that the destructor is called twice: image

This also leads to error "corrupted double-linked list"

lnexenl commented 11 months ago

I intend to fix a minor error here, but I decide to improve MINS to run with pcl 1.12 and Eigen 3.4. For my PC runs ubuntu 22.04 and ROS Noetic, MINS cannot be compiled natively on my PC.

I make multiple commits to make MINS compiles and runs on Ubuntu 18.04+ROS Melodic, Ubuntu 20.04+ROS Noetic and Ubuntu 22.04+ROS Noetic.

I test all these conditions with my PC and docker container by roslaunch mins simulation.launch. Each combination compiles and runs successfully.

To make MINS compiles with Eigen 3.4, I upgrade libpointmatcher to newest version. To make MINS compiles with pcl 1.12, I add two lines to ROSPublisher::publish_lidar_map()

I also add some dockerfiles and introduce a CI/CD progress to MINS. The latest CI/CD progress in my repo can be seen here

Hope this pr works.