Skip to content

Commit 9e28244

Browse files
authored
Merge pull request #118 from arne182/dynamic-follow
Dynamic follow
2 parents 2d2de1e + c66d36d commit 9e28244

File tree

3 files changed

+36
-10
lines changed

3 files changed

+36
-10
lines changed

selfdrive/car/honda/carstate.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,15 @@ def get_can_signals(CP):
7373
("VSA_STATUS", 50),
7474
("SCM_BUTTONS", 25),
7575
]
76-
76+
77+
if CP.carFingerprint == CAR.CRV_HYBRID:
78+
checks += [
79+
("GEARBOX", 50),
80+
]
81+
7782
if CP.radarOffCan:
7883
# Civic is only bosch to use the same brake message as other hondas.
79-
if CP.carFingerprint not in (CAR.ACCORDH, CAR.CIVIC_BOSCH):
84+
if CP.carFingerprint not in (CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CRV_HYBRID):
8085
signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)]
8186
checks += [("BRAKE_MODULE", 50)]
8287
signals += [("CAR_GAS", "GAS_PEDAL_2", 0),
@@ -94,7 +99,7 @@ def get_can_signals(CP):
9499
checks += [("CRUISE_PARAMS", 50),
95100
("STANDSTILL", 50)]
96101

97-
if CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH):
102+
if CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CRV_HYBRID):
98103
signals += [("DRIVERS_DOOR_OPEN", "SCM_FEEDBACK", 1)]
99104
else:
100105
signals += [("DOOR_OPEN_FL", "DOORS_STATUS", 1),
@@ -306,7 +311,7 @@ def update(self, cp, cp_cam):
306311

307312
# ******************* parse out can *******************
308313

309-
if self.CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH): # TODO: find wheels moving bit in dbc
314+
if self.CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CRV_HYBRID): # TODO: find wheels moving bit in dbc
310315
self.standstill = cp.vl["ENGINE_DATA"]['XMISSION_SPEED'] < 0.1
311316
self.door_all_closed = not cp.vl["SCM_FEEDBACK"]['DRIVERS_DOOR_OPEN']
312317
else:
@@ -364,7 +369,7 @@ def update(self, cp, cp_cam):
364369
self.left_blinker_on = cp.vl["SCM_FEEDBACK"]['LEFT_BLINKER']
365370
self.right_blinker_on = cp.vl["SCM_FEEDBACK"]['RIGHT_BLINKER']
366371

