ROS no Raspberry Pi: usando o rosbag para salvar dados do tópico

Boa tarde, queridos leitores!
Este artigo é uma série extraordinária . Pode ser considerado como um complemento útil ao artigo . Aqui vou falar sobre uma ferramenta tão útil no ROS como o rosbag. Quem estiver interessado, por favor, sob o gato.

O que é rosbag?


O rosbag permite salvar dados publicados nos tópicos do ROS em arquivos especiais com extensão de saco. Em seguida, esses arquivos podem ser reproduzidos usando o mesmo rosbag; os dados serão publicados nos mesmos tópicos em que foram publicados inicialmente. Isso permite, por exemplo, simular o recebimento de dados dos sensores na ausência deles.

Gravando dados do tópico no arquivo bag


Por exemplo, gravaremos dados da câmera Raspberry Pi. Se lembrarmos do artigo em que recebemos o fluxo de vídeo da câmera e o publicamos no tópico image_raw. Agora, apenas usaremos o mesmo nó ROS para receber dados para gravação. Gravaremos o fluxo de vídeo do tópico image_raw no arquivo rosbag raspicam_image_raw.bag e o reproduziremos, recebendo o fluxo original sem usar a câmera.

Portanto, inicie o nó raspi_cam_ros:

rosrun raspi_can_ros capture

Mostre a lista de tópicos ativos:

rostopic list

Entre os tópicos, estará o nosso tópico image_raw. Agora usaremos o rosbag para registrar o tópico:

rosbag record /image_raw -o raspicam_image_raw

Gravaremos alguns minutos do fluxo de vídeo. É melhor não gravar fluxos muito longos, pois os arquivos bag ocupam um lugar decente na memória. Por exemplo, minha gravação em um minuto e meio levou 90 MB.
Primeiro, vamos ver o que o nosso arquivo bag contém:

rosbag info < >

path:        2016-05-07-13-00-23.bag
version:     2.0
duration:    55.1s
start:       May 07 2016 15:00:24.86 (1462626024.86)
end:         May 07 2016 15:01:19.96 (1462626079.96)
size:        89.7 MB
messages:    102
compression: none [102/102 chunks]
types:       sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics:      /image_raw   102 msgs    : sensor_msgs/Image


Romper os dados do arquivo bag


Agora pare nosso nó e toque o registro:

rosbag play raspicam_image_raw.bag -r 1 --loop

Mostramos os dados do tópico image_raw na janela rqt_image_view:

rosrun rqt_image_view rqt_image_view

A reprodução do registro de arquivo do saco no Raspberry Pi 2 pode ser vista no vídeo.



A equipe do rosbag play também possui várias opções úteis:
  • -r FACTOR determina o fator de velocidade (a taxa de quadros é multiplicada por esse valor)
  • -hz = HZ determina a taxa de quadros em Hz (o padrão é 100)
  • - percorre a reprodução em loop ("rebobina" até o início quando chega ao final da gravação)

Existe uma ferramenta especial rqt_bag para gravar e trabalhar com arquivos de malas. Na página oficial, você pode aprender mais sobre este utilitário.
Por enquanto, isso é tudo sobre o rosbag. Eu acho que você encontrará muitos usos para o utilitário rosbag. Esse é um utilitário bastante poderoso e é difícil ficar sem ele ao usar o ROS totalmente.
Boa sorte em seus projetos usando o ROS!

Source: https://habr.com/ru/post/pt393811/


All Articles