The model base controller has a internal phase variable self.phase $\in [0,1]$.
If self.phase <= d : the leg is in stance phase (ie. c=0)
if self.phase > d : the leg is in swing phase (ie. c=1)
Stance phase and Swing phase
In stance phase, we use the jacobian to apply Ground Reaction Forces computed by the RL Policy. This should keep the robot stable
In swing phase, we use a linearized feedback controller to track a swing trajectory. This should move the robot's leg
Problem
Typically : $T{stance} >> T{swing}$, because the force required to lift the robot (counter gravity) is more important than the force require to move the legs (almost mass-less).
This mean, if we apply, $T_{stance}$ while the leg is in the air, the contact will be brutal. We should ensure a smooth transition between swing and stance phase
However : actually, the transition between swing and stance phase is solely determined by the leg duty cycle: d which is provided directly by the RL policy. It can change from 0 to 1 in one step. This means there are no continuity in the evolution of the contact sequence.. We can't ensure that the contact sequence would transition according to the real contact of the feet.
Potential Solution
Determine c from sensors or foot position, not from phase variable
Enforce continuity in f & d to avoid jumps, and ensure overall continuity and smooth transition
Favorise continuity by providing positive reward to the RL policy when the contact sequence behave according to the real foot contact
How to limit sudden phase change
The model base controller has a internal phase variable
self.phase
$\in [0,1]$.self.phase <= d
: the leg is in stance phase (ie.c=0
)self.phase > d
: the leg is in swing phase (ie.c=1
)Stance phase and Swing phase
In stance phase, we use the jacobian to apply Ground Reaction Forces computed by the RL Policy. This should keep the robot stable In swing phase, we use a linearized feedback controller to track a swing trajectory. This should move the robot's leg
Problem
Typically : $T{stance} >> T{swing}$, because the force required to lift the robot (counter gravity) is more important than the force require to move the legs (almost mass-less).
This mean, if we apply, $T_{stance}$ while the leg is in the air, the contact will be brutal. We should ensure a smooth transition between swing and stance phase
However : actually, the transition between swing and stance phase is solely determined by the leg duty cycle:
d
which is provided directly by the RL policy. It can change from 0 to 1 in one step. This means there are no continuity in the evolution of the contact sequence.. We can't ensure that the contact sequence would transition according to the real contact of the feet.Potential Solution
c
from sensors or foot position, not from phase variable