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!