自動運転車のルートネットワーク定義ファイル(RNDF)とは

May 10 2022
自動運転車のソフトウェアスタックの4つのコア部分の1つは、計画です。そして、RNDFまたはルートネットワーク定義ファイルは、PLANNINGが最初に使用するものです。

自動運転車のソフトウェアスタックの4つのコア部分の1つは、計画です。そして、RNDFまたはルートネットワーク定義ファイルは、PLANNINGが最初に使用するものです。

RNDFは、タブで区切られたASCIIファイルです。基本的に、ロードセグメントとゾーンを定義します。

RNDFファイルの一般的な形式は次のようになります。

RNDF_nameファイル名(文字列)

num_segments number_of_segments(integer> 0)

num_zones number_of_zones(integer≥0)

format_version format_version(文字列)

作成日作成日(文字列)

<セグメント1>

<セグメントM>

<ゾーンM+1>

<ゾーンM+N>

end_file

フォーマットを見るだけで、RNDFファイルにセグメントとゾーンに関する詳細が含まれていることがはっきりとわかります。これが道路セグメントの例です

図1:2車線で構成される道路セグメント(セグメントM)。レーンは必ずしも同じ数のウェイポイントを持っているとは限りません。(https://www.grandchallenge.org/grandchallenge/docs/RNDF_MDF_Formats_031407.pdf)

次に、各セグメントの形式を見てみましょう。今すぐ意味をなすようになるはずです

セグメントsegment_id(整数> 0)

num_lanes number_of_lanes(integer> 0)

segment_name segment_name(文字列)

<レーン1>

<レーンn>

end_segment

しかし、それは完全ではありません。図1を見るだけで、より多くの情報を定義する必要があることがわかります。lane_widthと同様に、レーンの幅をフィート単位で提供します。また、ウェイポイントの数とその場所を定義する必要があります。ウェイポイントが名前付きチェックポイントであることを示すチェックポイントが必要です。キーワードstopは、一時停止の標識に関連付けられたウェイポイントを示します。キーワードexitの後には、レーンに関連付けられたexit_waypointおよび関連するentry_waypointまたはentry_perimeterpointの名前が続きます。レーンには、複数のチェックポイント、ストップサイン、入口ウェイポイント、入口境界ポイント、または出口ウェイポイントが含まれる場合があります。どうぞ:

lane lane_id(xy; x、y∈integer> 0)

num_waypoints number_of_waypoints(integer> 0)

lane_width lane_width(integer≥0)

left_boundary left_boundary(文字列∈{double_yellow、solid_yellow、solid_white、broken_white})

right_boundary right_boundary(string∈{double_yellow、solid_yellow、solid_white、broken_white})

checkpoint waypoint_id(xyz; x、y、z∈integer> 0)checkpoint_id(integer> 0)stop waypoint_id(xyz; x、y、z∈integer> 0)

exit exit_waypoint(waypoint_id)entry_waypoint(waypoint_id)

exit exit_waypoint(waypoint_id)

entry_perimeterpoint(perimeterpoint_id)

<ウェイポイント1>

<ウェイポイントn>

end_lane

< waypoint >タブでは、ウェイポイントは次のように定義されています。緯度と経度のフィールドは小数点以下6桁の固定小数点であり、ウェイポイントの位置を小数点以下の桁数で表します。

waypoint_id(xyz; x、y、z∈integer> 0)緯度(固定)経度(固定)

これで、なぜこれほど多くのエントリがウェイポイントを終了および停止するのかがわかります。1つのセグメントが別のセグメントと合流するか、1つの道路セグメントの1つの車線が行き止まりになる可能性があるためです。Uターンやその他の特別な操作を計画するには、それを知る必要があります。

これが完全なセグメントの例です

図2:セグメント2とセグメント1の一時停止標識の交差点。赤い点は出口のウェイポイント、青い点は入口のウェイポイント、緑の点は他のウェイポイントです。(https://www.grandchallenge.org/grandchallenge/docs/RNDF_MDF_Formats_031407.pdf)

再び元のファイルに戻ると、ゾーンに別のセグメントがあることがわかります。

しかし、ゾーンとは何ですか。ゾーンの例を次に示します。

図3:ゾーンMには、移動または静止している可能性があるが、位置が指定されていない障害物が含まれています。ポリゴンゾーンを作成する黄色、青、および赤のドットは境界ポイントであり、その一部は隣接するセグメントへの入口ポイントと出口ポイントでもあります。点線は、考えられる多くの移動経路の1つを示しています。(https://www.grandchallenge.org/grandchallenge/docs/RNDF_MDF_Formats_031407.pdf)

ゾーンには、駐車場や建設ゾーン、さらにはデザートもあります。パーキングスポットゾーンと、さまざまなセグメントをそれに接続する方法を見てみましょう。

図5:ゾーンとしての駐車スポット。(https://www.grandchallenge.org/grandchallenge/docs/RNDF_MDF_Formats_031407.pdf)

ゾーンzone_id(整数> 0)

num_spots number_of_parking spots(integer≥0)

zone_name zone_name(文字列)

<境界>

<オプションスポット1>

<オプションスポットN>

end_zone

これで、RNDFファイル全体がどのようにフォーマットされているかがわかります。それでは、最後の部分を分析しましょう。

perimeter perimeter_id(x.0;x∈integer> 0)

num_perimeterpoints number_of_perimeterpoints(integer> 0)

exit exit_perimeterpoint(perimeterpoint_id)entry_waypoint(waypoint_id)

<境界点>

perimeterpoint_id(x.0.z; x、z∈integer> 0)緯度(固定)経度(固定)

そしてスポット部分も

スポットspot_id(xy; x、y∈integer> 0)

spot_width spot_width(integer> 0)

チェックポイントwaypoint_id(xyz; x、y、z∈integer> 0)checkpoint_id(integer> 0)

end_spot

うまくいけば、自分のRNDFファイルを作成して、それを車に入れてナビゲートを成功させる方法が明らかになりました。

© Copyright 2021 - 2022 | hachiwiki.com | All Rights Reserved