The recent natural disasters in Turkey and Syria shocked all of us in the past weeks. As engineers, that got us thinking about how we could potentially help in such scenarios. Our project seeks to help by making a small rover equipped with a thermal camera to identify the victims in difficult scenarios and send their coordinates to rescuers. We would use machine learning to differentiate heat signatures from humans to other sources and use pose detection to help guide our robot. During our project, we encountered many challenges throughout the system, including building a reliable model with low resolution, noise, low refresh rate, and other limitations of the thermal camera. Nonetheless, we believe that, given the technical constraints, we were successfully able to demonstrate the potential of the system while also leaving room for future developments.
The code is divided into two folders: the ATMega328P folder contains the Microchip Studio project code for the code on the 328P, which interprets the UART commands described below and acts accordingly. The Raspberry Pi folder contains the code on the Pi, and many test and other programs used throughout the development of the project. The main code used during the demo is demo1.py.
The two systems communicate using UART through the USB ports. This ensures a reliable communication and already handles the level shifting necessary to interface between each other.
-
SPEED <SPEED_L> <SPEED_R> <TIME>
Instructs the Arduino to set the motor speeds to the given values for the given amount of time, in ms.
<SPEED_L>and<SPEED_R>Integers from 0 to 200, where 0 is reverse at full speed, and 200 is forward at full speed. -
MOVE <DIR>
Instructs the rover to move in the given direction.
<DIR>Valid directions are:F(forward),B(backward),L(left),R(right),U(turn around),S(stop) -
DISTC
Requests the distance of the short range sensor read by the Arduino. -
DISTF
Requests the distance of the long range sensor read by the Arduino. -
RON
Turns on the red LED -
ROFF
Turns off the red LED -
GON
Turns on the green LED -
GOFF
Turns off the green LED -
BON
Turns on the blue LED -
BOFF
Turns off the blue LED