LIPM DCM Bias Estimator
1 One dimension: the basics
1.1 Definitions
Symbol
|
Meaning
|
Expression
|
ξ
|
divergent component of motion (DCM)
|
|
z
|
The zero moment point
|
|
b
|
the bias that we want to observe
|
|
ξb
|
biased DCM
|
ξ + b
|
ẑ
|
Measured z
|
z + wz
|
ξ̂b
|
Measured ξb
|
ξb + wξ
|
ω0
|
Natural frequency of the DCM
|
|
T
|
sampling time
|
|
wb
|
Brownian motion noise in the bias
|
|
wz
|
measurement noise in ẑ
|
|
wξ
|
measurement noise in ξ̂b
|
|
κb
|
standard deviation of wb
|
|
κz
|
standard deviation of wz
|
|
κξ
|
standard deviation of wξ
|
|
Table 1.1 Variable definition
State Variables
|
Inputs
|
Measurements
|
Standard deviations
|
Parameters
|
ξ, b
|
ẑ
|
ξ̂b
|
κb, κz, κξ
|
ω0, T
|
Table 1.2 State definion and use of available signals in the Kalman filter
1.2 Dynamics
The dynamics of the DCM is
This can be discetized to
And the dynamics of b is
This means that the process covariance matrix is of the form
The measurement dynamics model is simply
Giving this covariance matrix
1.3 Observability
Let’s analyze the observability
Which is full rank.
1.4 Initializing ξ̂ with measurement
if we initialize
ξ̂0 = ξ̂bk − b̂0 the we have the state
Giving the initial error covariance matrix
2 2D case
This chapter is essentially a copy paste of the pervious one but
-
changing to 2D
-
adding the support for rotations
2.1 Definitions
These are the same except that 2d vectors replace states, inputs and measurements and 2 × 2 matrices replace the standard deviations. parameters remain scalars
Symbol
|
Meaning
|
Expression
|
ξ
|
divergent component of motion (DCM)
|
|
z
|
The zero moment point
|
|
b
|
the bias that we want to observe
|
|
ξb
|
biased DCM
|
ξ + b
|
ẑ
|
Measured z
|
z + wz
|
ξ̂b
|
Measured ξb
|
ξb + wξ
|
ω0
|
Natural frequency of the DCM
|
|
T
|
sampling time
|
|
wb
|
Brownian motion noise in the bias
|
|
wz
|
measurement noise in ẑ
|
|
wξ
|
measurement noise in ξ̂b
|
|
κb
|
standard deviation of wb
|
|
κz
|
standard deviation of wz
|
|
κξ
|
standard deviation of wξ
|
|
Table 2.1 Variable definition
State Variables
|
Inputs
|
Measurements
|
Variances
|
Parameters
|
ξ, b
|
ẑ
|
ξ̂b
|
κb, κz, κξ
|
ω0, T
|
Table 2.2 State definion and use of available signals in the Kalman filter
2.2 Dynamics
The dynamics of the DCM is
This can be discetized to
And the dynamics of b is
This means that the process covariance matrix is of the form
The measurement dynamics model is simply
Giving this covariance matrix
2.3 Observability
Let’s analyze the observability
Which is full rank.
2.4 Initializing ξ̂ with measurement
if we initialize
ξ̂0 = ξ̂bk − b̂0 the we have the state
Giving the initial error covariance matrix
2.5 Include rotations
What if the bias is actually linked to the orientation of the base? In other words,
where
R is the orientation of the robot in 2D amd
bl is the local drift. We model the local drift to be constant, i.e.
bl, k + 1
= bl, k + vk
In this case the update is then
By assuming that
vk is an isotropic noise we end up with this model
bk + 1
= RkRTk − 1bk + vk
Which gives
Note that in this case we consider that the rotation signal R is noiseless.
2.6 Consider CoM offset and ZMP coefficient
What if we can measure in the DCM dynamics an offset on the CoM and a coefficient to the ZMP ? In other words the dynamics of the DCM becomes
wherev
α is the CoM offset and \strikeout off\xout off\uuline off\uwave off
κ is the ZMP coefficient, they are considered known. This may happen in the presence of planned or measured contact forces (see equation (8) in
[1]).
This can be discretized as
Which gives
Which is implemented in the code
\strikeout off\xout off\uuline off\uwave off
Bibliography
[1] Masaki Murooka, Kevin Chappellet, Arnaud Tanguy, Mehdi Benallegue, Iori Kumagai, Mitsuharu Morisawa, Fumio Kanehiro, Abderrahmane Kheddar. Humanoid Loco-Manipulations Pattern Generation and Stabilization Control. IEEE Robotics and Automation Letters, 6(3):5597—5604, 2021.
A Unit-testing code
We wish to generate a random trajectory for the dcm but with bounded values. Lets compute a stable desired derivative for the dcm and the corresponding desired zmp