Simulink是如何存在自动驾驶的开发过程中?废话少讲,让咱们开始娓娓道来!

  • 自动驾驶的开发架构是什么?

自动驾驶软件开发基础的架构,逃不出我们经常所说的三大法宝,感知--- 决策(规划)--- 执行(控制),这三个内容,软件开发基础思路都不一样,且听小编娓娓道来!

感知:

雷达的感知大多都是一些傅里叶变换一类的算法来处理多普勒效应的脉冲波信号,目前主流的都是用C来做代码。雷达的种类很多,这个算法仅仅限于毫米波雷达,激光雷达小编了解不多。

摄像头对应的大多都是进行图像处理,虽然说目前Simulink包含对应的图像处理算法模型,但是这些算法模型仅仅对于大家写论文有用,容易出结果,容易仿真!但是实际的算法中大多都是用OpenCV与C++进行融合使用。

像惯性导航,GPS里面的算法,都是另外一个范畴,Simulink参与的不多,轮速,车身姿态大多来源于ESC,EPS,这些相对应的模块!

综上所述,Simulink在感知这个层面,用的不多。

决策:

在L3以上的级别,因地图的参与,我们称之为规划,L3级别以下的大多称之为决策,即多个目标的来源的融合,进行决策。

融合算法目前大多在雷达与摄像头里面,但是目前有逐渐独立的趋势,向域控制器靠拢,相当多的算法都柔和在里面。软件开发虽然说有用Simulink开发的,但是很多还是用C,C++进行开发,尤其是对多维度的目标追踪与融合!

执行(控制):

执行分为,横向控制域,纵向控制。横向控制主要是与EPS进行角度,以及扭矩的交互。纵向控制主要与动力总成,底盘进行交互,交互的核心就是加速度的需求与制动的需求。

这些控制逻辑,用通俗的来说,都是简单的门控制逻辑,大都是或,与,非,一类的逻辑,这些就是Simulink的长项,所以执行相关的逻辑,都是应用Simulink进行开发,然后进行代码自动生成,最后进行柔和!

综上所述,Simulink对自动驾驶的支持,其实目前并不是很广泛,大多集中在功能的控制方面,其它相关的图像,雷达算法的应用,其它大多都还在写论文阶段,总结如下所示!

  • Simulink如何搞自动驾驶算法开发?

目前搞自动驾驶算法开发的,Simulink中有很多对应的库文件以及示例可以参考,如下图所示的库文件,可以拿来直接应用。

以及对应的示例文件,直接点击Help,自己学习一下,应该也问题不大。

然后讲对应的算法生成,进行集成即可!至于所说的Simulink可以做融合,感知算法,小编无法否认,但是实践是检验真理的唯一标准,现在实际工程用的还是很少的!

但是,当你在开发某个功能的时候,前期的验证如何搞?如何搞个模拟的感知算法,如何搞个仿真的融合算法,如何验证前期你的功能算法,这个就需要我们的大杀器出场了!

  • Simulink的大杀器--ADAS系统仿真与数据处理

这两个东西,才是ADAS系统开发的主角,因为真正的功能开发,肯定没有发动机,变速箱复杂,但是ADAS系统的数据量,以及仿真需求,远远大于其它系统,因为这个东西不仿真,直接测试,太花钱!

ADAS的系统是一个非常复杂的东西,在开发早期,特定阶段或者某个场景的验证,如果用实际车辆的话,那就太花钱,而且不实际!所以我们在早期进行场景验证时候,后期问题复现,就需要我们的大杀器Simulink!尤其对于L3,L4级别的功能,必须要我们这个大杀器才能完成几百万公里的验证。

ADAS系统仿真与验证

在Simulink的环境中建立仿真环境进行算法验证与开发,目前Simulink集成了Driving Scenario Designer的库,这个库可以完成场景的规划与定义,如下所示:

  • 环境建模---道路,车道线。
  • 车辆建模---道路车辆,行驶轨迹,自身车辆的尺寸,雷达相关截面积。
  • 标准支持---目前网上有很多Open Drive 格式的路网文件,可以直接导入,进行计算。

