Skip to content

Rosbag recorder

proitshnik edited this page May 23, 2023 · 4 revisions

Rosbag_recorder.py

Запуск

Запуск узла rosbag записи для дрона для одного топика

rosrun camera_controls rosbag_recorder.py /topic_name

Запуск узла rosbag записи для дрона для двух топиков

rosrun camera_controls rosbag_recorder.py /topic1_name /topic2_name

Работа с узлом rosbag записи

Запуск записи

start record

Запуск записи через топик для команд

rostopic pub /rosbag_command std_msgs/String "start record"

Остановка записи

stop record

Остановка записи через топик для команд

rostopic pub /rosbag_command std_msgs/String "stop record"

Запуск записи на n секунд

record during n

Запуск записи на n секунд через топик для команд

rostopic pub /rosbag_command std_msgs/String "record during n"

Описание узла rosbag записи

После верно введенного запуска узла rosbag записи проводится проверка возможности записи заданных топиков. В случае невозможности узел ждет 10 секунд, проверяя в это время доступность топиков, если через 10 секунд доступа ко всем заданным топикам нет, то программа завершает работу. Пользователя в такой ситуации уведомляет следующее сообщение Waiting for /topics_name publishers,в котором в случае недоступности всех заданных топиков каждую секунду добавляется точка и после 10 секунд There is no publishers for topics: /topics_name. В случае успешности выводится справка команд для управления записью. Узел rosbag записи считывает верно введенные команды и регулирует rosbag запись. Работает защита записи, которая не запускает новые записи, пока идет другая. Каждая запись сохраняется в свой файл rosbag<number_of_record>.bag. Перед каждой записью производится такая же проверка доступности всех заданных топиков, как и в начале, но в случае недоступности программа не завершает работу, вместо этого не запускается запись. В случае записи одного топика запись производится напрямую, в случае записи двух топиков запись производится в синхронизированном режиме со специальных топиков /rosbag_sync_topic и /rosbag_sync_topic2. Программа универсальна для любых типов сообщений.