Skip to content

Commit

Permalink
Masteryota-Final
Browse files Browse the repository at this point in the history
Masteryota-Final-2

Masteryota-Final-1

Masteryota

Masteryota

This reverts commit 916f2de.

1.8 accel max

1.25 follow

Copied Sport vals from SA-Eco

3 hours off / saves your 12v battery

Testing if the deadzone is causing the delay

Or maybe it's the high ki values. Testing old known values from previous versions of OP. No deadzone

Toyota logo instead of comma

1.2 follow

Fork mods

Fork mods

lower gain, higher prediction, stiffer wheel, higher steer ratio

Fork mods

commit 5c673b6399737b3e0b9d9d54e0b830e0cb04b185
Author: cfranhonda <46506059+cfranhonda@users.noreply.github.com>
Date:   Wed Jul 28 15:47:27 2021 -0700

Fix steer max and make ki a bit higher.

commit 039cf40ab0ac72ced1c19de6854b7761a109d4e6
Author: Casey Francis <@cfranhonda>
Date:   Tue Jul 27 23:19:30 2021 -0700

add LQR for other bosch kids

commit 95efde9a50bc4ca38a81e5cfdb86d1307db41f3c
Author: Casey Francis <@cfranhonda>
Date:   Tue Jul 27 22:34:51 2021 -0700

add LQR tune

Fork mods

commit 9b45eb1
Author: Daehyuk Ahn <daehyuk@live.com>
Date:   Mon May 24 23:14:34 2021 -0700

Add EnableGasPedal (toggle menu)

commit 4e9ac3b
Author: Casey Francis <@cfranhonda>
Date:   Sat Aug 21 17:36:22 2021 -0700

full speed fan

commit 152dec1
Author: Casey Francis <@cfranhonda>
Date:   Sat Aug 21 07:45:17 2021 -0700

add vision/ disable radar toggle

commit 5c48f3e
Author: Casey Francis <@cfranhonda>
Date:   Sat Aug 21 07:35:54 2021 -0700

vaggy hack to stop jerk

commit 87328dd
Author: cfranhonda <46506059+cfranhonda@users.noreply.github.com>
Date:   Mon Aug 23 07:15:05 2021 -0700

eps mod / gasmax adjust

commit baffaee
Author: Vehicle Researcher <user@comma.ai>
Date:   Sun Aug 22 22:13:11 2021 -0700

openpilot v0.8.8 release

adding "," fws for modded people

Update thermald.py

No sound for Saturated steering

remove no gps alert

Update power_monitoring.py

Update interface.py

green instead of red path

LQR toggle

add LQR toggle for select Honda's

add LQR toggle for modded Civic's & CRV

Revert "Universal LQR tune"

This reverts commit c10adf7.

add LQR toggle

change description

Universal LQR tune

Universal LQR tune

This tune taken from the Toyota Rav4 has shown to be a great
alternative to the standard PID tune. It's worked very well on eps mod
multipliers of 2, 2.5, 3.5, 4x. It climbs the torque scale much
smoother and doesn't "jitter" like PID does sometimes.

fix LQR for RDX

kf under PID only.

add Accord to LQR toggle

Conflicts:
	selfdrive/boardd/boardd.cc
	selfdrive/controls/lib/events.py
	selfdrive/ui/qt/offroad/settings.cc

LQR toggle

lower ff

+25% Cruise max

add to release notes

paramsd cpu usage has been increasing

