This fork exists to improve OP performance and convenience for GM cars, specifically the Chevy Volt, because the kegman fork wouldn't run on Comma Three. The result is the best volt driving experience there's ever been.
Most of the features in this fork are my original implementations, often inspired and always informed by the work of others in the community. Pleae provide any positive/negative feedback on the comma/openpilot/retropilot Discord servers, especially if you'd like your issues addressed.
Running on move-fast fork of openpilot, which adds:
- Vision and/or map-based slowing down for curves
- Map-based automatic changing of speed limit (with optional offset)
- Map-based slowing for curves and automatic setting of speed requires a data connection
- You can subscribe to comma Prime, which is a great service and is totally worth the cost, or you can use your own hotspot and enable the "disable onroad uploads" toggle (see below) to only use data for these features
- Hands on wheel monitoring
- Disable disengage when gas pressed
- Latest openpilot 0.8.12 lateral and 0.8.10 driver monitoring models
- [Comma3] Latest AGNOS3 OS
- [Chevy Volt] Sigmoidal steering response (thanks Qadmus)
- [GM] [✅] AutoHold (autohold brakes when stopped; ported from kegman)
- [GM] Adjustable follow "mode" using ACC distance button (ported from kegman, but smoother follow profiles)
- [GM] Toggle steering with LKAS button (wheel color changes to indicate disengagement)
- [GM] One-pedal driving a.k.a. autosteering only a.k.a. toggle longitudinal control: using regen (volt) and/or light/moderate/heavy braking, control OP all the way to a stop, without a lead, and without disengaging, with just the gas pedal (see below)
- [✅] Dynamic Lane Profile (DLP); tap button while driving to switch between auto/laneless/lane-only. must enable "Disable use of lanelines" for button to appear (ported from sunnyhaibin)
- [✅] Normal/sport/eco/creep acceleration modes [cycle with on-screen button] (Think of creep mode as, for example, mountain highway construction traffic mode)
- [✅] 1/5 mph changes for tap/hold of the inc/dec buttons (ported from Spector56)
- [✅] 3mph cruise speed offset: speed will be 23/28/33/38/etc.
- [✅] Alternate sound effect set
- [✅] Mute engage and disengage sounds
- [✅] Disable onroad uploads: for use with data-limited wifi hotspots. Reduces data use from 400MB/hour or 22MB/mile (based on 30 minute low-speed trip) down to 25MB/hour or 0.4MB/mile (based on 5 hour trip at 84mph; i.e. not a perfect comparison to the other trip)
- iPhone users can use this shortcut to instantly open the personal hotspot page in the Settings app in order to enable personal hotspot for your comma device to connect.
- Combined with an Automation to run the shortcut when you enter CarPlay, or when you connect to your car's Bluetooth, can make this quite convenient.
- Android users could try the Hot Spot Starter app, but I can't recommend it as I haven't tried it, so maybe look for something else if it doesn't work
- iPhone users can use this shortcut to instantly open the personal hotspot page in the Settings app in order to enable personal hotspot for your comma device to connect.
- [✅] Coasting: OP will still brake behind a lead car and to slow down for curves, but will not apply engine/regen/friction brakes in order to keep the set speed (by user or map speed limit)
- Toggle coasting while driving by tapping the max speed indicator
- A "+" after the max speed indicates that coasting is enabled
- Can be a bit rough on the brakes when following downhill over set speed; recommend to disable if uncomfortable when constantly following downhill
- [✅] Brake when 15% over set speed when coasting enabled
- [✅] Nudgeless lane change: OP will start lane change automatically in direction of blinker after blinker on for 3s
- [✅] Friction braking indicator
- Customizable, dynamic vehicle/device metrics
- To use:
- Tap the current speed on the openpilot display to cycle the number of metrics
- Tap any metric to cycle its content (sorry for all the god-forsaken tapping, a better metric display with vehicle, following, position, and device widgets is a WIP)
- Metrics (35 to choose from):
- Device info: CPU temperature (°C and °F), CPU percent, CPU temp + percent (°C and °F), memory temperature (°C and °F), memory used, free storage, ambient temperature (°C and °F), fanspeed (as percent of max), GPS accuracy (and number of satelites), altitude
- Vehicle info: Engine RPM, engine coolant temperature (°C and °F), engine RPM + coolant temperature (°C and °F), steering torque, steering angle, desired steering angle, vehicle acceleration, vehicle jerk, percent grade of current road (one based on GPS, one based on device accelerometer)
- Lead-following info: follow distance level, lead distance [length], desired lead distance [length], lead distance [time], desired lead distance [time], follow distance and acceleration mpc costs [in units of the stock OP costs; i.e. 2.5 means 2.5× the stock OP value], relative lead velocity, absolute lead velocity
- To use:
- [GM] [✅] One-pedal driving: OP will apply light to heavy braking when you let completely off the gas, allowing you to come to a full stop and resume without OP disengaging
- Must have disable disengage on gas toggle enabled
- Not necessary to enable the one-pedal toggle; you engage/disengage while driving
- When blinker is on below 30mph, autosteer will automatically pause [optional; tap wheel icon to toggle while in one-pedal mode; a second white circle around the wheel icon indicates autosteer pause is enabled]
- Engage in three ways
- While cruise is set, press and hold the follow distance button for 0.5s (continue to hold for immediate hard braking if necessary)
- If one-pedal engage on gas toggle is enabled, press gas while cruise is set and traveling above 1mph
- While cruise is set, lower cruise speed to 1
- When in one-pedal mode, the max speed indicator in openpilot will be replaced with a one-pedal mode indicator. Tap the one-pedal icon to toggle one-pedal engage on gas mode
- Vehicle follow distance indicator and pedal icon color indicate the one-pedal braking profile in use; 1/2/3 = 🟢/🟠/🔴 = light/moderate/heavy braking
- Control braking with follow distance button:
- Single press: alternate between persistent light or moderate braking
- Press and hold: apply temporary hard braking (indicated by follow level 3 on vehicle cluster and red one-pedal icon) (Chevy's the ones that decided a brake paddle on the steering wheel was a good idea; not me)
- Press when friction braking disabled: activate friction braking
- Double-press when stopped or when gas is pressed and friction braking is active: deactivate friction braking
- [GM] [✅] One-pedal pro braking: Completely disable cruise/speed limit/curve/follow braking when in one-pedal mode. You are soley responsible for slowing the car using the adjustable one-pedal braking (by pressing/holding the follow distance button) or with the physical brakes/regen paddle
- [GM] [✅] One-pedal engage on gas: When cruising at speed and the driver presses the gas (i.e. not when resuming from a stop), engage one-pedal mode
- Toggle while driving by tapping the pedal icon
- [GM] JShuler panda-based GM steering fault fix
- Remember last follow mode
- Stop-and-go for 2018 Volt
- Grey panda support
- Chevy Bolt support
- Record screen button
- Redo UI metrics as themed "widgets" instead that can be activated independently and stack against the right (and left if necessary) side of the screen
- Follow widget: a colored vertical bar indicating follow distance with lines indicating the actual and desired (length/time) follow distances. Tap to include more info items like current distance cost
- Openpilot widget: a similar vertical bar (or maybe something like a circular progress bar or a speedometer--looking thing) showing the gas/braking being requested by OP. Also include Driver monitoring info.
- Car widget: Acceleration/jerk, tire pressures, low voltage battery info, ...
- Geo widget: GPS signal/coords/#satellites, altitude, percent grade of current road, ...
- Device widget: CPU/memory/temps/fans/...
- EV widget: high voltage battery info similar to that shown in the LeafSpyPro app
- [✅] Modified assistive driving system (MADS) style auto-engagement of steering
- [✅] 0.5 second delay before activating newly selected follow mode so user can switch around without OP slightly jerking in response
- [✅] Auto screen brightness (or at least a way to dim a bit at night)
- [✅] Lane Speed alerts (sshane)
- [✅] Dynamic camera offset (based on oncoming traffic) (sshane)
- [Chevy Volt] Steering control below 7mph using parking commands
- [Chevy Volt] [✅] Road trip mode: automatically put car into Mountain Mode if sustained speed 55mph+
- [GM] Use physical drive mode button to switch between normal/sport acceleration profiles
- [GM] [✅] Dynamic follow mode: point-based
- Follow distance "earns points" the longer you're behind the same lead car, moving from close to medium after about 5 minutes
- When on highway, continue to increase from medium to far follow distance after about 20 minutes behind the same car
- If someone cuts in, the follow distance "takes a penalty" down to a closer follow distance proportional to the distance and relative speed of the car that cut in
- The penalties can "go negative", that is, repeated cut-ins can result in close follow being use for longer than normal
- Metrics to add:
- number of interventions/cut-ins during drive session
- time since last intervention/cut-in
- apply gas/apply brake
This fork is developed and used on a Comma Three in a 2018 Chevy Volt, and is also known to work on Comma Two and Comma Zero, and in 2017 Volt and 2018 Acadia.
Easy: using sshane's openpilot-installer-generator
Use these instructions and the following url:
https://smiskol.com/fork/twilsonco
To ride the bleeding edge, try the staging branch where new features are tested before they go to regular users:
(Be extra diligent and attentive when using the staging branch; it is considered experimental moreso than the regular branch!)
https://smiskol.com/fork/twilsonco/tw-0.8.9-staging
With a stock installation of OpenPilot confirmed working, SSH into device and run the following:
cd /data;mv openpilot openpilot_stock;git clone --recurse-submodules https://github.com/twilsonco/openpilot;sudo reboot
This fork will auto-update while your device has internet access, and changes are automatically applied the next time the device restarts. If you're device stays connected to your car all the time, you'll be presented with a message to update when your car is off.
openpilot is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW) and Lane Departure Warning (LDW) for a growing variety of supported car makes, models and model years. In addition, while openpilot is engaged, a camera based Driver Monitoring (DM) feature alerts distracted and asleep drivers.
openpilot ALC and openpilot LDW do not automatically drive the vehicle or reduce the amount of attention that must be paid to operate your vehicle. The driver must always keep control of the steering wheel and be ready to correct the openpilot ALC action at all times.
While changing lanes, openpilot is not capable of looking next to you or checking your blind spot. Only nudge the wheel to initiate a lane change after you have confirmed it's safe to do so.
Many factors can impact the performance of openpilot ALC and openpilot LDW, causing them to be unable to function as intended. These include, but are not limited to:
- Poor visibility (heavy rain, snow, fog, etc.) or weather conditions that may interfere with sensor operation.
- The road facing camera is obstructed, covered or damaged by mud, ice, snow, etc.
- Obstruction caused by applying excessive paint or adhesive products (such as wraps, stickers, rubber coating, etc.) onto the vehicle.
- The device is mounted incorrectly.
- When in sharp curves, like on-off ramps, intersections etc...; openpilot is designed to be limited in the amount of steering torque it can produce.
- In the presence of restricted lanes or construction zones.
- When driving on highly banked roads or in presence of strong cross-wind.
- Extremely hot or cold temperatures.
- Bright light (due to oncoming headlights, direct sunlight, etc.).
- Driving on hills, narrow, or winding roads.
The list above does not represent an exhaustive list of situations that may interfere with proper operation of openpilot components. It is the driver's responsibility to be in control of the vehicle at all times.
openpilot ACC and openpilot FCW are not systems that allow careless or inattentive driving. It is still necessary for the driver to pay close attention to the vehicle’s surroundings and to be ready to re-take control of the gas and the brake at all times.
Many factors can impact the performance of openpilot ACC and openpilot FCW, causing them to be unable to function as intended. These include, but are not limited to:
- Poor visibility (heavy rain, snow, fog, etc.) or weather conditions that may interfere with sensor operation.
- The road facing camera or radar are obstructed, covered, or damaged by mud, ice, snow, etc.
- Obstruction caused by applying excessive paint or adhesive products (such as wraps, stickers, rubber coating, etc.) onto the vehicle.
- The device is mounted incorrectly.
- Approaching a toll booth, a bridge or a large metal plate.
- When driving on roads with pedestrians, cyclists, etc...
- In presence of traffic signs or stop lights, which are not detected by openpilot at this time.
- When the posted speed limit is below the user selected set speed. openpilot does not detect speed limits at this time.
- In presence of vehicles in the same lane that are not moving.
- When abrupt braking maneuvers are required. openpilot is designed to be limited in the amount of deceleration and acceleration that it can produce.
- When surrounding vehicles perform close cut-ins from neighbor lanes.
- Driving on hills, narrow, or winding roads.
- Extremely hot or cold temperatures.
- Bright light (due to oncoming headlights, direct sunlight, etc.).
- Interference from other equipment that generates radar waves.
The list above does not represent an exhaustive list of situations that may interfere with proper operation of openpilot components. It is the driver's responsibility to be in control of the vehicle at all times.
openpilot DM should not be considered an exact measurement of the alertness of the driver.
Many factors can impact the performance of openpilot DM, causing it to be unable to function as intended. These include, but are not limited to:
- Low light conditions, such as driving at night or in dark tunnels.
- Bright light (due to oncoming headlights, direct sunlight, etc.).
- The driver's face is partially or completely outside field of view of the driver facing camera.
- The driver facing camera is obstructed, covered, or damaged.
The list above does not represent an exhaustive list of situations that may interfere with proper operation of openpilot components. A driver should not rely on openpilot DM to assess their level of attention.
openpilot and this fork are released under the MIT license. Some parts of the software are released under other licenses as specified.
Any user of this software shall indemnify and hold harmless comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.
THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT. YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS. NO WARRANTY EXPRESSED OR IMPLIED.