October 19th, 2011

Where The Hell Is My Self-Driving Car?

We’ve been promised self-driving cars for years. Hell, even flying cars! Where are they? Nowhere, that’s where!

Well, I’ve decided to take this into my own hands. In my previous post I mentioned that I’ve got a “more ambitious” Arduino project in the works, and today it arrived:

It turns out that interfacing with an RC is dead-simple - both the servo and the speed controller use the servo electronic interface, which the Arduino has libraries for.

Over time, I want to be able to solve the following challenge:

Here’s a GPS coordinate: (x, y). Get there.

The constraints of the challenge will be along the lines of:

  • The environment will be a fairly open area with large obstacles (fields with trees, etc).
  • The car won’t have to worry about staying on roads.
  • The car should take a reactionary approach to navigation and not do a grid-search of the area.
  • The car should be able to go at a reasonable speed (> 10km/h or so).
  • The car should recognise potential dead-ends and stop in time.
  • The car should recognise when a fatal problem (like ending up upside-down) has occured and give up.

Given those constraints, the car will need at least the following sensors:

  • GPS
  • Gyroscope
  • Long-ish range distance (sonar or otherwise)
  • Long-ish range wireless for diagnostics and emergency-stops

Thankfully, all of those are available for the Arduino. A friend of mine immediately started talking about advanced algorithms and video analysis when I mentioned this idea, but I hope to keep it much simpler than that, and given the environment the car will be in I hope to be able to pull off something with this project.

This will be a long-term project, especially since winter is rapidly approaching and if it’s anything like last year’s we’ll be knee-deep in snow in less than a month. Still, I’ll build the car soon and at least get it moving a bit under Arduino control.