isri-aist / BaselineWalkingController

Humanoid walking controller with various baseline methods
https://isri-aist.github.io/BaselineWalkingController
BSD 2-Clause "Simplified" License
110 stars 19 forks source link

Integrate DCM Estimator #27

Closed mmurooka closed 3 months ago

mmurooka commented 3 months ago

This PR allows BWC to compensate for the DCM bias estimated by the LipmDcmEstimator

In the video below, the JVRC1 controller model (URDF) is not modified, but only the simulation model (VRML) is mass offset in the lateral direction. Only when the DCM estimator is enabled and the bias is removed, the robot is stable in stepping.

https://github.com/isri-aist/BaselineWalkingController/assets/6636600/032ddff6-8f94-4293-8983-5f32cccc7d40

mehdi-benallegue commented 3 months ago

That is great! I hope it helps,

I have two remarks:

In the case the bias on the DCM comes from a bias in the CoM (which is most often the case) you will have a static error in the tracking of the ZMP and CoM positions. Is there a reason you did not report this part?

mmurooka commented 3 months ago

Thank you for your comment @mehdi-benallegue

As for saturation due to the bias estimation limit, that is indeed what is happening in the video above, but I had a more thorough verification on my side and confirmed that it appears even more stable in the absence of saturation.

Regarding the reflection of the estimated bias in the CoM measurements, it was not necessarily required since my control does not explicitly use the CoM measurements in the control in the subsequent blocks. However, there was a possibility to use CoM measurements in some cases, so I made a small correction in the commit above.