Pular para o conteúdo
PlotJuggler, um visualizador de séries temporais

PlotJuggler, um visualizador de séries temporais

Análise completa do PlotJuggler, ferramenta open‑source para visualização e análise de séries temporais em Linux, macOS e Windows.

PlotJuggler é um visualizador de séries temporais rápido, poderoso e intuitivo, desenvolvido em C++ com Qt e OpenGL. A ferramenta permite carregar arquivos, conectar a streams de dados em tempo real e salvar layouts de visualização para reutilização posterior. Seu foco está em oferecer uma experiência fluida tanto para análise exploratória quanto para monitoramento de sistemas embarcados e robóticos.

plotjuggler3

Interface

  • Drag & Drop: basta arrastar arquivos CSV ou logs para a janela principal e os dados são exibidos instantaneamente.
  • Layout persistente: a configuração de gráficos, cores e eixos pode ser salva em arquivos de projeto e recarregada a qualquer momento.
  • Editor de transformações: permite aplicar operações como derivada, média móvel ou integral diretamente na interface, sem necessidade de scripts externos.

function_editor

Fontes de dados

PlotJuggler aceita múltiplas origens, tanto estáticas quanto dinâmicas:

Tipo Exemplos suportados
Arquivo CSV, ULog (PX4)
Streaming MQTT, WebSockets, ZeroMQ, UDP
Formatos JSON, CBOR, BSON, MessagePack
ROS rosbag, tópicos ROS 1 e ROS 2
LSL Lab Streaming Layer

custom_editor

A arquitetura baseada em plugins facilita a adição de novos conectores ou formatos personalizados.

Transformação e análise

Além da visualização, o programa inclui recursos avançados de análise:

  • Editor de Transformações: interface gráfica para aplicar funções matemáticas a séries temporais.
  • Editor de Funções Customizadas: permite escrever funções multi‑entrada/saída em Lua. Mesmo quem nunca programou em Lua costuma aprender o básico em poucos minutos.

Essas ferramentas tornam o PlotJuggler útil tanto para inspeção rápida quanto para cálculos mais elaborados.

Desempenho

A renderização é feita com OpenGL, o que garante alta taxa de quadros mesmo com milhares de séries e milhões de pontos. Testes mostram que a aplicação mantém interatividade fluida ao lidar com grandes logs de voo de drones ou simulações robóticas complexas.

Extensibilidade

Plugins oficiais e de terceiros ampliam a funcionalidade:

  • MQTT DataStreamer
  • Lab Streaming Layer DataStreamer
  • Plugins ROS (disponíveis em https://github.com/PlotJuggler/plotjuggler-ros-plugins)
  • CAN .dbg DataLoader

Um repositório de exemplo (plotjuggler-sample-plugins) demonstra como criar novos plugins.

Instalação

Distribuições oficiais estão disponíveis nas páginas de Release:

  • Linux: AppImage, pacotes Debian (bookworm, trixie) e Snap (sudo snap install plotjuggler).
  • macOS: instalador .dmg.
  • Windows: instalador .exe.

Para usuários de ROS, o pacote pode ser instalado via apt:

sudo apt install ros-$ROS_DISTRO-plotjuggler-ros
ros2 run plotjuggler plotjuggler

Compilar a partir do código‑fonte é suportado; instruções detalhadas estão em COMPILE.md no repositório.

Pontos positivos

  • Interface drag‑and‑drop extremamente simples.
  • Suporte nativo a ROS 1 e ROS 2, ideal para desenvolvedores de robótica.
  • Performance robusta com OpenGL.
  • Sistema de plugins bem documentado e fácil de estender.
  • Licença Mozilla Public License 2.0 permite desenvolvimento de plugins proprietários.

Pontos negativos

  • A curva de aprendizado de Lua pode ser um obstáculo para usuários que não desejam programar.
  • Algumas funcionalidades avançadas (ex.: integração completa com ROS 2) ainda dependem da versão Snap, que possui limitações.
  • Falta de documentação em português pode dificultar a adoção por comunidade local.

Comparação rápida

Ferramenta Suporte a ROS Visualização em tempo real Extensibilidade
PlotJuggler Sim (ROS 1/2) Sim (MQTT, UDP, LSL…) Plugins C++/Lua
rqt_plot Apenas ROS 1 Limitado Não há plugins externos
Grafana Não específico Sim (via InfluxDB) Plugins ricos, mas complexo para logs locais

PlotJuggler destaca‑se por combinar a simplicidade de uso com um ecossistema de plugins focado em robótica e sistemas embarcados.

Público-alvo

  • Engenheiros de robótica que trabalham com ROS 1/2.
  • Pesquisadores que precisam analisar grandes volumes de dados de sensores.
  • Desenvolvedores de sistemas embarcados que desejam monitorar streams em tempo real.
  • Usuários que buscam uma ferramenta open‑source, sem dependência de serviços cloud.

Via github.com. Você pode conferir o post original em inglês:

PlotJuggler 3.17

Por · Última atualização: