sshane / openpilot

DOES NOT SUPPORT COMMA 3X - Stock Additions (0.8.14): 3/automatic following distance profiles, customizable fork params with opEdit, and a smoother longitudinal experience for TSS2 Toyotas
MIT License
220 stars 85 forks source link

Stock Additions - 2022-01-01 (0.8.13)

Stock Additions is a fork of openpilot designed to be minimal in design while boasting various feature additions and behavior improvements over stock. I have a 2017 Toyota Corolla with comma pedal, so most of my changes are designed to improve the longitudinal performance.

Want to request a feature or create a bug report? Open an issue here! Want to reach me to debug an issue or have a question? Shane#6175 on Discord!

View Stock Additions Changelog


Highlight Features

Behavior Changes

General Features

Visual Changes (LINKS WIP)

Documentation


Behavior changes

Dynamic follow (3 profiles)

Dynamic follow aims to provide the stock (Toyota) experience of having three different distance settings. Dynamic follow works by dynamically changing the distance in seconds which is sent to the long MPC to predict a speed to travel at. Basically, if the lead is decelerating or might soon, increase distance to prepare. And if the lead is accelerating, reduce distance to get up to speed quicker.

Dynamic follow works if openpilot can control your vehicle's gas and brakes (longitudinal). Check if openpilot can control your vehicle's longitudinal from this list.

Just use the button on the button right of the screen while driving to change between these profiles:


Automatic DF profile switching

I've trained a custom model with Keras that takes in the past 35 seconds of your speed, the lead's speed and the lead's distance. With these inputs, it tries to correctly predict which profile is the best for your current situation.

It's only been trained on about an hour of data, so it's not perfect yet, but it's great for users who just want to set it and forget it. To enable the auto profile, simply tap the profile changing button for dynamic follow until it reaches the auto profile!

If you're annoyed by the silent alerts that show when the model has changed the profile automatically, just use opEdit and set hide_auto_df_alerts to True. Auto profile and model will remain functional but will not show alerts.

Resources:


Lane Speed alerts

This feature alerts you of faster-travelling adjacent lanes and can be configured using the on-screen LS button on the bottom right to either be disabled, audible, or silent.

The idea behind this feature is since we often become very relaxed behind the wheel when being driven by openpilot, we don't always notice when we've become stuck behind a slower-moving vehicle. When either the left or right adjacent lane is moving faster than your current lane, LaneSpeed alerts the user that a faster lane is available so that they can make a lane change, overtaking the slower current lane. Thus saving time in the long run on long road trips or in general highway driving!

The original idea is thanks to Greengree#5537 on Discord. This feature is available at 35 mph and up.


Dynamic camera offset (based on oncoming traffic)

This feature automatically adjusts your position in the lane if an adjacent lane has oncoming traffic. For example, if you're on a two-lane highway and the left adjacent lane has oncoming cars, LaneSpeed recognizes those cars and applies an offset to your CAMERA_OFFSET to move you over in the lane, keeping you farther from oncoming cars.

This feature is available from 35 to ~60 mph due to a limitation with the Toyota radar. It may not recognize oncoming traffic above 60 mph or so. To enable or disable this feature, use opEdit and change this parameter: dynamic_camera_offset.


PI -> PID Controller for Long and Lat

(long: longitudinal, speed control. lat: latitudinal, steering control)

Changes for lat control: (NEW❗)

Changes for long control:


General Features

Customize this fork (opEdit)

This is a handy tool to change your opParams parameters without diving into any json files or code. You can specify parameters to be used in any fork's operation that supports opParams. First, ssh in to your comma device and make sure you're in /data/openpilot, then start opEdit:

cd /data/openpilot
python op_edit.py  # or ./op_edit.py

To see what features opEdit has, click me!

🆕 All params now update live while driving, and params that are marked with static need a reboot of the device, or ignition.

Here are the main parameters you can change with this fork:

A full list of parameters that you can modify are located here.

An archive of opParams lives here.

Parameters are stored at /data/op_params.json


opEdit Demo


Automatic updates

When a new update is available on GitHub for Stock Additions, your comma device will pull and reset your local branch to the remote. It then queues a reboot to occur when the following is true:

Therefore, if your device sees an update while you're driving it will reboot approximately 5 to 10 minutes after you finish your drive, it resets the timer if you start driving again before the time is up.


ZSS Support

If you have a Prius with a ZSS (Zorrobyte Steer Sensor), you can use this fork to take full advantage of your high-precision angle sensor! Added support for ZSS with PR #198, there's nothing you need to do. Special thanks to Trae for helping testing the addition!

If you have a ZSS but not a Prius, let me know and I can add support for your car.


Offline crash logging(removed temporarily)

If you experience a crash or exception while driving with this fork, and you're not on internet for the error to be uploaded to Sentry, you should be able to check out the directory /data/community/crashes to see any and all logs of exceptions caught in openpilot. Simply view the logs with ls -lah and then cat the file you wish to view by date. This does not catch all errors, for example scons compilation errors or some Python syntax errors will not be caught, tmux a is usually best to view these (if openpilot didn't start).

Quickly view the latest crash: cat /data/community/crashes/latest.log

Feel free to reach out to me on Discord if you're having any issues with the fork!


Documentation

Quick Installation

To install Stock Additions, just enter the following URL on the setup screen for "Custom Software" after you factory reset:

https://smiskol.com/fork/sshane

Branches

Most of the branches on this fork are development branches I use as various openpilot tests. The few that more permanent are the following:


Archive Stock Additions branches


Videos

Here's a short video showing how close the traffic profile was in 0.7.4. In 0.7.5, the traffic profile is an average of 7.371 feet closer from 18 mph to 90 mph. Video thanks to @rolo01!


If you'd like to support my development of Stock Additions with a dollar for a RaceTrac ICEE (my PayPal link). Thanks! 🥰