-
实时仿真用户案例
Crank-嵌入式GUI设计和开发用户案例
021-64886750
-
实时目标机
Simulink模型库
Demo套件
info@yisuworld.com
基于Speedgoat和MATLAB快速构建驾驶员在环系统
为什么要构建驾驶员在环系统?
一则,L4之前的汽车都是需要驾驶员的,对这些汽车的智能驾驶算法或控制器进行测试,其中一个测试环节就可以是驾驶员在环测试。二则是有趣,可以搭一个这样的系统来自娱自乐。
根据不同的需求,可以搭建不同级别的驾驶员在环系统,我们逐一来介绍。
1、Demo版
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 Engine。MathWorks结合游戏引擎Unreal Engine构建高保真度的驾驶场景,Automated Driving Toolbox提供了与Unreal Engine场景交互的摄像头、激光雷达、毫米波雷达等传感器模型以。
该demo中,默认的3D场景是密歇根大学的MCity,此处改成了大型停车场的场景,同时也把车型换了。
另外,还在车身上放了一个摄像头(下面视频左下角的图像就是该摄像头产生的),仅做显示用,不做处理。
以上是Simulink模型部分。除此之外,因为需要运行Unreal Engine的3D场景,所以我们得准备一个高性能的电脑。Unreal Engine对电脑性能的最低要求:
- Graphics card (GPU) — Virtual reality-ready with 8 GB of on-board RAM
- Processor (CPU) — 2.60 GHz
- Memory (RAM) — 12 GB
实际体验下来,如果想要获得不错的体验,电脑性能要远高于这个配置,尤其是GPU。我们用的电脑是英特尔(Intel) NUC8I7HVK4 酷睿I7-8809G冥王峡谷(如下图)。
GPU是AMD RX Vega M GH,性能挺强的,很流畅。
这套系统All in Simulink,不需要别的设备,简单明了,能清晰地呈现驾驶员在环系统的架构。
2、游戏版
demo版有两个肉眼可见的不足:
1、没有真实的车辆操纵设备,驾驶体验欠缺
2、车辆模型比较简单,无法较好地呈现车辆的特性
让我们来做个升级:增加游戏手柄+提高车辆复杂度。
游戏手柄,采用的是HORI FPS PLUS。
手柄接口是USB的,直接插到电脑上即可。
手柄上有很多操作按键,要将这些按键信号读到Simulink中。Simulink提供了手柄的驱动模块(罗技手柄也适用),驱动模块就是Simulin 3D Animation工具箱的Joystick Input。
Joystick Input的输出Axes和Buttons包含了很多个信号,需要预先标定下手柄按键和这些信号的对应关系。标定方式很简单,把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场景,实现Simulink与Unreal场景的交互。
Vehicle Dynamics Blockset、Powertrain Blockset——用以构建车辆模型。
一切ready之后,就可以愉快地玩起来了。
3、入门版
以上两个版本,纯属自娱自乐。车辆模型跑在电脑中,实时性无法保证;游戏手柄驾驶体验依然不足。我们再来做个升级,让车辆模型跑在实时仿真硬件中,游戏手柄用罗技G29代替。
罗技G29是一个入门级的驾驶模拟器,接口是USB的,有方向盘有踏板。
同样的,G29也需要一个驱动模块将信号接入到Simulink。Joystick Input依然适用。另外,Simulink提供了专门的G29驱动模块——Steering Wheel Read,在Simulink Real-Time工具箱。
对G29和Steering Wheel Read进行标定。
考虑到是入门版,所以实时仿真硬件选择了价格相对优惠的Speedgoat Unit Real-Time Target Machine,如下图。Unit原本是做快速控制原型(RCP)用的,跑控制算法;我们试了下跑MATLAB参考车辆模型,算力也绰绰有余。
Unit是一款体积小巧(仅6cm*14cm*10cm)、质量轻盈(约800g)、坚固耐用的“迷你型”实时目标机,可提供多种IO接口扩展满足多种应用。产品参数如下。
需要注意的是,demo版和游戏版的场景、车辆模型都是运行在电脑中的。而在入门版中,我们将车辆模型转移到实时仿真硬件中,但场景相关部分仍然运行在上位机电脑中,原因在于:一则实时仿真硬件一般没有强大的GPU去支持运行3D场景,二则实时仿真硬件中的实时操作系统不一定支持3D场景软件。
上位机电脑和实时仿真硬件的连接,如下图。
罗技G29的USB接口插到上位机电脑上。上位机电脑和实时仿真平台用两根网线连接。
蓝色网线,用以将Simulink车辆模型下载到实时仿真平台中,并进行实时在线调参、观测等。黄色网线,实现两者之间其他信号的通讯,比如车辆位姿、滚阻风阻。
整套设备是这样的:
入门版的架构,如下图。
实时仿真平台和上位机PC中各跑了一个Simulink模型。前者是跑车辆模型,后者主要是跑场景相关模型。图中信号流:
①、②:罗技G29的接口是USB的,插在上位机PC后,PC中的Simulink模型可以接收到驾驶员操纵信号(转向、油门、刹车等)。PC再通过网口的UDP通讯把操纵信号传输给实时仿真平台。
③:上位机PC将场景中的滚阻风阻等信息通过UDP发送给Speedgoat实时仿真平台中的车辆模型。实时仿真平台基于驾驶操纵信号、滚阻风阻等去计算车辆的状态。
④:Speedgoat实时仿真平台将计算出来的车辆状态(主要是位置、姿态)发送给上位机PC。上位机PC将当前位置、姿态的车辆在场景中渲染出来。
下图是完整的模型及信号流动。
接下来,又可以愉快地玩耍了。G29方向盘带反馈,驾驶体验杠杠的。
MathWorks官网有视频专门介绍如何基于MATLAB和Speedgoat构建类似的驾驶员在环系统。
网址:https://www.mathworks.com/videos/building-real-time-driver-in-the-loop-simulators-1542313377351.html
4、升级版
游戏版有一个不足:场景软件是可以输出传感器的检测结果的,而实时仿真平台中主要运行了车辆模型,没有运用到这些检测结果。
升级版中,我们可以引入传感器融合、决策控制算法。架构如下图。
升级版相比入门版,主要的改动是实时仿真平台不仅运行车辆模型,还运行了传感器融合、决策控制算法。值得注意的是,这样一来,计算量会增加不少,所以需要把实时仿真平台也升级成性能更强的硬件。我们推荐Speedgoat的高性能实时仿真目标机——Performance Real-Time Target Machine。
Performance是Speedgoat公司开发的专门用于硬件在环仿真(HIL)的高性能实时仿真平台,可以提供包括模拟通道、数字通道、CAN、LIN、以太网等在内的多种IO及通讯功能,产品参数如下图。
另外,升级版中,多增加了一个信号流动⑤,这是上位机PC将传感器模型检测结果发送给实时仿真平台。这个检测结果是object list级别的,不是图像、激光雷达点云等。
升级版中多涉及了一个工具箱,Sensor Fusion and Tracking Toolbox——用以传感器融合和目标跟踪。
5、实战1版
接下来,升级到更加专业、更接近实际状态的实战版本。架构如下图。
- 罗技G29是入门级的驾驶模拟器,我们将它升级成专业的驾驶模拟器或者驾驶操纵平台。
- 实时仿真平台(HIL设备)只运行车辆模型
- 另增加原型控制器(RCP设备),用以运行融合决策控制算法。这主要是应用在前期阶段,用户还没开发出自己的控制器,用原型控制器来代替。
- 驾驶操纵信号直接进入原型控制器,原型控制器计算得到的控制信号通过CAN发送给实时仿真平台
实战1版引入了一个快速原型控制器——Speedgoat Mobile Real-Time Target Machine。
Speedgoat Mobile Real-Time Target Machine可以提供包括模拟通道、数字通道、CAN、LIN、以太网等在内的多种IO及通讯功能,产品参数如下图。
Mobileye、TATA、TUM等自动驾驶领域企业及高校正在使用Mobile Real-Time Target Machine开展相关开发和测试工作。
6、实战2版
以上所有版本,没有包含感知算法,因此无法做Perception-in-loop的测试验证。Perception-in-loop的测试验证应该类似以下框架。
因此,实战2版加入了感知算法。实战2版中,用NVIDIA Drive PX2或Xavier代替实战1版中的原型控制器。
信号流⑤是上位机PC发送给NVIDIA Drive PX2/Xavier的图像、激光雷达点云等数据。NVIDIA Drive PX2/Xavier处理的是更加原始的数据,而不是object list级别的数据。
为了让场景软件更流畅地合成图像、点云等,推荐给上位机PC的GPU做一个升级。
7、实战3版
最终,我们希望将真实的控制器纳入到整个闭环中,如下图。
要想把模拟的传感器信号接入到域控制器,需要各种传感器模拟设备,比如视频注入设备、视频暗箱、雷达模拟器等等。
实战1~3版本中,驾驶操纵平台已经可有可无,取决于验证的自动驾驶功能级别。
-
电力电子(含控制器和被控对象模型)
凭借多年在电力电子行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
轨道交通(含控制器和被控对象模型)
凭借多年在轨道交通行业累积的经验和能力,我们为用户提供控制器模型和被控对象模型,包括标准库以及定制化服务。¥ 0.00立即购买
-
信号调理系统
在HIL测试中,硬件在环设备起到模拟被测ECU被控对象的作用。需要根据ECU的PIN脚信息,模拟相应信号。这类设备的核心为实时系统,实时系统会提供相应IO通道,处理信号的产生和采集。但这类IO通道一般为标准规格,比如数字通道为TTL规格,模拟通道只是测电压等;这与被测ECU所需的信号规格有较大差异,故需要一套信号调理系统,负责两者之间信号的转接。¥ 0.00立即购买
-
电机控制Demo套件
使用Simulink和Speedgoat转动无刷直流电机。¥ 0.00立即购买
实时目标机
仿真测试应用场景
学习与支持
关注熠速微信公众号
仿真测试解决方案
I/O接口模块
通讯协议模块
FPGA技术
被控部件仿真
Simulink模型库
Demo套件
测量测试解决方案