The high frequency controller intends to reduce the effect of bad dynamical robot model.
It takes as input desired torque, supposed to be constant for a time T, and a target velocity and position trajectory (in the form of a list of values for control time).
Then at each iteration, the control law is:
$$\tau = \tau_{des} + M(q) * K * (x_{des}[i] - x)$$
where $K$ is a diagonal matrix, $x$ is the current state, $x_{des}$ is a list of desired state at each time step.
In Python, this is roughly:
M = pinocchio.crba(rmodel, rdata, q)
dv = (vdes[i] - v)
dq = (qdes[i] - q)
da = Kv * dv + Kq * dq
return u + M @ da
The high frequency controller intends to reduce the effect of bad dynamical robot model.
It takes as input desired torque, supposed to be constant for a time T, and a target velocity and position trajectory (in the form of a list of values for control time).
Then at each iteration, the control law is:
$$\tau = \tau_{des} + M(q) * K * (x_{des}[i] - x)$$ $K$ is a diagonal matrix, $x$ is the current state, $x_{des}$ is a list of desired state at each time step.
where
In Python, this is roughly: