你知道如何解决自动驾驶中HIL测试的同步以及延迟问题吗?

描述

在上期文章中,我们提到了自动驾驶的HIL测试中目前需要考虑的两个问题:

对于同步,需要考虑:

  • 如何处理HIL测试的同步化和时钟系统?
  • HIL模拟器和虹科Orolia Skydel GNSS模拟器能否使用一个共同的时钟源?

对于时延:

  • 从HIL模拟器的输入(自动驾驶仪命令)和GNSS模拟器的输出(GNSS射频信号)如何使他们的延迟最小化,以保证模拟的实时性呢?

 

同步问题解决方案

应对同步的问题可以使用网络时间服务器作为HIL模拟器和虹科Orolia Skydel GNSS模拟器的共用时钟源,确保HIL仿真器和GNSS模拟器上的操作系统在数百微秒内紧密同步。在HIL模拟器和虹科Orolia Skydel GNSS模拟器中均使用Linux系统,并配置精确时间协议(PTP)将时钟与网络时间服务器同步。

通信

 

HIL模拟器接收到自动驾驶仪发送过来的数据后,会为数据添加时间戳,保证数据与GNSS模拟器共用同一个时钟源,以最大限度减少二者之间的抖动和漂移。接着通过HIL客户端把真实的位置信息发送到虹科Orolia Skydel GNSS模拟器上,通过GPU生成IQ数据并发给SDR产生射频信号。需要注意,SDR也属于模拟器部分,同样需要进行同步,所以需要从同一时钟源接收PPS来进行时间同步。这样就实现了HIL模拟器和虹科Orolia Skydel GNSS模拟器的安全同步。

 

延迟问题解决方案

存在延迟的原因:

在自动驾驶中,从自动驾驶仪命令输入真实信息给HIL模拟器,再到GNSS模拟器生成RF信号的过程中不可避免的会存在延迟。在这一个过程中,延迟存在于三个环节中:

通信

 

  • 在HIL模拟器中确定真实轨迹(也就是自动驾驶仪发送过来的信息)所需时间,而HIL模拟器对这些信息的采样率不同可能会影响仿真器的处理时间。
  • HIL模拟器处理完成并输出计算的真实位置到GNSS模拟器的传输时间,这一传输的时间是不可避免的。
  • GNSS模拟器处理收到真实位置并创建与轨迹对应的射频信号的时间,通常称这个时间为引擎延迟。

 

引擎延迟观测解决方案:

在虹科Orolia Skydel GNSS模拟器中设置处理和生成轨迹的时间,通过性能界面观测样本传输是否正常,若不正常,可以把引擎延迟时间调大一点,从而得到最优的引擎延迟时间,以减少延迟

如果希望将引擎延迟,也就是GNSS处理器处理和生成轨迹并创建与轨迹对应的射频信号的时间延迟减少到几毫秒,则可能会将硬件推向极限,从而造成欠载。GNSS模拟器中提供的性能图可以直观地了解所设置的引擎生成时间离硬件极限有多远,以设置最优的引擎生成时间来保证引擎延迟的最优化。

通信

 

下图左侧是模拟最后一分钟的概览,右侧是模拟最后一秒的详细视图:

通信

 

为了更好地理解该图,首先需要了解GNSS模拟器实时模拟的工作原理。GNSS模拟器在1毫秒的块中处理模拟,每个块必须通过3个工作线程:

  • 星座工作线程
  • 调制工作线程
  • 数据流线程

这些工作线程的组合称为管道,样本通过管道所需的时间是确定系统延迟的主要因素。由于一个样本模拟的是1毫秒,因此SDR以1000Hz(实时)的稳定速率进行处理。实时GNSS模拟器被允许提前处理这些样本,但受到之前设置的引擎延迟的限制,当GNSS模拟器无法及时向SDR提供样本时,就会发生欠载(也称为下溢)。

下图垂直轴上显示的时间是:与SDR传输样本的时间相比,样本被提前处理的时间,引擎延迟限制可以提前处理样本的时间。因此,工作线程应始终位于引擎延迟线下。

通信稳定的管道

一个正常稳定的系统应始终开始在接近引擎延迟阈值的块上工作。换句话说,蓝色的工作线程应尽可能接近引擎延迟线。如果蓝色工作线程低于引擎延迟,则表示模拟器落后;如果它没有迅速赶上,就会发生欠载。根据系统的不同,蓝色工作线程可能会靠近引擎延迟线,但仍有其他线程下降。如下图,模拟器落后,发生欠载。

