Main Content

select

Select subset of messages in ros2bag

    Description

    bagsel = select(bag) returns a ros2bag object, bagsel, that contains all of the messages in the ros2bag object, bag.

    This function creates a copy of the ros2bag object or returns a new ros2bag object that contains the specified message selection.

    example

    bagsel = select(bag,Name,Value) provides additional options specified by one or more name-value pair arguments. For example, "Topic","/scan" selects a subset of the messages, filtered by the topic /scan.

    Examples

    collapse all

    Extract the zip file that contains the ROS 2 bag log file and specify the full path to the log folder.

    unzip('alltopics.zip');
    folderPath = fullfile(pwd,'alltopics');

    Create a ros2bag object that contains all the messages in the log file.

    bag = ros2bag(folderPath);

    Get information on the contents of the ros2bag object.

    bag2info = ros2("bag","info",folderPath)
    bag2info = struct with fields:
             Path: 'C:\Users\SHIVARAD\OneDrive - MathWorks\Documents\MATLAB\Examples\ros-ex96596996\alltopics\alltopics.db3'
          Version: '1'
        StorageId: 'sqlite3'
         Duration: 102.396644003
            Start: [1×1 struct]
              End: [1×1 struct]
             Size: 4965433
         Messages: 36503
            Types: [5×1 struct]
           Topics: [5×1 struct]
    
    

    Get all the messages in the ros2bag object.

    msgs = readMessages(bag);

    Select a subset of the messages, filtered by topic.

    bagSel = select(bag,"Topic","/scan");

    Get the messages in the selection.

    msgsFiltered = readMessages(bagSel);

    Input Arguments

    collapse all

    Messages in the ros2bag object, specified as a ros2bag object.

    Name-Value Pair Arguments

    Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

    Example: select(bag,"Topic","/scan") selects a subset of the messages, filtered by the topic /scan.

    ROS 2 message type, specified as a string scalar, character vector, cell array of string scalars, or cell array of character vectors. Multiple message types can be specified with a cell array.

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

    Data Types: char | string | cell

    Start and end times of the ros2bag selection, specified as an n-by-2 vector.

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

    Data Types: uint64

    ROS 2 topic name, specified as a string scalar, character vector, cell array of string scalars, or cell array of character vectors. Multiple topic names can be specified with a cell array.

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

    Data Types: char | string | cell

    Output Arguments

    collapse all

    Copy or subset of ros2bag messages, returned as a ros2bag object.

    See Also

    Objects

    Functions

    Introduced in R2021a