[LibDroneMovement] Add AtCommandFactory Class for the libDroneMovement

Our project needs an embedded version of the ARDrone Middleware
in order to let the drone be able to move by himself.
The SDK seems too complex to this job.

The AtCommandFactory class is the first part of this Middleware.
It allows to create drone's AtCommands and handle the sequence
number autonomously.

It's also the first part of the libDroneMovement which will be
embedded in the drone.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add libDroneMovement AtCommandFactory Unit Test

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add float value control in AtCommandFactory

Some AtCommands contains float parameters. Those values
should be contained in [-1, 1]. A check is now made to
be able to detect errors.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add CONFIG_IDS command to AtCommand factory

The CONFIG_IDS command is used to set up multiconfigurations
Drone movement. This command should be sent before each
configuration modification.
This patch introduce this command in the AtCommandFactory.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] AtCommandFactory AT*CTRL command

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Update namespace for AtCommandFactory files

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add AtCommandSender Class for libDroneMovement

We have to be able to send AtCommands to the drone and to keep
the communication open.
This patch introduce an active class named AtCommandSender
which can be used to do that.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add NavDataParser for libDroneMovement

We have to be able to decode raw NavData Packet.
The packet composition is available in the Parrot SDK.
This patch introduce a basic parser for NavData sent
in bootstrap mode.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add NavDataParser Unit Tests

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add NavDataReceiver for libDroneMovement

We have to be able to receive NavData from the drone.
This patch introduce an active class which receive
raw NavData packet and which decode them.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneMovement] Add Drone class for libDroneMovement

First version of the Drone class which allows
to interact easily with the drone.
Basic NavData are handled and various AtCommands
can be sent.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
Merge pull request #3 from clero/drone-movement

Drone movement
Add README File for Github Project page

This README contains a little description of the project
and a tutorial to build it.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[CMake] Update linker flags to detect undefined reference

Shared libraries can have some missing symbols. This patch introduces
gcc flags to check that at compile time.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneVideoSharing] Initial Commit of the libDroneVideoSharing

This library allows to share drone video camera between our
embedded code and parrot internal program: program.elf.
This library catch system calls in order to duplicate camera frames.
For now, only the vertical camera is shared.
Moreover, in order to save ram, we don't allow program.elf to get frame
from the horizontal Camera.
To use the library, you have to restart program.elf with the
libDroneVideoSharing library path in the LD_PRELOAD environment
variable.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneVideo] Add FrameGrabber class

The frame grabber class allows to get a frame from the drone internal
camera. For now, only the vertical camera buffer can be used.
This class also defines files which will be used to exchange buffers
between Parrot internal program and the libDroneVideoSharing.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneVideo] First draft of line detection algorithms

This basic algorithm has been used with the Parrot SDK.
It need to be enhanced to get some valued informations.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneVideo] Enhance line detection algorithm.

This patch introduces the LineDetector object which can be used to
analyse a frame and to find a line on it. This file uses the algorithm
developed in the LineDetection class. It adds some good object features
and we can now tell to the drone the line position and if he is flying
on the right way.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneVideo] Add CircleDetector object

This class allows to detect a circle in a frame.
It will allow us to detect our delivery point.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>
[LibDroneVideo] Add simple test program

This functional test allows to display information about
lines and circles detected by the drone.

Signed-off-by: clero <clero@etud.insa-toulouse.fr>