021-64886750

  • 实时目标机

    Simulink模型库

    Demo套件

info@yisuworld.com

基于Speedgoat和MATLAB快速构建驾驶员在环系统

网站首页    技术blog和使用技巧    基于Speedgoat和MATLAB快速构建驾驶员在环系统

为什么要构建驾驶员在环系统?

一则,L4之前的汽车都是需要驾驶员的,对这些汽车的智能驾驶算法或控制器进行测试,其中一个测试环节就可以是驾驶员在环测试。二则是有趣,可以搭一个这样的系统来自娱自乐。

根据不同的需求,可以搭建不同级别的驾驶员在环系统,我们逐一来介绍。


1Demo

MATLAB/Simulink提供了一个可用于驾驶员在环的基础demo模型。

网址:https://www.mathworks.com/help/vdynblks/ug/scene-interrogation-reference-application.html?s_tid=mwa_osa_a

这个模型简单明了,如下图。

左上角是驾驶操纵控件,通过操纵这些控件可以去控制转向、油门、刹车等。这些控件模块来自Simulink--->Dashboard工具箱。如下图

可以将这些控件模块与模型中参数关联,从而更方便地调节参数。

因为是基础demo,所以车辆模型做了很大的简化。

3D场景部分,渲染引擎用的是Unreal EngineMathWorks结合游戏引擎Unreal Engine构建高保真度的驾驶场景,Automated Driving Toolbox提供了与Unreal Engine场景交互的摄像头、激光雷达、毫米波雷达等传感器模型以。

demo中,默认的3D场景是密歇根大学的MCity,此处改成了大型停车场的场景,同时也把车型换了。

另外,还在车身上放了一个摄像头(下面视频左下角的图像就是该摄像头产生的),仅做显示用,不做处理。

以上是Simulink模型部分。除此之外,因为需要运行Unreal Engine3D场景,所以我们得准备一个高性能的电脑。Unreal Engine对电脑性能的最低要求:

  1. Graphics card (GPU) Virtual reality-ready with 8 GB of on-board RAM
  2. Processor (CPU) 2.60 GHz
  3. Memory (RAM) 12 GB

