今天本来是想简单的介绍一下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. IntelliJ:下载第三方库

    学习自:(6条消息) IDEA中第三方软件包安装步骤_Li某人_初学者-CSDN博客 1.下载对应的软件包:以commons-logging为例 2.复制这个jar包到项目根目录下的lib目录下(li ...

  2. Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)

    参考: https://y4er.com/post/cve-2022-22947-springcloud-gateway-spel-rce-echo-responsehttps://cloud.spr ...

  3. Lua中如何实现类似gdb的断点调试—07支持通过函数名称添加断点

    我们之前已经支持了通过函数来添加断点,并且已经支持了行号的检查和自动修正.但是通过函数来添加断点有一些限制,如果在当前的位置无法访问目标函数,那我们就无法对其添加断点. 于是,本篇我们将扩展断点设置的 ...

  4. k-means聚类:擒贼先擒王,找到中心点,它附近的都是一类

    属于无监督学习,聚类算法事先并不需要知道数据的类别标签,只是根据数据特征去学习,找到相似数据的特征,然后把已知的数据集划分成几个不同的类别 算法原理: 假设数据总共有m条,计划分成3个类别 先随机在这 ...

  5. java入土---markdown使用技巧

    markdown使用技巧 标题 "#" 为一级标题 "##" 为2级标题 可一直往下曾增加,最多六级标题 字体 加粗 **加粗** 加粗 倾斜 *倾斜* 倾斜 ...

  6. ospf应用简单

    ospf应用简单 OSPF (SPF) 属于链路状态路由选择协议,并且是公有标准, 理论上是没有网络规模限制的: 支持网络的层次化设计,可以将网络分为2层.   层,是通过"区域" ...

  7. python 之 matplotlib 练习

    import numpy as npimport matplotlib.pyplot as plt x = np.linspace(0,10,1000)# 自变量y = np.sin(x) + 1 # ...

  8. java反射之java 泛型的本质

    1.泛型 反射API用来生成在当前JAVA虚拟机中的类.接口或者对象的信息.Class类:反射的核心类,可以获取类的属性,方法等内容信息.Field类:Java.lang.reflect.表示类的属性 ...

  9. 阿里一面,说说你对Mysql死锁的理解

    又到了金三银四的时候,大家都按耐不住内心的躁动,我在这里给大家分享下之前面试中遇到的一个知识点(死锁问题),如有不足,欢迎大佬们指点指点. 1.什么是死锁? 死锁指的是在两个或两个以上不同的进程或线程 ...

  10. VS2012 生成可以在XP下运行的exe文件

    1. 在已安装VS2012条件下,安装update,作者已经安装了update3; 2. 相关设置: 设置"平台工具集":在项目右击-属性-常规-在"平台工具集" ...