주요 콘텐츠

readMessages

ros2bagreader 객체에서 메시지 읽어오기

R2021a 이후

    설명

    msgs = readMessages(bag)ros2bagreader 객체 bag의 모든 메시지에서 데이터를 반환합니다. 메시지는 구조체로 구성된 셀형 배열로 반환됩니다.

    예제

    msgs = readMessages(bag,rows)rows로 지정된 행의 메시지에서 데이터를 반환합니다. 행의 범위는 [1 bag.NumMessages]입니다.

    예제

    모두 축소

    ROS 2 bag 로그 파일이 들어 있는 ZIP 파일 압축을 풀고 로그 폴더의 전체 경로를 지정합니다.

    unzip("ros2_netwrk_bag.zip");
    folderPath = fullfile(pwd,"ros2_netwrk_bag");

    로그 파일의 모든 메시지를 포함하는 ros2bagreader 객체를 만듭니다.

    bagReader = ros2bagreader(folderPath);

    ros2bagreader 객체의 내용에 대한 정보를 가져옵니다.

    baginfo = ros2("bag","info",folderPath)
    baginfo = struct with fields:
             Path: 'C:\Users\ros2_netwrk_bag\ros2_netwrk_bag.db3'
          Version: '1'
        StorageId: 'sqlite3'
         Duration: 207.9020
            Start: [1×1 struct]
              End: [1×1 struct]
             Size: 16839538
         Messages: 166867
            Types: [4×1 struct]
           Topics: [4×1 struct]
    

    ros2bagreader 객체의 모든 메시지를 가져옵니다.

    msgs = readMessages(bagReader);

    토픽으로 필터링된, 메시지의 일부를 선택합니다.

    bagSel = select(bagReader,"Topic","/odom")
    bagSel = 
      ros2bagreader with properties:
    
               FilePath: 'C:\Users\ros2_netwrk_bag'
          AvailableBags: "ros2_netwrk_bag.db3"
              StartTime: 1.6020e+09
                EndTime: 1.6020e+09
        AvailableTopics: [1×3 table]
        AvailableFrames: {0×1 cell}
            MessageList: [5275×3 table]
            NumMessages: 5275
    

    선택한 부분의 메시지를 가져옵니다.

    msgsFiltered = readMessages(bagSel);

    입력 인수

    모두 축소

    ros2bagreader 객체의 메시지로, ros2bagreader 객체로 지정됩니다.

    ros2bagreader 객체의 행으로, 요소를 n개 가진 벡터로 지정됩니다. 여기서 n은 메시지를 가져올 행의 개수입니다. 벡터의 각 요소는 bag의 번호가 매겨진 메시지에 해당합니다. 행의 범위는 [1 bag.NumMessages]입니다.

    출력 인수

    모두 축소

    ROS 2 메시지 데이터로, 구조체로 구성된 셀형 배열로 반환됩니다.

    버전 내역

    R2021a에 개발됨

    참고 항목

    객체

    함수