自動(インテリジェント)運転 | ネットワーク全体初のLIDARマニュアル読み取りガイド(パート2)

前回に引き続き、主にLIDARデータ等の紹介を行っておりますが、重要事項の鍵となるLIDARマニュアルを理解する上で最も重要な内容と言えます(肌~)。また、ベロダインのマニュアルは読みにくいですが内容が充実しているため、今回は引き続きベロダイン 128 (アルファプライム) について説明し、後編で他のライダーマニュアルの内容を解説していきます。

第 1 号をまだ見ていない学生は、次をクリックしてください。

自動(スマート)運転 | ライダーについてはここに注意 (on)_MendozaG's Blog - CSDN Blog

この記事の内容

4.ライダーデータ(データ)

4.1 パケットの種類と定義

 4.2パケット構造

 4.3 正確な時間の計算

4.4 PCAP ファイルを点群ファイルに変換する

5.LiDAR通信

6. 付録の注意事項

6.1 レーザー

6.2 時刻同期

6.3 位相ロック

7. 多歯ライダーアクセスの構成

(コンセプトセルフテスト)

8. 他のライダーとの比較

8.1 サジタルライダー

8.1.1 RS-Ruby

8.1.2 RS-M1

8.2 ヘサイライダー

8.2.1 AT128

8.2.2 パンダ 128E3x

9. まとめ

付録: LiDAR の物理写真:

4.ライダーデータ(データ)

センサーは独自の座標系で独自のフレームを持っています. LIDAR の原点 (0,0,0) はそのベースの 66.11mm です. 座標系の確立と計算は次の図に示すとおりです ( xyz 軸は異なる可能性があることに注意してください。センサーが異なれば、前方向の定義も異なります。x が正の場合もあれば、z が正の場合もあります)

4.1 パケットの種類と定義

 次に最も重要なパケット分析です: パケットにはデータ パケットと位置パケットの 2 種類があり、位置パケットはテレメトリ パケットまたは GPS パケットと呼ばれることもあります。前者には、センサーによって測定された 3 次元データと、光パルスが返される表面の校正された反射率が含まれています。前者には、方位角のセットと 4 バイトのタイムスタンプ、さらにセンサー モデルとレーザー リターン モードを識別する 2 つのファクトリー バイト (ファクトリー バイト)も含まれています。GPS タイム ソースと同期するようにセンサーを設定している場合、位置パケットは最後に受信した NMEA メッセージ (GPRMC または GPGGA) のコピーを提供しますロケーション パケットは、タイム ソースと同期した PPS ステータス信号のステータス (ロック、異常など) を識別するバイトも提供します。

具体的には次のものが含まれます。

1. レーザー発射シーケンス

センサー内のすべてのレーザーが発射されると、発射シーケンスが発生します。これらは、特定の製品ラインまたはモデルに固有の順序で発売されます。レーザーの充電時間も含まれます。ポイント放出シーケンス128 個のレーザーすべてを発射して充電するには、平均して55.275µsかかります。LIDAR は 8 つのグループに分割されてレーザー光を放射します (つまり、各グループに 16 個あります)。

2. レーザーチャンネル(レーザーチャンネル)

1 つのレーザー チャネルは 905 nm レーザーの送信機および受信機です。各チャネルには特定の設置仰角があります (したがって、各ポイントの仰角は固定されており、パケットには対応する水平角のみが与えられ、仰角データはありません)。通常、ライン数、つまりどのように言うかを言います。多くのチャネルがあり、各チャネルには ID があります。レーザーパターンはこんな感じです。

 上図からも、8を単位とした0~7などが1つの列に収まらず、8つのグループに分かれており、各点がオフセット(相対)を持っていることが分かります

3. ポイントデータ(Data Point)

LIDAR の原理は TOF であり、返されるデータには距離と反射強度が含まれていることは誰もが知っています。パケットでは、点は 3 バイトで表され、そのうちの 2 つは距離 (符号なし整数、間隔サイズは 4mm であるため、メッセージ内の 25154 は 25154*4=100616mm を表します) を表し、1 つは校正反射率 (正規化された) を表します。 0~255まで)。ピッチ角 (ω) は、データ ブロック内のデータ ポイントの位置から推測されます。距離 0 は、測定がないことを意味します (例: レーザーを空中に発射する)。レーザーがオフになっているか、測定可能な反射が時間内に返されませんでした。

