今天本来是想简单的介绍一下dSPACE的Automotive simulation models(简称ASM),但是想想还是把dSPACE这个公司的整个开发流程写一下。这样也可以了解一下汽车的整个软件开发流程是什么样子,开发过程中一般会用到什么东西以及开发标准是什么。

介绍顺序如下

1 dSPACE公司简介

2 dSPACE的工具链

3 dSPACE的优缺点

4 总结


1 dSPACE公司简介

不知道大家是否知道dSPACE公司。他们自称为embedded success,听起来可厉害了。

下面是公司主页

主页 - dSPACE​www.dspace.com

在主页浏览一圈,然后再进入汽车相关产品介绍,就可以看到下面的画面。

汽车相关产品介绍界面

通过这个页面的介绍,相信大家也可以看出他们公司是做什么的。关键词有仿真,硬件在环,数据记录,AUTOSAR, 虚拟驾驶。最核心就是仿真。他们是参与整个V-cycle开发的。也就是说,他们除了不给你提供无人驾驶相关的控制算法以外,其他所有开发所需要的硬件,开发软件(工具)都给你提供。所以,只要购买相关产品,我们就可以方便的利用他们的软件包。这个跟matlab的toolbox 很类似。比如上面图片的最左下角有个ADASIS V2 Horizon, 这个东西是一个正在开发的高精地图标准协议(或者说是正在变成标准)。那么这个词汇为什么会出现在他们的产品介绍里面? 因为ADASIS V2 Horizon既然是个协议,他就需要按标准编码解码,然后提取数据。这些都需要人力去做。但是,dSPACE就提供(卖)这个协议的SIMULINK blockset。需要用到这个协议的公司就可以直接通过购买减少开发成本。这类商品就是dSPACE的收入来源。同理,开发无人车驾驶中所需要的CAN通讯,无线通讯,LAN通讯等等标准协议,都会被他们拿来打包成一个blockset, 然后再出售。

2 dSPACE的工具链

他们为什么卖这种服务?这种服务为什么会有市场?为什么他们的开发工具敢卖那么贵?这就需要对他们的产品有整个理解。

简单来说,他们的研究人员把很多汽车软件研发相关的软件打包,出售。卖出的产品是library,他们称之为库,也称之为Block set。 Block set 意味着模块,也就是说他们是MBD(Model based design)的开发方式。也就是所有的算法都以SIMULINK的方式构建的。

下图就是dSPACE公司的高自由度汽车仿真模型ASM的SIMULINK截图。

(每个模块里面还有很多很多subsystems)

为什么非要在SIMULINK上构建算法?在已有的代码里面添加内容不就完了么,干嘛费劲的在SIMULINK里面做?据我所知,这是因为ISO26262 功能安全标准里面,规定了要用MBD。下图是汽车开发的V-cycle(就是一种解释开发顺序的图)。

下面来看看他们的提供的主要服务。

https://www.dspace.com/en/inc/home/products/products.cfm#filterterms=term-344

上图中都是分散开解释的,所以会觉得有很多内容。但是这些东西都可以通过他们的核心软件model desk, motion desk, control desk(还有很多,只不过我只用过这些)。

整个工具核心就是ASM。也就是车辆仿真模型。在车辆仿真模型构建好的情况下,通过他们自己的model desk可以修改ASM模型里面的参数。也就是说不用到每个SIMULINK的subsystem 挨个找相关参数,就可以直接在model desk 配置车辆参数。相信我, ASM可调节的参数详细到整车厂估计都拿不出所有数据。(PC端)

下图就是model desk的主页面。里面可以看到可以调节environment,vehicle dynamics,trailer,soft ecu, engine,drivetrain,eletric components…等等。其中很多东西就是需要额外购买相关block set才能用。图片中这个是满状态的ASM。(PC端)

Motion desk 是可以通过model desk 生成的模型将其可视化的工具。也就是把车辆,周边环境,周边车辆,交通情况,行人等都可视化的工具。可以生成很复杂的交通环境。这里没什么特别要交代的。(PC端)

