Momentum based control
For momentum base control, we start by defining a desired change in momentum for each objective, along with constraints. We then use the quadratic program to solve for a best acceleration to as closely match all defined objectives.
We wish to design the acceleration terms for the robot to track in order to obtain compliance:
We can use a Luenburger Observer for state estimation and the Jacobian for external wrench estimation
Software Architecture
Interface manager handles the receipt of goals, injecting them into the outer loop, and providing feedback and telemetry to external processes Outerloop performs the above described momentum based control, producing joint commands Inner loop consumes joint commands performs torque control at the individual joint level across all joints Interprocess communication is done via the Linux POSIX API to generate a memory mapped files