2020-05-13
Bugfix: HDMAPMDK-1211 Solución encontrada
- La causa raíz es que la segmentación de la línea de producción no es razonable.
Análisis de la causa
Se puede ver que cuando el cambio de carril aún no ha finalizado (la línea central del carril está cruzando la línea de carril), ya se ha realizado la segmentación, y esta segmentación puede cruzar el Rp.
Dado que la información de observación de los bordes de carril (lane border) adjunta a los puntos de forma de la línea central del carril (lanecenter) registra fielmente las líneas de carril a ambos lados mediante el método de línea de exploración (scan line), según la geometría, sin filtrar según la semántica. Por lo tanto, en la posición donde la línea de carril cruza el carril, la línea central del carril que intersecta la línea de carril registrará esta línea de carril en ambas referencias de borde de carril izquierdo y derecho.
Bajo la lógica de código existente, al filtrar la referencia de borde de carril de la línea de carril intersectante según la semántica, se infiere la referencia de borde de carril que se debe eliminar según el tipo de cambio de carril.
La lógica actual falla cuando se encuentra con este tipo de segmentación, lo que provoca este problema.
Solución
El punto central es encontrar la tendencia de cambio de carril de la línea de carril intersectante. Teniendo en cuenta que este tipo de segmentación puede cruzar Rp, el filtrado no debe realizarse por unidades de Rp.
- Primero, organizar las líneas de carril en un path usando edge lifting (se puede considerar para la futura reconstrucción del grafo): Seq[LaneCenter]
- Encontrar el LaneCenter a corregir y el lane border a corregir (aquí se asume que este tipo de LaneCenter es causado por un cambio de carril)
- Calcular la tendencia de cambio de carril de ese LaneCenter según el laneCenter path
- Realizar el filtrado
Se lo asigné a Ziliang.
Una persona entrevistada no pasó.