Hello everyone!
I'm setting up a state estimation pipeline for my robot, which is equipped with an IMU, wheel odometry, and a 2D lidar. To start, I focused on building a working setup using only the IMU and wheel odometry.
Here’s the approach I took:
As an optimizer, I'm using iSAM2. However, I keep running into an issue: after a few iterations, the system crashes with an error message: "Indeterminate linear system detected while working near variable (Symbol: b424)". This always seems to involve the IMU bias.
Any insights into what might be causing this issue with the bias would be greatly appreciated!
Thank you, Brice, for your reply.
As you correctly pointed out, my wheel odometry data is 2.5D, providing only , , and yaw. From the documentation I reviewed, I noticed the attitude factor, which can be used to constrain pitch and roll. Would adding this factor be sufficient?
When you mention a unary constraint, do you mean a prior factor that enforces pitch, roll, and to be zero? If so, my understanding is that simply adding a prior factor from the wheel odometry would already enforce zero pitch, roll, and , but it seems there might be more to it.
Additionally, I observed in my plots that the yaw angle occasionally jumps from to , and the accelerometer biases remain at zero. This occurs with the setup
where I add an in-between factor for the delta and a prior for the wheel odometry as described earlier.