Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

PointCloud2

(削除予定) 点群メッセージへのアクセス

R2019b 以降

PointCloud2 オブジェクトは将来のリリースで削除されます。関数 rosmessage を使用して ROS メッセージを作成する場合は、名前と値の引数 Dataformat"struct" として指定して、メッセージ構造体形式を使用します。関数 rosReadXYZrosWriteXYZrosReadRGB、および rosWriteRGB を使用して、点群メッセージを操作できます。詳細については、ROS メッセージ構造体の関数を参照してください。

説明

PointCloud2 オブジェクトは、ROS での sensor_msgs/PointCloud2 メッセージ タイプの実装です。このオブジェクトには、メッセージおよび点群データに関するメタ情報が含まれています。実際のデータにアクセスするには、readXYZ を使用して点座標を取得し、readRGB を使用してカラー情報 (使用可能な場合) を取得します。

作成

説明

ptcloud = rosmessage('sensor_msgs/PointCloud2') は、空の PointCloud2 オブジェクトを作成します。点群データを指定するには、ptcloud.Data プロパティを使用します。rossubscriber を使用して、ROS ネットワークから点群データのメッセージを取得することもできます。

プロパティ

すべて展開する

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

点群行列の形状を保持します。false または true として指定します。プロパティが true のとき、readXYZ および readRGB からの出力データは、ベクトルではなく行列として返されます。

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

ROS メッセージのメッセージ タイプ。文字ベクトルとして返されます。

データ型: char

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

ROS ヘッダー メッセージ。Header オブジェクトとして返されます。このヘッダー メッセージには、MessageType、シーケンス (Seq)、タイムスタンプ (Stamp)、および FrameId が含まれます。

点群の高さ (ピクセル単位)。整数として指定します。

点群の幅 (ピクセル単位)。整数として指定します。

イメージ バイト シーケンス。true または false として指定します。

  • true — ビッグ エンディアン シーケンス。最小アドレス内の最上位バイトを格納します。

  • false — リトル エンディアン シーケンス。最小アドレス内の最下位バイトを格納します。

点の長さ (バイト単位)。整数として指定します。

行の全長 (バイト単位)。整数として指定します。行の長さは、PointStep プロパティに Width プロパティを掛けた値と等しくなります。

点群データ。uint8 配列として指定します。データにアクセスするには、オブジェクト関数を使用します。

オブジェクト関数

readAllFieldNames(To be removed) Get all available field names from ROS point cloud
readField(削除予定) フィールド名に基づいた点群データの読み取り
readRGB(削除予定) 点群データからの RGB 値の抽出
readXYZ(削除予定) 点群データからの XYZ 座標の抽出
scatter3散布図での点群の表示
showdetails(削除予定) すべての ROS メッセージの内容の表示

すべて折りたたむ

点群メッセージ内のデータにアクセスして可視化します。

サンプルの ROS メッセージを作成して点群イメージを検査します。ptcloud はサンプルの ROS PointCloud2 メッセージ オブジェクトです。

exampleHelperROSLoadMessages
ptcloud
ptcloud = 
  ROS PointCloud2 message with properties:

    PreserveStructureOnRead: 0
                MessageType: 'sensor_msgs/PointCloud2'
                     Header: [1x1 Header]
                     Fields: [4x1 PointField]
                     Height: 480
                      Width: 640
                IsBigendian: 0
                  PointStep: 32
                    RowStep: 20480
                       Data: [9830400x1 uint8]
                    IsDense: 0

  Use showdetails to show the contents of the message

readXYZ および readRGB を使用して、点群から RGB 情報と xyz 座標を取得します。

xyz = readXYZ(ptcloud);
rgb = readRGB(ptcloud);

scatter3 を使用して、Figure 内に点群を表示します。

scatter3(ptcloud)

Figure contains an axes object. The axes object with title Point Cloud, xlabel X, ylabel Y contains an object of type scatter.

ROS Toolbox™ の点群メッセージを、Computer Vision System Toolbox™ の pointCloud オブジェクトに変換します。

サンプル メッセージを読み込みます。

exampleHelperROSLoadMessages

ptcloud メッセージを pointCloud オブジェクトに変換します。

pcobj = pointCloud(readXYZ(ptcloud),'Color',uint8(255*readRGB(ptcloud)))
pcobj = 
  pointCloud with properties:

     Location: [307200x3 single]
        Count: 307200
      XLimits: [-1.8147 1.1945]
      YLimits: [-1.3714 0.8812]
      ZLimits: [1.4190 3.3410]
        Color: [307200x3 uint8]
       Normal: []
    Intensity: []

バージョン履歴

R2019b で導入

すべて折りたたむ

R2021a: ROS メッセージ構造体の関数

これで、メッセージ オブジェクトのプロパティと一致するフィールドをもつ構造体としてメッセージを作成できます。通常、構造体を利用すると ROS メッセージの作成、更新、使用のパフォーマンスが向上しますが、設定時にメッセージのフィールドが検証されなくなります。メッセージ タイプと、構造体から取得した対応するフィールド値は、ネットワーク経由で送信されたときに検証されます。

メッセージ構造体を入力としてサポートするため、特殊な ROS メッセージに対して動作する新しい関数が導入されました。これらの新しい関数はメッセージ オブジェクトの既存のオブジェクト関数に基づいていますが、メッセージ オブジェクトの代わりに ROS および ROS 2 のメッセージ構造体を入力としてサポートします。

オブジェクト関数は将来のリリースで削除されます。

メッセージ タイプオブジェクト関数名新規関数名

Image

CompressedImage

readImage

writeImage

rosReadImage

rosWriteImage

LaserScan

readCartesian

readScanAngles

lidarScan

plot

rosReadCartesian

rosReadScanAngles

rosReadLidarScan

rosPlot

PointCloud2

apply

readXYZ

readRGB

readAllFieldNames

readField

scatter3

rosApplyTransform

rosReadXYZ

rosReadRGB

rosReadAllFieldNames

rosReadField

rosPlot

QuaternionreadQuaternion

rosReadQuaternion

OccupancyGrid

readBinaryOccupanyGrid

readOccupancyGrid

writeBinaryOccupanyGrid

writeOccupanyGrid

rosReadOccupancyGrid

rosReadBinaryOccupancyGrid

rosReadOccupancyGrid

rosWriteBinaryOccupancyGrid

rosWriteOccupancyGrid

OctomapreadOccupancyMap3D

rosReadOccupancyMap3D

PointStamped

PoseStamped

QuaternionStamped

Vector3Stamped

TransformStamped

apply

rosApplyTransform

すべてのメッセージshowdetails

rosShowDetails