メインコンテンツ

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

select

ros2bagreader 内のメッセージのサブセットを選択

R2021a 以降

    説明

    bagsel = select(bag) は、ros2bagreader オブジェクト bag 内のすべてのメッセージを含む ros2bagreader オブジェクト bagsel を返します。

    この関数は、ros2bagreader オブジェクトのコピーを作成するか、指定したメッセージ選択を含む新しい ros2bagreader オブジェクトを返します。

    bagsel = select(bag,Name,Value) は、1 つ以上の名前と値のペアの引数によって指定された追加オプションを提供します。たとえば "Topic","/scan" は、メッセージのサブセットを、トピック /scan によるフィルター処理で選択します。

    すべて折りたたむ

    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 オブジェクトとして指定します。

    名前と値の引数

    すべて折りたたむ

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

    例: select(bag,"Topic","/scan") は、メッセージのサブセットを、トピック /scan によるフィルター処理で選択します。

    ROS 2 メッセージ タイプ。string スカラー、文字ベクトル、string スカラーの cell 配列、または文字ベクトルの cell 配列として指定します。1 つの cell 配列で複数のメッセージ タイプを指定できます。

    例: select(bag,"MessageType",{"sensor_msgs/CameraInfo","sensor_msgs/LaserScan"})

    データ型: char | string | cell

    ROS 2 bag 選択の開始時間と終了時間。n 行 2 列のベクトルとして指定します。

    例: select(bag,"Time",[bag.MessageList(1,1).Time,bag.MessageList(2,1).Time])

    データ型: double

    ROS 2 トピック名。string スカラー、文字ベクトル、string スカラーの cell 配列、または文字ベクトルの cell 配列として指定します。1 つの cell 配列で複数のトピック名を指定できます。

    例: select(bag,"Topic",{"/scan","/clock"})

    データ型: char | string | cell

    出力引数

    すべて折りたたむ

    ROS 2 bag メッセージのコピーまたはサブセット。ros2bagreader オブジェクトとして返されます。

    バージョン履歴

    R2021a で導入

    参考

    オブジェクト

    関数