Project 2014-2015-CannonBall

=Preambule=

The project subject CannonBall_de_voitures_autonomes

This project is handled from years to years by Polytech and Ensimag Students :

From january 13th 2014 to march 2nd 2014 : Jules Legros and Benoit Perruche from Polytech'Grenoble. Link Wiki Air

From may 26th 2014 to june 16th 2014 : Thibaut Coutelou, Benjamin Mugnier and Guillaume Perrin from Ensimag. Link

From january 14th 2015 march 2nd 2015 : Malek Mammar and Opélie Pelloux-Prayer from Polytech'Grenoble. Here

This project is based on the work of Jules Legros and Benoit Perruche.

It has also been handled by Thibaut Coutelou, Benjamin Mugnier and Guillaume Perrin.

It is now handled by two Polytech students : Malek Mammar and Opélie Pelloux-Prayer

=Project presentation=

= Team =


 * Supervisors : Amr Alyafi, Didier Donsez


 * Members : Malek MAMMAR, Ophélie PELLOUX-PRAYER


 * Departement : RICM 4, Polytech Grenoble

=GitHub=

=Specifications=

=Documents= Developer Guide

= Progress of the project =

The project started January 14th, 2015.

Week 1 (January 13th - January 18th)

 * Project discovery
 * Discovery of OpenCV
 * Material recovery

Technology watch

 * The idea of using a rasberry pi for images processing was put away because of a lack of cpu power. Pour se donner un ordre d'idée le core i3 de la tablette Lenovo Thinkpad ....a ajouter des chiffre par rapport à la tablette


 * The idea of using a raspberry pi to broadcast the video stream to a local server and processing it by a another machine is not conceivable because of the transmission latency of the stream. To give an order of magnitude if the latency is ~1 second, a car at 30 km/h would carry ~8.3 m before the second machine performs its processing.


 * The idea of using a mini and compact tower (example: GB-XM1-3537) is interesting but the absence of in board batteries makes it dependente to a 220 Volts source power.

Moreover a phone is small and has onboard battery. The main concern of our predecessor was that external cameras were not supported on android system. -> We will check on this what was was true a year ago, might be wrong now.
 * The idea of using a phone is interesting because of the richness and accuracy of the sensors (accelerometer, gyroscope, ...). Especially if it has a Tegra type processor, offering greater processing performance. Notice that an simple ARM processor would not do it.

Technologies chosen

 * We keep MongoBD database because it offers high write performance and that it is scalable.


 * We keep Node.js for creating a local server from which the tablet can display all the data. We use different modules :
 * socket.io for real time messaging between the client and the server
 * mqtt for a subscribe/pusblish protocol
 * mongoose for manipulating the MongoDB database from JavaScript


 * We keep arUco library which we judge to be powerful enough to our requirements. Plus, it is based on opencv library.

What we have to accomplish

 * Finish the prototype in order to be able to present it march 18th, 2015.
 * Redirect the metrics and the webcam stream from the car to any computer accessing to the tablet network
 * Enhance the algorithms of the car.
 * Create a car convoy algorithm.

What we want to do

 * Skip to a Linux environnent with a none proprietary IDE to replace Visual Studio 2013
 * We will stick to C++ language because it is more close of the opencv library which is actually coded in C++ language.

What is expected from us to consider

 * Enhense the moves of the mini car. There are two ways to do so :
 * Add a shield to the uno arduino
 * Replace the arduino with a STM32 card which is already equipped with embedded sensors. MEMS (microelectromechanical sensors including accelerometers, gyroscopes, digital compasses, inertial modules, pressure sensors, humidity sensors and microphones).

The risks

 * Our ability to take over our predecessors' code, and not going back from scratch

Week 3 (January 26th - February 01st)
Notice that we have been joined with two colleague, A.Le Jean and H.Rodriguez.

Work in software engineering SRS