实际体验下来,如果想要获得不错的体验,电脑性能要远高于这个配置,尤其是GPU。我们用的电脑是英特尔(Intel NUC8I7HVK4 酷睿I7-8809G冥王峡谷(如下图)。

 

GPUAMD RX Vega M GH,性能挺强的,很流畅。

 

这套系统All in Simulink,不需要别的设备,简单明了,能清晰地呈现驾驶员在环系统的架构。


2、游戏版

demo版有两个肉眼可见的不足:

1、没有真实的车辆操纵设备,驾驶体验欠缺

2、车辆模型比较简单,无法较好地呈现车辆的特性

让我们来做个升级:增加游戏手柄+提高车辆复杂度。

游戏手柄,采用的是HORI FPS PLUS

手柄接口是USB的,直接插到电脑上即可。

手柄上有很多操作按键,要将这些按键信号读到Simulink中。Simulink提供了手柄的驱动模块(罗技手柄也适用),驱动模块就是Simulin 3D Animation工具箱的Joystick Input

Joystick Input的输出AxesButtons包含了很多个信号,需要预先标定下手柄按键和这些信号的对应关系。标定方式很简单,把Joystick Input拖到Simulink模型中,按下手柄的某个按键,看Joystick Input的哪个输出信号有变化。标定结果如下

车辆模型,在MATLAB中找一个合适的参考模型,比如这个

网址:https://www.mathworks.com/help/vdynblks/ug/double-lane-change-reference-application.html

需要对这个模型做些调整,比如将变步长改成定步长、将驾驶员模型替换成Joystick Input、调整3D场景等。

整个架构如下图

涉及的MATLAB工具箱有:

Automated Driving Toolbox——用以构建3D场景,实现SimulinkUnreal场景的交互。

Vehicle Dynamics BlocksetPowertrain Blockset——用以构建车辆模型。

一切ready之后,就可以愉快地玩起来了。


3、入门版

以上两个版本,纯属自娱自乐。车辆模型跑在电脑中,实时性无法保证;游戏手柄驾驶体验依然不足。我们再来做个升级,让车辆模型跑在实时仿真硬件中,游戏手柄用罗技G29代替。

罗技G29是一个入门级的驾驶模拟器,接口是USB的,有方向盘有踏板。

同样的,G29也需要一个驱动模块将信号接入到SimulinkJoystick Input依然适用。另外,Simulink提供了专门的G29驱动模块——Steering Wheel Read,在Simulink Real-Time工具箱。

G29Steering Wheel Read进行标定。

考虑到是入门版,所以实时仿真硬件选择了价格相对优惠的Speedgoat Unit Real-Time Target Machine,如下图。Unit原本是做快速控制原型(RCP)用的,跑控制算法;我们试了下跑MATLAB参考车辆模型,算力也绰绰有余。

Unit是一款体积小巧(仅6cm*14cm*10cm)、质量轻盈(约800g)、坚固耐用的迷你型实时目标机,可提供多种IO接口扩展满足多种应用。产品参数如下。

需要注意的是,demo版和游戏版的场景、车辆模型都是运行在电脑中的。而在入门版中,我们将车辆模型转移到实时仿真硬件中,但场景相关部分仍然运行在上位机电脑中,原因在于:一则实时仿真硬件一般没有强大的GPU去支持运行3D场景,二则实时仿真硬件中的实时操作系统不一定支持3D场景软件。

上位机电脑和实时仿真硬件的连接,如下图。

罗技G29USB接口插到上位机电脑上。上位机电脑和实时仿真平台用两根网线连接。

蓝色网线,用以将Simulink车辆模型下载到实时仿真平台中,并进行实时在线调参、观测等。黄色网线,实现两者之间其他信号的通讯,比如车辆位姿、滚阻风阻。

整套设备是这样的:

入门版的架构,如下图。

实时仿真平台和上位机PC中各跑了一个Simulink模型。前者是跑车辆模型,后者主要是跑场景相关模型。图中信号流:

①、②:罗技G29的接口是USB的,插在上位机PC后,PC中的Simulink模型可以接收到驾驶员操纵信号(转向、油门、刹车等)。PC再通过网口的UDP通讯把操纵信号传输给实时仿真平台。

③:上位机PC将场景中的滚阻风阻等信息通过UDP发送给Speedgoat实时仿真平台中的车辆模型。实时仿真平台基于驾驶操纵信号、滚阻风阻等去计算车辆的状态。

④:Speedgoat实时仿真平台将计算出来的车辆状态(主要是位置、姿态)发送给上位机PC。上位机PC将当前位置、姿态的车辆在场景中渲染出来。

下图是完整的模型及信号流动。

接下来,又可以愉快地玩耍了。G29方向盘带反馈,驾驶体验杠杠的。

 

MathWorks官网有视频专门介绍如何基于MATLABSpeedgoat构建类似的驾驶员在环系统。

网址:https://www.mathworks.com/videos/building-real-time-driver-in-the-loop-simulators-1542313377351.html


4、升级版

游戏版有一个不足:场景软件是可以输出传感器的检测结果的,而实时仿真平台中主要运行了车辆模型,没有运用到这些检测结果。

升级版中,我们可以引入传感器融合、决策控制算法。架构如下图。

升级版相比入门版,主要的改动是实时仿真平台不仅运行车辆模型,还运行了传感器融合、决策控制算法。值得注意的是,这样一来,计算量会增加不少,所以需要把实时仿真平台也升级成性能更强的硬件。我们推荐Speedgoat的高性能实时仿真目标机——Performance Real-Time Target Machine  

PerformanceSpeedgoat公司开发的专门用于硬件在环仿真(HIL)的高性能实时仿真平台,可以提供包括模拟通道、数字通道、CANLIN、以太网等在内的多种IO及通讯功能,产品参数如下图。

另外,升级版中,多增加了一个信号流动⑤,这是上位机PC将传感器模型检测结果发送给实时仿真平台。这个检测结果是object list级别的,不是图像、激光雷达点云等。

升级版中多涉及了一个工具箱,Sensor Fusion and Tracking Toolbox——用以传感器融合和目标跟踪。


5、实战1

接下来,升级到更加专业、更接近实际状态的实战版本。架构如下图。

  1. 罗技G29是入门级的驾驶模拟器,我们将它升级成专业的驾驶模拟器或者驾驶操纵平台。
  2. 实时仿真平台(HIL设备)只运行车辆模型
  3. 另增加原型控制器(RCP设备),用以运行融合决策控制算法。这主要是应用在前期阶段,用户还没开发出自己的控制器,用原型控制器来代替。
  4. 驾驶操纵信号直接进入原型控制器,原型控制器计算得到的控制信号通过CAN发送给实时仿真平台

实战1版引入了一个快速原型控制器——Speedgoat Mobile Real-Time Target Machine

Speedgoat Mobile Real-Time Target Machine可以提供包括模拟通道、数字通道、CANLIN、以太网等在内的多种IO及通讯功能,产品参数如下图。

MobileyeTATATUM等自动驾驶领域企业及高校正在使用Mobile Real-Time Target Machine开展相关开发和测试工作。


6、实战2

以上所有版本,没有包含感知算法,因此无法做Perception-in-loop的测试验证。Perception-in-loop的测试验证应该类似以下框架。

因此,实战2版加入了感知算法。实战2版中,用NVIDIA Drive PX2Xavier代替实战1版中的原型控制器。

信号流⑤是上位机PC发送给NVIDIA Drive PX2/Xavier的图像、激光雷达点云等数据。NVIDIA Drive PX2/Xavier处理的是更加原始的数据,而不是object list级别的数据。

为了让场景软件更流畅地合成图像、点云等,推荐给上位机PCGPU做一个升级。


7、实战3

最终,我们希望将真实的控制器纳入到整个闭环中,如下图。

要想把模拟的传感器信号接入到域控制器,需要各种传感器模拟设备,比如视频注入设备、视频暗箱、雷达模拟器等等。

实战1~3版本中,驾驶操纵平台已经可有可无,取决于验证的自动驾驶功能级别。

 

2020年5月25日 10:50
浏览量:0