バグ修正
- HDMAPMDK-1215 完了
- HDMAPMDK-1218 完了
2020年の作業日誌を日付ごとにご覧いただけます。
61 则 第 5 / 7 页
HDMAPMDK-1132 ポール標識の車線端点におけるIDトレーシング
ポール標識の車線端点におけるトレーシングの問題は、線形オブジェクトのトレーシングと比較して非常に単純であり、IDのマッピングのみで、オフセットや長さのマッピングはありません。
しかし、考慮すべき点も少なくありません。
本質的に、この問題の根源は、IDを定義する際にすべてLong IDを使用しているのに対し、MDMの定義ではIntが使用されているため、オーバーフローの問題が発生する可能性が高いことにあります。
Bugfix: HDMAPMDK-1211 解決方法を思いつく
車線変更がまだ終了していない時点(車線中心線が車線境界線をまたいでいる時点)で、すでに分割が行われていることがわかります。また、このような分割はRpをまたぐ可能性があります。
車線中心線(lanecenter)の形状点に付随する車線境界線(lane border)の観測情報は、幾何形状に忠実に、スキャンライン方式で両側の車線境界線を記録しており、意味に基づくフィルタリングは行われていません。そのため、車線境界線が車線をまたぐ位置では、車線境界線と交差する車線中心線が、その車線境界線を左右両方の車線境界線参照(lane border ref)に同時に記録することになります。
既存のコードロジックでは、意味に基づいて交差する車線境界線の境界線参照(border ref)をフィルタリングする際に、車線変更のタイプから削除すべき境界線参照(border ref)を推定します。
しかし、現在のロジックはこのような分割に遭遇すると機能しなくなり、その結果、問題が発生します。
核心は交差する車線境界線の変更傾向(変道趨勢)を特定することにあります。このような分割はRpをまたぐ可能性があるため、フィルタリングはRp単位で行うべきではありません。
子良に任せました。
面接で1人不合格となりました。
PolyLineの問題は主に、PolyLine生成時に重複点が混入する可能性があり、その結果、幾何学的なセグメント計算に一連の問題が発生することです。
そこで、PolyLine構築時にPolyLine内の点をチェックし、重複点が見つかれば例外をスローするようにしました。
以下の問題が確認されました。
JtsのgetEndで問題が発生
Jts LinearLocationに正規化の問題が存在する
val loc1 = new LinearLocation(0, 1, 1.0)
val loc2 = new LinearLocation(0, 2, 0.0)
loc1 compareTo loc2
// 出力は -1
Interpolate時に、互いに近すぎる2点を取得する可能性がある
new した後、delete しなかったことです。prepareGuidanceData を呼び出し、現在位置に最も近いガイダンスデータを見つけようとします。prepareGuidanceData は NavInfoProviderImpl::getTrafficLights と NavInfoProviderImpl::getCarParks を呼び出します。NavInfoProviderImpl::getTrafficLights を例にとると、呼び出し時に NaviEventOnPath 内のデータポインタを new で生成しています。delete が行われていません。DestEvent にも同様の問題があることが判明しました。解決策: 根本的にはダングリングポインタを許さないことであり、NaviEventProvider に対してリファクタリングを行うことにしました。
NaviInfoProvider に traffic_light_events と car_park_events という 2 つのフィールドを追加します。NaviInfoGenerator で、ルートが更新された後にこれら 2 つのフィールドを更新します。get が呼ばれるたびに、現在の車両位置に基づいてフィルタリングを行います。PathReader::getAttributes をリファクタリングする必要があります。理由は、これまでの実装では現在の車両に対する相対オフセットのみを考慮していたため、パスに対するオフセットインターフェースが必要になるからです。学科試験を受けましたが、半日かかりました。
HDMAPMDK-1130 の幅に関する問題、3つの問題点:
HDMAPMDK-1121 の再修正を行いました。
状態が非常に悪かったです。