Completion date: 14 Jul 2018
Description: Yet another self-driving race car
Tags: Robotics
Tools: JNI+NDK, Android App Development, EagleCAD, C++, OpenCV
K.A.C.H.O.W, Racing Robot
After a success at the International Autonomous Robot Racing Challenge (IARRC) in 2017, I decided to participate again in my senior year of highschool.
This time, my goal wasn’t necessarily to make a more performant robot, but rather to use it as an excuse to try out new approaches/technologies. The most notable change was using a smartphone as the brain of the car, instead of a single-board computer. There was definitely a learning curve and it was challenging to get an application to run in real-time, but it worked out.
Testing in my garage
The smartphone is mounted to the robot to use its camera for computer vision. My app used a C++ backend (via Java Native Interface) with OpenCV to process frames and decide how to drive. Then, steering/throttle commands were relayed over bluetooth to an Arduino for actuator control.
Also used this as an excuse to try etching a 1-layer PCB at home to make a “hat” for the Arduino.
Simple enough - strapped a smartphone to the front, threw in a microcontroller, and voilà