场景的建模完成后,Matab可以将其转化为Mat文件(类似于自动代码生成的S-Function格式),然后导入Simulink的环境中,添加对应的传感器模型,进行开环,闭环的仿真!如下图的开环仿真,以验证对应的融合算法!

闭环的仿真是增加了车辆动力学,以及对应的路径设计。将其变成闭环,以验证对应的功能算法,比如ACC,AEB,TJA一类的功能。这两个就是我们所说的SIL, 软件在环仿真的学术定义!

当这些场景与算法设计完成后,就需要对其进行测试,测试的工具和方法,与之前讲的自动代码生成的测试方法一样,都可以用Simulink的Test Manager进行动态的Test Case 与静态的代码覆盖率的测试,

以上讲的都是正规的算法验证过程,适用于基础功能开发,但目前大多用的都是应用型项目,应用型项目的主要的测试工作都是进行道路数据采集,然后进行验证,这样更加真实可靠,同时也省下很多仿真模型建立的工作。省钱高效!哈哈哈。

中国OEM的传统做法。具体的操作方法与以上类似!导入场景数据,可以验证具体的传感器算法,导入目标列表数据,可以验证具体的功能算法,如下图所示!

设计,仿真,测试,这个闭环形成ADSA算法的开发与验证,显示Simulink软件的过人之处:

ADAS的数据处理

在实际的测试与验证的过程中,会收取大量的数据,摄像头的图像数据,雷达数据,车道检测数据,激光雷达数据,惯性测量单元数据等,这些结果如何处理?如何标注真值呢?

Simulink中的ADST工具箱里面含有对应的函数,然后可以讲对应的图像数据,分析后的目标列表,统一显示分析在一个图表中,进行我们所谓的真值标定, 然后进行可视化,这个要比我们肉眼看,要NB多了,请参考下图!

在做可视化的时候,Simulink可以将车辆坐标系与图像坐标系的进行同屏转化,这样可以绘制不同的点云数据,便于传感器信号的分析,验证。

  • 小结

鄙人才疏学浅,这些总结仅仅为朋友们,进行抛砖引玉,大家共同学习!ADSA系统的算法研究,犹如星辰大海,只要你抓住其中一个闪亮的星,就可以使你在智能化的大潮中屹立桥头,成为大潮中的弄潮儿,同时也希望与我们所有的同行,共同学习,共同进步,一起去征服那个灿烂的星辰大海!

学无止境,深入浅出,精心研究,方成大器!与有志者共勉!

