Closed zerolover closed 1 year ago
Hi @zerolover -- yes, you are correct in that, ideally, the propagated and measured states should describe the same state at the same timestep when computing the observer's error. In practice though, sensor data comes in at different streams, and the LiDAR / IMU measurements may not temporally line up exactly. We haven't seen any significant issues with how we handle these two data streams and compute the error so far (especially since the time difference is quite small), but perhaps we will address this in a later release. Thanks for the question.
The
propagateState
is called every time an IMU message is received, whileupdateState
update the state using Geometric Observer after scan to map. In Geometric Observer, errors between propagated and measured state are computed to perform state correction.The timestamp of propagated state is at latest IMU timestamp(1678822355.936), while measured state is at Lidar timestamp(1678822355.870) if no motion correction, or median time of the scan(1678822355.870+0.025).
I think propagated state
this->state
and measured statepin/qin
should describe state at the same timestamp.