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…
Autopilot: an open source driving agent
101–110 of 129 posts
Re: Autopilot: an open source driving agent
#102Earlier 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…
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
#103Correct 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?
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
#104Earlier 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.
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
#105I 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.
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
#106Is 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.
Re: Autopilot: an open source driving agent
#107Earlier 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.
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
#108Earlier 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...
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
#109Earlier 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.
Re: Autopilot: an open source driving agent
#110Really, 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…
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.