From 87d292b2b0b8f63f20187513aeb3b768fac7b053 Mon Sep 17 00:00:00 2001 From: Maple-YZ Date: Thu, 9 Apr 2026 01:14:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- envs/edge_vsl_env.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/envs/edge_vsl_env.py b/envs/edge_vsl_env.py index 648b21f..15fce4c 100644 --- a/envs/edge_vsl_env.py +++ b/envs/edge_vsl_env.py @@ -81,10 +81,19 @@ class SUMOEdgeVSLEnvironment: for edge_id in self.control_edges: ei = self.parser.edge_info.get(edge_id) if ei and ei.detectors: - # 获取第一组检测器(pos_index=0)的所有交通车道 + # 使用该 edge 实际存在的最小 pos_index,兼容从 metrics_1 开始编号的检测器 + available_pos_indices = sorted({ + pos_index + for (lane_idx, pos_index) in ei.detectors + if lane_idx in ei.traffic_lane_indices + }) + if not available_pos_indices: + continue + first_group_dets = [] + first_pos_index = available_pos_indices[0] for lane_idx in ei.traffic_lane_indices: - det_id = ei.detectors.get((lane_idx, 0)) + det_id = ei.detectors.get((lane_idx, first_pos_index)) if det_id: first_group_dets.append(det_id) self.edge_detector_map[edge_id] = first_group_dets