康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(终)

在之前的文章中,我们介绍了如何构建简单的车辆模型,并基于FMI2.0构建了其FMU,其最终结构为:

今天将会和大家分享如何在aiSim中,通过UDP和aiSim车辆动力学API(Vehicle Dynamics Interface, VDI)来实现和外部的FMU车辆动力学模型的联合仿真。


目录

一、操作步骤

1、实例化VDI

2、通过UDP实现FMU的读取

3、效果展示


一、操作步骤

车辆动力学仿真是aiSim的核心组件,能够根据驾驶指令来确定车辆的运动变化。基于准确可靠的车辆动力学模型,可以确保车辆模拟更加真实。在aiSim可以将FMU单独视作动态库来实现车辆动力学,也可以基于VDI和UDP来实现和FMU的联合仿真。

1、实例化VDI

VDI中提供了5种不同的车辆动力学模型,包括:

(1)2d:横向自行车模型
(2)23d:底盘俯仰和侧倾分离的横向自行车模型
(3)3d:具有3D刚性车身和独立车轮悬挂的横向轮胎模型(计算量很大)
(4)拖车模型:用于牵引车辆
(5)FMU:基于FMI对于车辆动力学的不同描述

整个联合仿真的进程可以分四个部分:

(1)根据车辆名称匹配对应的ego
(2)在VehicleDB.json或是ego自己的asset包中确认所定义的车辆动力学模型
(3)实例化专属的VDI来处理FMU,定义必须的输入/输出数据
(4)通过socket和pyfmi处理FMU

在实例化VDI时,我们将会遵循以下四个部分来获取车辆动力学的相关数据

2、通过UDP实现FMU的读取

在实例化VDI的同时,初始化一个UDP接口来处理收到的数据。

如果我们通过UDP来实现FMU的读取(为了分布式系统),那么我们还需要pyfmi和socket来协助我们读取和写入FMU的数据,整个脚本主要实现功能为:

(1)创建UDP的socket,用于监听和读取来自VDI的数据

(2)解析来自VDI的数据,获取动力学数据和标志信号,后者主要用于步进操作

(3)基于标志信号步进式执行仿真


(4)基于fmipy读取FMU中定义的各种动力学数据,并将其打包成UDP,在读取时,同样遵循modelDescription.xml中的定义。

3、效果展示

在完成以上工作后,可以启动整个进程,看一下分布式联合仿真的效果。FMU和对应的脚本运行在PC1上,aiSim运行在PC2上。

以上就是关于功能模型接口FMI的联合仿真的全部内容,通过FMU我们可以快速的在不同工具之间进行集成,而不需要进行大规模的模型移植或是繁琐的联调。

如果涉及到联合仿真,每个子系统都需要对应的仿真器进行求解,在通信时数据的交换频率和吞吐量都会对延时造成影响,从而造成仿真的偏差,可以优化不同的通信机制或是采用案例中主动触发的方式来减少负面影响。


如您对上述产品和解决方案感兴趣,

欢迎联系康谋自动驾驶团队了解更多信息。

我们将竭诚为您服务!

期待与您的交流!

康谋aiSim自动驾驶仿真模拟平台 - 端到端的ADAS/AD仿真工具 | 物理级传感器仿真 | 高精度环境模拟康谋自动驾驶仿真软件-aiSim,全球首个通过ISO 26262 ASIL D认证的汽车仿真工具。搭载自研确定性仿真引擎aiSim AIR Engine,提供物理级传感器仿真和高精度环境模拟,可基于真实场景建模,支持多路视频并行输出,提供完整测试报告和分析指南。icon-default.png?t=N7T8https://keymotek.com/adas-simulator-aisim/

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值