4. 方位角

各データ ブロックの先頭のフラグ バイトの後に、 2 バイトの方位角値 (α)が表示されます。方位角は符号なしの整数です。角度を 100 分の 1 度単位で表します。したがって、元の値 27742 は 277.42° として解釈される必要があります。方位角の有効範囲は0 ~ 35999 (計算値 360*100=36000)です。データ ブロックごとに 1 つの方位値のみが報告されます(残りはそこから計算できます)。

5. データブロック(データブロック)

この部分が最も重要であり、最も難しいことに注意してください。128 ラインのエコー情報には、シングル エコー モードの 4 つのブロックが含まれますダブル エコー モードでは、連続するブロックが 8 つあります各パケットには最大 3 つのレーザー ショット シーケンスが含まれますブロックごとに 1 つの方位のみが返されます。

各ブロックの内容:

 2 バイトのフラグと方位、および 32 ポイントのデータ (上記の各ポイントに 3 バイト、距離に 2 バイト、反射率に 1バイト) なので、最終的には 100 バイトになります

6.フレーム

データ フレームには、1 回転内のすべてのデータ ポイント、または FOV の開始から終了までの部分が含まれます (FOV が設定されている場合は、特定の角度範囲のポイントのみが記録されます)。回転境界を横切るときの発射シーケンスに含まれる場合、追加データが含まれる可能性があります。

7. タイムスタンプ

タイムスタンプは 4 バイトの 32 ビット符号なし整数で構成されます。マークは、データパケットの最初の送信シーケンスの 3 番目の送信グループの時刻(つまり、下図の位置、最初のシーケンスの 3 番目のグループ) です。タイムスタンプは TOH (時間の先頭) のオフセット値で、マイクロ秒単位で時間をマークします。値の範囲は0 ~ 3599999999 (60*60*1000*1000=3600000000) です。

 タイムスタンプは、各レーザーショットを慣性航法システムからの対応するデータと照合するために地理参照ソフトウェアによって使用されるため、非常に重要です。慣性航法システムは、ピッチ、ロール、ヨー、ヨー、緯度、経度、および高度の一連のタイムスタンプ付き値を提供します。データ ポイントの時間を INS からのタイムスタンプ付きデータと照合することにより、ユーザー ソフトウェアはデータをセンサーの座標系から地上基準系に変換できます。タイムスタンプは、GPS/INS によって提供される協定世界時 (UTC) と一致します。センサーの電源がオンになると、内部時間基準を使用してマイクロ秒のカウントを開始します。(これは、LIDAR 自体も時間を記録でき、接続されていないときはマシン時間が使用されるという事実を指します) ただし、センサーはデータを UTC 時間と同期できるため、特定のレーザーの時間を決定できます。データパケットの正確な起動時間。UTC 同期には、1 秒あたりの同期パルス (1PPS) 信号と NMEA GPRMC メッセージ (MSG) を生成するユーザー指定の GPS/INS 受信機が必要です。GPRMC メッセージには、UTC での分と秒が表示されます。同期後、センサーは GPRMC メッセージから分と秒を読み取り、この情報を使用してセンサーのタイムスタンプを、その時間を過ぎた UTC あたりのマイクロ秒数に設定します。(ここでの原理はコンピュータやその他の機器のタイミング原理と同じです)

8. 工場の所在地

ここで紹介するほどではない、エコーフォームとプロダクトコード

 4.2パケット構造

パケットの構造:

パケットの長さは1248 バイトで、 UDP パケットを介してポート 2368に送信されます。パケットは、42 バイトのプロトコル ヘッダー (Header)、12 個のデータ ブロック (ブロック。ブロックは前述のように 100 バイト)、4 バイトのタイムスタンプ (timestamp)、および 2 つのファクトリー バイト (ファクトリー バイト) で構成されます数値が正しいかどうかは自分で計算できます。パケットには 3 つの形式があります。

 単一のエコーの構造:

 これまでの知識を使用して、このテーブルが何を意味するかを分析してみましょう。まず、最初から、パケットは 1248 ビットであり、前述したように、ヘッダーとタイムスタンプもあります。これらを削除すると、合計 1200 バイトが 12 列に分割されます。 (ここでは列がブロックです)、上記の各ブロックは 100 バイトで、点情報 (距離と反射強度の合計 3 バイトがチャネル番号に対応し、外側のチャネルごとに 3 バイト)、フラグ、方位角が含まれます。シリアル番号をもう一度見てください。0 ~ 127、合計 128 です。各発射シーケンスは、シングル エコー モードでは 4 つのブロックで構成され、1 つのパケット内に 3 つのシーケンスが存在する可能性があります (シングル エコー モード)。

