Batou1406 / dls_orbit_bat_private

Unified framework for robot learning built on NVIDIA Isaac Sim
https://isaac-orbit.github.io/orbit/
Other
1 stars 0 forks source link

How to limit sudden phase change #11

Open Batou1406 opened 2 months ago

Batou1406 commented 2 months ago

How to limit sudden phase change

The model base controller has a internal phase variable self.phase $\in [0,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

Batou1406 commented 2 months ago

Try to work with d_dot instead of d to ensure continuity, otherwise try to work in the reward function