Open hardesh-peppermint opened 3 months ago
That error happens when IMU is disabled and there is absolutely no overlap between submaps. Please try the following configuration that force creating odometry-based relative pose constraints to make the system well constrained.
config_global_mapping_gpu.json
:
create_between_factors
: true
between_registration_type
: NONE
I'm getting a similar error, and I have IMU. What could be the issue?
I run into the same issue with the data you provide -- os1_128_01. Reprodue: set IMU to true and use the CPU method instead of GPU
Hi @koide3, I'm using the CPU only method for now as I don't have GPU on the robot.
Having overlap between submaps is understandable. Is it possible to integrate wheel odometry in the factor graph to handle this? I have really good wheel odometry and it's updated at 30 Hz
Can anybody share a bag file with me to reproduce and fix the issue?
Can anybody share a bag file with me to reproduce and fix the issue?
I completely forgot to send! I'll send you one tomorrow 😅😅😅
@koide3
Sent you the dataset to your email!
Bare in mind my dataset is quite long :sweat_smile: - there are 5 rosbags that needs to be played in order, using glim_rosbag. On the 4th rosbag, the reconstruction starts to break, despite good LiDAR overlaps and IMU sensor being present.
The error from GTSAM disappears when I used global mapping with pose_graph
instead of just gpu
.
@changh95 Thanks a lot for sharing the rosbags! These were really helpful to find the cause of the issue. I found that the issue stems from a long trajectory without loops that causes a numerical stability issue in global optimization.
I added a mechanism to fix the factor graph when an indeterminant linear system is detected. I would be glad if you could check if the patch https://github.com/koide3/glim/pull/92 fixes the issue on your side.
I'm also trying to implement a few mechanisms to further improve the stability of global mapping, and they will soon be added to https://github.com/koide3/glim/pull/92.
@koide3 Tested the code on my side (the same rosbag I sent you). It works nicely! The code can deal with the exceptions rising, and the factor graph management resets the state. With this, GLIM can go all the way to the end of the data sequence. :+1:
Hello,
Firstly thank you for making this package.
Describe the bug I'm trying to run the ROS2 package without IMU. Seeing the error in global optimization as described below.
To Reproduce Set IMU to false and use the CPU method instead of GPU
Expected behavior Error should not come
Screenshots
Environment (please complete the following information):