From b5e029188341e7e14537a860656254091821ca69 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 06:51:08 -0500 Subject: [PATCH 1/2] Revert "Hyundai CAN-FD Safety: Update vehicle speed conversion accuracy (#1845)" This reverts commit a289e790552f18cf7b1407d43ce883ce3b895ac4. --- opendbc/safety/safety/safety_hyundai_canfd.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/safety/safety/safety_hyundai_canfd.h b/opendbc/safety/safety/safety_hyundai_canfd.h index f0c46e6aa69..093b92952fb 100644 --- a/opendbc/safety/safety/safety_hyundai_canfd.h +++ b/opendbc/safety/safety/safety_hyundai_canfd.h @@ -117,8 +117,8 @@ static void hyundai_canfd_rx_hook(const CANPacket_t *to_push) { vehicle_moving = (speed_avg > HYUNDAI_STANDSTILL_THRSLD); - // average of all 4 wheel speeds. Conversion: raw * 0.03125 / 3.6 = m/s - UPDATE_VEHICLE_SPEED(speed_avg * 0.03125 / 3.6); + // average of all 4 wheel speeds. Conversion: raw * 0.03125 + UPDATE_VEHICLE_SPEED(speed_avg / 4U * 0.03125); } } From efb71f45d7cbf526e9b9d78c27bb3c2ba88a9390 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 06:51:14 -0500 Subject: [PATCH 2/2] Revert "Hyundai CAN-FD: Update wheel speed signal parsing (#1844)" This reverts commit 402b4139d09501165ba261d6e9d2a0b64375745c. --- opendbc/car/hyundai/carstate.py | 8 ++++---- opendbc/dbc/generator/hyundai/hyundai_canfd.dbc | 8 ++++---- opendbc/safety/safety/safety_hyundai_canfd.h | 14 +++----------- opendbc/safety/tests/test_hyundai_canfd.py | 2 +- 4 files changed, 12 insertions(+), 20 deletions(-) diff --git a/opendbc/car/hyundai/carstate.py b/opendbc/car/hyundai/carstate.py index d96888d0fd2..b1d5f017814 100644 --- a/opendbc/car/hyundai/carstate.py +++ b/opendbc/car/hyundai/carstate.py @@ -219,10 +219,10 @@ def update_canfd(self, can_parsers) -> structs.CarState: # TODO: figure out positions ret.wheelSpeeds = self.get_wheel_speeds( - cp.vl["WHEEL_SPEEDS"]["WHL_SpdFLVal"], - cp.vl["WHEEL_SPEEDS"]["WHL_SpdFRVal"], - cp.vl["WHEEL_SPEEDS"]["WHL_SpdRLVal"], - cp.vl["WHEEL_SPEEDS"]["WHL_SpdRRVal"], + cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_1"], + cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_2"], + cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_3"], + cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_4"], ) ret.vEgoRaw = (ret.wheelSpeeds.fl + ret.wheelSpeeds.fr + ret.wheelSpeeds.rl + ret.wheelSpeeds.rr) / 4. ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) diff --git a/opendbc/dbc/generator/hyundai/hyundai_canfd.dbc b/opendbc/dbc/generator/hyundai/hyundai_canfd.dbc index a509053e602..fd1cc625183 100644 --- a/opendbc/dbc/generator/hyundai/hyundai_canfd.dbc +++ b/opendbc/dbc/generator/hyundai/hyundai_canfd.dbc @@ -41,10 +41,10 @@ BO_ 160 WHEEL_SPEEDS: 24 XXX SG_ MOVING_BACKWARD : 57|1@0+ (1,0) [0|1] "" XXX SG_ MOVING_FORWARD2 : 58|1@0+ (1,0) [0|1] "" XXX SG_ MOVING_BACKWARD2 : 59|1@0+ (1,0) [0|1] "" XXX - SG_ WHL_SpdFLVal : 64|14@1+ (0.03125,0) [0|0] "km^h" XXX - SG_ WHL_SpdFRVal : 80|14@1+ (0.03125,0) [0|0] "km^h" XXX - SG_ WHL_SpdRLVal : 96|14@1+ (0.03125,0) [0|0] "km^h" XXX - SG_ WHL_SpdRRVal : 112|14@1+ (0.03125,0) [0|0] "km^h" XXX + SG_ WHEEL_SPEED_1 : 64|16@1+ (0.03125,0) [0|65535] "kph" XXX + SG_ WHEEL_SPEED_2 : 80|16@1+ (0.03125,0) [0|65535] "kph" XXX + SG_ WHEEL_SPEED_3 : 96|16@1+ (0.03125,0) [0|65535] "kph" XXX + SG_ WHEEL_SPEED_4 : 112|16@1+ (0.03125,0) [0|65535] "kph" XXX BO_ 234 MDPS: 24 XXX SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX diff --git a/opendbc/safety/safety/safety_hyundai_canfd.h b/opendbc/safety/safety/safety_hyundai_canfd.h index 093b92952fb..bc8ba153c05 100644 --- a/opendbc/safety/safety/safety_hyundai_canfd.h +++ b/opendbc/safety/safety/safety_hyundai_canfd.h @@ -108,17 +108,9 @@ static void hyundai_canfd_rx_hook(const CANPacket_t *to_push) { // vehicle moving if (addr == 0xa0) { - uint32_t fl = (GET_BYTES(to_push, 8, 2)) & 0x3FFFU; - uint32_t fr = (GET_BYTES(to_push, 10, 2)) & 0x3FFFU; - uint32_t rl = (GET_BYTES(to_push, 12, 2)) & 0x3FFFU; - uint32_t rr = (GET_BYTES(to_push, 14, 2)) & 0x3FFFU; - - uint32_t speed_avg = (fr + rr + rl + fl) / 4U; - - vehicle_moving = (speed_avg > HYUNDAI_STANDSTILL_THRSLD); - - // average of all 4 wheel speeds. Conversion: raw * 0.03125 - UPDATE_VEHICLE_SPEED(speed_avg / 4U * 0.03125); + uint32_t front_left_speed = GET_BYTES(to_push, 8, 2); + uint32_t rear_right_speed = GET_BYTES(to_push, 14, 2); + vehicle_moving = (front_left_speed > HYUNDAI_STANDSTILL_THRSLD) || (rear_right_speed > HYUNDAI_STANDSTILL_THRSLD); } } diff --git a/opendbc/safety/tests/test_hyundai_canfd.py b/opendbc/safety/tests/test_hyundai_canfd.py index 826c0aef538..6acc87d77cf 100755 --- a/opendbc/safety/tests/test_hyundai_canfd.py +++ b/opendbc/safety/tests/test_hyundai_canfd.py @@ -56,7 +56,7 @@ def _torque_cmd_msg(self, torque, steer_req=1): return self.packer.make_can_msg_panda(self.STEER_MSG, self.STEER_BUS, values) def _speed_msg(self, speed): - values = {f"WHL_Spd{pos}Val": speed * 0.03125 for pos in ["FL", "FR", "RL", "RR"]} + values = {f"WHEEL_SPEED_{i}": speed * 0.03125 for i in range(1, 5)} return self.packer.make_can_msg_panda("WHEEL_SPEEDS", self.PT_BUS, values) def _user_brake_msg(self, brake):