boardd: connect to all pandas if none specified (commaai#23805)

Refactor convolutions (commaai#23807)

* one conv with defines

* add conv

* building works on C3

* this is num_outputs too, process replay is so useful

cleanup import chaining of T_IDXS (commaai#23806)

bump panda

ui.py: fix model lead plotting

Param to allow upload over cellular (commaai#23811)

* param to allow upload over cellular

* brackets to be consistent

* move outside loop

* fix tests

longitudinal planner: disable change cost when stopped. not engaged or gas pressed (commaai#23639)

* disable change cost completely on standstill and gas press

* cleanup

* set accel to zero

* clean up logic around standstill

* update ref

onroad_test: increase camerad cpu usage after debayer changes

Update raw_logger/framereader to new new ffmpeg api (commaai#23799)

* Update raw_logger/framereader to new new ffmpeg api

* Can be removed now

* Handled by avcodec_free_context

* handle EAGAIN and clean up

thneed: a few asserts in the optimizer for cases it will fail

docs: fix title typo

cabana for your terminal

Fix tici bigmodel (commaai#23817)

* Fix bigmodel on tici: cam intrinsics arent static

* Give TICI route own name for import

* Make function useable in offline test

* typo

* change tici ecam focal to trained focal

* No shadow variable

* Fixed ref

* Force update this time

* Update model replay ref commit

2022 Hyundai Elantra firmware versions (commaai#23818)

Added 2022 Hyundai Elantra fwdCamera, transmission, and engine fingerprints.

CARS.md add 2022 elantra

hyundai: custom fw version for sonata eps (commaai#23816)

* hyundai: custom fw version for sonata eps

* another comment

HKG: Kia Sorento FPv2 (commaai#23815)

* Replace Kia Sorento FPv1 with FPv2

* keep old fingerprint

Subaru: add FW for Impreza Limited UDM 2017 (commaai#23802)

* FPv2: Add Subaru Impreza Limited USM 2017

* test_fw_query_on_routes.py: add subaru support

Fix unmetered upload over cell (fix commaai#23811) (commaai#23820)

omx encoder: move writing into thread (commaai#23771)

* omx encoder: move writing to separate thread

* fix include

* pop

* log buffers sizes

* split copy and write

adjust comma two model timing thresholds after bigmodel

Toyota: fix flaky EV detection (commaai#23825)

script to clear DTCs

move lock clearing to uploader (commaai#23826)

* move lock clearing to uploader

* test case

Honda: revert to button enable on Nidec (commaai#23828)

* Honda: revert to button enable on Nidec

* fix test

* bump panda

Added (Ecu.eps) fingerprint for Hyundai Ioniq EV 2017 (commaai#23823)

fix mac_setup w/ tools+plotjuggler (commaai#23552)

* fix pycurl issue:
* use newer curl backend for pip install
* update lib paths based on brew prefix
* fix cert issue when using pycurl using certifi
* make output setup nicer

* fix linter

* typo

* dont need that actually

* revert

* pipenv in brew

* forgot this

* make brew available on fresh install

* undo

* more undo

* oops

* use sytem curl, but homebrew openssl

replay: use QCoreApplication (commaai#23831)

scons: use correct brew prefix (commaai#23833)

replay: use VideoToolbox HW decoder on Mac (commaai#23832)

* replay: support VideoToolbox HW decoding

* rename flag

* remove debug assert

Fix watch3 on mac (commaai#23834)

this seems to about what my car converges to (commaai#23836)

boardd: handle missing pandas

Subaru: remove Impreza CAN fingerprints (commaai#23841)

* Subaru: remove Impreza CAN fingerprints

* fix process replay

* update refs

Toyota: remove outdated comment (commaai#23844)

Remove unused MPC_COST_LONG class (commaai#23843)

Faster cruise max

Update interface.py

:warning: Remove Test Branch Warning; Disable Updates; Remove Prime Ad

Disabling of not tested branch warning should only affect
users with ssh access to repo (me) and only the main Rav4-TSS2
branch.  Disabled in a way that hopefully doesn't harm comma's
metrics.

Update interface.py

faster accel max

Use INDI instead of LQR for select Toyota's

Add camry to indi

bump up gain 10% Prius tss2

INDI instead of LQR for Prius tss2

INDI

Update interface.py

Lower PID for smoother wheel

Update tunes.py

Update interface.py

Update tunes.py

Update interface.py

almost stock accel max

This reverts commit 9c775d0.

Stockify accel

Faster accel from start

rearrange

Steering fault fix

Update safety_toyota.h

Update carcontroller.py

Steering fault fix

fault fix 1

fix conflict

Rename oops

Classic comma spinner

'2' boot logo

smaller '2'

Revert "smaller '2'"

This reverts commit 629267e.

i think its fixed now

Revert "Steering fault fix"

This reverts commit 4b33fea.

Revert "rearrange"

This reverts commit b054950.

Revert "Faster accel from start"

This reverts commit 03dac75.

Remove op long toggle since it's broken

fixed traffic TF

This reverts commit 6be8366.

fixed traffic TF

Revert ":warning: Remove Test Branch Warning; Disable Updates; Remove Prime Ad"

This reverts commit 11afa4c.

tiny bit more boost at take-off

Features list

Features list

Update README.md

offset to match dash

not just prius

speed factor hack for Prius

speed factor hack for Prius

Update carstate.py

offset speed to match dash

Dev UI

Dev UI

Update img_brake_disc.png

Update onroad.cc

Update onroad.cc

add signal for brake disc

Update onroad.cc

NEOS 20

Turning the speed Red

rename

Turning the speed Red

hotFix

add Rav4 to INDI

Update interface.py

Update longitudinal_planner.py

Typo oops

Co-Authored-By: Comma Device <device@comma.ai>
Co-Authored-By: Willem Melching <willem.melching@gmail.com>
  • Loading branch information
3 people authored and Casey Francis committed Jun 10, 2022
1 parent 129a6f2 commit 7a7c512
Show file tree
Hide file tree
Showing 28 changed files with 456 additions and 53 deletions.
24 changes: 23 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
*Based off of Keegans stuff*
*This fork includes the following additions*:

- 3 follow distances, 1.8, 1.45, 1.2 m/s (Toyota only) (Thanks @Keegan)
- Red mph when braking (Thanks @alexandresato)
- Brake disc icon when braking (Thanks @Berno22)
- DevUI with steering angles and lead distance (Thanks @wirelessnet2)
- Rainbow path (changes colors when turning)
- Legacy engage/disgage sounds
- NEOS 20 for bootloop fix (Thanks @Erich)
- INDI steer controllers for Camry/Prius/Rav4 Tss 2.0 (toggle) (Thanks @kumar)
- LQR steer controller for Civic / Accord / CRV (toggle)
- No disengage on brake (toggle)
- Device turns off 3 hours after shutting the car down
- Modded fw detection and tuning for eps mod, Civics / CRV.

- If this fork has helped you, please consider donating to my paypal:
- https://www.paypal.com/donate/?hosted_button_id=ZJQD2YEQEFVHY
- ![myqrcode](https://user-images.githubusercontent.com/46506059/172424461-c195174a-6450-4b84-ac25-e8632d49fceb.png)



WARNING
------

Expand Down Expand Up @@ -112,4 +134,4 @@ User shall indemnify and hold harmless Author and its directors, officers, emplo

**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.**
NO WARRANTY EXPRESSED OR IMPLIED.**
4 changes: 4 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Version 0.8.13.1 (2022-04-27)
========================
* NEOS 20: improved reliability

Version 0.8.13 (2022-02-18)
========================
* Improved driver monitoring
Expand Down
5 changes: 4 additions & 1 deletion cereal/car.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,9 @@ struct CarState {
# clutch (manual transmission only)
clutchPressed @28 :Bool;

lkMode @39 :Bool;
engineRPM @40 :Float32;

# which packets this state came from
canMonoTimes @12: List(UInt64);

Expand All @@ -196,7 +199,7 @@ struct CarState {
rightBlindspot @34 :Bool; # Is there something blocking the right lane change

# KRKeegan toyota distance lines
distanceLines @39 :UInt8;
distanceLines @41 :UInt8;

struct WheelSpeeds {
# optional wheel speeds
Expand Down
2 changes: 1 addition & 1 deletion launch_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export OPENBLAS_NUM_THREADS=1
export VECLIB_MAXIMUM_THREADS=1

if [ -z "$REQUIRED_NEOS_VERSION" ]; then
export REQUIRED_NEOS_VERSION="19.1"
export REQUIRED_NEOS_VERSION="20"
fi

if [ -z "$AGNOS_VERSION" ]; then
Expand Down
Binary file added selfdrive/assets/img_brake_disc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified selfdrive/assets/img_chffr_wheel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified selfdrive/assets/sounds/disengage.wav
Binary file not shown.
Binary file modified selfdrive/assets/sounds/engage.wav
Binary file not shown.
3 changes: 3 additions & 0 deletions selfdrive/car/honda/carstate.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

def get_can_signals(CP, gearbox_msg, main_on_sig_msg):
signals = [
("ENGINE_RPM", "POWERTRAIN_DATA"),
("XMISSION_SPEED", "ENGINE_DATA"),
("WHEEL_SPEED_FL", "WHEEL_SPEEDS"),
("WHEEL_SPEED_FR", "WHEEL_SPEEDS"),
Expand Down Expand Up @@ -167,6 +168,7 @@ def __init__(self, CP):
self.brake_switch_active = False
self.cruise_setting = 0
self.v_cruise_pcm_prev = 0
self.engineRPM = 0

def update(self, cp, cp_cam, cp_body):
ret = car.CarState.new_message()
Expand Down Expand Up @@ -229,6 +231,7 @@ def update(self, cp, cp_cam, cp_body):
ret.leftBlinker, ret.rightBlinker = self.update_blinker_from_stalk(
250, cp.vl["SCM_FEEDBACK"]["LEFT_BLINKER"], cp.vl["SCM_FEEDBACK"]["RIGHT_BLINKER"])
ret.brakeHoldActive = cp.vl["VSA_STATUS"]["BRAKE_HOLD_ACTIVE"] == 1
self.engineRPM = cp.vl["POWERTRAIN_DATA"]["ENGINE_RPM"]

if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.ODYSSEY_CHN, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORDH, CAR.CIVIC_BOSCH,
CAR.CIVIC_BOSCH_DIESEL, CAR.CRV_HYBRID, CAR.INSIGHT, CAR.ACURA_RDX_3G, CAR.HONDA_E):
Expand Down
86 changes: 75 additions & 11 deletions selfdrive/car/honda/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,19 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
# modified filter output values: 0x009F, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0400, 0x0480
# note: max request allowed is 4096, but request is capped at 3840 in firmware, so modifications result in 2x max
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 2560, 8000], [0, 2560, 3840]]
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.3], [0.1]]
# Use LQR tune if param is set
if Params().get_bool('LqrTune'):
ret.lateralTuning.init('lqr')
ret.lateralTuning.lqr.scale = 1200.0
ret.lateralTuning.lqr.ki = 0.02
ret.lateralTuning.lqr.a = [0., 1., -0.22619643, 1.21822268]
ret.lateralTuning.lqr.b = [-1.92006585e-04, 3.95603032e-05]
ret.lateralTuning.lqr.c = [1., 0.]
ret.lateralTuning.lqr.k = [-110.73572306, 451.22718255]
ret.lateralTuning.lqr.l = [0.3233671, 0.3185757]
ret.lateralTuning.lqr.dcGain = 0.002737852961363602
else:
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.3], [0.1]]
else:
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 2560], [0, 2560]]
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[1.1], [0.33]]
Expand All @@ -109,9 +121,25 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
ret.wheelbase = CivicParams.WHEELBASE
ret.centerToFront = CivicParams.CENTER_TO_FRONT
ret.steerRatio = 15.38 # 10.93 is end-to-end spec
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
if eps_modified:
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 2564, 8000], [0, 2564, 3840]]
# Use LQR tune if param is set
if Params().get_bool('LqrTune'):
ret.lateralTuning.init('lqr')
ret.lateralTuning.lqr.scale = 1200.0
ret.lateralTuning.lqr.ki = 0.1
ret.lateralTuning.lqr.a = [0., 1., -0.22619643, 1.21822268]
ret.lateralTuning.lqr.b = [-1.92006585e-04, 3.95603032e-05]
ret.lateralTuning.lqr.c = [1., 0.]
ret.lateralTuning.lqr.k = [-110.73572306, 451.22718255]
ret.lateralTuning.lqr.l = [0.3233671, 0.3185757]
ret.lateralTuning.lqr.dcGain = 0.002237852961363602
else:
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.36], [0.108]] #minus 10% from 0.4, 0.12
else:
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.8], [0.24]]
tire_stiffness_factor = 1.
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.8], [0.24]]

elif candidate in (CAR.ACCORD, CAR.ACCORDH):
stop_and_go = True
Expand All @@ -120,13 +148,21 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
ret.centerToFront = ret.wheelbase * 0.39
ret.steerRatio = 16.33 # 11.82 is spec end-to-end
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 4096], [0, 4096]] # TODO: determine if there is a dead zone at the top end
tire_stiffness_factor = 0.8467

if eps_modified:
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.3], [0.09]]
# Use LQR tune if param is set
if Params().get_bool('LqrTune'):
ret.lateralTuning.init('lqr')
ret.lateralTuning.lqr.scale = 1200.0
ret.lateralTuning.lqr.ki = 0.1
ret.lateralTuning.lqr.a = [0., 1., -0.22619643, 1.21822268]
ret.lateralTuning.lqr.b = [-1.92006585e-04, 3.95603032e-05]
ret.lateralTuning.lqr.c = [1., 0.]
ret.lateralTuning.lqr.k = [-110.73572306, 451.22718255]
ret.lateralTuning.lqr.l = [0.3233671, 0.3185757]
ret.lateralTuning.lqr.dcGain = 0.002237852961363602
else:
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.6], [0.18]]

tire_stiffness_factor = 0.8467

elif candidate == CAR.ACURA_ILX:
stop_and_go = False
ret.mass = 3095. * CV.LB_TO_KG + STD_CARGO_KG
Expand Down Expand Up @@ -159,7 +195,19 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
# stock request output values: 0x0000, 0x0500, 0x0A15, 0x0E6D, 0x1100, 0x1200, 0x129A, 0x134D, 0x1400
# modified request output values: 0x0000, 0x0500, 0x0A15, 0x0E6D, 0x1100, 0x1200, 0x1ACD, 0x239A, 0x2800
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 2560, 10000], [0, 2560, 3840]]
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.21], [0.07]]
# Use LQR tune if param is set
if Params().get_bool('LqrTune'):
ret.lateralTuning.init('lqr')
ret.lateralTuning.lqr.scale = 1200.0
ret.lateralTuning.lqr.ki = 0.1
ret.lateralTuning.lqr.a = [0., 1., -0.22619643, 1.21822268]
ret.lateralTuning.lqr.b = [-1.92006585e-04, 3.95603032e-05]
ret.lateralTuning.lqr.c = [1., 0.]
ret.lateralTuning.lqr.k = [-110.73572306, 451.22718255]
ret.lateralTuning.lqr.l = [0.3233671, 0.3185757]
ret.lateralTuning.lqr.dcGain = 0.002237852961363602
else:
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.21], [0.07]]
else:
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 3840], [0, 3840]]
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.64], [0.192]]
Expand Down Expand Up @@ -224,11 +272,25 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
ret.mass = 4068. * CV.LB_TO_KG + STD_CARGO_KG
ret.wheelbase = 2.75
ret.centerToFront = ret.wheelbase * 0.41
ret.steerRatio = 11.95 # as spec
ret.steerRatio = 16.0 #11.95 is spec
ret.lateralParams.torqueBP, ret.lateralParams.torqueV = [[0, 3840], [0, 3840]]
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.2], [0.06]]
# Use LQR tune if param is set
if Params().get_bool('LqrTune'):
ret.lateralTuning.init('lqr')
ret.lateralTuning.lqr.scale = 1200.0
ret.lateralTuning.lqr.ki = 0.1
ret.lateralTuning.lqr.a = [0., 1., -0.22619643, 1.21822268]
ret.lateralTuning.lqr.b = [-1.92006585e-04, 3.95603032e-05]
ret.lateralTuning.lqr.c = [1., 0.]
ret.lateralTuning.lqr.k = [-110.73572306, 451.22718255]
ret.lateralTuning.lqr.l = [0.3233671, 0.3185757]
ret.lateralTuning.lqr.dcGain = 0.002237852961363602
else:
ret.lateralTuning.pid.kpV, ret.lateralTuning.pid.kiV = [[0.2], [0.06]]
ret.lateralTuning.pid.kf = 0.00007818594
tire_stiffness_factor = 0.677


