After 8 days of working for my Master Thesis in the Robotics and Percetion Group in Zurich, I finished my first small project, a simple software Steadicam.
The Steadicam uses an Accelerometer (or IMU) to estimate the motion of the camera and thus produce a more stable image by projecting back all images to a steady position.
Results are demonstrated in a short video:
This project was intended to get me familiar with the Robot Operatin System (ROS) and handling the IMU data.
The pose is estimated from the IMU input using the Complementary Filter. However, IMU events and images aren’t synchronized. Thus, the exact pose for an image has to interpolated between the two closest IMU measurements. This is done using the tf Framework in ROS.
The steady pose slowly follows the current pose of the camera using Low-Pass Filter to reduce shaking. Images are then projected to the steady pose with a Conjugate Rotation, similar to stitching images to a panorama. The transformation is done with OpenCV.