デュアルエコーモード:

 ダブル エコーによりデータ量が 2 倍になるため、パケットには 1 つの発火シーケンスしか保持できません。詳細な説明は省略します。さらに、ダブル エコー + 信頼度データ構造 ( Confidence Data Structure ) もありますが、ここでは展開しません。

データ パケットについて話した後、位置パケットtについて話しましょう

位置情報パッケージ (一般にテレメトリ パッケージと呼ばれる) の役割は、外部 GPS/INS/IMU ソースとパルス/秒ステータスから、サポートされている最新の NMEA 情報のコピー (コピー) を提供することです。位置パッケージが組み立てられたスタンプに加えて、その他の関連情報も含まれます。GPS/INS/IMU が接続されていない場合、または無効になっている場合、位置パケット内の NMEA センテンス、PPS ステータス、および関連フィールドは空になります (つまり、すべてゼロ)。

ロケーション パケットは、ポート 8308 (デフォルト)で受信される554 バイトのUDP パケットです。プロトコル ヘッダー (Header) は最初の 42 バイトを占めます。ペイロードの長さは 512 バイトです位置パケットの構造 (42 バイトのプロトコル ヘッダーを除く) は次のとおりです。

GPRMC センテンスは CR/LF で終了し、ペイロードの最後まで null バイトが埋め込まれます。 

注: 位置パケットのタイムスタンプは、パケットと一致しない場合があります。データ パケットの配信はセンサーの最優先事項であるため、これは正常ですが、送信されるデータ パケットを優先して位置パケットが一時的に遅れる場合があります。(つまり、不安定が発生した場合、データ パケットが最初に保証されます)

上記の PPS には 4 つの状態があり、次のように表され説明されます。

 理解するために実際の粒子を見てみましょう。

 の:

青色の部分: Ethernet+IP+UDP ヘッダー (42 バイト、前述) を表します。

オレンジ色の部分:タイムスタンプ(4バイト)なお、変換には5D8E5FFD = 1569611773(リトルエンディアン)が必要です

 赤: PPS ステータス (1 バイト) は現時点ではロックされています

緑: GPRMC ステートメント

 4.3 正確な時間の計算

各ポイントの正確な時間を計算したい場合は、放出の法則に従って各オフセットを計算できます。各シーケンス (シーケンスの意味を覚えていますか? 128 個のレーザーのシーケンスです) は、128 個のレーザーすべてを発射し次のショット (RP0 および RP1) に向けて充電するのに53.333μs かかります。最後の期間 (RP2) は 0 μs ~ 3.882 μs の範囲になります。RP2 の平均長は約 1.941μs です(それ以前は、ファームウェアは時計仕掛けのように 53.3μs ごとにトリガー シーケンスを実行していました)。この違い(各 RP2 の充電時間は異なります)の目的は、異なるライダー間の干渉を減らすことです

パケットのタイムスタンプは、パケット最初の起動シーケンスから TOH 7μs 後に決定されます。時間オフセットは、その前の送信グループでは負であり、その後 (次のパケットまで) では正です。TOH は同じマーカー上で同期されます。各発光シーケンスについて、シーケンスのデータ ブロックに現れる方位角は、7 μs の間、シーケンス内の同様の点 (つまり、その周囲) に固定されます。

 これらは 3 つの状況で、1 つは平均、1 つは最大、1 つは最小です。タイムスタンプはどこにありますか? 各パケットの TOH7 マイクロ秒では、7 マイクロ秒での唯一の最初のシーケンスの 3 番目のグループが上記の説明と一致していることが上の図からわかります

 したがって、ルールに従って、補償 (オフセット) テーブルを取得できます (シングル エコー モードのみを示します)。

 12 列 (ブロック) は理解しやすいですが、合計 3 つの発火シーケンスがあるのに、図では 32 個のパケットが示されているのはなぜでしょうか一部の生徒は突然反省できなくなります。この線はパケット内の順序 (32*4=128) を意味しており、突然それに気づくかもしれません。つまり、128 レーザーのオフセットが与えられます

