Vehicle policy registration

Select longitudinal policy through the shared vehicle dispatch contract.
This commit is contained in:
firestar5683
2026-09-25 14:53:18 -05:00
parent 7388de875e
commit cf0f265ac7
@@ -0,0 +1,53 @@
"""Select an admitted vehicle-owned longitudinal tuning policy."""
from opendbc.car.gm.conventional_pedal import policy_for as conventional_pedal_policy_for
from opendbc.car.gm.camera import policy_for as camera_policy_for
from opendbc.car.gm.ordinary_cc import policy_for as ordinary_cc_policy_for
from opendbc.car.gm.bolt_cc import policy_for as bolt_cc_policy_for
from opendbc.car.gm.longitudinal import policy_for as gm_pedal_policy_for, volt_policy_for, euv_policy_for, ascm_policy_for, sdgm_policy_for
from opendbc.car.gm.cc_longitudinal import policy_for as volt_cc_policy_for
from opendbc.car.gm.suburban import (policy_for as suburban_policy_for,
stopping_decel_rate as gm_suburban_stopping_decel_rate)
from opendbc.car.hyundai.g90_longitudinal import (stopping_decel_rate as hyundai_stopping_decel_rate,
forecast_should_stop as hyundai_forecast_should_stop)
def policy_for(cp):
return (suburban_policy_for(cp) or conventional_pedal_policy_for(cp) or camera_policy_for(cp) or ordinary_cc_policy_for(cp) or
sdgm_policy_for(cp) or ascm_policy_for(cp) or gm_pedal_policy_for(cp) or volt_policy_for(cp) or
euv_policy_for(cp) or volt_cc_policy_for(cp) or bolt_cc_policy_for(cp))
def stopping_decel_rate(cp, policy):
rate = hyundai_stopping_decel_rate(cp)
if rate is not None:
return rate
rate = gm_suburban_stopping_decel_rate(cp)
if rate is not None:
return rate
return policy.stopping_decel_rate if policy is not None else 1.0
def stopping_policy_for(cp, dt):
from opendbc.car.hyundai.blended_stopping import policy_for as blended_stopping_policy_for
from opendbc.car.hyundai.ev9_stopping import policy_for as ev9_stopping_policy_for
return ev9_stopping_policy_for(cp, dt) or blended_stopping_policy_for(cp, dt)
def forecast_should_stop(cp, speeds, time_indices, action_t, fallback):
decision = hyundai_forecast_should_stop(cp, speeds, time_indices, action_t)
return fallback if decision is None else decision
def tracked_lead_scale(cp):
from opendbc.car.hyundai.gv70_longitudinal import tracked_lead_scale as hyundai_tracked_lead_scale
return hyundai_tracked_lead_scale(cp)
def planner_cost_owner(cp):
from opendbc.car.hyundai.gv70_costs import eligible
if not eligible(cp):
return None
from openpilot.starpilot.longitudinal.gv70_cost_context import GV70CostContext
return GV70CostContext()