ROS Bags. Работа с данными

На этом занятии мы столкнемся с новой для нас темой - это bag файлы.

Идея их использования довольно проста и немного похожа на машину времени. Мы можем включить "запись" и сохранять все сообщения, которые происходят в нашей системе, результат этой записи сохраняется в .bag файлах.

Также, имея .bag файл, мы можем сколь угодно раз проигрывать записанный отрезок времени. Такой подход упрощает отладку алгоритмов, когда нам для проверки не нужно моделировать объекты реального мира, а достаточно один раз записать данные.

Для работы с .bag служит консольная утилита rosbag, перечислим основные ее аргументы

rosbag record [TOPIC_NAME] Начать запись .bag
rosbag play [FILE_NAME] Проиграть .bag файл
rosbag compress [FILE_NAME] Архивировать файл 
rosbag decompress [FILE_NAME] Разархивировать файл
rosbag record -a Записать все сообщения

Применение

Запустим скрипт, который мы написали когда разбирались с топиками pub.py. Мы помним, что он публикует данные в топик /welcome_topic

python3 pub.py

Проверим, что в топике действительно есть данные

rostopic echo /welcome_topic

data: "Hello robot"
---
data: "Hello robot"

Начнем запись топика. Лучше подождать секунд 15, прежде чем остановить запись.

rosbag record /welcome_topic 
[ INFO] [1625835886.569004918]: Subscribing to /welcome_topic
[ INFO] [1625835886.574587140]: Recording to 2021-07-09-16-04-46.bag.

Мы видим, что запись пошла в файл 2021-07-09-16-04-46.bag

Остановим тестовый скрипт и "проиграем" файл

rosbag play 2021-07-09-16-04-46.bag 
[ INFO] [1625836223.604592718]: Opening 2021-07-09-16-04-46.bag

Waiting 0.2 seconds after advertising topics... done.

Hit space to toggle paused, or 's' to step.
 [RUNNING]  Bag Time: 1625835902.209460   Duration: 14.730354 / 23.037502

В топике welcome_topic появились данные.

rostopic echo /welcome_topic 
data: "Hello robot"
---
data: "Hello robot"
---
data: "Hello robot"
---

results matching ""

    No results matching ""