今天本来是想简单的介绍一下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. 第九周shell脚本编程练习

    转至:http://www.178linux.com/88838 1.写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin):分别这两 ...

  2. WebLogic服务器打补丁(11g/12c)

    转至:https://segmentfault.com/a/1190000019059894 背景 2019年04月17日,Oracle发布新季度安全公告.该安全公告披露WebLogic服务器存在多个 ...

  3. 移动C盘的.gradle文件

    今天参照一位博主的方法,移动了C盘下的.gradle文件,解放C盘,就是设置了一下环境变量,然后就把gradle文件移过去了,运行是可以运行,但是再看其他博主的方法都需要AndroidStudio下的 ...

  4. Chrome:查看HTTP请求的header信息

    1.打开Google浏览器Chrome,通过F12进入开发者工具,进入Network模块下,此时由于我们还没有进行任何HTTP请求,所以这个页面下还是空空如也 2.随便通过某个搜索引擎搜索一下,比如通 ...

  5. C语言刷二叉树(二)基础部分

    102. 二叉树的层序遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeN ...

  6. tp6微信公众号开发者模式获取access_token

    1:config 文件下新建一个文件wechat.php,将个人id和秘钥写入配置文件 网址: https://developers.weixin.qq.com/doc/offiaccount/Bas ...

  7. 数据备份RAID1 和RAID5详解和对比

    数据备份RAID1 和RAID5详解和对比 RAID 全称 Redundant Array of Independent Disks,中文意思"独立的冗余磁盘列队". RAID 一 ...

  8. Netty学习(四)FastThreadLocal

    FastThreadLocal 前面介绍过 JDK 的 ThreadLocal , 使用不当的话容易造成内存泄漏最终导致OOM, 并且也有一些地方设计的不够好(相对于接下来要介绍的 FastThrea ...

  9. jq集成月份插件(不要年月日,只要年月)

    最近项目中报表统计需要按照月份进行统计,以前用的jq-ui的插件,里面集成的是年月日,修改了好久,觉得太过麻烦,就换了个思路,由于赶时间,所以就度娘了,找到了一个很简洁又简单的Demo,但是发现和我的 ...

  10. Applied Social Network Analysis in Python 相关笔记3

    如果是option2的话,答案选A. 这里节点s,从左边的选择,节点t从右边选择. 这里计算还是用以前的值,不用更新过的值.