To make an autonomous car using an Arduino Uno (which surprisingly did not work.)
- Buy RC car
- Rewire some components (???)
- ?????
- Profit
The car itself was not modified in any way. The remote control was modified and connected to the Arduino.
The remote control without the backpanel
The remote control with the joysticks removed
Wiring from the buttons that would go to the Arduino
As mentioned, it was a pretty rudimentary implementation. So, here's how it works.
- A phone is kept on the back of the car, which streams to a localhost (Check out IP Webcam).
- The stream is then accessed directly (with OpenCV), and frames are obtained from it.
- The frames are preprocessed and passed to a neural network (based on the VGG architecture.)
- The neural net output is fed into the Arduino, which is hooked onto the remote control, hence controlling the car.
Put it all together
The path for the car was created by laying out white paper on either side of the car to give it "boundaries". A piece of paper was kept at the end to symbolise the end of the track.
Two neural networks were trained on the dataset
- VGG Arch : 99.9% accuracy
- MLP : 99.7% accuracy
The car had to be run in steps, as the actual speed was too high, which is why it appears jerk-y. A delay was also added to allow for frames to be gotten and processed.