Wednesday 10 April 2013

Project-11 Remote Controlled Quadrocopter, Auto Stabilization of Quadrotor (Smartphone/Glove control), Smartphone / Android Controlled Quadrotor

So this one must be the most hardest and frustrating one of them all, everyone must be familiar with the 4 motor propelled flying copter from the movie 3 idiots, so in the movie there was a situation where the damn smart  Ranchhoddas  Shamaldas Chhanchad (Aamir Khan) saves the day by helping a kid to complete his project which was this. So, in my case the Quadrotor( technically called) was not worked upon overnight like as in the movie, it was the longest project that consumed something like a year to complete. It wolks by having 4 propellers ( 2 rotating clockwise and other 2 anti clockwise) to provide upward thrust.I would be explaining the technicalities involved below.

Here, the main objective of this project was to stabilize the yaw, pitch and roll axis's of the quadrotor as by merely applying a uniform thrust signal to them together will only result in the copter being flown away or in the worst case chopping off your head. So, to get a happy ending, the system needs to be stabilized.
 So the story begins with an IMU (Inertial Measurement Unit) which is used to detect the real time attitude of the quadrotor in space, the 6DOF IMU consists of an accelerometer and a gyroscope , whose values are read by an I2C protocol using a microcontroller. This sensor's data is processed and applied to a quaternion based algorithm to yield the various yaw, pitch and roll angles of the quadrotor with respect to a reference point.So now we have the current state, next a PID (Proportional Integral Derivative) algorithm is used to bring the quadrotor to the stabilized position by detecting and reducing deviations from the steady state. The most fundamental part is tuning for the PID constants Kp, Ki, Kd , which was done by the same old trial and error method, after which filtering and estimating the angle values with minimum delay can be considered as a killer. The program loop is 115Hz.The most exciting part of this project is the ability to work with the highly powerful brushless motors (and there are 4 of them) achieving rpm's >10,000.

These motors need to be powered using a ultra powerful but compact light weight battery (as it adds to the payload) and hence comes in the LiPo (short for Lithium Polymer), I have used a 4000mAH, 75 C, 3S turnigy battery. The motors are controlled via ESC's (Electronic Speed Controllers), which are indeed controlled by a microcontroller using PWM (Pulse Width Modulated) signals.


.

The microcontroller used here is an ATMega 2560, due to the high EEPROM capacity (256Kb). It's PWM pins are directly connected with the ESC's, the next connection is from the IMU to the controller. 
The quadrotor attitude estimation software based on processing and arduino, based on Fabio Varesano, Starlino approach:
The system has established communication using either 2 methods, using a smartphone or by a remote glove.However, due to the constrained budget further equipment required to accurately estimate the attitude of the copter was not available. Hence, the system has a small lag in detecting the error states, thus cannot be truly be left on it's own , thus achieving only partial stabilization. The video: