Brice Rebsamen
unread,Oct 21, 2024, 6:37:08 AM10/21/24Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to gtsam users
Hello
Even though the IMU factor accepts a transform between the sensor (the
IMU) and the body (where we do the state estimation), this becomes
less accurate as the lever arm becomes large. This is because an
accurate transformation of the acceleration measurements from one
frame to another (on the same rigid body) requires rotational
accelerations, which are typically not measured by the IMU.
For maximum accuracy, what we did was to estimate the pose/vel state
of our mobile at the IMU, and transform all our other measurements
(e.g. from the GPS) to the IMU's frame. And then transform the
estimated state back to body frame for pose consumers.
However, now we'd like to incorporate a secondary IMU, for redundancy,
which is unfortunately located a bit far from the primary one (about
1m), meaning that this lever arm issue is becoming non-insignificant
(from our experiments so far, barring any mistake we may have made).
So I was thinking that the IMU factor would handle this better if
instead of applying the body_T_sensor transform on the IMU
measurements before preintegration, it was applying it to the
estimated state during error evaluation. i.e. for the pose part
something like this: `(pose_i * body_T_sensor) * preint_ij = (pose_j *
body_T_sensor)`. And for velocity `transform(vel_i, body_T_sensor,
omega_i, omega_bias_i) + preint_vel_ij = transform(vel_j,
body_T_sensor, omega_j, omega_bias_j)` where this `transform` function
transforms the velocity from one frame to the other... In other words,
the IMU factors would form a graph that estimates the pose/vel state
of the IMU, and that graph would be connected to the main graph, which
estimates the pose/vel state of the body using other sensors, via a
rigid transform link...
So my questions are:
1- why isn't the IMU factor designed this way? i.e. was this ever
considered but then not pursued because of some maths issue that I am
not seeing? (I haven't yet spent the time to figure the maths
properly). In other words, does this seem doable (without having to
rewrite the whole preintegration paper), or doomed to fail?
2- Is there an alternative way to add multiple IMUs to the same graph?
3- Am I over-estimating this lever arm effect? In our experiments,
adding a new IMU to the graph works well when it is close to the first
one (a few cms), but fails when it's about 1m away. But it's always
possible that we have over issues (bugs) at play in our experiment...
Regards
Brice Rebsamen