Файлы журнала ROS (rosbags)

Введение

rosbag или сумка являются форматом файла в ROS для того, чтобы хранить данные о сообщении ROS. Эти сумки часто создаются, подписываясь на одну или несколько тем ROS и храня полученные данные о сообщении в эффективной файловой структуре. MATLAB® может считать эти rosbag файлы и справку с фильтрацией и извлечением данных о сообщении. Следующие разделы детализируют структуру rosbags в MATLAB® и рабочем процессе для извлечения данных от них.

MATLAB rosbag Структура

При доступе rosbag к файлам журнала, вызовите rosbag и задайте путь к файлу к объекту. MATLAB затем создает BagSelection объект, который содержит индекс всех сообщений от rosbag.

BagSelection объекту связали следующие свойства с rosbag:

  • FilePath: вектор символов абсолютного пути к rosbag файлу.

  • StartTime: скаляр, указывающий время первое сообщение, был зарегистрирован

  • EndTime: скаляр, указывающий время последнее сообщение, был зарегистрирован

  • NumMessages: скаляр, указывающий, сколько сообщений содержится в файле

  • AvailableTopics: список того, какая тема и типы сообщений были зарегистрированы в сумке. Это хранится как табличные данные, которые перечисляют количество сообщений, типа сообщения и определения сообщения для каждой темы. Для получения дополнительной информации о типах данных table см. Доступ к данным в Таблицах (MATLAB). Вот является пример выходом этой таблицы:

    ans = 
    
                               NumMessages         MessageType          MessageDefinition
                               ___________    ______________________    _________________
    
        /clock                 12001          rosgraph_msgs/Clock       [1x185  char]    
        /gazebo/link_states    11999          gazebo_msgs/LinkStates    [1x1247 char]    
        /odom                  11998          nav_msgs/Odometry         [1x2918 char]    
        /scan                    965          sensor_msgs/LaserScan     [1x2123 char]    
  • MessageList: список каждого сообщения в сумке со строками, отсортированными по метке времени того, когда сообщение было зарегистрировано. Этот список может быть индексирован, и можно выбрать фрагмент списка этот путь. Вызов select позволяет вам выбирать подмножества на основе метки времени, темы или типа сообщения.

Кроме того, обратите внимание что BagSelection объект содержит индекс для всех сообщений. Однако необходимо все еще использовать функции, чтобы извлечь данные. Для извлечения этой информации смотрите readMessages для получения сообщений на основе индексов как массив ячеек или смотрите timeseries для чтения данных заданных свойств как временные ряды.

Рабочий процесс для rosbag Выбора

При работе с rosbags существует общая процедура того, как необходимо извлечь данные.

  • Загрузите rosbag: Вызовите rosbag и путь к файлу, чтобы загрузить файл и создать BagSelection.

  • Исследуйте доступные сообщения: Исследуйте BagSelection свойства (AvailableTopics, NumMessagesВремя началаВремя окончания, и MessageList) определить, как выбрать подмножество сообщений для анализа.

  • Избранные сообщения: Вызовите select создать выбор сообщений на основе ваших желаемых свойств.

  • Данные о сообщении извлечения: Вызовите readMessages или timeseries получить данные о сообщении или как массив ячеек или как структуру данных временных рядов.

  • Визуализируйте, анализируйте или обработайте данные: Используйте извлеченные данные в своем определенном приложении. Можно отобразить данные на графике или разработать алгоритмы, чтобы обработать данные.

Следующий рисунок также показывает рабочий процесс.

Ограничения

Существует несколько ограничений в поддержке rosbag в MATLAB:

  • MATLAB может только проанализировать несжатый rosbags. Смотрите Wiki ROS для инструмента, чтобы распаковать сжатый rosbag.

  • Только rosbags в v2.0 формате поддерживаются. Смотрите Wiki ROS для получения дополнительной информации о различных форматах сумки

  • Путь к файлу к rosbag должен всегда быть доступным. Поскольку процесс выбора сообщения не получает данных, файл должен быть доступен для чтения, когда к данным о сообщении получают доступ.

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

| |

Похожие темы