Geohot’s Comma.ai Self-Driving Code On GitHub

First there was [Geohot]’s lofty goal to build a hacker’s version of the self-driving car. Then came comma.ai and a whole bunch of venture capital. After that, a letter from the Feds and a hasty retreat from the business end of things. The latest development? comma.ai’s openpilot project shows up on GitHub!

If you’ve got either an Acura ILX or Honda Civic 2016 Touring addition, you can start to play around with this technology on your own. Is this a good idea? Are you willing to buy some time on a closed track?

A quick browse through the code gives some clues as to what’s going on here. The board files show just how easy it is to interface with these cars’ driving controls: there’s a bunch of CAN commands and that’s it. There’s some unintentional black comedy, like a (software) crash-handler routine named crash.py.

What’s shocking is that there’s nothing shocking going on. It’s all pretty much straightforward Python with sprinklings of C. Honestly, it looks like something you could get into and start hacking away at pretty quickly. Anyone want to send us an Acura ILX for testing purposes? No promises you’ll get it back in one piece.

If you missed it, read up on our coverage of the rapid rise and faster retreat of comma.ai. But we don’t think the game is over yet: comma.ai is still hiring. Are open source self-driving cars in our future? That would be fantastic!

Via Endagadget. Thanks for the tip, [FaultyWarrior]!

30 thoughts on “Geohot’s Comma.ai Self-Driving Code On GitHub

  1. The most important part, IMHO, is the computer vision code. And that part is not open source, as there’s only a binary in the repository, called “visiond”. I even opened an issue there, and here is the response from geohot:

    “At comma.ai, our goal is to be as open as possible without killing the company. For now, for business model purposes, we have decided to keep visiond closed. Just like how parts of Android are closed. This may change in the future. At least it’s free.”

    source: https://github.com/commaai/openpilot/issues/4

  2. What bothers me the most about this is the ease with which malevolent entitys are able to take complete control of the car.
    That is why I will hopefully never need to drive anything with more than an ecu and maybe ABS in it.

      1. Look into home built vehicles, i dont know about the US, but in Canada it is legal to build your own vehicle and even register it for the road. Yess there are hoops to jump through but this is hack-a-day, you can do it!

        also if thats a bit too much, just get a kit car. if i had the funds i would go with the FF 818C.

      2. Europe is ramping up on cities denying access to older cars, especially diesels but also some petrols.
        It’s going to spread world wide with time.
        Meanwhile VW are faking the emissions standards.

      1. It comes down to how much freedom you’re willing to give up for safety.

        A car that can be controlled by a computer will eventually have the ability to be pulled over by a computer, stolen with a with a computer, tracked and profiled by insurance companies and law enforcement by a computer. Replace your own control with a computer’s and it will surely be taken from you one day.

        I could care less either way because I probably won’t live long enough to see it happen.. But I hope my comment survives the test of time so I can say, “I told you so” from the grave! lol

    1. CAN bus hacking has been going on for a long time, my 2006 Ford can have it’s ECU programmed over the CAN bus using a hand held controller (which gave a nice little gain of 30+kW)… what I think will happen next is car ECU’s (and other modules on the CAN bus) will become encrypted requiring a key exchange before any communications can take place.

  3. After all the gushing about hacker credz and badmouthing of firmware engineers at traditional car manufactures, I wait for HAD to take closer look at the quality of this safety critical piece of software and hardware that was supposed to be sold to consumers before the end of this year.

    Read the comments on Ars Technica for a few starting points.

    1. If you’d actually like to talk safety and self-driving vehicles, there’s a much more interesting benchmark with a lot more known about it. Article slotted for Monday morning.

      I’ve been thinking a lot about self-driving and safety lately.

  4. What’s shocking is that they’re writing hard-realtime safety critical code in python. I wouldn’t trust my life to a software system with as many moving pieces as the python interpreter.

    1. +1

      I know this would be controversial to some, but Python is _not_ a language for mission critical transportation software. I worked in aerospace software and would never use a language like that. Some people will never understand the difference between crap programming and real software engineering. Python may be great for hacking, but lives shouldn’t depend on hacks.

      1. It is addressed, but not to the level that’s actual safe.

        His rational behind not doing any hard safety on the steering is that it can only apply small amounts of tourqe, But if you were to continually send packets in a way that caused the car to shake, you’d end up with a “Death wobble” situation.

        Also, applying 1/4 of the breaks on and off in rapid succession could cause an accident as well.

    1. I think it boils down to trusing the closed visiond blob or not. It may do all the checks you can imagine there, or not. Even if it does, you have to fully trust it won’t purposefully crash into a tree or something, and no amount of defensive programming will save you or your car from that. It is simply allowed full control over the car and you have to trust it.

      So I don’t buy parts of this guys’ rant.

      And I say it is defensive programming that he (Charles Laing) wants to see, because he wants the code to basically check on itself, i.e. have main.c check on visiond. Sure, defensive programming is kind of the analogy of the full redundancy of all the systems in avionincs, and it may be a good idea (are there many famous incidents where the systems redundancy has saved aircraft? How about specifically electronics and software redundancy related incidentes? Or is that too low level for such data to be available?) But… he assumes that visiond is all way higher layers of processing than main.c which we can’t know, we don’t know how defensive visiond is.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.