Loading
Model-based control where the plant is modelled as carefully as the controller
Most arm controllers are demonstrated against a plant that flatters them. The joints are rigid, the transmissions are exact, and the only thing being tested is the controller's own maths. Real arms are not like that, and the gap shows up as tracking error the first time the arm reverses direction under load.
So this project spends as much effort on the plant as on the controller. It is a seven degree-of-freedom arm in MuJoCo tracking a path to 5 millimetres at 0.25 metres per second, where the model includes transmission backlash carried as an explicit slack state rather than assumed away.
Backlash is the free play between a motor and the joint it drives. Command a reversal and nothing happens at the output until the slack is taken up. A controller tuned against a rigid model treats that dead zone as a disturbance and fights it, which usually produces the overshoot it was trying to avoid.
Carrying slack as a state means the controller knows where in the dead band it currently sits, and can command through it instead of reacting to it. That is the difference between a model that makes the simulation easier and a model that makes the real arm work.
The hexapod project is a sibling of this one, and a transfer document governs what was reused between them and what was deliberately rebuilt. Sharing a controller across two machines is a good way to discover which parts of it were actually general.