select

Выберите подмножество сообщений в rosbag

    Описание

    bagreadersel = select(bagreader) возвращает rosbagreader объект bagreadersel, это содержит все сообщения в rosbagreader объект bagreader.

    Эта функция создает копию rosbagreader возразите или возвращает новый rosbagreader объект, который содержит заданный выбор сообщения.

    пример

    bagreadersel = select(bagreader,Name=Value) задает дополнительные параметры с помощью одних или нескольких аргументов name-value. Например, Topic="/odom" выбирает подмножество сообщений, отфильтрованных темой /odom.

    Примеры

    свернуть все

    Загрузите rosbag файл журнала и проанализируйте определенные сообщения на основе выбранных критериев.

    Создайте rosbagreader объект всех сообщений в rosbag файле журнала.

    bagMsgs = rosbagreader("ros_multi_topics.bag")
    bagMsgs = 
      rosbagreader with properties:
    
               FilePath: '/mathworks/devel/bat/BR2021bd/build/matlab/toolbox/robotics/robotexamples/ros/data/bags/ros_multi_topics.bag'
              StartTime: 201.3400
                EndTime: 321.3400
            NumMessages: 36963
        AvailableTopics: [4x3 table]
        AvailableFrames: {0x1 cell}
            MessageList: [36963x4 table]
    
    

    Выберите подмножество сообщений на основе их метки времени и темы.

    bagMsgs2 = select(bagMsgs,...
        Time=[bagMsgs.StartTime bagMsgs.StartTime + 1],...
        Topic='/odom')
    bagMsgs2 = 
      rosbagreader with properties:
    
               FilePath: '/mathworks/devel/bat/BR2021bd/build/matlab/toolbox/robotics/robotexamples/ros/data/bags/ros_multi_topics.bag'
              StartTime: 201.3400
                EndTime: 202.3200
            NumMessages: 99
        AvailableTopics: [1x3 table]
        AvailableFrames: {0x1 cell}
            MessageList: [99x4 table]
    
    

    Получите сообщения в выборе как массив ячеек.

    msgs = readMessages(bagMsgs2)
    msgs=99×1 cell array
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
        {1x1 Odometry}
          ⋮
    
    

    Возвратите определенные свойства сообщения как временные ряды.

    ts = timeseries(bagMsgs2,...
        'Pose.Pose.Position.X', ...
        'Twist.Twist.Angular.Y')
      timeseries
    
      Timeseries contains duplicate times.
    
      Common Properties:
                Name: '/odom Properties'
                Time: [99x1 double]
            TimeInfo: tsdata.timemetadata
                Data: [99x2 double]
            DataInfo: tsdata.datametadata
    

    Входные параметры

    свернуть все

    Индекс сообщений в rosbag в виде rosbagreader объект.

    Аргументы name-value

    Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN, где Name имя аргумента и Value соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.

    Пример: Topic="/odom" выбирает подмножество сообщений, отфильтрованных темой /odom.

    Тип сообщения ROS в виде строкового скаляра, вектора символов, массива ячеек строковых скаляров или массива ячеек из символьных векторов. Задайте несколько типов сообщений при помощи массива ячеек.

    Пример: select(bagreader,MessageType={"nav_msgs/Odometry","rosgraph_msgs/Clock"})

    Типы данных: char | string | cell

    Времена начала и конца rosbag выбора в виде n-by-2 вектор.

    Пример: select(bagreader,Time=[bag.StartTime,bag.StartTime+1])

    Типы данных: double

    Название темы ROS в виде строкового скаляра, вектора символов, массива ячеек строковых скаляров или массива ячеек из символьных векторов. Задайте несколько названий темы при помощи массива ячеек.

    Пример: select(bagreader,Topic={"/odom","/clock"})

    Типы данных: char | string | cell

    Выходные аргументы

    свернуть все

    Копия или подмножество сообщений rosbag, возвращенных как rosbagreader объект.

    Смотрите также

    | | | |

    Введенный в R2021b