The last time we talked about how to manage communication between one drone and the server. In parallel, one member of the project's group was working on the component which allows us to stabilize the drone's flight. Then, we present this component through this article.
Gyroscope was created by Foucault in 1852. It is a device formed by a rotor, which is associated with three exterior circles. Those circles are linked between them in such a way that the rotor has degrees of freedom according to the former circle (in a mathematical way, we have a matrix of freedom = {0, 0, 0, Rx, Ry, Rz}/exterior circle).
Thanks to that feature, gyroscope takes advantage of the physical principle conservation of angular momentum, also known as gyroscopic effect. It implies, when you apply a force on a rotating solid (in our case, the rotor), a force is created perpendicularly to the rotation. In the case of gyroscope, due to the three degrees of freedom, this force and the initiating force of movement will be absorbed by the external rings. Then, the rotor will not be subjected to any force and remains stationary relative to the inertial frame of reference. It is possible to know the gyroscope's movement relative to the rotor (i.e. Galilean reference frame), by analysing the movement of external rings.
Gyroscopes are sensors usually used on moving devices. Indeed, due to their capacity to supply some reliable information about orientation of the device and particularly to know its tilt. For example, to manage maneuvers or to help to stabilization. The former example, is the needing of our problem.
We chose to integrate a MPU6050 on our drone. This gyroscope is particularly used in industry, compatible with our device, cheap and offers an accelerometer on the same chip. We want to use the accelerometer in order to get some information about the movement of our drone and try to determine its position in space. However, this is not the subject of this article..
This sensor is consisting of three axis (X and Y axis are indicated on the chip, Z axis is perpendicular to the chip). Because we need gyroscopic effect applied on the gyroscope, angles which can be measured belong to [-80°, 80°] set. Beyond those values, gravity would be too close to the component created by gyroscopic effect and would distort measures. Rotation measures around Z axis vary on [-180°, 180°] set.
In order to use MPU6050, we inspired by Jeff Rowberg's work which offers a code for measuring values obtained by the sensors.
With those measures, we can analyze tilt of our drone. Then, we can control each motor and apply the suitable treatment in order to stabilize the device. Because, the final goal of our project is to measure a topography, it is necessary to get a hovering flight (e.g. parallel to the floor). Then, we can say that motors are ruled by the gyroscope.