多目标跟踪的基准轨迹
这个例子展示了如何生成和可视化多架飞机的轨迹使用trackingScenario
而且waypointTrajectory
.
简介
本例中建模的六个飞行器轨迹在[1]中描述。飞机以一种被位于原点的雷达接收的方式飞行。
插值器的选择
从概念上讲,轨迹是物体作为时间函数在空间中运动的曲线。为了定义曲线,你可以想象一条穿过空间的曲线,它经过一组点路点由一个称为an的插值函数连接interpolant.插值器允许您通过连续函数定义路径点之间的路径。常见的插补是基于多项式的(例如,分段线性或三次样条)。对于快速变化的轨迹,需要更多的路点来保证插值曲线尽可能接近真实曲线;然而,我们可以通过仔细选择插值来减少所需点的数量。
在轨道滤波器中使用的许多运动模型包括“恒定速度”、“恒定转弯”或“恒定加速度”配置文件。为了适应这些运动模型,在模型中使用了插值waypointTrajectory
对象基于分段环状样条(水平)和三次样条(垂直)。曲线样条的曲率随距离线性变化;这让我们可以轻松地建模直线和恒定的转弯,有一个额外的自由度在直线和曲线段之间平滑过渡。同样,空气中的物体也会受到重力的影响,沿着抛物线(二次)路径飞行。使用三次样条来建模垂直高度,可以让我们用类似的额外自由度来建模路径。
一旦物体在空间中的物理路径已知(并设置好),物体的速度作为距离的函数就可以通过三次赫米特插值来确定。这对于通过转弯或直线段加速的物体的轨迹建模是有用的。
我们使用的基准轨迹包括直转弯、恒g转弯和加速转弯。
路标建设
下面的文件包含路径点和速度(以米和米每秒为单位)的表格,可用于重建6架飞机的轨迹。将其加载到MATLAB中,并检查包含第一个轨迹的表。
负载(“benchmarkTrajectoryTables.mat”,“trajTable”);trajTable {1}
ans = 14 x3表时间路径点速度 _____ _________________________ _____________________________ 0 0 60 57413 21695 -1258 72947 29474 -1258 -258.9 -129.69 -258.9 -129.66 0 62 56905 21417 -1258 -245.3 -153.89 78.1 -20.635 - -288.86 54591 17566 -1258 0 80 54573 17016 0 83 54571 16147 -1258 -1258 -2.8042 -289.59 -0.061 112.7 -289.56 -289.56 110 54571 8329 -1258 0 0 0 120 55718 54634 7551.5 -1258 58.979 -283.56 5785.5 226.41 - -180.59 -1258 0 0 132 59004 129 58170 5172.8 -1258 284.74 - 52.885413.9 -1258 274.26 93.05 0 137.8 60592 5962.2 -1258 273.62 94.76 0 147.8 63328 6909.9 -1258 273.62 94.76 0 185 73508 10435 -1258 273.62 94.76 0
场景一代
该表包含了一组航路点和飞机在相应时间经过的速度。
要使用控制点,您可以创建一个包含六个平台的场景,并为每个平台分配一个轨迹:
scene = trackingScenario(“UpdateRate”10);为N =1:6 plat =平台(现场);traj = trajTable{n};平台。轨迹(traj.)锚点,traj。时间,“速度”, traj.Velocities);结束
轨迹可视化
设置好场景和绘图仪后,可以设置一个theaterPlot
随着时间的推移,创建飞机位置的动画视图。
helpplot = helpbenchmarkplotter(数字(scene.Platforms));而推进(场景)提取六架飞机中的每一架的姿态姿势=平台姿势(场景);%更新绘图更新(helpplot, pose, scene.SimulationTime);结束
上面绘制的轨迹是三维的。您可以旋转绘图,以便轨迹的高度很容易看到。您可以使用视图
而且轴
命令调整情节。因为轨迹使用NED(东北向下)坐标系,地面上的高度有一个负z分量。
视图(60,10);轴广场网格小集(gca),“ZDir”,“反向”);
轨道1
查看用于生成轨迹的控制点可能具有指导意义。下图是第一个轨迹,代表的是一架大型飞机。
用于构建路径的控制点绘制在最左边的图上。当飞机不断转弯时,只需要几个航路点来标记曲率的变化。
右边的图分别表示高度、速度(速度)的大小和加速度的大小。尽管曲率发生了突变,但速度几乎始终保持不变。这是使用回旋线插补的一个优点。
[时间,位置,速度,加速度]=累积历史(helpplot);helperTrajectoryViewer(1,时间,位置,速度,加速度,trajTable);
轨道2
第二个轨迹,如下所示,代表了一架小型机动飞机的轨迹。它由两个转弯组成,在第一个转弯后和第二个转弯期间有几个加速度变化。需要更多的路径点来调整这些变化,然而轨道的其余部分需要更少的点。
helperTrajectoryViewer(2,时间,位置,速度,加速度,trajTable);
轨迹3
第三条轨迹,如下图所示,代表了一架高速飞机。它由两个恒定的转弯组成,飞机在第二个转弯的中途减速。你可以在左边的x-y曲线上看到控制点,这些控制点用来标记速度和加速度的变化。
helperTrajectoryViewer(3,时间,位置,速度,加速度,trajTable);
轨迹4
第四轨迹,也代表了一个更高速度的飞机,如下所示。它由两个转弯组成,在这两个转弯中,飞机加速并爬升到更高的高度。
helperTrajectoryViewer(4,时间,位置,速度,加速度,trajTable);
轨迹5
第五个轨迹代表了一架机动高速飞机。它由三个恒定的旋转组成;然而,在整个飞行过程中,它会显著加速。在第三个转弯后,飞机上升到水平飞行。
helperTrajectoryViewer(5,时间,位置,速度,加速度,trajTable);
轨道6
第六个轨迹也是机动高速飞机的代表。它由四个弯组成。在第二个转弯后,飞机降低高度和速度,进入第三个转弯。在第三个转弯后,它迅速加速并进入第四个转弯,继续保持水平直线飞行。
helperTrajectoryViewer(6,时间,位置,速度,加速度,trajTable);
总结
这个例子展示了如何使用waypointTrajectory
而且trackingScenario
创建一个多对象跟踪场景。在本例中,您了解了内部使用的插值器背后的概念waypointTrajectory
并向他们展示了如何用少量的路径点再现一个场景。
参考
W.D. Blair, g.a. Watson, T. Kirubarajan, Y. Bar-Shalom,“ECM中雷达分配和跟踪的基准。”航空航天和电子系统IEEE通论,第34卷。不。4.1998