Gravando e reproduzindo arquivos do tipo bag

Sumário

  1. Gravando arquivos bag
  2. Reproduzindo arquivos bag
  3. Examinando arquivos bag

O termo bag refere-se a um tipo de arquivo especificamente formatado para armazenar mensagens do tipo ROS que gravam o tempo em que a mensagem está sendo trocada. O comando rosbag pode ser utilizado tanto para gravar quanto para reproduzir arquivos do tipo bag.

Gravando arquivos bag

Para criar um arquivo do tipo bag, utilize o comando rosbag da seguinte forma:

 rosbag record -O filename.bag topic-names 

Se você não colocar um nome no seu arquivo, o comando irá escolher um nome baseado na data e no tempo atual. Além disso, existem algumas opções às quais rosbag record pode ser útil.

⏩ No lugar de listar tópicos específicos, é possível utilizar rosbag record -a para gravar mensagens em todos os tópicos que estão sendo publicados.

⚠️ Gravar todos os tópicos não ocasiona problemas para os sistemas de pequena escala apresentados neste livro. Contudo, pode se tornar uma ideia ruim em muitos sistemas para robôs reais. Por exemplo, a maioria dos robôs equipados com câmeras têm nós que publicam múltiplos tópicos contendo imagens que passaram por muito processamento e por vários níveis de compressão. Gravar todos os tópicos pode criar arquivos enormes rápido. Pense duas vezes antes de usar -a ou preste atenção para o tamanho do arquivo.

⏩ Também é possível habilitar compressão no arquivo utilizando rosbag record -j. Entretando, geralmente é necessário realizar um tradeoff: arquivos pequenos em troca por um pouco mais de processamento para ler e escrever. Na opinião do autor, compressão é comumente uma boa ideia para esse tipo de arquivo.

Quando não for mais necessário gravar, utilize Ctrl + C para parar o comando.

Reproduzindo arquivos bag

Para reproduzir um arquivo bag, utilize o comando dessa forma:

rosbag play filename.bag

Assim, as mensagens armazenadas no arquivo são reproduzidas, na mesma ordem e com o mesmo intervalo de tempo entre elas, da mesma forma forma que foram originalmente publicadas.

Examinando arquivos bag

O comando rosbag info pode prover diversas informaçãoes sobre o arquivo:

 rosbag info filename.bag

Por exemplo, a saída deste comando para um bag que o autor gravou enquanto escrevia a próxima seção:

endereço: square.bag
versão: 2.0
duração: 1:08s (68s)
início: Jan 06 2014 00:05:34:66 (1388984734.66)
fim: Jan 06 2014 00:06:42.99 (1388984802.99)
tamanho: 770.8 KB
mensagens: 8518
compressão: nenhuma [1/1 pedaços]
tipo: geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
turtlesim/Pose [863b248d5016ca62ea2e895ae5265cf9]
tópicos: /turtle1/cmd_vel 4249 msgs : geometry_msgs/Twist
/turtle1/pose 4269 msgs : turtlesim/Pose

Particularmente, a duração, a quantidade de mensagens e a listagem de tópicos são de interesse.