Currently the motor controller is a pure torque control, meaning that the desired current is a function of the desired and estimated joint torques only (plus friction compensation, which of course depends on velocity). A simple trick used by many people at the DRC to improve tracking was to add a velocity feedback term. The reference motor velocities dq_mot were computed by integrating the desired accelerations computed by the inverse-dynamics controller ddq_des. However, to avoid the drift of dq_mot, they used a leaky integrator expressed by this first-order ODE:
ddq_mot = a * (dq - dq_mot) + ddq_des
where dq_mot is the integral of ddq_mot. The leaking rate a determines the rate at which the in-
tegral drifts towards the estimated velocity dq. In [1] they have set a to 75 for the lower body joints and 0 for the upper body joints to account for the different actuator impedances.
Currently the motor controller is a pure torque control, meaning that the desired current is a function of the desired and estimated joint torques only (plus friction compensation, which of course depends on velocity). A simple trick used by many people at the DRC to improve tracking was to add a velocity feedback term. The reference motor velocities
dq_mot
were computed by integrating the desired accelerations computed by the inverse-dynamics controllerddq_des
. However, to avoid the drift ofdq_mot
, they used a leaky integrator expressed by this first-order ODE:where
dq_mot
is the integral ofddq_mot
. The leaking ratea
determines the rate at which the in- tegral drifts towards the estimated velocitydq
. In [1] they have seta
to 75 for the lower body joints and 0 for the upper body joints to account for the different actuator impedances.[1] "Optimization-Based Whole-Body Control of a Series Elastic Humanoid Robot", Hopkins, Leonessa, Lattimer, and Hong, http://www.worldscientific.com/doi/pdf/10.1142/S0219843615500346