Main Content

PointCloud2

(제거될 예정임) 포인트 클라우드 메시지에 액세스

R2019b 이후

PointCloud2 객체는 향후 릴리스에서 제거될 예정입니다. rosmessage 함수를 사용하여 ROS 메시지를 생성할 때 Dataformat 이름-값 인수를 "struct"로 지정하여 메시지 구조체 형식을 사용하십시오. rosReadXYZ , rosWriteXYZ, rosReadRGB, rosWriteRGB 함수를 포인트 클라우드 메시지와 함께 사용할 수 있습니다. 자세한 내용은 ROS 메시지 구조체 함수 항목을 참조하십시오.

설명

PointCloud2 객체는 ROS에서 sensor_msgs/PointCloud2 메시지 유형을 구현한 것입니다. 이 객체에는 메시지와 포인트 클라우드 데이터에 대한 메타 정보가 포함되어 있습니다. 실제 데이터에 액세스하려면 가능한 경우 readXYZ를 사용하여 점 좌표를 가져오고 readRGB를 사용하여 색 정보를 가져옵니다.

생성

설명

예제

ptcloud = rosmessage('sensor_msgs/PointCloud2')는 빈 PointCloud2 객체를 만듭니다. 포인트 클라우드 데이터를 지정하기 위해 ptcloud.Data 속성을 사용합니다. 또한 rossubscriber를 사용하여 ROS 네트워크에서 포인트 클라우드 데이터 메시지를 가져올 수도 있습니다.

속성

모두 확장

읽기 전용 속성입니다.

포인트 클라우드 행렬의 형태 유지로, false 또는 true로 지정됩니다. 속성이 true이면 readXYZreadRGB의 출력 데이터가 벡터 대신 행렬로 반환됩니다.

읽기 전용 속성입니다.

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(To be removed) Read point cloud data based on field name
readRGB(제거될 예정임) 포인트 클라우드 데이터에서 RGB 값 추출
readXYZ(제거될 예정임) 포인트 클라우드 데이터에서 XYZ 좌표 추출
scatter3Display point cloud in scatter plot
showdetails(To be removed) Display all ROS message contents

예제

모두 축소

포인트 클라우드 메시지 내부의 데이터에 액세스하고 시각화합니다.

샘플 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

readXYZreadRGB를 사용하여 포인트 클라우드에서 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