openpilot icon indicating copy to clipboard operation
openpilot copied to clipboard

VW MQB: Support for preempted HCA state

Open jyoung8607 opened this issue 1 year ago • 2 comments

Description

VW steering racks support multiple external control channels:

  • DSR (Driver Steering Recommendation, steering input from stability control)
  • HCA (Heading Control Assist / Lane Assist)
  • PLA (Park Assist)

Only one control channel can be active at a time, and in case of multiple control attempts, there is a defined order. DSR takes precedence over HCA. openpilot currently doesn't handle this well, because we don't see that control has been lost.

This PR adds support for the HCA preempted state, treating it as a temporary steering fault. This will let the driver know that we don't currently have steering control. It should also improve recovery, since it appears we can't exit the preempted state until openpilot returns to HCA ready/inactive.

  • [x] Requires commaai/opendbc#1036.

Verification

End user testing in progress.

Route

Broken: b96e474d786172a7/00000075--e14beeb3ae, b96e474d786172a7/0000007f--19df962556 Fixed: pending end user testing

Additional Info

I think this is both an openpilot problem and a vehicle problem. This user is seeing an unusual amount of DSR interventions in what are otherwise normal driving situations. I noted a difference in wheel speed/tire circumference between his front and rear axles, which can be confusing for stability control. The owner asserts all four tires are matched type/brand and age, so there may be wear, inflation, or load issues. openpilot should be robust in the face of this problem, but something is odd with his vehicle to be the only one known to expose this bug regularly.

image

image

jyoung8607 avatar Apr 26 '24 16:04 jyoung8607

Thanks for contributing to openpilot! In order for us to review your PR as quickly as possible, check the following:

  • Convert your PR to a draft unless it's ready to review
  • Read the contributing docs
  • Before marking as "ready for review", ensure:
    • the goal is clearly stated in the description
    • all the tests are passing
    • the change is something we merge
    • include a route or your device' dongle ID if relevant

github-actions[bot] avatar Apr 26 '24 16:04 github-actions[bot]

Released from draft, ready for review.

I haven't received feedback from the end user yet, but this is a rare event that takes awhile to reproduce, and this is a very simple change with little downside risk. I was mainly looking to see if recovery was automatic; detection alone would be sufficient.

I request this be added to 0.9.7 milestones.

jyoung8607 avatar May 08 '24 16:05 jyoung8607