This project is solving the Sensor Yourself challenge. Description
The robotic system's architecture is divided into three layers, at the lowest place lies the mini-robots (miniBots) which randomly measure parameters all over the field. Each of this independent units carries two sensors: the first one is used to measure risky gases, such as butane or monoxide, and the second one is used to measure perilous temperatures over the terrain.
Each of these units also incorporates a RF-module, which is based on the SPI protocol, for communicational purposes. The whole swarm of miniBots builds a star-shaped network architecture that sends all the sensed information towards the next layer.
In the next layer, there is a Guide-Gateway robot (GGBot) which channels all the information towards the server using a json object within a http-post; every post contains the identifier and the measurements associated to each miniBot. GGbot also has a Raspberry Cam and laser pointer to determine the distance of obstacles.
Above the GGBot and the miniBots is placed a HD camera which captures video; from the streaming video, it is calculated the distances of the miniBots related to the GGBot and the relative positions related to the captured frame. In order to characterize the miniBots and the GGBot, different colors were placed over each unit so they can be distinguished from each other.
Computational color filters and contour finding algorithms were applied in order to identify all the units and their positions, this system was denominated Multiple Object Tracking system (MOT system).
Finally, at the top of the architecture lies the GUI and mapping system that display the heat map and determines the safest path over the field based on repulsive functions and path planning algorithms.
License: Apache License 2.0 (Apache-2.0)
Source Code/Project URL: https://github.com/tabris2015/SensorYourSwarm
Gazebo Animation - http://robotics.usc.edu/~ahoward/movies.php
RF module info - http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01
Adafruit Sensor Library - https://github.com/adafruit/Adafruit_Sensor
Picamera Library - https://github.com/waveform80/picamera
RF module python library - https://github.com/jpbarraca/pynrf24
Photo gallery of the project - https://drive.google.com/folderview?id=0BzNSo3XQEYUrakF4T0pzSWxJdWc&usp=sharing
Webcam Based DIY Laser Rangefinder - https://sites.google.com/site/todddanko/home/webcam_laser_ranger
Multiple Object Tracking - https://raw.githubusercontent.com/kylehounslow/opencv-tuts/master/multiple-object-tracking-tut/part-one/multipleObjectTracking.cpp