I’ve been planning to write this post for a very long time. My initial idea after doing a research in this area was to work on a real hardware and blog about the progress. But due to personal reasons (I’ll be moving from Stockholm to Berlin soon), I’ve decided to kick things off with this post about current challenges and potential solution for building an affordable self-driving car development platform.
The goal of this post is to explore a possibility to build an affordable self driving car platform under 10K USD. Cost for additional sensors like radars, LIDARs and etc. are not included in the final price. The scope of the effort should only be drive-by-wire system and not the actual brains of the autonomous vehicle.
The final outcome should be something similar to:
Basically, you should be able to control the car with your Xbox joystick.
One of the main challenges in the self-driving car industry (among other things like technology itself, policy updates, ethical issues, etc.) is the barrier of entry. If you are a small start up building a local autonomous delivery service or a single engineer trying out latest deep learning approaches for car/traffic sign detection, it is incredible hard (sometimes even impossible) to get things off the ground and test your solution in the real world setting.
Some people would argue that simulations would be good enough, but what if you want to make that next step? At the moment, this industry is reserved only for the big league, with heavy financial backing, which is pushing small players out at the very beginning of the game.
Another side effect of current state is that this technology, which clearly has so many benefits on the society as a whole, will be first developed and deployed in just a few countries around the world. This puts the rest of the world in unequal position where we would need to license the tech from big players and experience even deeper technological and economical divide.
Current developments in the self-driving car industry are at the moment one big science project for big VC funds. The topic of costs of building products and services in this area is usually not something which is openly discussed. That is why I was surprised once I stumbled upon this interesting video from Raquel Urtasun, current lead of Advanced Technologies Group at Uber, where she covers few ideas on how to build more affordable autonomous systems:
So what are the costs exactly?
There are few vendor companies (AutonomousStuff et al) which are specialized in retrofitting cars with drive-by-wire, steer-by-wire and brake-by-wire systems. The costs for their services are between 70K and 100K USD and above depending whether you are going for electric vehicle or the one with internal combustion engine. Of course, the price goes up in case you want to add advanced sensor set (LIDAR units i.e.). Most of these retrofitting companies are located in USA. Therefore, I needed some alternatives since I’m based in Europe. I’ve reached out to a company in Germany which is doing car retrofits for disabled people (since it’s the same by-wire system), but ended up with similar price tag.
Recently I’ve seen a British company trying to brake into this market, StreetDrone. But the price for their solution is also still too high (over 60K USD). Also, their primary customer focus seems to be educational market.
There are some other advanced concepts like EDIT from OSVehicle, but I could not find any details on the release dates or price ranges.
After going through many manufactures and models, I’ve ended up with choosing Renault Twizy as an ideal candidate for this project. You can easily get a used one which is several years old for a price tag of 5K USD. You might want to consider looking at Cargo version of it since you would have additional space in the back of the car for the necessary computing power.
Retrofitting steering column in the car is usually the most intrusive part of this procedure. I came up with two different approaches while doing my research for Renault Twizy.
More expensive approach
The benefits of this system is that it’s replacing complete steering column in Twizy. It would be also possible to control the steering axis with CAN messages which I find quite useful. By reading the documentation of it, I found it straightforward to support the scenario where driver is supposed to take back control of the vehicle.
Downside of this approach is of course the price. This is the price offer I’ve got from the company:
So, not really the cheapest setup since the price of the new steering column can easily go over the price of the car itself.
After some time searching for the cheaper approach, I’ve discovered the work of HTW Dresden (Dresden University of Applied Sciences). Basically, the way they approached this problem is replacing the steering column from Renault Twizy with the one from Renault Clio 2. In the video down below they demonstrate their solution where steering column is controlled as an RC unit.
You can find used Renault Clio 2 power steering column for as much as 65 USD on eBay.
Exposing throttle as by-wire system seems to be the easiest part of the retrofit for this car. According to the web site from Dutch university group Autonomous Eindhoven (which is taken down recently), sending raw 0–5 voltage signal to Engine Control Module (ECM) will enable you to control the throttle. They were also experimenting with Renault Twizy as their research vehicle. This approach is pretty much the same as Voyage used on their Ford Fusion.
The voltage itself can be controlled with an Arduino board or if you want something more fancy you can go for CAN based voltage potentiometer.
Brakes on Reanult Twizy are based on hydraulic system. One way to approach this problem is to put in a brand new braking actuator. I’ve reached out to Polysync folks asking for help on this since they have solved this for their Kia Soul setup. You can find more info about it here. But essentially they have used Electronically Controlled Brake system from Toyota Prius (it’s around 100 USD on eBay). According to Polysync, this approach is quite generic and should work on most of cars with hydraulic braking system.
We’ve explored different options for retrofitting Renault Twizy for drive-by-wire scenario. This is far from a complete guide but it gives you a glimpse on the necessary work for building up an affordable platform for developers and startups interested into kicking off their own product/service in self-driving car area.
The next step would be deciding on the brain for the vehicle. For some basic scenarios NVIDIA Jetson TX2 would be a good start since it has a low power consumption spec. You could consider putting ROS on it and expose steering, throttle and brakes as ROS nodes. If you are interested in more advanced scenarios which include sensors as well, you should check other options like Apollo or Autoware which are open source and free for your experimentation.
If anyone is interested in doing this on a real Twizy, please reach out to me! You can easily find me on Twitter.