Last week, Drive.ai published the launch of their autonomous ride-hailing service. The intention of their study was to test how well the vechicles work and to measure how well the public would receive their tech. Drive.ai is one of the companies applying their AI tech to autonomous vehicles. They're among the group that inclues Waymo, Tesla, Uber and Volvo who are all racing toward full vehicle automation.
Given that self-driving cars are one of the more interesting applications of AI, we at Indigo can't help but try our hand at it.
We recently bought a second-hand hobby-grade RC car to explore and experiment with self-driving cars. While an RC car isn't a proper analog for vehicle autonomy, we figure that the challenge of having one navigate autonomously would be a step in contributing to research in the field.
An example of a self-driving RC car is Georgia Tech's AutoRally. Their work has come a long way from where they began a couple years back. It uses a trained model to predict the best path for the RC car to take. The software and instructions to build one are available at Github. Here is the Georgia Tech RC car in action:
Indigo Research Turbo
The idea of working on a self-driving RC car started when we saw a post selling a second hand RC car in Facebook. We figured that this could be something we could play with and eventually turn into a testbed for AI tech.
RC car of Indigo Research
Our approach for having it eventually drive itself is to integrate it with an Arduino to control the steering and throttle components. Fortunately, there are a lot of guides on the internet on how to override the existing controls of the RC car to an Arduino and map the PWM inputs to Arduino outputs. This flexibility allows us to change the direction and speed programatically. We also have plans to connect the Arduino to a Raspberry Pi should we decide to integrate it with computer vision tech.
We decided to use an ultrasonic sensor as the initial input percept for the RC car. This utilizes sound waves to measure the distance between an object using time-of-flight. Ultrasonic tech is basically sonar, where the a signal's flight time is measured to estimate distance.
Before integrating the ultrasonic sensor to the RC car itself, we had to figure out how well it brakes and stops. We had a whiteboarding session to discuss how braking works and how we could measure it. Once we had a plan in place, we decided to go to Ateneo to try out the car. The car performs pretty well for a second-hand RC, and this helped control our measurements for braking efficiency.
Trying out the RC car in Ateneo
We utilized two cameras to measure speed and braking efficiency. The first camera, oriented as a sort of fixed chase perspective, was synchronized to the second camera, which covered the perspective of the brake point. We measured how far from the start point the brake point was to have a control for speed.
Synchronizing the two videos allows us to measure how fast the car traversed the space between start point and brake point. This gives us a velocity by which to work with the braking problem. We then measured how far the car travelled from when we hit the brakes on full. This measurement shows us how efficiently the car can brake given a speed.
The result of the trials and the analysis are currently being written in a research paper. We are planning to submit the paper for the Work In Progress of AutomotiveUI Conference.