simulink显示多个数据_Matlab/Simulink与自动驾驶(ADAS)算法开发相关推荐

  1. 智能驾驶ADAS算法设计及Prescan仿真(1): 前向碰撞预警FCW算法设计与simulink仿真

    前言: 本系列文章将对智能驾驶ADAS算法进行完整的介绍,并在simulink中搭建算法模型,并在Prescan中搭建场景并且与simulink联合仿真对ADAS算法进行验证.智能驾驶ADAS算法详解 ...

  2. 智能驾驶ADAS算法设计及Prescan仿真(3): 自适应巡航ACC跟车目标选择策略设计与simulink仿真

    前言: 本系列文章将对智能驾驶ADAS算法进行完整的介绍,并在simulink中搭建算法模型,并在Prescan中搭建场景并且与simulink联合仿真对ADAS算法进行验证.智能驾驶ADAS算法详解 ...

  3. 多帧点云数据拼接合并_自动驾驶:Lidar 3D传感器点云数据和2D图像数据的融合标注...

    自动驾驶汽车的发展已经见证了硬件传感器记录感官数据的容量和准确度的发展.传感器的数量增加了,新一代传感器正在记录更高的分辨率和更准确的测量结果. 在本文中,我们将探讨传感器融合如何在涉及环环相扣的数据 ...

  4. 从数据标注角度看自动驾驶,到底是谁在误导消费者?

    写本文初衷主要是从自动驾驶数据原理的角度让作为普通消费的小伙伴们能理解自动驾驶目前的发展现状,并警示喜欢有自动驾驶功能汽车的小伙伴在实际生活中一定要慎重使用. 自动驾驶最近几年一直特别火,公交.大货. ...

  5. simulink显示多个数据_如何在 Simulink 中使用 PID Tuner 进行 PID 调参?

    作者 | 安布奇责编 | 胡雪蕊出品 | CSDN(ID: CSDNnews)本文为一篇技术干货,主要讲述在Simulink如何使用PID Tuner进行PID调参. PID调参器( PIDTuner ...

  6. 百度智能云数据众包,更安全、更优质的数据能力,打造自动驾驶超智“双眼”...

    自动驾驶技术近年来倍受资本和行业市场关注,越来越多的车企.零部件供应商和解决方案供应商投身其中.在资金和政策的双向加持下,行业发展迅猛,几成燎原之势. 而其中最大的技术瓶颈无疑是在感知能力上,除了算法 ...

  7. simulink显示多个数据_Stateflow数据介绍(一)

    数据Scope的设置及其作用域 在上一期的内容中,我们进行了对Stateflow在工作中会提前打开的一个工具,也就是Model Explorer的使用,那么这一期,我们就开始使用这个工具,来介绍一下创 ...

  8. 从城市场景语义分割数据集中划分出自动驾驶领域道路分割数据集类别中遇到的问题

    1. [Apolloscape] 边缘:在处理Apolloscape时,发现Apolloscape数据集的标注不太准确,部分草地被错误的分到了road这一类(成散射状,不是规则闭合区域). 数据:la ...

  9. 自动驾驶CarSim和Simulink联合仿真的完美攻略!

    作者 | 车路慢慢 仿真秀科普作者 导读:大家好,我叫李慢慢,仿真秀专栏作者,某汽车主机厂汽车仿真工程师,正在筹备转岗.自2020年起,我就在仿真秀App分享ANSA教程和攻略,并学习自动驾驶仿真. ...

最新文章

  1. win10网络邻居看到linux,在Deepin 20系统中网络共享Windows无法访问的另类解决方法...
  2. HDU - 4027 Can you answer these queries?(线段树)
  3. Jquery实现简单图片切换
  4. Dubbo使用multicast广播注册中心暴露服务地址时启动报错empty notify
  5. 排序类问题度量指标:Recall , MAP,MRR
  6. android手机测试用例,Android手机测试用例-从事手机测试必备
  7. [ABP开源项目]--vue+vuex+vue-router+EF的权限管理系统
  8. 【优化系列】龙芯loongson简介
  9. JavaScript - 自定义属性 -
  10. 微信豆有什么作用?微信豆怎么用?附攻略
  11. (《机器学习》完整版系列)附录 ——7、有趣的距离与范数(距离是两点之间的,如果将一个点固定在原点,则为向量的范数)
  12. 用python独立制作Doip刷写ECU工具
  13. 用C++完成QRCode(快速响应码)的基本逻辑实现
  14. nginx 根据目录指定root_部署Nginx网站服务实现访问状态统计以及访问控制功能
  15. oracle19c集群重启,由重启引起的Oracle RAC节点宕机分析及追根溯源
  16. 仿QQ空间图片放缩查看
  17. iphone6装了卡却显示无服务器,苹果6通病——插卡无服务维修思路和教程
  18. js 金钱格式化(money)
  19. Java图形界面设计基础
  20. python + dlib 实现简单疲劳驾驶检测

热门文章

  1. python考试名词解释_python公开课|python专有名词居然有这么多,python专有名词解释已做好...
  2. 利用Python爬取网易上证所有股票数据(代码
  3. html-css练习题 (注册表单)
  4. 机器学习算法优缺点对比及选择
  5. java用栈处理四则运算_Java 用栈处理四则运算
  6. Spring Cloud源码分析(四)Zuul:核心过滤器
  7. 美团点评移动端基础日志库——Logan
  8. 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结
  9. 2019蚂蚁金服 Java面试题目!涵盖现场3面真题
  10. Java经典基础与高级面试36题和答案