No Openpilot Longitudinal Control? No problem… or is it?
For the longest time (and still currently a little bit) I’ve been confused about the so called “no direct longitudinal control” issue that many experience with some vehicles while trying to run Openpilot.
In a nut shell, this describes Openpilot’s ability (or lack of concern in some cases) to take control of the cars acceleration / braking directly manipulating the power of the brakes and gas pedal as it sees fit… rather it lets the stock system manage that aspect of the driving experience and focuses its efforts strictly on lateral control.
So what is longitudinal control and lateral control?
Longitudinal control is the ability to control the vehicles acceleration / deceleration by sending brake / gas commands over the various networks built into the vehicle.
Lateral control is the ability to control the vehicles left / right movements via sending direct steering commands through the various networks in the vehicle.
So when people talk about Openpilot offers no longitudinal control, what they’re talking about is that Openpilot is not able -or- not needing to send a number for amount of acceleration or a number for amount of braking.
So what are the advantages and/or disadvantages of no longitudinal control?
To answer this question, I’ve decided to ask some experts as well as some normal everyday users what they think. As this is not cut and dry, many people love the stock adaptive cruise control features and would in many cases rather use it than be forced to use Openpilot’s, whereas some want to create a fully Openpilot controlled system and may look at it like its a limitation.
Here are some of the questions I set out to answer:
- What vehicle or vehicle(s) do you own or know of that have no Openpilot longitudinal control? (Not just the ones on the Comma Openpilot list.)
- Why do these limitations exist?
- Are they too hard to hack?
- Is Openpilot’s ACC not even needed?
- Why should we use Openpilot at all if its not needed?
- If we can hack it, why do we choose not to?
- Should I be buying a car that has Openpilot longitudinal control?
- Does Openpilot not make ANY distance decisions at all?
I will update this guide as I gain more insights, and if you have any opinions… I urge you to share your experiences / understandings as a response to this article for others to benefit.
Which vehicles are affected by this?
The Comma list is one of the more common places for people to find out which is at https://github.com/commaai/openpilot in the README.md.
But Comma will only mention vehicles that they specifically know of and/or have confirmations of testing happening.
There are many in the community that people are working on or toying with and those can often be found on the community Vehicle Research & Support Tracker.
This is a master list of vehicles supported and being researched for usage with openpilot software.opc.ai
The site allows us to quickly see what features each year, make, model has without openpilot, and with openpilot and more specifically which have Openpilot Direct / Indirect Longitudinal Control.
It is user generated so many vehicles won’t have checks yet, but this can be a very useful tool for getting these types of answers. Also, it has a handy videos feature that links videos that relate to that particular vehicle from YouTube.
Some of the best ways to find out what people think, is to just watch videos of people using Openpilot on the vehicles in question.
Why do these “limitations” exist?
Each vehicle uses specific parts, and each part communicates differently over a somewhat universally accepted network built into the vehicle called the CAN BUS. This is how openpilot works. It interfaces / blocks / injects its own CAN messages to tell the vehicle what to do.
Each vehicle has to be specifically ported to work with openpilot because each vehicle requires its own translation of the messages.
For some vehicles, they communicate over a different network, or they aren’t really sending anything of use that Openpilot can mimic or even listen for in some cases which can prevent anyone from really tapping into those features.
In some cases, the lidar data is not sent over in a way that benefits from intercepting and that can put a damper on things. (I’m not technical in this regard so forgive me if some of this information is slightly incorrect.)
But is this truly limitation? or a benefit? Well we will look into that next.
How should I look at this?
For many people, the stock ACC system is great. It is reliable, it starts / stops the vehicle with the flow of traffic, and solves all of their daily driving discomforts.
But with these stock systems, come some hard limitations. Sometimes the ACC does not stay engaged below a certain speed. Sometimes it will stay engaged all the way to zero, but disengage after 3 seconds of being stopped.
These limitations are put in place by the manufacturers for various reasons, probably mostly safety related… liability reasons… etc.
Whatever those may be, some people just do not like limitations. I still know people that let the seat belt “nag” chime just ring ring ring while they drive because they refuse to be controlled by it. While others (like myself) just obey and click the belt and go.
These types of differences, within us, and within our habits — really determine our goals… and impact our view of this.
I, myself, want to know that I can use Openpilot to its fullest potential…
But what is that potential really?
We could be saving CPU cycles by not worrying about the longitudinal control which could allow us more variants in how we can control the vehicle laterally… wouldn’t that be nice.
The best thing I keep going back to is, talk to others with these vehicles. Find the vehicle that you like to look at, can see yourself driving, and has the other comfortable features you want… plush seats!!!!! Don’t only base it on its Openpilot capabilities. Because in the end, the vehicle you choose TODAY will not have something that is required to make it magically fully autonomous one day… its merely a stepping stone to the future.
So buy the car you like, and then make it work with Openpilot. You can only concern yourself SO MUCH with these things in the end.
Especially if you’re not a super car hacker yourself.
If Openpilot cannot control longitudinal, why should we even use it?
Well, there are key benefits to using Openpilot over the stock systems that your stock system will NEVER be able to do.
OTA (over-the-air). It will never be able to receive OTA (over-the-air) updates… the systems are hardcoded / hardwired. The vision model, its’ capabilities, will always be set in stone because it is firmware that is installed on a separate device that the vehicle manufacture knows / cares very little about and only really gives you limited access to. The only company giving OTA updates to its vision system is Tesla at the moment as far as I know.
HD Maps. This is something of the future, the very near future. It’s something Tesla is doing, Cadillac is doing, and anyone in the self-driving car space is working on. It’s a key to computers being able to accurately understand and interpret the world around us.
What it does is feed the vision model information as you drive about what is in front of it. Not necessarily interpreted by the camera module CPU, but already pre-processed on remote servers with high-end hardware, and then streamed over to your vehicle in real-time. This could enable your car to stop at a street intersection, or take the next exit to your office.
By driving with EON in your vehicle, and uploading your video / data to Comma, you’re enabling them to process and build the HD Maps data.
DIL (Driving Interface Layer) is a key to what Comma believes will help your vehicle systems to interface with humanity. Make real decisions like humans do. It’s something your stock system will never have by itself without the help of this universal layer or language.
By driving with EON, uploading your video / data, and reviewing your disengagements in my.comma.ai you’re helping to build the DIL because you’re helping to gather information about how HUMANS would have handled a situation. The more humans that tell the systems to do something, the more likely it is in fact supposed to be doing it and therefor it is more likely to make that decision next time.
Without this process, computers cannot learn.
I’ll be updating the article with more answers to the questions as I get them in… but I wanted to at least have a place to put some of these thoughts before I forget.