使用 PlotJuggler 进行对数分析
情节魔术师 可用于分析 ULog,以达到深入开发的目的。它非常有用,因为每个 uORB 主题都可以显示/绘制图表,还可以使用自定义函数修改数据(例如从四元数值到滚动/俯仰/偏航)。
安装
您可以找到 Plot Juggler 的最新版本 这里.
关于 Windows 分发的说明
最新版本的 PlotJuggler for Windows 可能无法运行。在这种情况下,请退回到 这里是 v2.8.4 (众所周知,这种方法适用于 Windows)。
关于 Linux 发行版 AppImage 的说明
如果下载的 AppImage 无法打开,可能需要更改其访问设置。这可以在终端中使用以下命令完成:
chmod 777 <;Path-To-PlotJuggler-AppImage>;
一般用法
两个最常见的任务是搜索记录的 uORB 主题,以及将特定主题中的字段拖放到图表视图中。如下图所示。
横向/纵向分割:多面板
最强大的功能之一是将屏幕分成水平/垂直两个方向,同时显示不同的图表(在顶部显示同步时间条,在底部移动时间光标)。
下面的动画演示了这一点:
在这个例子中 载具本地位置
主题 斧头
, 可以
和 盎司
(加速度估计值)成分的图表,首先将屏幕分成 3 个部分。然后 vz
(速度估计)组件,最后在右窗格中添加了 电池状态
主题 current_a
(电池电流)的图表显示在中下部窗格中。
虽然开始时并不明显,但您可以观察到,只要载具开始移动(电池电流值变大),加速度和速度值也会开始移动。这是因为所有数据都是以时间序列显示的,每个值都显示在特定的时间戳上。
这有助于全面了解发生了什么及其原因。只看一个图表通常很难排除故障,但通过显示多个图表,就能更容易地弄清系统中发生了什么。
显示二维数据
另一个强大的功能是在 XY 平面上以散点图的方式显示二维数据(X、Y 轴上的每个数据)。方法是按住 Ctrl
键,同时逐个选择(例如 载具本地位置
主题 x
和 y
组件),并拖拽&amp;使用 鼠标右光标
按下。
在此示例中,在本地坐标框架中估算出的载具位置被绘制到一个 XY 平面上,该平面显示了估算位置的二维视图,而在 XY 平面上则显示了估算位置的三轴视图。 vx
和 vy
速度估计值)在右侧作图,而 vz
(垂直速度估计值)下方的图表,以分割视图显示。
这反过来又直观地显示了载具位置和速度之间的关系。例如,请注意当载具沿 X 轴方向移动时,速度与位置之间的关系。 vx
值升高,当载具转向 Y 轴方向时,"咔 "的一声,"咔 "的一声,"咔 "的一声。 vy
价值也开始发生变化。
使用'播放'按钮
这里 游戏 按钮用于实时播放记录的数据(速度因子可在右下角进行调整)。这将详细显示上述位置/速度关系。
布局模板
PX4 开发人员共享了许多 PlotJuggler 布局文件。每个文件都可用于特定用途(多旋翼飞行器调整、VTOL 调整、艇调试等):
高级使用
使用 LUA 脚本创建自定义时间序列
Plot Juggler 支持使用 LUA 脚本处理和显示数据。这是一项功能强大的功能,可以进行曲线积分、对两条曲线求平均值、消除偏移等操作。
通过四元数计算滚动/俯仰/偏航
为了解载具姿态,PX4 会将估计的姿态四元数记录在 载具姿态
主题的浮点数值数组(q[4])。由于这些值不提供上下文信息(如 滚动
),需要进行三角函数变换。
- 搜索
载具姿态
左侧时间序列列表面板中的主题 - 选择 4 个四元数 (
Q.00、Q.01、Q.02、Q.03
点击q.00
然后按住 Shift + 单击q.03
.它们都应被选中 - 单击左下方 '自定义系列'部分中的 '+'符号,创建新系列
- 再次选择 4 个四元数成员,并将它们拖动到左上角的 '输入时间序列 + 附加源时间序列'选项卡中。
- 双击
四滚动
函数库中的现在您应该可以在上半部分绘制 - 为地块指定名称(例如
滚动
在右上角的文本框中输入 - 点击 '创建新时间序列'。现在,您应该在 '自定义系列'中创建情节;
这里是自定义系列 卷轴
将与其他时间序列一起显示,包括右侧四元数的原始形式,该形式不适合人类阅读(使用 PlotJuggler 3.5.0):
四滚动
函数是这样的
w = 价值
x = v1
y = v2
z = v3
dcm21 = 2 * (w * x + y * z)
dcm22 = w*w - x*x - y*y + z*z
滚动 = 数学.阿坦(DCM21、DCM22)
返回 滚动