Main Content

readXYZ

点群データからの XYZ 座標の抽出

説明

xyz = readXYZ(pcloud) は、PointCloud2 オブジェクト pcloud のすべての点から [x y z] 座標を抽出し、n 個の 3 次元点座標の n 行 3 列の行列として返します。点群に x、y、および z フィールドが含まれていない場合、この関数はエラーを返します。NaN が含まれる点は出力で保持されます。点群データの構造を保持する方法の詳細については、点群の構造の保持を参照してください。

すべて折りたたむ

ROS 点群メッセージ ptcloud が含まれるサンプル ROS メッセージを読み込みます。

exampleHelperROSLoadMessages

点群から XYZ 値を読み取ります。

xyz = readXYZ(ptcloud);

入力引数

すべて折りたたむ

点群。'sensor_msgs/PointCloud2' ROS メッセージの PointCloud2 オブジェクト ハンドルとして指定します。

出力引数

すべて折りたたむ

点群からの XYZ 値のリスト。行列として返されます。既定では、これは n 行 3 列の行列です。読み取り中の点群オブジェクトで PreserveStructureOnRead プロパティが true に設定されている場合、点は h x w x 3 の行列として返されます。詳細については、点群の構造の保持を参照してください。

ヒント

点群データは、1 次元リストまたは 2 次元イメージの形式で整理できます。2 次元イメージ形式は、通常、深さセンサーまたはステレオ カメラから得られます。入力の PointCloud2 オブジェクトには、true または false (既定) のいずれかである PreserveStructureOnRead プロパティが含まれます。このプロパティを true に設定したとします。

pcloud.PreserveStructureOnRead = true;

ここで、任意の読み取り関数 (readXYZreadRGB、または readField) を呼び出すと、点群の組織的な構造が保持されます。構造を保持する場合、出力行列のサイズは m x n x d になります。ここで m は高さ、n は幅、d は各点の戻り値の数です。それ以外の場合、すべての点は x 行 d 列のリストとして返されます。この構造は、点群が整理されている場合にのみ保持することができます。

R2019b で導入