I'm building a stabilized arm that holds a camera steady in the up and down directions on something like a big quad bike.
So far I have a test mass of 140kg on a 1.2m arm held level by a suitable spring linkage that supports the mass ~ weightlessly over its range of +/- 45deg and an 800W brushless motor turning a ballscrew that applies a force to raise and lower the arm.
Ballscrew pitch is such that without drive to the motor the reflected inertia of the shaft/motor has only a small effect and the arm floats along quite smoothly over minor bumps.
I have an 400Hz update IMU which outputs the angle of the arm and its vertical acceleration, mounted near the arm's pivot. A microcontroller reads the arm angle from the IMU and compares it to the previous arm angle and derives a drive torque value sent to the motor. There is a derivative term based on the change in rate that can be applied.
Also I measure vertical acceleration (- gravity) and use it to modulate torque as a way to reduce the load on the motor on big bumps as the arm tries to stay still and the vehicle rises and falls.
While it works reasonably well I feel there is a better control strategy and wonder if anyone would care to make a suggestion.
Thankyou for your consideration
SBH