上のレーザーのパターンをまだ覚えているかもしれません。そうすれば、次のように各角度のオフセットの正確な値を取得できます。

 上記と一致していることは注目に値します。方位角とタイムスタンプは最初の発射シーケンスの 3 番目のグループで生成され、方位角は各シーケンスの 3 番目のグループで生成されます(タイムスタンプは3 番目のグループが生成されました)

 これを実現するための疑似コード:

// Do this for every packet
// packet_m represents an index to a packet
// datablock_n represents an index to a data block, valid range is 0 to 11
// point_k represents an index to a data point in the nth data block, valid range is 0 to
31
// Adjust for an azimuth rollover from 359.99° to 0°
// Note that a firing sequence spans four data blocks
If (Azimuth[packet_m+1][datablock_0] < Azimuth[packet_m][datablock_0])
Then
Azimuth[packet_m+1][datablock_0] := Azimuth[packet_m+1][datablock_0] + 360;
Endif

// Adjust for a timestamp rollover from 3,599,999,999 μs to 0 μs
If (Timestamp[packet_m+1] < Timestamp[packet_m])
Then
Timestamp[packet_m+1] := Timestamp[packet_m+1] + 3600000000;
Endif

// Determine the azimuth rate
Azimuth_Gap := Azimuth[packet_m+1][datablock_0] - Azimuth[packet_m][datablock_0];
Time_Gap := Timestamp[packet_m+1] - Timestamp[packet_m]
Azimuth_Rate := Azimuth_Gap / Time_Gap;

// Loop over data blocks
For (datablock_n = 0 to 11)

    // Loop over data points
    For (point_k = 0 to 31)

        // Determine laser number
        Laser_Number := (datablock_n MOD 4) * 32 + point_k;

        // Lasers are fired in groups of 8
        Firing_Group := Laser_Number DIV 8;

        // Interpolate
        Precision_Azimuth[point_k] := Azimuth[packet_m][datablock_n] + Azimuth_Rate *
(2.665 μs * Firing_Group - 7 μs);

        // Add rotation during RP0
        If (Firing_Group > 7)
        Then
        Precision_Azimuth[point_k] := Precision_Azimuth[point_k] + Azimuth_Rate *
5.33 μs;
        Endif

        // Apply the azimuth offset
        Precision_Azimuth[point_k] := Precision_Azimuth[point_k] + azimuth_offset[Laser_
Number];

        // Adjust for any rollover
        72 Alpha Prime User Manual
        If (Precision_Azimuth[point_k] >= 360)
        Then
        Precision_Azimuth[point_k] := Precision_Azimuth[point_k] – 360;
        Endif
    End For
End For

4.4 PCAP ファイルを点群ファイルに変換する

PCAP はバイナリ ファイルです。Velo View で記録する場合でも、WireShark でキャプチャする場合でも、取得されたファイルは PCAP 形式であることができ、サイズが小さいという利点があり、解凍された点群ファイル (pcd など) は次のようになります。はるかに大きいです。そのため、大規模に記録する場合はデータフローが少なくなるようにPCAPとして保存し、可視化する場合は点群に変換して処理する必要があります。

家に近いのですが、どうやって変換すればよいでしょうか?

veladar データのパケット キャプチャ (pcap) ファイルを LAS、LAZ、XYZ、PLY、またはその他の点群ファイル形式に変換するプロセスは簡単です。pcap ファイル内のセンサーによって提供されるデータは、センサーの基準フレーム (センサーがセンサーとともに移動する内部 3D 座標系) を基準にして測定されますこれは、データ ポイントが単一の座標系を参照する点群ファイルとは明らかに異なります。この座標系は、地球座標系 (緯度、経度、標高) または別の便利な基準フレームの場合があります。生の LIDAR データを点群に処理することは、ジオリファレンスとして知られています。ジオリファレンスでは、ユーザーは各測定のセンサーの位置 (X/Y/Z) と方向 (ピッチ/ロール/ヨー) を考慮します。これら 6 つの値がわかれば、ユーザーは適切な数学的熱回転と変換を実行して、LIDAR データを単一の座標系に参照することができます。LIDAR の顧客がジオリファレンスに使用する 2 つの一般的なテクノロジは、慣性リファレンスと同時位置特定およびマッピング (SLAM) です。慣性基準により、センサーの位置と方向は常に慣性航法システム (INS) によって記録されます。INS は、全地球測位システム (GPS) 受信機と慣性測定ユニット (IMU) を組み合わせています。INS センサーと LiDAR センサーからのデータは、GPS 衛星の基準クロックに時刻同期されるため、ユーザーは各 LiDAR データ ポイントを INS 内の対応する位置および方向と一致させることができます。LIDAR データを INS データと照合した後、各測定値は単一の座標系に数学的に変換されました。SLAM は、ロボットが環境を分析してナビゲートするために使用する技術です。SLAM ソフトウェアは、LIDAR データ内の静止物体を自動的に識別できます。次に、アルゴリズムは静止物体の位置を使用して LIDAR の動きを数学的に取り消し、データを単一の座標系に変換します。