以上所有的东西都是基于PC完成的。而汽车是嵌入式的系统,所以要生成c代码。在modeldesk,我们可以选择按照特定标准的协议生成代码,然后需要把这些代码build到real time embedded 系统中。一直到build 都是由pc端的model desk完成。但是一旦build,并将整个系统放入嵌入式设备之后,就没有model desk能做的事情了。

但是嵌入式设备中跑的系统我们想观察,有些参数我想更改,也要log 数据。那么这步骤就是由control desk完成的。这嵌入式设备当然dSPACE也会提供。比如Autobox,DS1006 (嵌入式设备)。设备价格也是相当的贵。

那么有些人就好奇,算法build好了,在嵌入式设备中开始运行了,so WHAT? 之后就是最重要的部分了。这部分就是硬件在环仿真。

想象一下,如果一个整车厂要开发新的车,新的控制算法。但是整车厂不可能说新车的所有部件都做出来后才开始开发软件代码。那么就需要有一个虚拟的车可以让工程师按照新开发的车辆调节数据。只要数据调节好了,我们就可以把这个虚拟的车当作真车来进行软件测试。理论上,如果ASM足够好的话,参数足够的话,ASM应该可以提供跟真车一样的行为。那么把这个虚拟的车加载到嵌入式系统中的话,嵌入式系统中跑的其实就是真车一样的虚拟车(包括周边环境,传感器,车道等等内容)。这时候,我们只要在嵌入式系统提取I/O并连接到整车厂开发的ECU,那么对于开发的ECU来说,它就是接收到了跟真车行驶时候一样的input。工程师就可以通过ECU的反馈来判断开发的软件是否有问题。

这就是dSPACE整个工具链。

所有的一切都是为了最后做硬件在环仿真。

但是!我们研究无人车的话,可以参考dSPACE的ASM学习车辆动力学相关知识。那真的详细到不能再详细了。我们可以理解车辆的每一步的控制逻辑。理解好了,再去配合场景构建+传感器的行驶环境,构建虚拟驾驶环境,算法就直接可以在SIMULINK构建。且因为是基于SIMULINK开发,测试好的代码可以直接拿到别的支持MBD的地方使用。

dSPACE的工具链对于无人车研究起到的作用跟prescan很类似,传感器+虚拟环境+汽车动力学仿真。但是prescan不提供硬件,block set(CAN block set,satellite block set, ADASIS v2 Horizon, Wireless communiation)这种东西。所以做试车实验什么的话,dSPACE会更加方便一些。也会更贵一些。

有时候感觉,光看他们的产品就可以知道汽车软件开发要干些什么。。。

3 dSPACE的优缺点

优点:

复杂度很高,可以调节各种参数

软件硬件延伸性很好

MBD可以让每个逻辑的来龙去脉都变得很清晰

提供汽车相关产业的几乎所有眼神服务

缺点:

贵,贵,贵,啥都得买

太复杂

学起来费劲

服务产品概念很抽象(理解他们为啥敢卖卖的这么贵,就花了我很长时间)

4 总结

今天简单讲了下dSPACE的工具链。详细的内容其实都在他们的官网里。

对于无人车系统开发,其实和prescan的区别并不大。但是如果涉及到实车测试什么的,dSPACE的工具链就要强大很多了。因为他们提供的是产业从头到尾的解决方案,而prescan和carsim只是个软件。这也是为什么他们敢卖那么贵的原因,因为从头到尾的服务基本没什么公司在做。

转自:https://zhuanlan.zhihu.com/p/38266888

