Live data from Hacker News

Autopilot: an open source driving agent

github.com

101–110 of 129 posts

Re: Autopilot: an open source driving agent

#101
post #48

Earlier quoted context omitted.

I'm not really following. If it works then why not use a control loop on top of Python? We are engineers, after all.

The thing that distinguishes an engineer from a bodger is not just observing what works but understanding why, how, and to what margin of safety it works. The reason the "realtime" designation exists at all is that, in a realtime system, it is possible to say what the worst-case timing is for any operation, and to guarantee by design what failure conditions can and cannot happen. You cannot guarantee in a python prog…

The C code was a byproduct of some higher end framework isn't it ? (Still doesn't forgive the stupid errors that went into but..)

Re: Autopilot: an open source driving agent

#102

Earlier quoted context omitted.

Why wouldn't you do the research on a platform that could actually be deployed? Build the core using the proper tools and techniques. Any bug in a system like this could be life threatening at worst. Wouldn't you want to use the research phase to help eliminate such bugs? Unless you're not planning on ever releasing then a platform like this makes sense for strictly research, but Comma AI did plan on releasing their…

As an example of some requirements, any recursion is banned unless accompanied by a termination proof that keeps track of stack size. No calls to malloc() or free() are allowed, and so any library you might use that allocates memory is banned. It's far easier to get the code working in something like Python, and then rewrite it in safety-critical C later. And the kinds of people who can write self-driving cars in Pyt…

