This project uses a Deep learning on the Jetson Nano 2GB paired with an ESP32 used for motor controls to extinguish small fires in a small area. Familirity of the jetson-inference repo is a requirement to run this project.
The link to the assembly of this project can found here
The electronic components in the project are not included in the assembly. They can be placed anywhere since there is much free space behind
The electronic componenents used here are:
- Jetson Nano 2GB
- ESP32
- 2x MG996R Servo Motor
- 2x 12V 200Rpm DC geared motor
- L298N DC motor driver
- Raspberry Pi Noir V2.1 camera
- XL4015 DC-DC Buck Converter
- Any button switch
- 3000mAH 11.1v Lithium-Polymer Battery
The Pins 8 and 10 on the Jetson are wired to the pins 16 and 17 on the ESP32 for serial commnication.
The programming of the ESP32 is done is a way that makes the Jetson the "master" while the ESP32 is a "slave" The ESP32 will listen to the to the instructions provided its "master" and act accordingly. The motors used for movement are normal DC motors. The code needs to be tuned to make sure that both left and right motors are rotating at the right speed to make sure the robot can move predictably to the fire.
If you want to retrain the model yourself, the dataset is provided. adding more pictures to make the dataset larger is a good idea to make your model more robust! Feel free to do!
The SSD mobilenet-V2 was retrained using transfer learning with pytorch that lessens the time and amount of data needed for training. A detailed guide to Retraining SSD mobilenet-V2 is provided by the jetson-inference Github repo.
The model provided here is traned for 100 epochs on the Jetson Nano 2GB. The time take to train the model was roughly 30 hours.
There is a bug I was not able to fix where the pyserial library will cause errors and crash the program when it is run for the first time after booting up the Jetson Nano 2GB.
Be aware of the battery voltage while operating the robot. Lipo Batteries are not meant to be drained below their nominal voltage. They will die prematurely ( I've learnt this the hard way). Using the XL4015 DC-DC Buck Converter with an LED display to display the voltage of the battery is a good practice to make sure that the voltage does not fall to low.