无人车系统仿真相关软件介绍-dSPACE的更多相关文章

  1. noSQL数据库相关软件介绍(大数据存储时候,必须使用)

    目前图数据库软件七种较为流行:Neo4J, Infinite Graph, DEX,InfoGrid, HyperGraphDB, Trinity, AllegroGraph(http://tech. ...

  2. Docker 容器中相关软件安装

    Docker 容器中相关软件安装 1.介绍 我们从docker hub下载的centos镜像是只有很少的命令,需要单独安装我们所需的相关软件. 2.安装软件 安装yum-utils软件包 该软件包是辅 ...

  3. PySpark SQL 相关知识介绍

    title: PySpark SQL 相关知识介绍 summary: 关键词:大数据 Hadoop Hive Pig Kafka Spark PySpark SQL 集群管理器 PostgreSQL ...

  4. CPU发展史和相关品牌介绍

    CPU发展史和相关品牌介绍 CPU发展已经有40多年的历史了.我们通常将其分成 六个阶段. (1)第一阶段 (1971年-1973年) .这是4位和8位低档微处理器时代,代表产品是Intel 4004 ...

  5. 软件介绍(apache lighttpd nginx)

    一.软件介绍(apache  lighttpd  nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...

  6. Axure RP 8 软件介绍

    介绍 此软件可以用于制作快速原型,也可以绘制中保真原型草图. 应用人群:产品经理.交互设计师.UI设计师.网页设计师. 原型分类:低保真(手绘草图).中保真(使用相关软件绘制出来的).高保真(包含效果 ...

  7. 谷歌迂回入华:Waymo无人车抢先进驻上海!

    谷歌迂回入华:Waymo无人车抢先进驻上海! https://mp.weixin.qq.com/s/d5Cw2uhykMJ9urb6Cs8aNw 谷歌又双叒叕要回归中国了?这已经是第不知道多少次的传言 ...

  8. Oracle 参数文件及相关操作介绍

    Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...

  9. Ubuntu服务器上相关软件或应用时常打不开的问题

    于接触linux系统时间不就,所以在操作上难免会出现失误,以下两个问题就是近期经常出现的问题,具体如下: 1.ubuntu服务器上的浏览器时常打不开. 2.安装的pycharm和系统自带的pychar ...

随机推荐

  1. python初略复习(2)及python相关数据分析模块的介绍

    常用模块 Python中的模块在使用的时候统一都是采用的句点符(.) # 就是模块名点方法的形式 import time time.time() import datetime datetime.da ...

  2. jmeter-获取系统最大并发数

    问题:有一个页面,需要测试一下最大支持多少用户并发? 此时需计算的是最大用户并发数,强调的是同时操作,也可以理解为同时发起请求: 针对这个问题,我们可以通过rps定时器或阶梯加压线程组测试每秒最大的请 ...

  3. csrf跨站请求、相关装饰器、auth模块使用

    昨日内容回顾 django操作cookie和session # 作用:就是保存用户信息,保存一系列数据,还可以做缓存 保留一段时间 # session是基于cookie工作的 1. 数据是保存在服务端 ...

  4. supervisor启动报错

    supervisor 启动失败报错 Error: Another program is already listening on a port that one of our HTTP servers ...

  5. BBS项目分布搭建二(个人站点相关)

    BBS项目分布搭建二 1. 首页详情补充 # 在home.html文件中 body标签内补充: <div class="container-fluid"> <di ...

  6. 关于linux命令的随笔第一篇

    大多数的情况下,我们都是通过ssh客户端远程连接服务器去进行维护访问,所以我们必须要掌握linux命令 linux命令大约有上百种,但是并非所有命令都属于常用命令,所以不需要死记硬背,多用多百度就可以 ...

  7. 前端面试题(css)

    css  基础面试题 css 面试题 js 面试题 1.介绍下CSS的盒子模型    介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? css 是如何设置这两种模型的 box-si ...

  8. Spring IOC---Bug处理

    1. org.junit.platform.commons.JUnitException: TestEngine with ID 'junit jupiter' failed to discover ...

  9. SpringBoot---Eclipse编辑yml文件不能自动提示的问题(Eclipse安装插件STS)

    在学习了几天SpringBoot之后,刚开始跟着别人的博客使用的是IDEA,后来跟着视频学,讲师用的eclipse,便跟着用了,但是发现在编辑yml配置文件的时候,没有自动提示的功能,百度之后发现是没 ...

  10. 使用cgroup和tc限制带宽

    cgroup子系统net_cls 可以给 packet 打上 classid 的标签,用于过滤分类,这个classid就是用于标记skb所属的 qdisc class 的.有了这个标签,流量控制器(t ...