全体として、コードはルールに従ってデコードできることがわかります。対照的に、センサー センターは上部に書かれています。もちろん、ユーザーによっては独自の変換ツールを作成する人もいます (Github などを見つけることができます)。多くの国産 LIDAR はすでに変更をサポートしています。出力形式により記録とデコードがより便利になります)。

5.LiDAR通信

前回はこのインターフェースについて簡単に説明しましたが、今回は接続後の設定インターフェースについて詳しく説明します。

 簡単なことや説明されたことについては、ここでは繰り返しません。

 いくつかの選択肢を次に示します。

 PPS Qualifier : 文字通り、UTC 時間にどのように合わせるかを調整するパラメータです。前に、時間にはマシン自体の時間と GNSS アクセスの UTC 時間が含まれると述べました。PPSアクセスが必要かどうか、PPS をロックする必要があるかどうか、PPS 遅延 (許容可能な検証時間、秒単位) を設定し、[設定] をクリックして有効にします。これらの構成

GPS Qualifier : 同様に、GPS 情報が必要かどうかの検証を設定します。

Phase Lock: フェーズロック、PPS が立ち上がる位相。2 つ以上のセンサーの発光を同期するために使用できます。(開始レコードの位置を制御できます)

 Velo Viewの構成などはここでは説明しませんが、ブラウザのcurlコマンドでも制御できます。付録の内容について触れておきます。

6. 付録の注意事項

6.1 レーザー

LIDAR の各レーザー パルスの発生源は半導体レーザー ダイオードです。レーザー ダイオードは一連の積層された pn 接合であり、概念としては以下の図に示すものと同様です。電流が接合部を通過すると、光子が生成され、一端を通過して、しっかりと集束されたレーザービームを形成します。

センサーによって生成されたレーザー放射は、赤外線カメラまたは赤外線フィルター (赤外線を放射する) なしのスマートフォンのカメラで見ることができます。写真のこの部分は赤外線カメラで撮影されました。レーザーの「スポット」と「ドット」は、レーザー パルスがターゲットに当たるタイミングを説明するためによく使用されますが、センサーのレーザーの「ドット」は実際には、図に示すように、3 つの小さなロッドまたは光の帯で構成される小さな長方形です。下。長方形の長軸はレーザー スキャンの経路と一致します。

6.2 時刻同期

上記では、構成インターフェイスでの PPS および GPS 情報の設定についても詳しく説明しました。次の写真を振り返ってください。

 これら 2 つの新しいオプションは、センサーに提供された GPS 情報をセンサーがどのように利用するかを制御します。最初の制御オプションは、センサーが PPS 信号 (PPS Qualifer) をどのように利用するかを決定します。2 番目の制御オプションは、National Marine Electronics Association (NMEA) センテンス (GPS Qualifier) で提供されるタイムスタンプをセンサーがどのように利用するかを決定します。

LIDAR は、時間の先頭 (TOH) からのマイクロ秒数を表すカウンターを維持します。TOH カウントは内部発振器に従ってインクリメントされますセンサーが有効な PPS 信号を示すと、PPS の各立ち上がりエッジで TOH カウントが調整され、TOH が UTC 時間と一致しますTOH は、データおよび位置 (テレメトリ) パケット内の4 バイトのタイムスタンプとして送信されます。この点については以前にも触れましたが、TOH は水晶発振器によって制御される LIDAR デバイスの内部時刻であり、水晶発振器は時間と温度によってドリフトするため、時刻同期を完了する必要があります。各 PPS の機能は、機能をリセットすることです。

