stack-of-tasks / sot-torque-control

Collection of dynamic-graph entities aimed at implementing torque control on different robots.
Other
9 stars 15 forks source link

Add velocity feedback in motor control #37

Open andreadelprete opened 6 years ago

andreadelprete commented 6 years ago

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.

[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