주요 콘텐츠

PointCloud2

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

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(제거될 예정임) 모든 ROS 메시지 내용 표시

예제

모두 축소

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

샘플 ROS 메시지를 만들고 포인트 클라우드 이미지를 검사합니다. ptcloud는 샘플 ROS PointCloud2 메시지 객체입니다.

exampleHelperROSLoadMessages
ptcloud
ptcloud = 
  ROS PointCloud2 message with properties:

    PreserveStructureOnRead: 0
                MessageType: 'sensor_msgs/PointCloud2'
                     Header: [1×1 Header]
                     Fields: [4×1 PointField]
                     Height: 480
                      Width: 640
                IsBigendian: 0
                  PointStep: 32
                    RowStep: 20480
                       Data: [9830400×1 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: [307200×3 single]
        Count: 307200
      XLimits: [-1.8147 1.1945]
      YLimits: [-1.3714 0.8812]
      ZLimits: [1.4190 3.3410]
        Color: [307200×3 uint8]
       Normal: []
    Intensity: []

버전 내역

R2019b에 개발됨

모두 축소