24 Feb 2018

72 Hour Self Driving Car Challenge

Build a self driving car in 72 hours. Should be easy right?

The Goal

A challenge was set to 5 teams of 7 to build a self driving car in 72 hours. What we maybe didn’t expect was that we had to build the car as well.

How we did

The Car

Our car was a 1991 Subaru Liberty with Boxer 4 Cylinder Engine. This was great for a couple of reasons, one being reliablility and the second being 4WD was great for the wet grass track we were to be driving around.

What was less good is that 4WD meant we couldn’t test anything without the car moving (other teams were lifting the front wheels off the ground) and that our steering (in typical Subaru quirkyness) had a few more linkages than a normal steering column.

Retro fitting

This was probably the hardest part in terms of what we had to do.

  • Replace steering column with one with a stronger power steering motor to control the steering angle from Firmware
  • Remove the new steering column since it uses a Brushless motor meaning we can’t control without an ESC
  • Refit another new steering column with Brushed DC motor
  • Attach linear actuators to the brake pedal and gear lever
  • Wire up relays to the On and Starter Motor circuits to start the car from Firmware
  • Cut the accelerator cable and attach Servo Motor under the bonnet, running the cable through the firewall to the Arduino in the passenger footwell

Firmware

This being my speicalty I was tasked with getting all of this sweet hardware running together. That included:

  • Writing drivers for 3 motor drivers with Potentialometer feedback and PID control
  • Writing a Servo driver for the Accelerator WITH LIMITS so we couldn’t go > 40km/hr (a challenge rule)
  • Writing a CSV protocol over Serial to talk back to the Nvidia Jetson doing all the CV processing and Machine Learning
  • Write a state machine so that we can’t explode the car by doing silly things like shifting to reverse while at full throttle

Conclusion

In the end our car wasn’t self driving, it wasn’t even close. What we did get going is remote control, which might sound like a failure but actually a 1.5 tonne remote control car with no front seats is actually pretty fun. Makes parking really easy when you can get outside the car and see how close you are to the car infront and while sitting in the back seat like a lounge chair driving a car like a computer game you realise just how crazy what you’re doing is. These cars were not ever designed to be fitted with this stuff (the photos show that well).

I’d like to thank all the guys from the Mad Max Fury Road team for helping us get our cars going, and wiring up the horn for fun and air conditioning to cool our motor drivers. I’d also like to thank The Robotics Club for letting me be a part of this awesome community of hackers who just want to do cool stuff.