おそらく私たちはまだ TOH を完全には理解していません。TOHは 2 つの独立したカウンターで構成されています。1 つのカウンタは時間の先頭からの分と秒を保持し、もう 1 つのカウンタは1 秒未満のカウントを保持します

 2 つの値を組み合わせた値は、時刻の先頭からのマイクロ秒数を表します範囲は0 ~ 3599999999 μs です。1 時間は 3.6 x 109 μs です。サブ秒カウンタの範囲は 0 ~ 999,999µs です(つまり、2 つの部分に分かれており、1 つの部分は秒、もう 1 つの部分は秒以下の値 (サブ秒) であり、最終的な結果は 2 つの合計になります)

このセンサーは、PPS 入力を継続的に監視して、提示されたパルスのタイミング特性を評価します。このプロセスは、Web インターフェイスと位置パケットに示されます。センサーが有効で安定した PPS 信号を検出すると、Web インターフェイスに「PPS: Locked」 (ロック) が表示され、オフセット (オフセット) 0xF4 ロケーション パケットの PPS ステータス フィールドが0x02に設定されます。

分カウンターと秒カウンター (つまり、秒の記録を担当する最初のタイマー) は、NMEA シーケンスで提供される時間値に調整できますNMEA センテンスが指定されていない場合、分と秒のカウンターは 1 秒ごとに増加します。(つまり、GPRMC などの NMEA データにアクセスしない場合は、PPS のみにアクセスすることも可能です。このとき、第 2 タイマーは 1 秒ごとにインクリメントされ、GPRMC が接続されている場合は、時刻情報が抽出されて置き換えられます)デバイスのセルフタイマーの時間)。

