Main Content

hesaiFileReader

Hesai PCAP ファイルからの点群データの読み取り

R2022a 以降

説明

hesaiFileReader オブジェクトは、Hesai® パケット キャプチャ (PCAP) ファイルから点群データを読み取ります。

作成

説明

hesaiReader = hesaiFileReader(fileName,deviceModel) は、Hesai PCAP ファイルから点群データを読み取る hesaiFileReader オブジェクトを作成します。PCAP ファイル fileName とデバイス モデル deviceModel を指定します。入力に応じて FileName プロパティと DeviceModel プロパティがそれぞれ設定されます。このリーダーでサポートされるデバイス モデルは、Pandar128E3X、Pandar64、PandarQT、および PandarXT32 です。

hesaiReader = hesaiFileReader(___,Name=Value) は、1 つ以上の名前と値の引数を使用して CalibrationFile プロパティと SkipPartialFrames プロパティを指定します。たとえば、hesaiFileReader(fileName,deviceModel,SkipPartialFrames=0) は、不完全なフレームをスキップしない Hesai ファイル リーダーを作成します。

プロパティ

すべて展開する

この プロパティ は読み取り専用です。

Hesai PCAP ファイルの名前。文字ベクトルまたは string スカラーとして指定します。

この プロパティ は読み取り専用です。

Hesai デバイス モデルの名前。"Pandar128E3X""Pandar64""PandarQT"、または "PandarXT32" として指定します。

メモ

正しいデバイス モデルを指定しないと、フレームが返されないか、キャリブレーションが不適切な点群が返されます。

この プロパティ は読み取り専用です。

Hesai キャリブレーション CSV ファイルの名前。文字ベクトルまたは string スカラーとして指定します。このキャリブレーション ファイルはいずれのセンサーにも付属しています。

このプロパティを設定するには、オブジェクトの作成時に指定する必要があります。

例: CalibrationFile='CalibrationFileName' は、Hesai キャリブレーション CSV ファイルを指定します。

この プロパティ は読み取り専用です。

不完全なフレームの処理。logical 1 (true) または 0 (false) として指定します。不完全なフレームとは、水平方向の視野が PCAP ファイル内のすべてのフレームの水平方向の視野の平均に満たないフレームと定義されます。そのようなフレームをスキップするには、このプロパティを true として指定します。それ以外の場合は、false として指定します。

このプロパティを設定するには、オブジェクトの作成時に指定する必要があります。

例: SkipPartialFrames=true は、PCAP ファイル内の不完全なフレームをスキップします。

この プロパティ は読み取り専用です。

Hesai PCAP ファイルのリターン モード。文字ベクトルとして指定します。

この プロパティ は読み取り専用です。

ファイル内の点群フレームの合計数。正の整数として指定します。

この プロパティ は読み取り専用です。

ファイルの合計持続時間。秒単位の duration スカラーとして指定します。

この プロパティ は読み取り専用です。

点群の最初の読み取り時間。秒単位の duration スカラーとして指定します。

Hesai センサーは、最新の秒数を基準として開始時間の値を設定します。たとえば、ファイルが 1:58:00.5 p.m. から 2:05:00.5 p.m. まで 7 分間にわたって記録された場合は次のようになります。

  • StartTime = 0.5 s

  • EndTime = StartTime + 7 min × 60 s = 420.5 s

この プロパティ は読み取り専用です。

点群の最後の読み取り時間。秒単位の duration スカラーとして指定します。

Hesai センサーは、最新の秒数を基準として開始時間の値を設定します。たとえば、ファイルが 1:58:00.5 p.m. から 2:05:00.5 p.m. まで 7 分間にわたって記録された場合は次のようになります。

  • StartTime = 0.5 s

  • EndTime = StartTime + 7 min × 60 s = 420.5 s

点群の現在の読み取り時間。秒単位の duration スカラーとして指定します。このプロパティは、readFrame を使用して点群を読み取るたびに、点群の最新の読み取り時間で更新されます。このプロパティの値は reset を使用して既定値にリセットできます。既定値は StartTime プロパティと一致します。

この プロパティ は読み取り専用です。

各点群フレームの開始時間。秒単位の値の duration ベクトルとして指定します。このベクトルの長さは NumberOfFrames プロパティの値と等しくなります。このベクトルの最初の要素の値は StartTime プロパティの値と同じです。このプロパティを使用して、異なる時間に取得された点群フレームを読み取ることができます。

オブジェクト関数

hasFrameDetermine if another Hesai point cloud is available
readFrameRead Hesai point cloud from file
resetReset hesaiFileReader object to first frame

すべて折りたたむ

Hesai パケット キャプチャ (PCAP) ファイルを含む ZIP ファイルをダウンロードし、そのファイルを解凍します。

zipFile = matlab.internal.examples.downloadSupportFile("lidar","data/hesai_BusyRoad.zip");
saveFolder = fileparts(zipFile);
pcapFileName = [saveFolder filesep 'hesai_BusyRoad.pcap'];
if ~exist(pcapFileName,"file")
    unzip(zipFile,saveFolder);
end

hesaiFileReader オブジェクトを作成します。

hesaiReader = hesaiFileReader(pcapFileName,"Pandar128E3X");

pcplayer の X 軸、Y 軸、Z 軸の座標軸の範囲をメートル単位で定義します。

xlimits = [-60 60];
ylimits = [-60 60];
zlimits = [-20 20];

点群プレーヤーを作成します。

player = pcplayer(xlimits,ylimits,zlimits);

pcplayer の座標軸のラベルを設定します。

xlabel(player.Axes,"X (m)");
ylabel(player.Axes,"Y (m)");
zlabel(player.Axes,"Z (m)");

開始時間の 0.3 秒後から読み取りを開始するように Hesai ファイル リーダーの CurrentTime を指定します。

hesaiReader.CurrentTime = hesaiReader.StartTime + seconds(0.3);

CurrentTime から最終の点群までの点群のストリームを表示します。

while(hasFrame(hesaiReader) && player.isOpen())
    ptCloud = readFrame(hesaiReader);
    view(player,ptCloud(1)); 
end

Figure Point Cloud Player contains an axes object. The axes object with xlabel X (m), ylabel Y (m) contains an object of type scatter.

バージョン履歴

R2022a で導入