IMU camera stabilisation – Drop in solution, work in progress

In previous UAV projects we have use the existing on-board sensors stabilise an on-board camera.  To avoid re-inventing the wheel for each UAV, I have been working on a ‘drop in solution’.  Here is a sort of work in progress.


I have put together this open-source demo using off-the-shelf components to stabilise a camera in 3 DOF (pitch, roll and yaw).  The key components are: an x-IMU, a ServoCity 3 DOF gimbal and a Pololu USB servo controller.  The system currently needs a Laptop to set the gimbal angles according to the output of the x-IMU.

The larger R/C servos (pan and roll) are rather slow which means the camera does lag behind; however, this is the only reason for the lag.  The x-IMU update rate is 256 Hz (4ms latency).



An alternative gimbal constructed from faster, smaller servos would achieve a faster responding, lightweight system more applicable for use on a UAVs.

We plan to release a firmware update for the x-IMU that will handle all servo control on-board the x-IMU (via the auxiliary port).  This would mean that anyone could create a fully (pitch, roll, yaw) stabilised camera using just 3 R/C servos and an x-IMU.

I would like to hear what other UAV engineers and hobbyist make of all this so please comment and discuss.


For more information, links and source code for the above demo, see:

Views: 4482

Reply to This

Replies to This Discussion

I see that you have quite some lag on the geared servo drives, You need 20 degree/sec gyros and magnetic encoder servos from Hitec.running without gear train in feedback mode. As camera movement above 20 Deg./Sec is of no use, this is a good solution. Also the best place for the imu is on the camera base plate.

Thanks for the advice.  The camera mount and slow servos used above was the only affordable 3 DOF off-the-shelf solution I could find.  The next planned version will use servos similar to your recommendation and rapid prototyped mechanical components - which may even end up cheaper than the above.

I would like to know more about your suggestion: "the best place for the IMU is on the camera base plate".

If the IMU was fixed to the camera then the controller output (into the servos) would have to be a velocity demand.  This would require custom tuning of gains (dependant on specific motors used) and an altogether more complex controller due to coupled DOF.  By mounting the IMU on the camera mount’s base, the system need only send position demands to each servo and so is immediately compatible with any servo based gimbal.

This is a neat demo. I think the concept of being able to directly hook up the servos to the imu is a great idea because you basically create a plug and play system for those that can handle hardware but don't want to jump into the control electronics. I think you might run into issues if this system were installed in an airplane however. The Gs pulled when the airplane banks might end up causing the camera to point not where you want it to. Simple test, hold the imu extended from your body and spin in a circle and see if the camera points where you think it should. The IMU, GPS, airspeed data, and a magnetometer all help an autopilot to create an attitude estimation through the kalman filter. Tougher to do with just the imu in airplanes...might work as is in quads that are more or less just hovering though.

can you tell the height of this gimbal ? and the gimbal with pan servo ?




The gimbal height is 27cm while the roll bracket is level.

This is definitely something I would be interested in looking at more closely. I am an aerial photographer/videographer and actually have the servo city mount you demonstrate with. I fly traditional pod and boom helicopters and am just getting into the computer based systems with IMU boards and multiple rotors.

My questions are:

1) would something like this be able to be incorporated to my cyclic on my helicopter to effectively work as a 3 axis stabilizer to keep the helicopter level during flight/hovering - as well as stabilize the camera mount simultaneously?

2) if I added GPS would this controller be able to hook up to my collective pitch servo & cyclic for position hold?




One more question...

It looks like the x-IMU board is out of stock at their website. Would the ArduIMU+ V2 (Flat) found on diydrones be a similar functioning unit? Also, how much is the x-IMU in USD & is there US distributer?



You are essentially asking if the x-IMU can be used as an auto-pilot.  The x-IMU is a sensor board with Bluetooth, USB and SD card.  Auxiliary output channels are controlled via USB/Bluetooth signals (as seen in video above).  This discussion is regarding an exception where servo output channels are controlled directly by the x-IMU for camera control only.

We are considering a full autopilot demo but for this the x-IMU is essentially an IO board and the craft stabilisation and navigation code would run on a small USB or Bluetooth host; e.g. android phone.

The "ArduIMU+ V2 (Flat)" is a completely different type of product; it is an autopilot development platform to run user firmware on-board.  The x-IMU is a sensor, data-logger and hardware IO for PC applications.

It would be best if you contact about purchasing info so we can keep this discussion on topic.  Use Google for currency conversion.  x-io Technologies is currently the only distributor.

High accuracy state of the art camera stabilisation systems comprise of inner and outer axis platforms that move independently of each other. The outer axis is controlled by an AHARs type of controller that ballparks the outer axis within a range of about two degrees. The inner axis is then optimised to sense very small disturbances within that 2 degrees. Fiber optic gyros are quite often used but mems technology with 20 deg/sec gyros can get very close to that degree of accuracy. That inner axis can have very advanced integration with accelerometers etc. but the general rule is that they are not needed as the outer axis IMU has already done most of that work. In the case of multi-rotor copters that outer axis has already been created with the model itself. What you need it a simple Gyro stabiliser with PWM in and out with a 12 bit ADC. You need to use fast high resolution servos like the Mega torque Hitec and run them at 7.2 volts. Lets not make this stuff complicated.


I think you need a flybarless controller. plenty out there.

I love your rig, i think an amazing add-on would be the replacement of the x-IMU with an iphone or ipad. If you were also streaming the feed to the device, one person could pilot the aircraft and another one would operate the camera simply by moving the iphone or ipad.

Reply to Discussion


© 2017   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service