PPS 信号を使用してサブ秒カウンタを調整すると、ソースがわずかにドリフトした場合でも、センサーは PPS ソースと同期した状態に保たれますこれは、GPS 受信機が無効であることを示し、独自の内部時間を使用して PPS 基準を駆動し始めるときに発生します (トンネルに入るなどを指します。GPS に信号がなく、GPRMC が存在しないため、GPS が切り替わります)この時点で一定期間(センサー自体の時間ですが、PPS は維持されるため、ドリフトを防ぐために補正できます

遅延について:このパラメータは、センサーが PPS を検証するのに必要な時間をユーザーが延長できることを示します単位は整数秒です許容値の範囲は 0 ~ 65535 です。デフォルトは 5 秒です。センサーは、遅延パラメーターによって定義されたローリング n 秒ウィンドウを通じて PPS 信号を継続的に認識します。最初のケースでは、PPS 信号は不安定であるとみなされ、センサーはサブ秒カウンターが内部発振器によって駆動されるフリーランニング モードに入ります。フリーランニング モードでは、サブ秒カウンタは PPS 信号の立ち上がりエッジで調整されなくなりました。さらに、TOH の分と秒のコンポーネントは、フリーランニングのサブ秒カウンターのローリング スタートに基づいて増加します(この段落の理解方法、なぜこの Delay を設定する必要があるのか​​? 前述したように、PPS 信号は常に安定しているとは限らないため、何かが発生するとタイムスタンプの記録方法が変わります。デフォルト値は 5 です。これは、 PPSが認識できない場合は5秒以内に切り替わります

タイミングは以下の表で確認できます。

6.3 位相ロック

複数のセンサーを互いに近接して使用する場合 (たとえば、車両のルーフに取り付けられる場合)、センサー データに干渉パターンが現れることがあります。データが収集される場所を制御することで、この中断を最小限に抑えます。

これについては以前に何度も説明しましたが、設定インターフェイスでオフセットを設定するだけです。

 設定後は、位相の状態と設定した値が PPS に合わせてジャンプしていることがわかります。

 気を散らさないためのアプリ:

左右に取り付ける場合: 2 つのオフセットが図に示されています。

フロントとリアを取り付ける場合:

7. 多歯ライダーアクセスの構成

以下に示すように:

ここまでは Velodyne ライダーについて紹介しましたが、以下では他のいくつかの一般的なレーダーと比較して説明します。

(コンセプトセルフテスト)

上記のセクションを読んだ後、いくつか質問したいことがあります。

1. Velodyne LiDARには多くの名詞概念がありますが、パケット、グループ、点火シーケンス、データポイント、データブロックの意味は何でしょうか?構造上何か関係はありますか? (重要)

2. シングル エコーとデュアル エコーの特徴と適用場面は何ですか? パケット パフォーマンスに違いはありますか?

3. RPM とは何を意味し、その用途は何ですか? RPM が大きいほど角度精度は高くなりますか?

4. フェーズロックの原理とその用途は何ですか?

5. このバージョンのファームウェアではタイムスタンプはどのように定義されていますか?

6. 機械式ライダーの仰角はどのようにして取得されますか?

7. 1 秒あたりの理想的なポイント数を計算するにはどのような方法が考えられますか?

8. LIDAR のタイミングメカニズムは何ですか? PPS と NMEA (GPRMC など) は何に使用されますか?また、それらはタイミングにおいてどのような役割を果たしますか?

9. 各グループの発射シーケンスのチャージ時間は同じですか、またその回数は何回ですか?

10. タイムスタンプを計算してもらえますか? タイムスタンプはどのように計算されますか? それは UTC 時間に関連していますか? Linuxの時間と何か関係があるのでしょうか?

(コメント欄での回答を歓迎します~ )

 -------------------------------------------------- ------------------------------------------

8. 他のライダーとの比較

現在、国内のレーダーにはすでに多くのスター製品があり、その市場シェアも非常に高く、一部の製品はベロダインよりも優れた性能を持ち、サポートされているプロトコルや内蔵アルゴリズムも優れています。すでに量産車両への搭載を実現しているものもあるが、ここではこれらのレーダーのマニュアルを簡単に分析し、国産ライダーのSagitarとHesaiを紹介する。以前に学んだ知識を使用して他の LIDAR の分析を試みることもできます。現在、多くの 4D レーダーやその他のイーサネット データ形式はこのデータ形式に非常に似ており、強力な参照値があります。

8.1 サジタルライダー

Sagitar は数多くの LIDAR を発表していますが、この記事では、同社のRuby (128 ライン)とMEMES に搭載されたM1半固体 LIDAR について簡単に説明します。

8.1.1 RS-Ruby

なぜ最初に Ruby Lidar について話す必要があるのか​​というと、これも 128 ラインを備えたハイエンド製品だからです。

最初のステップは、製品の特性 (データシート) を確認することです。

 製品の主な特徴は上の写真で、3 つの場所を丸で囲み、フレーム レートは 10Hz または 20Hz、 1秒あたりの出力ポイントは 230 万点(シングル エコー モード)、Velodyne も同様で、多くの同期方法をサポートしています。時刻同期:クラシック 1PPS+GPRMCおよびPTP (IEEE 1588)gPTP (IEEE 802.1)

次に、マニュアルでいくつかのポイントを述べます。

1.反射率情報: Velodyne マニュアルでは、反射率は 1 バイトで表され、0 ~ 255 に標準化されていることがわかっています。RS-RUBYでは次のように定義されています。

 拡散反射オブジェクトの強度の範囲は 0 ~ 100、全反射オブジェクトの反射強度の範囲は 101 ~ 255 です。255 が理想的な全反射です。

2. GPS の使用: ここで 1 点だけ説明しますが、これまで言及されていないかもしれません。LIDAR に接続されている GPRMC はボー レートを 9600 に設定する必要があります。

3.パケット構造: この部分が最も重要な内容です. rs-rub は UDP プロトコルの 1248 バイトのペイロードを送信します (1248 についてご存知ですか?) それはメインストリーム データ (MSOP) とデバイス情報 (DIFOP)に分かれていますデータ構造図:

 構造的な配置はVelodyneとはまだ異なり、主要部分は3つのブロックで構成される構造に似ています(Velodyneは12のブロックに分かれていますが、本質的には4つのブロックごとに発火シーケンスを表し、ここでは1つのブロックが発火シーケンスを表します)を見てみましょうここでのブロックはどのように定義されているか:

 このうちチャンネルデータはVelodyneと同じ3バイトで表され、2バイトが距離、1バイトが規格化反射率(0~255)を表しており、ここでの距離の単位はセンチメートル(cm)です。

4.垂直角度 (仰角) :

ベロダインのレーザーのパターンを覚えているかもしれませんが、ルビーとインドの関係は次のとおりです。

 Ruby のタイムスタンプは最初のチャンネルのレーザー ポイント時間を示すため、これに基づいてオフセットを計算できます。

5. その他の機能

構成インターフェイスには、これまでに説明されていないいくつかの新機能があります。

 この LIDAR は 3 つのグループを個別に制御できます (ここでのグループ定義は示されていません。ここでのグループはグループ概念としての Velodyne 8 とは異なります。特性によると、1 つのパッケージ内に 3 つのブロックがあり、各ブロックには完全な 128 チャネル。これは、パケット内の異なる発射シーケンス (MSOP) に対応します。これは、発射としても理解できる 128 チャネルであるため、さまざまなトリガーなど、パケット内のさまざまなレーザー シーケンスの属性を制御できます FOV などは 1 つの MSOP で異なるプロパティを持つエコー データを作成します)

RS Viewの機能は、記録・再生(PCAPパッケージの分解)、CSV形式ファイルのエクスポートなどが可能です。

なお、ここでは ROS の設定は省略しています。

8.1.2 RS-M1

 M1ライダーは花形商品とも言える、正式に搭載され量産されている車載用レーダーで、回転式とは原理が異なります。特定の MEMS LIDAR の内部を図に示します。

 イメージングの原理は、レーザー光をディフューザーを通して散乱させ、反射された情報を受光レンズを通して受け取ることです。

上記と同様に、まず機能を見てください。

 まず、この LIDAR の水平 FOV は 120 度で、主に前方に焦点を当てています。出力点数は75万点(シングルエコーモード)、時刻同期方式はgPTPのみ、重量はわずか730gです。

M1 については、いくつかのユニークな点について簡単に説明します。

1. MSOPパケットの構造

 25 個のブロックに分割されており、各データ ブロックに 5 つのチャネルがあることがわかります。ここでは、実際には M1 に 5 つのレーザー ヘッドがあり、最後に画像が接続されています。

2. ソフトウェア little robo を使用して LIDAR を設定します

3. ROS パッケージが提供され、記録戦略を調整するためのパラメーターの説明が config.yaml に提供されます。

8.2 ヘサイライダー

 Hesai LiDAR も非常に強力で、M1 が以前のスター製品だとすれば、今年の vcsel LiDAR AT128 は間違いなくスター製品です。最近発売されたideal L9など多数のモデルが満載。私はAT128レーダーとマニュアルを持っていないので、その主要なパラメータを見てから、その優れた製品パンダ128について話しましょう。

8.2.1 AT128

 出力量は153万ドット/秒と非常に強力で、水平視野角は120度です。下の写真には「ステッチなし」「 120度の超広視野」と書かれていますが、これはM1を直接指しているわけではありません。ここでの波長は1550nmで、可視光線からより遠く、人間の目に害が少ないです。もう少し電源を入れて検出すると距離が遠くなります。

8.2.2 パンダ 128E3x

 パラメータ:

 出力点数が345万点(一般的な240万点を大幅に上回る)となっており、より高い解像度が得られます。時刻ソースには、PTP だけでなく従来の GPS も使用できます。

データ形式:

データ主体:

  点群の分析:

 ここで私が述べたことは比較的簡潔です。興味のある学生は、アプリケーションマニュアルを参照してください~

9. まとめ

この記事の上下の問題は、LIDAR に関して確認できる数少ない詳細の 1 つであると言えます。マニュアルを読んでデバイスの原理を理解することで、関連するアルゴリズム設計関連のソリューションの開発に役立てることができます。

記事で言及したライダー以外にも、Aeva の FMCW ライダー (Lidar on Chip) など、非常に有望なライダーが数多くあり、話題となっています。

 Aevaの構造図

 アエヴァのレンダリング

-------------------------------------------------- -----------------------

読んでいただきありがとうございます。皆さんのお役に立てれば幸いです。さらに、記事に登場するさまざまなメーカーのおかげで、その製品から多くのことを学ぶことができました。

付録: LiDAR の物理写真:

最後に、LIDAR の美しい写真をいくつか載せます。

 Velodyne の VLS128 (Alpha Prime) は重量があります

 禾赛パンダル 128

 サジタル M1

おすすめ

転載: blog.csdn.net/m0_46611008/article/details/126353129