Nobody’s perfect. Sometimes you’re up late at night writing a blog post and you stumble upon an incredible story. You write it up, and it ends up being, well, incredible. IEEE Spectrum took the bait on this video (embedded below) where [Keran McKenzie] claims to have built a self-driving car for under $1,000 AUS with Arduinos.
The video is actually pretty funny, and we don’t think it’s intended to be a mass-media hoax as much as a YouTube joke. After letting the car “take over” for a few seconds, it swerves and [Keran] pretends to have hit something. (He’s using his knees people!) There are lots of takes with him under the car, and pointing at a single wire that supposedly makes the whole thing work. Yeah, right.
We were a bit bummed, though. We don’t think you can even reliably interface a sensor system with the steering wheel, accelerator, and brakes for as little as one grand, but we would have been entirely happy to see it done. We’re not saying that the software to run an autonomous car is the easy part, but we’d love to have a hack at it if the hardware were affordable.
Anyway, if you’re looking for a real autonomous driving experience, we recommend starting by hacking RC cars and giving them substantially bigger brains than an Arduino. Once you’ve got that working, making progress to a real car is doable, but expensive. And it helps to be [geohot].
And lest you think we’re all holier-than-thou, check out our most embarrassing post ever. We could just curl up and die. Feel better soon, IEEE Spectrum!
Thanks [jpiat] for the tip!
48 thoughts on “Newsflash: A Bunch Of Arduinos Is Not An Autonomous Car”
You do realize automated car all it does is senses with supersonic sensors and cameras to steer and accelerate, right? It is totally doable with arduinos, you just need proper hardware to controll the hydraulic steering and brakes, and some clever code to map the way around objects, maybe you will keed more than an arduino for the cameras to do the image processing, but mostly is still doable with arduinos
The guy in the video said he was doing the image processing with arduinos, there’s no way.
This is laughable at best. Have you ever even heard of a real-time system? What makes a system real-time? I don’t even know what a “supersonic” sensor is, but if you want to collect data from 1000 of them, filter the data points, and then compile all those data points into a usable data structure for steering and control inferencing only using arduinos, then good luck. How many would it take? How would you interface them all together? Look up the Google Car. It has FAR more than some array of distance sensors on it. Ever heard of lidar? Does Arduino even have the CPU cycles or the memory to even read-in all that data? Let alone do all the state space maths to determine control outputs? Does Arduino have CAN controllers? A deterministic kernel?
Totally NOT doable with Arduinos. Look up control systems and autonomous robotics 101 textbooks and papers. Then you might see that Arduinos do not belong on a 3,000 lb machine.
I’m going to argue that while it would be very unpractical, it would be possible to use an 8-bit 16Mhz atmega328 arduino (although using real C/assembly coding not the arduino IDE) for an autonomous car provided you had supporting hardware. Most things done in code can be done with dedicated circuits. The Appollo 8 mission used a 16bit processor effectively running at just over 1MHz to send a spaceship initially weighing about 30,000kg with fuel to the moon and back (https://en.wikipedia.org/wiki/Apollo_Guidance_Computer). Arguing semantics, I think it WOULD be doable.
Now see the difference is there’s not a whole lot of obstacles to hit on the way to the moon…
you forgot to take all the computers in the mission control room on the ground into account. you know, the room full of displays and people sitting around them ? this is where the heavy computational stuff was done.
Also, there are not so many other traffic users in space that could suddenly pop up in front of the vessel. playing children ? rain ? wet roads ? summer/winter ? different lighting conditions during day/night ? brids, deers and other pesky critters ? braches/trees on the street during stormy days… the task is simply not comparable with flying in space.
AND do not forget all the engineers and technicians sitting in front of all this screens in the control room and the astronauts themselves. I would consider this mission nearly the opposite of “autonomous”: A lot of human “drivers” and navigators, the computers had to do, what even highly trained humans were not able to do sufficiently fast or accurate.
But i think, theoretically the autonomous driving could be done with a “bunch” of arduinos – if you consider a five figure number as “a bunch”. :-) Image processing can be done highly parallel. But of course this is totally unpractical and the amount of communication would be enormous. The power consumption probably also :-)
If, by supporting hardware, you mean a multi-camera image recognition engine, radar sensor processor, deep learning engine, mapping and navigation engine etc, and all the ATMEGA was there for was to boot them in the right order then you might be right.
The Apollo system didn’t have to worry about traffic, relied on pre-computed data generated by ground based mainframes and first time out couldn’t handle the workload.
Well I used the apollo and lunar lander as examples of you can do wuite a lot with a relatively stupid computer, BUUUUUT…. what they did would be the equivalent of hooking your GPS up to the throttle steering and brake and letting it “have at it” regardless of what else was on the road, or in the way. or unplanned road closures etc.
I wonder what computing power would be needed to navigate/object avoidance at warp speed?
AI…. the kind that can believe really hard that nothing bad can happen.
Define “Arduino” The Due has a CAN bus controller but needs a transceiver, I know for a fact there is a CAN bus shield and I’ll be slapped stupid if there isn’t SOMETHING that you can code for in the Arduino IDE that has a controller and transceiver either on chip or on board.
Having established that an arduino can talk to the CAN bus, you are right a single 8-bit arduino is probably at it’s limit just acting as a bridge for a drive by wire system (though that would still be a hell of a thing to see)
You are hilarious. Call me when you can process video and do machine vision at 60 frames a second on an arduino.
Doable with a gameboy cam lol.
I’ll do better, I’ll do 60fps in NEAR INFRARED!!!111 (To give me an excuse to use a 16×16 sensor…)
This is actually not as silly as it first sounds. If you could get enough information about the power steering and engine control systems (by, e.g., having worked for a car company), interfacing an Arduino to it should be possible. And yeah, you could make it work like those a typical small robotic car, running forward and changing direction when it hits something.
Now someone should actually do this, let it run in a safe area and it would be an immediate youtube hit :)
Supersonic means faster than sound, ultrasonic is the word you are looking for.
And arduinos should not be used for life-critical projects. Especially not other people’s.
Good way to go!
Actually I’ve done exactly the same thing on my father’s helicopter, but of course with a few more arduinos and cameras! I’ll be posting it on youtube asap! :D
Full size (= man carrying) or model size?
Let the guy live! Of course it was fake- but just becareful Hackaday you’re supposed to be home of the rebels not the “oh no you cant do that”
Rather than embarrassing, it’s a good lesson about how human intuition is not always right. Do the math even if it seems like it’ll work, folks!
arduino (8 bit mcus anyway) is terrible for any kind of complex real time control system. i implemented kalman filtering for an inertial reference and got a blistering 4 updates a second.
That is BAD coding…
Just imagine that almost all the Multirotor’s aka quadcopters used and still use a measly atmega to do everything(decode PPM signals, read acc, gyro, magnetometer/compass, generate PPM for the ESC’s, even gps waypoints), search for Multiwii and aeroquad and go read some decent code please.
But no image processing or computer vision
Actually, most of those tiny rc craft use stm32 microcontrollers – arm chips.
I don’t know about you but, @ 3:52, I have never been able to get my knee to turn a steering wheel like that. But any way good on him.
Look at the gearstick, it’s in reverse. He’s filmed whatever ford call their auto parking mode and played it backwards.
As for interfacing an arduino with the brakes, stearing etc. that would be fairly easy if you have access to the CAN database. Modern power stearing is electric, accelerators are now fly by wire and abs is capable of stopping a car without driver input.
However the self driving prototype i’ve seen requires 4 x i7 processors to operate.
:( The moderators there won’t let me comment on how fake it is
This car as auto-parking. This means it have automated steering and transmission control, so should not cost that much to make it auto-drive, but I don’t believe he did it with a few cameras and Arduino.
You’re right! That’s how [geohot] is doing it as well — parking assist + traction control = steering, gas, and brakes. I stand corrected. Maybe it _is_ just the software that’s interesting. Very cool.
No way it’s Arduinos all the way down.
Atmel was so proud to see arduino driving a car that they also tweeted it : https://twitter.com/Atmel/status/788744226972561409
GEOHOT (ps4/iphone jailbreaker) has this going. and last i heard he was planning to come out with a DIY kit for under $1000!
The Comma One is on its way. Under $1K but also limited to more recent cars.
I’m not so sure it’s fake.
An arduino uno has substantially more processing power than some of the people that “drive” our work fleet cars.
In calling this plausible
Ha, overkill. I did this years about with some 555 timers and an LED. :-p
Damn, beat me to it by just a few minutes.
The LED was overkill.
I’m not buying it.
I’m waiting for Brian’s article with the kickstarter link so I can make a pledge! Autonomous Adruino Cars for Everyone!
My brother was modifying his car with a replacement steering rack from the same model one year later. The mechanics fit fine, but the CAN bus control addresses were changed.
So he wedged an Arduino in between the plugs and did the recompute on the fly. This was only a temporary fix until a moded ECU was installed
Yes you can “drive” a car with Arduino pretty easily. Should you? No.
One of Atmel’s big sales sectors is automotive. You may be already driving (some subsystems of) your car with an “Arduino” (programmed in bullet-proof C, tested to within an inch of its life).
Actually, many would’ve been unceremoniously sacrificed during testing. Fault tolerance and failure modes are requirements for certification.
“We don’t think you can even reliably interface a sensor system with the steering wheel, accelerator, and brakes for as little as one grand, …”
I was under the impression that this is doable in certain models that are 100% drive by wire. All you have to do is tap the primary data bus (CAN, yes?) and do considerable reverse engineering.
Never mind the Arduinos – an “Autonomous Car” today (regardless of technology used) is not (functionally) that at all! Why? Regulation and Corruption: Even if Autonomous Car technology is possible, a truly autonomous vehicle will take years (if not decades – or forever) to get past Greedy Trial Lawyers, Labor Unions, a corrupt and dysfunctional government-run Patent Office, and Big Government Tax Fiends – before they are real (not to mention affordable).
Trial lawyers don’t make any money unless there’s a load of wrongful death suits, auto unions don’t make as much money to stop it as the case when every current car is made obsolete overnight, so I see neither of those having incentive to drag it out. Manufacturers work around the patent office all the time so not seeing why that’s a bigger than usual problem…. and government should be happy that they’re getting purchase tax on a 40k car instead of a 25k one.
Though going with the socialism only for people with means school of thought that’s been prevalent here recently, maybe undertakers could sue the gov due to 3000 less customers a year from highway accidents. Because the world owes you a living, unless you’re poor, then it doesn’t.
Does this “arduino” meet ISO 26262?
See you in court.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)