Hydraulic Actuator Controls
During the summer of 2021 I had the privilege to intern at the Florida Institute for Human and Machine Cognition's (IHMC) Robotics Lab .
Over that summer I gained a wealth of hands-on experience developing low-level controls for the Moog Integrated Smart Actuators that are the "work horses" of IHMC's Nadia humanoid robot.
I spent the bulk of the summer running hardware tests on a test-bench, tuning the low-level controller, performing system identification of the hardware and developing feedforward models to combat the variety of non-linear effects that existed in the hydraulic actuators.
The hardware test-bench consisted of two Moog ISAs fixed on either side of a common block so that at any moment in time one was pushing (extension) while the other was retracting (pulling). The goal for the summer was to achieve greater performance (especially at high and low frequencies) of simultaneous force-velocity control where the actuator on one side of the block would be commanded in force control, while the other was velocity controlled. The velocity controlled actuator would drive the position of the block (often sinusoids back and forth) while the force controlled actuator would be trying to achieve some force goal such as a constant force of tracking a varying disturbance force.
A very low quality image of the test bench *apologies, this is all I can seem to find*
Many of the pesky non-linear effects came from the spool that controlled the flow rate of the actuators. The biggest gains in performance were achieved after developing a much more accurate feedforward model of the system.
This (blurry) plot of actuator velocity vs spool position features data collected from a chirp signal commanded to the system (blue) overlaid with one of the developed feedforward models (multi-colored segments). A particular challenge was dealing with the very tight memory constraints of the actuators firmware. The model had to be represented in a limited data efficient way that still achieved the desired performance.
These two segments contrast the original performance (red = desired, blue = actual) of the system at very low velocities compared to the new improved performance at the end of my internship.
Original system performance
After a summer of messing with hardware
The only video I could find of the live performance. This video shows real time plotting of the velocity controller actuator which is commanded to move in a sinusoidal fashion at a variety of velocities.