PlotJuggler是一款开源、跨平台且功能极其强大的实时数据可视化与分析工具,在机器人开发(尤其是 ROS/ROS2 社区)、自动驾驶及嵌入式系统领域被广泛誉为“调试神器”。与传统的静态绘图工具不同,该软件核心优势在于极致的交互体验,用户通过简单的拖拽操作即可在几秒内将成百上千个复杂的数据序列转化为直观的图表,并支持时间轴同步、缩放、偏移调整及多坐标轴展示。在兼容性方面,不仅能实时解析 ROS Topic,还支持加载 Bags、CSV、JSON 及 ULog 等多种离线格式。此外,内置了基于Lua脚本的自定义函数功能,允许用户通过公式实时合成虚拟数据流,极大地方便了逻辑校验,有需要的用户可以在本站免费下载使用。
软件特色
1、极速拖拽绘图
支持从左侧数据树中直接拖拽变量到绘图中,实现秒级响应,极大简化了多维数据的对比过程。
2、多格式数据源兼容
原生支持 ROS/ROS2 Bags、CSV、JSON、ULog (PX4)、MCAP 等格式,并能通过插件扩展支持更多自定义协议。
3、实时数据流分析
能够通过网络(UDP/TCP)或中间件(ROS/MQTT)接入实时数据流,实现毫秒级的实时监控与动态刷新。
4、强大的 Lua 脚本转换
内置简单的编辑器,允许用户使用 Lua 脚本对原始数据进行实时数学运算或逻辑转换,生成“虚拟时间序列”。
5、时间轴深度同步
支持多个绘图窗口间的时间轴联动,通过移动时间滑块即可同步观察系统中所有传感器和状态量的变化。
使用简介
第一步,打开软件后通过左上角的 Data 菜单导入数据,你可以选择加载离线文件或开启实时流监听。
第二步,从左侧列表中找到你感兴趣的变量,直接将其拖拽到中心绘图区域即可生成曲线。
第三步,利用鼠标滚轮或时间滑块,在时间轴上自由缩放、平移以观察数据细节。
第四步,如果需要数学处理,点击 Custom Series 编写简单的 Lua 脚本来实时合成新的数据流。
第五步,根据需要调整多子图布局,并将这些配置保存为 XML 文件以便日后一键复用。
使用场景
1、机器人运动控制调参:
在调试 PID 控制器或轨迹跟踪算法时,你可以实时对比期望位姿与实际位姿。通过多轴同步观察,能一眼看出电机输出是否存在滞后、过冲或高频振荡。
2、自动驾驶传感器融合分析:
当你需要确认激光雷达、摄像头和 IMU 的数据是否同步时,可以将不同频率的数据流拉到同一时间轴下。比如,观察物体检测框的跳动是否与车辆经过减速带时的加速度峰值吻合。
3、无人机飞行日志审计:
在飞行事故后,通过加载 PX4 或 ArduPilot 的 ULog 文件,利用其强大的缩放功能定位异常瞬间,分析姿态解算和电池电压在故障发生前的细微波动。
4、分布式系统通信延迟诊断:
在 ROS2 环境中,通过对比同一个 Topic 在发送端和接收端的时间戳,利用 PlotJuggler 的时间偏移(Offset)调整功能,可以直观地量化网络传输或序列化带来的延迟。
5、能源管理与电池测试:
在长达数小时的充放电测试中,利用其大数据量处理能力,快速浏览完整的电压、电流和温度曲线,并使用 Lua 脚本实时计算累计功耗(积分运算)。
6、嵌入式设备压力测试可视化:
通过 UDP 协议将单片机内部的关键变量(如内存占用、CPU 负载、任务周期)推送至 PlotJuggler,在不中断系统运行的情况下进行图形化监控。
软件亮点
【布局保存与复用】
用户可以将复杂的图表配置、颜色和处理逻辑保存为 XML 布局文件,方便在不同项目或团队成员间共享分析环境。
【高级缩放与导航】
提供极其流畅的缩放体验(鼠标滚轮控制),支持 X/Y 轴锁定、自动缩放以及局部区域放大观察。
【数据重采样与对齐】
能够处理不同采样频率的数据,自动进行时间对齐,帮助开发者分析异步系统中的因果关系。
【插件化架构设计】
采用高度模块化的 C++ 编写,用户可以根据特定业务需求编写自定义的数据源加载器或状态机可视化插件。
【多坐标轴与颜色管理】
支持单图表多 Y 轴显示,并提供丰富的色彩管理工具,确保即使在处理数十条曲线时依然保持高度的可读性。

