Add COM Kalman Filter fusing kinematics, CoP and IMU measurements #340
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
During some walking experiments, it was observed that the DCM velocity (Divergent Component of Motion) suffered from sudden spikes causing the walking controller to fail. This quantity is computed using the Center of Mass velocity which in turn in measured using robot momenta using kinematics. This boils down to computing link velocities using the joint velocity measurements which are usually noisy.
We may improve the CoM velocity estimation by either avoiding to use the joint velocities through a fusion of forward kinematics, Center of Pressure (CoP) and IMU or a complete fusion including, assuming a simplified model for COM evolution and that the IMU lies close to the CoM of the robot in most cases.
The former choice is the approach taken in the work "Center of Mass Estimator for Humanoids and its Application in Modelling Error Compensation, Fall Detection and Prevention, Xinjilefu et al".
In this PR, we implement this estimator for estimating the center of mass position, velocity and offset by fusing IMU and kinematics measurements with a constant COM height LIPM model.
Major assumptions,
cc @GiulioRomualdi