Difference between revisions of "Project 2014-2015-CannonBall/developer guide"
Jump to navigation
Jump to search
Line 39: | Line 39: | ||
mosquittopp.lib<br> |
mosquittopp.lib<br> |
||
mosquitto.lib<br> |
mosquitto.lib<br> |
||
− | |||
− | = 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. |
||
− | |||
− | * 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. |
||
− | 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. |
||
− | |||
− | = 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. |
||
− | |||
− | ''Notice that we have been joined with by colleague, A.Le Jean and H.Rodriguez.'' |
||
− | |||
− | = 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 |
Revision as of 23:43, 27 January 2015
Preambule
Configuration
Setting up the project
- Download the project from our Github repository Github
- Download and install Visual Studio (we used the 2013 version)
- Launch CanonBall\QRCode\QRcode.vcxproj with a double click
- Adding the includes
- Add these 3 environment variables (Please refer to your OS documentation for any further indications). If you use Windows : Right click on Computer -> Properties -> Advanced properties -> Environment variables -> Add
- CANNON_BALL path_to_your_cannon_ball_project
- PATH $(CANNON_BALL)\QRcode\dll\mosquitto
- PATH $(CANNON_BALL)\QRcode\dll\opencv\build\x86\v12\bin
- In Visual Studio :
- Add the include path : Right click on CannonBall project (Solution Explorer panel) -> Properties -> C/C++ -> Additional Include Directories : $(CANNON_BALL)\QRcode\include\opencv;$(CANNON_BALL)\QRcode\include
- Add the include path : Right click on CannonBall project (Solution Explorer panel) -> Properties -> C/C++ -> Additional #using Directories : C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral;C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral. Please ensure that the path to Windows.pltfiurmd and windows.h is correct through windows explorer
- Add the include path : Right click on CannonBall project (Solution Explorer panel) -> Properties -> Linker -> General -> Additional Library Directories : $(CANNON_BALL)\QRcode\lib\opencv;$(CANNON_BALL)\QRcode\lib
- Add the include path : Right click on CannonBall project (Solution Explorer panel) -> Properties -> Linker -> Input -> Additional Dependencies :
- Add these 3 environment variables (Please refer to your OS documentation for any further indications). If you use Windows : Right click on Computer -> Properties -> Advanced properties -> Environment variables -> Add
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib
mosquittopp.lib
mosquitto.lib