mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-04 13:02:09 +08:00
SLC Cleanup
Fix three SLC bugs: 1. Auto-accept limits when not engaged to keep previous_target current. 2. Gate Vision out of the limits dict when not a configured priority slot. 3. Replace mapdOut fallback with 0 when filler has no data to prevent stale OSM speed limits from leaking in.
This commit is contained in:
@@ -254,8 +254,12 @@ class SpeedLimitController:
|
||||
self.speed_limit_changed_timer += DT_MDL
|
||||
had_override = self.override_active(v_ego, sm["carState"].gasPressed)
|
||||
|
||||
speed_limit_accepted = (sm["starpilotCarState"].accelPressed and sm["carControl"].longActive) or self.starpilot_planner.params_memory.get_bool("SpeedLimitAccepted")
|
||||
speed_limit_denied = sm["starpilotCarState"].decelPressed or (self.speed_limit_changed_timer >= 30)
|
||||
long_active = sm["carControl"].longActive
|
||||
speed_limit_accepted = (sm["starpilotCarState"].accelPressed and long_active) or self.starpilot_planner.params_memory.get_bool("SpeedLimitAccepted")
|
||||
speed_limit_denied = sm["starpilotCarState"].decelPressed or (self.speed_limit_changed_timer >= 30 and long_active)
|
||||
|
||||
if not long_active and not sm["selfdriveState"].enabled:
|
||||
speed_limit_accepted = True
|
||||
|
||||
if speed_limit_accepted:
|
||||
self.source = desired_source
|
||||
@@ -296,11 +300,16 @@ class SpeedLimitController:
|
||||
self.update_map_speed_limit(v_ego, sm)
|
||||
self.vision_limit = self.starpilot_planner.params_memory.get_float("VisionSpeedLimit") if getattr(self.starpilot_toggles, "vision_speed_limit_detection", False) else 0
|
||||
|
||||
configured_priorities = {
|
||||
self.starpilot_toggles.speed_limit_priority1,
|
||||
self.starpilot_toggles.speed_limit_priority2,
|
||||
}
|
||||
limits = {
|
||||
"Dashboard": dashboard_speed_limit,
|
||||
"Map Data": self.map_speed_limit,
|
||||
"Vision": self.vision_limit,
|
||||
}
|
||||
if "Vision" in configured_priorities:
|
||||
limits["Vision"] = self.vision_limit
|
||||
filtered_limits = {source: limit for source, limit in limits.items() if limit >= 1}
|
||||
|
||||
if self.starpilot_toggles.speed_limit_priority_highest:
|
||||
@@ -393,11 +402,11 @@ class SpeedLimitController:
|
||||
current_longitude = self.starpilot_planner.gps_position.get("longitude")
|
||||
next_speed_limit_distance = calculate_distance_to_point(current_latitude, current_longitude, next_latitude, next_longitude)
|
||||
else:
|
||||
self.map_speed_limit = sm["mapdOut"].speedLimit
|
||||
self.next_speed_limit = sm["mapdOut"].nextSpeedLimit
|
||||
self.map_speed_limit = 0
|
||||
self.next_speed_limit = 0
|
||||
else:
|
||||
self.map_speed_limit = sm["mapdOut"].speedLimit
|
||||
self.next_speed_limit = sm["mapdOut"].nextSpeedLimit
|
||||
self.map_speed_limit = 0
|
||||
self.next_speed_limit = 0
|
||||
|
||||
if self.next_speed_limit > 0:
|
||||
if self.map_speed_limit < self.next_speed_limit:
|
||||
|
||||
Reference in New Issue
Block a user