elif candidate == CAR.ODYSSEY:
stop_and_go = False
ret.mass = 4471. * CV.LB_TO_KG + STD_CARGO_KG
Expand Down Expand Up @@ -340,6 +402,8 @@ def update(self, c, can_strings):

ret.canValid = self.cp.can_valid and self.cp_cam.can_valid and (self.cp_body is None or self.cp_body.can_valid)

ret.lkMode = self.CS.lkMode
ret.engineRPM = self.CS.engineRPM
buttonEvents = []

if self.CS.cruise_buttons != self.CS.prev_cruise_buttons:
Expand Down
9 changes: 9 additions & 0 deletions selfdrive/car/honda/values.py
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,15 @@ class CAR:
b'39990-TGG-J510\x00\x00',
b'39990-TGL-E130\x00\x00',
b'39990-TGN-E120\x00\x00',
b'39990-TBA,C020\x00\x00',
b'39990-TBA,C120\x00\x00',
b'39990-TEA,T820\x00\x00',
b'39990-TEZ,T020\x00\x00',
b'39990-TGG,A020\x00\x00',
b'39990-TGG,A120\x00\x00',
b'39990-TGG,J510\x00\x00',
b'39990-TGL,E130\x00\x00',
b'39990-TGN,E120\x00\x00',
],
(Ecu.srs, 0x18da53f1, None): [
b'77959-TBA-A060\x00\x00',
Expand Down
2 changes: 2 additions & 0 deletions selfdrive/car/toyota/carstate.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ def update(self, cp, cp_cam):

ret.brakePressed = cp.vl["BRAKE_MODULE"]["BRAKE_PRESSED"] != 0
ret.brakeHoldActive = cp.vl["ESP_CONTROL"]["BRAKE_HOLD_ACTIVE"] == 1
ret.brakeLightsDEPRECATED = bool(cp.vl["ESP_CONTROL"]["BRAKE_LIGHTS_ACC"] or ret.brakePressed or ret.brakeHoldActive)
if self.CP.enableGasInterceptor:
ret.gas = (cp.vl["GAS_SENSOR"]["INTERCEPTOR_GAS"] + cp.vl["GAS_SENSOR"]["INTERCEPTOR_GAS2"]) / 2.
ret.gasPressed = ret.gas > 15
Expand Down Expand Up @@ -161,6 +162,7 @@ def get_can_parser(CP):
("TURN_SIGNALS", "BLINKERS_STATE"),
("LKA_STATE", "EPS_STATUS"),
("AUTO_HIGH_BEAM", "LIGHT_STALK"),
("BRAKE_LIGHTS_ACC", "ESP_CONTROL", 0)
]