通信管道欠载

 

下图显示了GNSS模拟器模拟最后一秒的分解图,可以看到管道实时的处理情况。比如图中蓝色工作线程始终位于引擎延迟的下方,并接近引擎延迟,也就是说模拟器此时并没有落后。而调制线程先落后再赶上并趋于稳定,且在这个过程中没有发生欠载,不会对信号生成产生影响,说明此时的引擎延迟是可靠的,还可以再尝试调小,调小后再次观察性能图是否发生欠载。通过这种方式即可以找到最优的引擎延迟。

通信

 

传输延迟解决方案:

(1)

HIL模拟器定期发送当前接收机位置,虹科Orolia Skydel GNSS模拟器可以推断接下来的轨迹以减轻延迟的影响,GNSS模拟器能够根据收到的样本估计接收器接下来的位置,从而无需等待中间的传输时间。

从自动驾驶仪命令的输入开始,HIL模拟器接收到接收机的位置和动态信息,如速度、加速度、抖动等,并定期的对这些数据进行采样,给每个样本都打上时间戳以对应采样的时间,此信息被称为PVA样本。

接着HIL模拟器发送处理过后获得的真实位置给虹科Orolia Skydel GNSS模拟器,GNSS模拟器根据这些数据实时推断接收机的下一个位置。此时需注意,对于GNSS模拟器来说,HIL模拟器发送给它的数据是过去的,是过去时间接收的信号,而对于RF信号来说GNSS模拟器发送给它的信号是经过推算后的轨迹,是未来的轨迹。

 

具体过程如下:

首先假设收到HIL客户端发送过来的第一个样本是T0,P点为当前时刻的T0样本外推的轨迹位置。在P位置前一时刻,GNSS模拟器收到新的样本T1。

通信接收到新样本T1

 

接收到了新样本,那么轨迹到了P点曲线应该怎么变化呢?由于接收器的轨迹是动态的,HIL模拟器接收到接收器的轨迹后,要进行采样,也就是说,T0的外推轨迹不会和T1完美连接,从图中可以看出T1和T0中间是有空间的。

为了降低不连续性,GNSS仿真器平滑了两个外推轨迹之间的过渡。引入一个时间参数T,该参数是从新样本输入时刻开始,到P所处的外推曲线收敛到和新样本外推曲线相交的时刻所用的时间。可以看到下图,一个不连续的轨迹引入时间参数T后,轨迹收敛平滑,平滑后不改变轨迹的趋势。

通信轨迹不连续性缓解

 

收敛完成后,此时P点由原来的位置,收敛到P2的位置。如下图所示,此时HIL模拟器又输入一个T2样本到GNSS仿真器,在T时间内,将P点所在的外推曲线收敛到和T2样本的外推曲线相交的点P3,使轨迹变得平滑。

通信轨迹平滑外推

 

若是在收到T1样本并收敛到P2点的这段时间内,没有收到新的样本T2,那么在P2之后会按照目前最新的样本轨迹,也就是T1样本的轨迹外推,直到收到下一个样本。

不断地收到新样本,不断地按照这样的方式收敛和平滑,通过这样的方式可以提前推断GNSS的轨迹,不用等到下一个样本到来再进行处理和平滑轨迹,既保证了轨迹的正确性,又减少了等待样本时间和计算轨迹的时间,间接的减少了HIL模拟器到GNSS模拟器的传输延迟。

 

(2)

HIL 模拟器定期发送未来接收器位置信息,此时HIL模拟器必须提前足够的时间接收位置以弥补GNSS模拟器的等待时间。

在这个方案中,HIL模拟器提前的时间被称为时间偏移量,由于HIL模拟器发送的是未来某个时间的位置而不是当前位置,时间偏移量应该是以下各项的总和:

  • HIL模拟器的采样间隔
  • 传输的网络延迟
  • 引擎延迟

例如,对于10ms的引擎延迟、200Hz的HIL模拟器采样率和1ms的网络延迟,时间偏移量应为16ms。

HIL模拟器发送带有未来16ms时间戳的样本,可以观察到以下最佳模式:

通信

 

目前大部分GNSS模拟器在延迟上最小只能做到20ms。而虹科Orolia GNSS模拟器通过设置最优引擎时间以及预测轨迹的方案,使GNSS模拟器拥有极低的时延,可以达到小于10ms的延迟,甚至达到5ms。同步的解决方案也使得HIL模拟器和GNSS模拟器在几百微秒紧密时钟同步,极大的提高HIL测试性能。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分