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à

Andrew Mourcos © 2017-2023

GITHUB | LINKEDIN