首页/文章/ 详情

学习笔记|自动驾驶仿真工具-SCANeR studio

1年前浏览6820



大家好,我是李慢慢。


花了一周时间学习SCANeR Studio这个仿真软件,勉强搞懂了这个软件的操作,也运行了一两个简单实例,忍不住来记录下,希望能给初次接触这个软件的道友一些直观的印象,最主要的,也是帮自己梳理下知识体系,好在今后查漏补缺。


SCANeR studio中的仿真场景示例


目录:

1、软件功能简介

2、软件背景介绍

3、软件界面

4、仿真小实例

5、脚本控制

6、外接接口-协同仿真

7、一点题外话


1、软件功能简介


摘录一段来自北京锋大科技对它的介绍:“SCANeR™studio是一个全面的软件套件,致力于汽车和交通模拟解决测试和驾驶的ADAS、自动驾驶汽车、HMI和大灯用例。SCANeR™studio提供了构建超真实虚拟世界所需的所有工具和模型:道路环境、车辆动力学、交通、传感器、真实/虚拟司机、车头灯、天气条件和场景脚本。它远非一个“黑匣子”工具,而是一个真正的模块化仿真平台,灵活、可扩展、开放,满足了研究人员和工程师的需求。它的通用性使一系列完整的设置成为可能:驱动模拟器、模型在环MIL、软件在环SIL、硬件在环HIL。


总的来看,在功能上,这个软件和目前的流行软件(PreScan,CarMaker,VTD等)是没有多大区别的,功能十分强大。能否在市场持续存在,就靠更新速度和营销力度了。


2、软件背景介绍


SCANeR™studio来自法国的一家名为AVSimulation的公司,这家公司是2017年由OKTAL公司(SCANeR™studio的母公司)与雷诺公司强强联合而成的合资公司,但SCANeR™studio这个软件本身已经有30多年的历史,在全球拥有众多的客户和合作伙伴,底蕴雄厚。可以通过下图来简单感受下:


上图来自AVSimulation公司官网:https://www.avsimulation.com


3、软件界面


虽然软件集成了很多模块,但我依然发现整个布局逻辑性很强,在TERRAIN界面下做创建路面环境(如下图1),在VEHICLE界面下做车辆建模(如下图2),在SCENARIO界面下作场景组合配置(如下图3),在SIMULATION界面下做仿真运行(如下图4),在ANALYSIS界面下做分析(如下图5)。所以学习起来也没那么吃力,加上很多东西(如车辆、行人、路标等)都是拖拽式一键生成,所以按照路面->车辆->场景->仿真->分析的步骤来建模,很快就能做一个小实例出来。对于新手来说,学习可以很快。


图1:TERRAIN界面


图2:VEHICLE 界面


图3:SCENARIO界面


图4:SIMULATION界面


图5:ANALYSIS界面


4、仿真小实例


干说不练假把式,我们来简单地建立一个场景吧,看看整个流程。


4.1、首先切换到TERRAIN界面创建一条简单的不能再简单的道路:直道。在这个界面中,最左侧是道路描绘功能,最右侧控制道路的显示类型(上)和对道路进行参数化定义(下),中间就是绘图创作区域了。这里我激活直线功能,在绘图区画了一条直线,选择显示方式为逻辑内容,放大后,就能看到我们创建的道路的样子了。然后将道路保存。



4.2、跳过第二步的VEHICLE建模,我们这里不创建车辆,直接到下一步中直接调用SCANeR studio自带的车辆模型。


4.3、切换到SCENARIO模式下,打开上上一步保存的道路模型,然后从右侧的资源库里拖动一辆车到道路中。(右侧的资源库十分强大,啥都有,各种车,各种人,各种道路设施,各种传感器、各种外部脚本接口等等。)车辆拖到道路中后需要设置下车辆的驾驶行为,双击车辆即可打开车辆模型的设置窗口,为了简单,我将其设置为自动驾驶模式。



4.4、切换到SIMULATION界面,我简单加载了一个TRAFFIC进程(自动驾驶需要),和一个VISUAL进程(后续观看车辆行驶需要),还有一个RECORD(后续分析车辆数据需要),然后点击上方的运行按钮即可开始仿真了。



运行起来后如下所示。


4.5、这样我们就简单跑起来了一个车辆模型,结束仿真后,切换到ANALYSIS界面下,可以找到我们仿真中录制的结果,可以重复观看车辆行为,也可以打开数据窗口,查看各种参数。如下图,就简单地查看了下车辆的行驶速度曲线。



以上就是这个软件的大概的仿真流程了。有木有很简单?不过我省略了很多描述,很多细节都采用了默认设置。想要真正用好这个软件,还是有很多很多细节需要抠的。


5、脚本控制


脚本控制,用来控制一些特殊的触发条件,非常适用。比如什么时候报警、什么时候亮灯、什么时候下雨、什么时候刹车等,编程并不难,因为软件本身自带了很多函数API,只需要调用并组合就可以了。比如我简单通过距离条件设置了一个下雪天路面积雪的深度的案例。



这个只是一个非常简单的应用,我也见过官方自带的场景库里对街边路灯和车灯有非常酷炫的控制。炫酷不炫酷其实不重要,重要的是要能搭建出真实场景。真实的物理世界千变万化,要能反应出来需要软件提供相当大的自由度。好在这个软件在建模方面本身自由度已经很大(抠细节抠的不要不要的),然后加上还有脚本控制,就相当全面了。‍‍‍‍


6、外接接口-协同仿真


SCANeR studio提供外部程序接口,只需要定义好要调用的程序,就可以使用外部的程序或者软件,来达到自己的目的。这种调用,在我看来可以是单向的,比如VISUAL进程,就是单纯的只能看SCANeR的视频输出画面;也可以是双向的,比如外接的SIMULINK,SIMULINK程序能获得仿真车辆的输出参数作为输入,再通过自己的某种算法得出结果并将结果输出反馈给SCANeR来进一步控制车辆,形成一个双向的回路。



配置好SCANeR和Simulink之间的通信之后(此处省略一万字。。。),我做了一个目标速度控制的模型,如下所示。首先搭建一个如下的Simulink模型,左侧橙色部分是将SCANeR中的车辆的输出信号取出,在中间通过一个PID控制,使得速度稳定达到100,再将实时控制速度输出给右侧蓝色部分(相当于SCANeR的接收器),用于控制SCANeR中的车辆的速度。这样就构成了一个速度控制的回路。


然后,将Simulink模型和SCANeR中的仿真场景都运行起来(如下),两者之间的通信就开始了。


随后模型跑起来,就能看到自己加入“算法”后的效果了。如下。

7、一些题外话

本次分享的这点内容实属简单,其目的也只是为了普及下这个软件,也帮助自己梳理出个基础的认知。学习过程中在网上能到的有用的资料真不多,全靠软件自带的帮助文档了。另外,在宏景智驾兼 职的这段时间,蹭上宏景的wifi才有机会使用这个软件一段时间,也多亏了唐唐的诸多指导,才勉强学了下来,在此真心表示感谢。

学习过程中也遇到一些问题,留待以后再解决吧。


版权声明:本文系个人原创,图片多为软件截图,欢迎转载。如有侵权,也请后台联系本人处理,谢谢。
来源:车路慢慢
通用汽车通信SimulinkPreScan自动驾驶控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-21
最近编辑:1年前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 11粉丝 70文章 122课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