Hmm. Clearly this code is miles away from MISRA compliance (although compliance doesn't mean that the software is any good)

Even so, sorry to say, the code is miles away from any decent software standard. It is almost exactly what you might call CRAP (classes really a procedure) and mixes responsibilities all over the shop. Little attempt is made to abstract behaviour, and there are differing units, and random multipliers all over the place. Using c++ and python, both of which are OO many classes of error could be avoided if any actual OO features were used, even if MISRA was not a target, sadly the code doesn't do that.

This has all the hallmarks of software that doesnt know if it's doing m/s or mph.

Re: Autopilot: an open source driving agent

#103

Correct me if I'm wrong, but if I were actually to install this in my car, that car would no longer be street legal, right?

In Germany you would need a special permission from TÜV (technical supervisory association) for any modification that has or might have an influence on driving behavior. That means that you have to pay them for checking your car and getting a report which allows you to drive it. People are doing this for all kinds of modifications, from custom wheels (where the permission is cheap) to custom engines or suspensions up to completely custom cars (which might get very expensive).

Without getting the new permission you are not allowed to drive it on public road. If you still do then you might also have the problem that your insurance is void.

I don't know what e.g. TÜV would say about a device like this, but I guess the outcome is it would be either to expensive to analyze it or not possible it all since the overall system design and the interaction between the different devices might be not be known (e.g. there might be no public knowledge on how Acura ECUs might react on CAN signals which were never considered during design).

Re: Autopilot: an open source driving agent

#104
post #41

Earlier quoted context omitted.

The car would likely still be street legal. (IANAL) However, allowing this system to take control of your car on a public road would not. Another way to say this is, there's nothing dangerous about the hardware. You could be using it as a logging platform for the data on the CAN bus in your car. But letting the software send commands and take control from a driver is a different story.

> The car would likely still be street legal. (IANAL) However, allowing this system to take control of your car on a public road would not. IAANAL, but I don't think even that is true. I think it actually is legal to allow it to take control of your car, provided you are still sitting in the driver's seat and can take control back at any time.

> I think it actually is legal to allow it to take control of your car, provided you are still sitting in the driver's seat and can take control back at any time.

Can you GUARANTEE that you would be able to do this in a modified car with such a setup? You might be able to do so if we are talking about pure mechanical overrides. With blackbox software that's imho next to impossible. There will be no public documentation on what the cars systems will do if the receive some commands on the bus from a non-approved device and others from the driver. Even if you can observe through testing that driver inputs win the system might still behave different in some edge cases.

Re: Autopilot: an open source driving agent

#105
post #3

I have my reservations about this code. I am a long time free software developer so it is hard to say it but it seems clear to me that a single entity (from a legal perspective) has to "own" the self-driving car software. In the future bits of a self-driving car system may get open-sourced the way Facebook Open Compute has emerged in data centers, but first the proprietary implementations will need to pave the way in…

> it seems clear to me that a single entity (from a legal perspective) has to "own" the self-driving car software. That's not clear to me at all . It seems clear to me that the person operating the vehicle has ultimate responsibility for how it is driven, whether they're personally driving it or not.

That's not clear to me at all. It seems clear to me that the person operating the vehicle has ultimate responsibility for how it is driven, whether they're personally driving it or not.

Seems reasonable at first glance, but responsibility makes only sense if you also have the knowledge and power needed for making the right descisions.

Unless the driver is expert in the self-driving car field and core contributor to the car software, he'd end up being liable for events he cannot anticipate and has no control over. In such a situation, the only actually responsible descision would be not to use the car at all.

Re: Autopilot: an open source driving agent

#106
post #57

Is there a closed-simulation-environment to test this? By that I mean that the sensor inputs (images of the road, etcetera) are generated by the simulation environment with which the driving agent interacts.

Speaking of which, I've been wondering, if you have digital map data and and a process to generate a 3d model of map data and a renderer that produces photo realistic imagery in real-time, if that could be useful for training a neural network at driving a car by monitoring the position of the car on the virtual road using another piece of software and have it provide feedback to the neural network about how it is performing.

Re: Autopilot: an open source driving agent

#107

Earlier quoted context omitted.

Because by "works" you mean "I tried it out a bunch of times and nothing bad happened, so must be production ready", because that's what you do when you build websites and desktop CRUD apps and nobody ever died cause the web server choked under load or the web page rendered a bit funny or the request took a full quarter second because the GC kicked off as a wave of requests came in. And then one day a one-in-ten-mill…

You have a lot of solid points, but note that Linux is currently being used by SpaceX in an even more safety-critical aerospace setting. Also note that interpreters have their place in safety-critical aerospace as well: some satellites run Forth.

> You have a lot of solid points, but note that Linux is currently being used by SpaceX in an even more safety-critical aerospace setting

I disagree with the 'more' - how many lives are at risk with a SpaceX failure vs. a self-driving car failure? This is even without multiplying by number of users.

Re: Autopilot: an open source driving agent

#108
post #62

Earlier quoted context omitted.

> It seems incredible that this is the source code for the $999 product originally destined to be available this year. It's not

Forgive me but it seemed like this was the case. Is this an earlier version of the code or a special opensource clean up then? http://newatlas.com/geohot-comma-ai-openpilot-open-source/46...

The ars technical article covers it better http://arstechnica.com/cars/2016/11/after-mothballing-comma-...

But in a nutshell:

The company was approached by agencies that had severe concerns over safety and if this would have the required regulations in place.

So the company folded and released this instead.

Re: Autopilot: an open source driving agent

#109

Earlier quoted context omitted.

You have a lot of solid points, but note that Linux is currently being used by SpaceX in an even more safety-critical aerospace setting. Also note that interpreters have their place in safety-critical aerospace as well: some satellites run Forth.

> You have a lot of solid points, but note that Linux is currently being used by SpaceX in an even more safety-critical aerospace setting I disagree with the 'more' - how many lives are at risk with a SpaceX failure vs. a self-driving car failure? This is even without multiplying by number of users.

There are few things more destructive than a serious spacecraft crash.

Re: Autopilot: an open source driving agent

#110

Really, a safety critical hard realtime system with control loops on top of Python, a general purpose OS and a CAN-USB adapter? There are reasons why we have realtime operating systems, deterministic bus systems and dedicated CPUs for these kinds of applications. That might be an interesting research, prototyping or simulation platform. But nothing you want to have on a real public road.

The big problem in my mind is that Python is the wrong tool for the job. It is 2016, there are more hard-RTOS prototyping platforms than ever before. My favorite is National Instrument's RIO platform, which lets you use C or LabVIEW (imho the best language for prototyping control algorithms by far). Mathworks also has a platform based on Matlab/Simulink, and the list goes on. Why use Python when there are existing to…

This is (now) open source project expecting community pull requests. How many would they get if they went with LabView? The big emphasis that I like seeing in modern scientists is reproducibility of results. Jupyter Notebook is a huge step in that direction (not really applicable here), but just using open source platform is still great.

I agree though that once algorithms are developed sufficiently they should be ported to RTOS platform and this box shouldn't be permitted on open roads.

Post reply on HN