367-
if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH):
372+
if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CRV_HYBRID):
368373
self.park_brake = cp.vl["EPB_STATUS"]['EPB_STATE'] != 0
369374
self.brake_hold = cp.vl["VSA_STATUS"]['BRAKE_HOLD_ACTIVE']
370375
self.main_on = cp.vl["SCM_FEEDBACK"]['MAIN_ON']
@@ -391,7 +396,7 @@ def update(self, cp, cp_cam):
391396
if self.CP.radarOffCan:
392397
self.stopped = cp.vl["ACC_HUD"]['CRUISE_SPEED'] == 252.
393398
self.cruise_speed_offset = calc_cruise_offset(0, self.v_ego)
394-
if self.CP.carFingerprint in (CAR.CIVIC_BOSCH, CAR.ACCORDH):
399+
if self.CP.carFingerprint in (CAR.CIVIC_BOSCH, CAR.ACCORDH, CAR.CRV_HYBRID):
395400
self.brake_switch = cp.vl["POWERTRAIN_DATA"]['BRAKE_SWITCH']
396401
self.brake_pressed = cp.vl["POWERTRAIN_DATA"]['BRAKE_PRESSED'] or \
397402
(self.brake_switch and self.brake_switch_prev and \

selfdrive/car/honda/interface.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,21 @@ def get_params(candidate, fingerprint):
259259
ret.longitudinalKpV = [1.2, 0.8, 0.5]
260260
ret.longitudinalKiBP = [0., 35.]
261261
ret.longitudinalKiV = [0.18, 0.12]
262-
262+
263+
elif candidate == CAR.CRV_HYBRID:
264+
stop_and_go = True
265+
ret.safetyParam = 1 # Accord and CRV 5G use an alternate user brake msg
266+
ret.mass = 1667. + std_cargo # mean of 4 models in kg
267+
ret.wheelbase = 2.66
268+
ret.centerToFront = ret.wheelbase * 0.41
269+
ret.steerRatio = 16.0 # 12.3 is spec end-to-end
270+
tire_stiffness_factor = 0.677
271+
ret.steerKpV, ret.steerKiV = [[0.6], [0.18]]
272+
ret.longitudinalKpBP = [0., 5., 35.]
273+
ret.longitudinalKpV = [1.2, 0.8, 0.5]
274+
ret.longitudinalKiBP = [0., 35.]
275+
ret.longitudinalKiV = [0.18, 0.12]
276+
263277
elif candidate == CAR.ACURA_RDX:
264278
stop_and_go = False
265279
ret.mass = 3935 * CV.LB_TO_KG + std_cargo

selfdrive/car/honda/values.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class CAR:
6565
ACURA_ILX = "ACURA ILX 2016 ACURAWATCH PLUS"
6666
CRV = "HONDA CR-V 2016 TOURING"
6767
CRV_5G = "HONDA CR-V 2017 EX"
68+
CRV_HYBRID = "HONDA CR-V 2019 HYBRID"
6869
ODYSSEY = "HONDA ODYSSEY 2018 EX-L"
6970
ACURA_RDX = "ACURA RDX 2018 ACURAWATCH PLUS"
7071
PILOT = "HONDA PILOT 2017 TOURING"
@@ -96,10 +97,13 @@ class CAR:
9697
57: 3, 148: 8, 228: 5, 304: 8, 330: 8, 344: 8, 380: 8, 399: 7, 401: 8, 420: 8, 427: 3, 428: 8, 432: 7, 441: 5, 450: 8, 464: 8, 470: 2, 476: 7, 477: 8, 479: 8, 490: 8, 493: 5, 495: 8, 506: 8, 545: 6, 597: 8, 662: 4, 773: 7, 777: 8, 780: 8, 795: 8, 800: 8, 804: 8, 806: 8, 808: 8, 829: 5, 862: 8, 884: 8, 891: 8, 892: 8, 927: 8, 929: 8, 985: 3, 1024: 5, 1027: 5, 1029: 8, 1036: 8, 1039: 8, 1108: 8, 1302: 8, 1322: 5, 1361: 5, 1365: 5, 1424: 5, 1600: 5, 1601: 8, 1633: 8,
9798
}],
9899
CAR.CRV: [{
99-
57: 3, 145: 8, 316: 8, 340: 8, 342: 6, 344: 8, 380: 8, 398: 3, 399: 6, 401: 8, 404: 4, 420: 8, 422: 8, 426: 8, 432: 7, 464: 8, 474: 5, 476: 4, 487: 4, 490: 8, 493: 3, 506: 8, 507: 1, 512: 6, 513: 6, 542: 7, 545: 4, 597: 8, 660: 8, 661: 4, 773: 7, 777: 8, 780: 8, 800: 8, 804: 8, 808: 8, 829: 5, 882: 2, 884: 7, 888: 8, 891: 8, 892: 8, 923: 2, 929: 8, 983: 8, 985: 3, 1024: 5, 1027: 5, 1029: 8, 1033: 5, 1036: 8, 1039: 8, 1057: 5, 1064: 7, 1108: 8, 1125: 8, 1296: 8, 1365: 5, 1424: 5, 1600: 5, 1601: 8,
100+
57: 3, 145: 8, 316: 8, 340: 8, 342: 6, 344: 8, 380: 8, 398: 3, 399: 6, 401: 8, 404: 4, 420: 8, 422: 8, 426: 8, 432: 7, 464: 8, 474: 5, 476: 4, 487: 4, 490: 8, 493: 3, 506: 8, 507: 1, 512: 6, 513: 6, 542: 7, 545: 4, 597: 8, 660: 8, 661: 4, 773: 7, 777: 8, 780: 8, 800: 8, 804: 8, 808: 8, 829: 5, 882: 2, 884: 7, 888: 8, 891: 8, 892: 8, 923: 2, 929: 8, 983: 8, 985: 3, 1024: 5, 1027: 5, 1029: 8, 1033: 5, 1036: 8, 1039: 8, 1057: 5, 1064: 7, 1108: 8, 1125: 8, 1296: 8, 1365: 5, 1424: 5, 1600: 5, 1601: 8
100101
}],
101102
CAR.CRV_5G: [{
102-
57: 3, 148: 8, 199: 4, 228: 5, 231: 5, 232: 7, 304: 8, 330: 8, 340: 8, 344: 8, 380: 8, 399: 7, 401: 8, 420: 8, 423: 2, 427: 3, 428: 8, 432: 7, 441: 5, 446: 3, 450: 8, 464: 8, 467: 2, 469: 3, 470: 2, 474: 8, 476: 7, 477: 8, 479: 8, 490: 8, 493: 5, 495: 8, 507: 1, 545: 6, 597: 8, 661: 4, 662: 4, 773: 7, 777: 8, 780: 8, 795: 8, 800: 8, 804: 8, 806: 8, 808: 8, 814: 4, 815: 8, 817: 4, 825: 4, 829: 5, 862: 8, 881: 8, 882: 4, 884: 8, 888: 8, 891: 8, 927: 8, 918: 7, 929: 8, 983: 8, 985: 3, 1024: 5, 1027: 5, 1029: 8, 1036: 8, 1039: 8, 1064: 7, 1108: 8, 1092: 1, 1115: 4, 1125: 8, 1127: 2, 1296: 8, 1302: 8, 1322: 5, 1361: 5, 1365: 5, 1424: 5, 1600: 5, 1601: 8, 1618: 5, 1633: 8, 1670: 5
103+
57: 3, 148: 8, 199: 4, 228: 5, 231: 5, 232: 7, 304: 8, 330: 8, 340: 8, 344: 8, 380: 8, 399: 7, 401: 8, 420: 8, 423: 2, 427: 3, 428: 8, 432: 7, 441: 5, 446: 3, 450: 8, 464: 8, 467: 2, 469: 3, 470: 2, 474: 8, 476: 7, 477: 8, 479: 8, 490: 8, 493: 5, 495: 8, 507: 1, 545: 6, 597: 8, 661: 4, 662: 4, 773: 7, 777: 8, 780: 8, 795: 8, 800: 8, 804: 8, 806: 8, 808: 8, 814: 4, 815: 8, 817: 4, 825: 4, 829: 5, 862: 8, 881: 8, 882: 4, 884: 8, 888: 8, 891: 8, 927: 8, 918: 7, 929: 8, 983: 8, 985: 3, 1024: 5, 1027: 5, 1029: 8, 1036: 8, 1039: 8, 1064: 7, 1108: 8, 1092: 1, 1093: 4, 1115: 4, 1125: 8, 1127: 2, 1296: 8, 1302: 8, 1322: 5, 1361: 5, 1365: 5, 1424: 5, 1600: 5, 1601: 8, 1618: 5, 1626: 5, 1627: 5, 1633: 8, 1670: 5
104+
}],
105+
CAR.CRV_HYBRID: [{
106+
57: 3, 148: 8, 228: 5, 304: 8, 330: 8, 344: 8, 380: 8, 387: 8, 388: 8, 399: 7, 419: 8, 420: 8, 427: 3, 432: 7, 441: 5, 450: 8, 464: 8, 477: 8, 479: 8, 490: 8, 495: 8, 525: 8, 531: 8, 545: 6, 662: 4, 773: 7, 777: 8, 780: 8, 804: 8, 806: 8, 808: 8, 814: 4, 829: 5, 833: 6, 862: 8, 884: 8, 891: 8, 927: 8, 929: 8, 1302: 8, 1361: 5, 1365: 5, 1600: 5, 1601: 8
103107
}],
104108
# 2018 Odyssey w/ Added Comma Pedal Support (512L & 513L)
105109
CAR.ODYSSEY: [{
@@ -140,6 +144,7 @@ class CAR:
140144
CAR.CIVIC_BOSCH: dbc_dict('honda_civic_hatchback_ex_2017_can_generated', None),
141145
CAR.CRV: dbc_dict('honda_crv_touring_2016_can_generated', 'acura_ilx_2016_nidec'),
142146
CAR.CRV_5G: dbc_dict('honda_crv_ex_2017_can_generated', None),
147+
CAR.CRV_HYBRID: dbc_dict('honda_crv_hybrid_2019_can_generated', None),
143148
CAR.ODYSSEY: dbc_dict('honda_odyssey_exl_2018_generated', 'acura_ilx_2016_nidec'),
144149
CAR.PILOT: dbc_dict('honda_pilot_touring_2017_can_generated', 'acura_ilx_2016_nidec'),
145150
CAR.PILOT_2019: dbc_dict('honda_pilot_touring_2017_can_generated', 'acura_ilx_2016_nidec'),
@@ -156,6 +161,7 @@ class CAR:
156161
CAR.CIVIC_BOSCH: 1200,
157162
CAR.CRV: 1200,
158163
CAR.CRV_5G: 1200,
164+
CAR.CRV_HYBRID: 1200,
159165
CAR.ODYSSEY: 1200,
160166
CAR.PILOT: 1200,
161167
CAR.PILOT_2019: 1200,
@@ -172,11 +178,12 @@ class CAR:
172178
CAR.CIVIC_BOSCH: 1.,
173179
CAR.CRV: 1.025,
174180
CAR.CRV_5G: 1.025,
181+
CAR.CRV_HYBRID: 1.025,
175182
CAR.ODYSSEY: 1.,
176183
CAR.PILOT: 1.,
177184
CAR.PILOT_2019: 1.,
178185
CAR.RIDGELINE: 1.,
179186
}
180187

181188
# TODO: get these from dbc file
182-
HONDA_BOSCH = [CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CRV_5G]
189+
HONDA_BOSCH = [CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_BOSCH, CAR.CRV_5G, CAR.CRV_HYBRID]

0 commit comments

Comments
 (0)