checks = [
Expand Down
37 changes: 31 additions & 6 deletions selfdrive/car/toyota/interface.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
from cereal import car
from common.numpy_fast import interp
from common.params import Params
from selfdrive.config import Conversions as CV
from selfdrive.car.toyota.tunes import LatTunes, LongTunes, set_long_tune, set_lat_tune
from selfdrive.car.toyota.values import Ecu, CAR, ToyotaFlags, TSS2_CAR, NO_DSU_CAR, MIN_ACC_SPEED, EPS_SCALE, EV_HYBRID_CAR, CarControllerParams
Expand Down Expand Up @@ -91,7 +92,13 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
ret.steerRatio = 13.7
tire_stiffness_factor = 0.7933
ret.mass = 3400. * CV.LB_TO_KG + STD_CARGO_KG # mean between normal and hybrid
set_lat_tune(ret.lateralTuning, LatTunes.PID_C)
if Params().get_bool('LqrTune'):
set_lat_tune(ret.lateralTuning, LatTunes.INDI_PRIUS_TSS2)
ret.steerActuatorDelay = 0.3
ret.steerRateCost = 1.25
ret.steerLimitTimer = 0.5
else:
set_lat_tune(ret.lateralTuning, LatTunes.PID_C)

elif candidate in (CAR.HIGHLANDER_TSS2, CAR.HIGHLANDERH_TSS2):
stop_and_go = True
Expand Down Expand Up @@ -122,13 +129,25 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
ret.steerRatio = 14.3
tire_stiffness_factor = 0.7933
ret.mass = 3585. * CV.LB_TO_KG + STD_CARGO_KG # Average between ICE and Hybrid
set_lat_tune(ret.lateralTuning, LatTunes.PID_D)
if Params().get_bool('LqrTune'):
set_lat_tune(ret.lateralTuning, LatTunes.INDI_RAV4_TSS2)
ret.steerActuatorDelay = 0.3
ret.steerRateCost = 1.25
ret.steerLimitTimer = 0.5
else:
set_lat_tune(ret.lateralTuning, LatTunes.PID_D)

# 2019+ Rav4 TSS2 uses two different steering racks and specific tuning seems to be necessary.
# See https://github.com/commaai/openpilot/pull/21429#issuecomment-873652891
for fw in car_fw:
if fw.ecu == "eps" and (fw.fwVersion.startswith(b'\x02') or fw.fwVersion in [b'8965B42181\x00\x00\x00\x00\x00\x00']):
set_lat_tune(ret.lateralTuning, LatTunes.PID_I)
if Params().get_bool('LqrTune'):
set_lat_tune(ret.lateralTuning, LatTunes.INDI_RAV4_TSS2)
ret.steerActuatorDelay = 0.3
ret.steerRateCost = 1.25
ret.steerLimitTimer = 0.5
else:
set_lat_tune(ret.lateralTuning, LatTunes.PID_I)
break

elif candidate in (CAR.COROLLA_TSS2, CAR.COROLLAH_TSS2):
Expand Down Expand Up @@ -181,10 +200,16 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
elif candidate == CAR.PRIUS_TSS2:
stop_and_go = True
ret.wheelbase = 2.70002 # from toyota online sepc.
ret.steerRatio = 13.4 # True steerRatio from older prius
ret.steerRatio = 13.4 # unknown end-to-end spec
tire_stiffness_factor = 0.6371 # hand-tune
ret.mass = 3115. * CV.LB_TO_KG + STD_CARGO_KG
set_lat_tune(ret.lateralTuning, LatTunes.PID_N)
if Params().get_bool('LqrTune'):
set_lat_tune(ret.lateralTuning, LatTunes.INDI_PRIUS_TSS2)
ret.steerActuatorDelay = 0.3
ret.steerRateCost = 1.25
ret.steerLimitTimer = 0.5
else:
set_lat_tune(ret.lateralTuning, LatTunes.PID_N)

elif candidate == CAR.MIRAI:
stop_and_go = True
Expand Down Expand Up @@ -240,7 +265,7 @@ def get_params(candidate, fingerprint=gen_empty_fingerprint(), car_fw=[]): # py
# Improved longitudinal tune settings from sshane
ret.vEgoStopping = 0.2 # car is near 0.1 to 0.2 when car starts requesting stopping accel
ret.vEgoStarting = 0.2 # needs to be > or == vEgoStopping
ret.stoppingDecelRate = 0.4 # reach stopping target smoothly - seems to take 0.5 seconds to go from 0 to -0.4
ret.stoppingDecelRate = 0.3 # reach stopping target smoothly - seems to take 0.5 seconds to go from 0 to -0.4
ret.longitudinalActuatorDelayLowerBound = 0.3
ret.longitudinalActuatorDelayUpperBound = 0.3
else:
Expand Down
28 changes: 28 additions & 0 deletions selfdrive/car/toyota/tunes.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ class LatTunes(Enum):
PID_L = 13
PID_M = 14
PID_N = 15
INDI_PRIUS_TSS2 = 16
INDI_RAV4_TSS2 = 17



###### LONG ######
Expand Down Expand Up @@ -61,6 +64,31 @@ def set_lat_tune(tune, name):
tune.indi.actuatorEffectivenessBP = [0.]
tune.indi.actuatorEffectivenessV = [1.0]

elif name == LatTunes.INDI_PRIUS_TSS2:
tune.init('indi')
tune.indi.innerLoopGainBP = [20, 24, 30]
tune.indi.innerLoopGainV = [7.25, 7.5, 9]
tune.indi.outerLoopGainBP = [20, 24, 30]
tune.indi.outerLoopGainV = [6, 7.25, 6]
tune.indi.timeConstantBP = [20, 24]
tune.indi.timeConstantV = [2.0, 2.2]
tune.indi.actuatorEffectivenessBP = [20, 24]
tune.indi.actuatorEffectivenessV = [2, 3]

elif name == LatTunes.INDI_RAV4_TSS2:
tune.init('indi')
tune.indi.innerLoopGainBP = [5.0, 8.3, 11.1, 12.10, 13.9, 16.7, 18, 20, 25, 30]
tune.indi.innerLoopGainV = [3.13, 5.2, 6.66, 7.8, 8.8, 10, 10.8, 12, 15, 15]
tune.indi.outerLoopGainBP = [5.0, 8.3, 11.1, 12.10, 13.9, 16.7, 18, 20, 25, 30]
tune.indi.outerLoopGainV = [2.9, 4.97, 6.51, 7.65, 8.58, 9.78, 10.58, 11.83, 14.9, 14.998]
# inner - outer difference 0.23, 0.23, 0.15, 0.15, 0.22, 0.22 , 0.22, 0.16, 0.1, 0.002
tune.indi.timeConstantBP = [5.0, 8.33, 11.1, 13.9, 16.7, 17.5, 18, 20, 22.5, 23.88, 23.89, 30, 40]
tune.indi.timeConstantV = [0.1461, 0.2427, 0.27871, 0.3, 0,3, 0.3, 0.5, 0.6250, 0.85, 1.1, 2.2, 2.6, 3.2]
#tune.indi.timeConstantV = [0.1461, 0.2427, 0.27871, 0.312, 0,315, 0.32, 0.525, 0.6250, 0.85, 1.1, 1.2, 2.3, 2.6]
tune.indi.actuatorEffectivenessBP = [10, 13, 14, 25, 33]
tune.indi.actuatorEffectivenessV = [15, 13, 13, 15, 15]


elif name == LatTunes.LQR_RAV4:
tune.init('lqr')
tune.lqr.scale = 1500.0
Expand Down
1 change: 1 addition & 0 deletions selfdrive/common/params.cc
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ std::unordered_map<std::string, uint32_t> keys = {
{"Offroad_TemperatureTooHigh", CLEAR_ON_MANAGER_START},
{"Offroad_UnofficialHardware", CLEAR_ON_MANAGER_START},
{"Offroad_UpdateFailed", CLEAR_ON_MANAGER_START},
{"LqrTune", PERSISTENT},
};

} // namespace
Expand Down
2 changes: 1 addition & 1 deletion selfdrive/common/version.h
Original file line number Diff line number Diff line change
@@ -1 +1 @@
#define COMMA_VERSION "0.8.13"
#define COMMA_VERSION "0.8.13.1"
Loading

0 comments on commit 7a7c512

Please sign in to comment.