0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

康謀分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(三)

康謀自動駕駛 ? 2024-07-10 15:52 ? 次閱讀

在之前的兩篇文章中(文末往期回顧中可查看),我們主要介紹了功能模型接口FMI的主要組成部分和一些使用場景,今天就以康謀自動駕駛仿真軟件aiSim為例,來展示一下如何建立一個FMU并實(shí)現(xiàn)基于UDP和FMI聯(lián)合仿真(co-simulation)數(shù)據(jù)通信。

一、效果預(yù)覽

wKgZomaOOyeAFzTUAIwGreSZv_s310.pngPC1 aiSim運(yùn)行效果

wKgZomaOO0WATQ_6AIFwXAitS9s601.pngPC2 讀取FMU和UDP通訊

二、相關(guān)配置

OS:Ubuntu22.05

仿真軟件:aiSim 5.2.0

首先是要構(gòu)建所需要的FMU,在一些動力學(xué)仿真軟件上,如CarSim,可以直接導(dǎo)出動力學(xué)模型對應(yīng)的FMU文件,但本次我們基于C++從零構(gòu)建FMU文件。

需要編輯的6份文件分別是:

fmi_simple_car.cpp:根據(jù)FMI2.0標(biāo)準(zhǔn)實(shí)現(xiàn)一個車輛模型

simple_car.h:車輛模型的頭文件

simple_car.cpp:車輛模型的實(shí)現(xiàn)文件

value_reference_ids.h:定義值應(yīng)用ID的頭文件

modelDescription.xml:定義FMU結(jié)構(gòu)的根文件

simple_car_fmu.json文件:用于將構(gòu)建的FMU文件映射到aiSim的車輛動力學(xué)中(非構(gòu)建FMU所必須)

三、操作步驟

首先是fmi_simple_car.cpp文件主要包含了6個部分,最終實(shí)現(xiàn)為模擬控制一個簡單的車輛模型,包括了實(shí)例化、設(shè)置參數(shù),執(zhí)行仿真步驟以及獲取和設(shè)置模型參數(shù)的功能。

頭文件:

include "fmi2Functions.h" (是FMI2.0標(biāo)準(zhǔn)的頭文件,請參考FMI官網(wǎng))

include

include

include "simple_car.h"

1、實(shí)例化

實(shí)例化FMU,在之前的文章中我們以C語言為例,本次采用C++來做示范。

fmi2Component fmi2Instantiate( fmi2String /*實(shí)例名稱*/, fmi2Type fmuType /*實(shí)例類型(ME/CO)*/, fmi2String /*唯一標(biāo)識符*/, fmi2String /*資源位置*/, const fmi2CallbackFunctions* /*回調(diào)函數(shù)*/, fmi2Boolean /*是否可見*/, fmi2Boolean /*是否啟用日志*/) {/*此處可以與用判斷車輛實(shí)例是否在使用、檢查FMU的類型是ME模型交換還是CO聯(lián)合仿真、執(zhí)行實(shí)例化車輛*/ car_is_used = True; //預(yù)先設(shè)置的標(biāo)志變量,用于表示表示車輛是否正在使用 returen &only_one_car; //預(yù)先定義的全局SimpleCar對象only_one_car }

2、FMU交互

實(shí)例化完成后,我們要實(shí)現(xiàn)一系列函數(shù)用于FMU交互的具體實(shí)現(xiàn),主要包含獲取和設(shè)置變量,執(zhí)行仿真步驟等。

① 獲取類型

獲取實(shí)數(shù),通過遍歷引用數(shù)組vr,獲取對應(yīng)的值并存儲。

fmi2Status fmi2GetReal(fmi2Component /*c*/, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[]){ for (size_t i = 0; i < nvr; ++i) { value[i] = only_one_car.GetValue(vr[i]); } return fmi2OK; }

同樣還能夠?qū)崿F(xiàn)獲取整數(shù)、布爾值和字符串值。

② 設(shè)置類型

設(shè)置實(shí)數(shù),同樣通過only_one_car.SetValue(vr[i], value[i])設(shè)置對應(yīng)的值。

fmi2Status fmi2SetReal(fmi2Component /*c*/, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[]){ for (size_t i = 0; i < nvr; ++i) { only_one_car.SetValue(vr[i], value[i]); } return fmi2OK; }

同樣還能夠?qū)崿F(xiàn)獲取整數(shù)、布爾值和字符串值。

③ 執(zhí)行仿真

獲取實(shí)聯(lián)合仿真函數(shù)(CO),可以是根據(jù)之前實(shí)數(shù)和證書引入導(dǎo)數(shù)計算,又或是引入仿真步驟的執(zhí)行和取消數(shù),通過遍歷引用數(shù)組vr,獲取對應(yīng)的值并存儲。

比如執(zhí)行仿真步驟,其中DoStep將會在Simple_car.cpp中實(shí)現(xiàn):

fmi2Status fmi2DoStep(fmi2Component /*c*/, fmi2Real /*currentCommunicationPoint*/, fmi2Real communicationStepSize, fmi2Boolean /*newStep*/){ log_to_file("fmi2DoStep()"); only_one_car.DoStep(communicationStepSize); return fmi2OK; }

同樣還能夠?qū)崿F(xiàn)獲取整數(shù)、布爾值和字符串值。

3、初始化和釋放

除此之外,我們還需要注意在仿真過程中FMU實(shí)例的初始化和釋放。

比如我們可以簡單的通過設(shè)置car_is_used= false實(shí)現(xiàn)實(shí)例的釋放,可以通過only_one_car = SimplerCar()來實(shí)現(xiàn)FMU的重置,其中SimplerCar類的具體實(shí)現(xiàn)在simple_car.cpp中。

以上就是基于FMI2.0實(shí)現(xiàn)車輛模型時所需的基本內(nèi)容,剩余的內(nèi)容我們將在后續(xù)的文章中進(jìn)行分享。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149951
  • 仿真軟件
    +關(guān)注

    關(guān)注

    21

    文章

    231

    瀏覽量

    30262
  • 自動駕駛
    +關(guān)注

    關(guān)注

    781

    文章

    13449

    瀏覽量

    165259
收藏 人收藏

    評論

    相關(guān)推薦

    分享 | 汽車仿真與AI的結(jié)合應(yīng)用

    實(shí)現(xiàn)高質(zhì)量的虛擬傳感器輸出是自動駕駛領(lǐng)域的一項(xiàng)關(guān)鍵挑戰(zhàn),然而傳統(tǒng)方案對廣角鏡頭的渲染和處理等方面仍存在一定的局限性。為此,為您介紹aiSim通用高斯?jié)姙R渲染器如何打破限制,在自動駕駛
    的頭像 發(fā)表于 09-11 09:24 ?1259次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>分享 | 汽車<b class='flag-5'>仿真</b>與AI的結(jié)合應(yīng)用

    自動駕駛聯(lián)合仿真——功能模型接口FMI(終)

    本文帶您了解,如何在aiSim中,通過UDP和aiSim車輛動力學(xué)API(Vehicle Dynamics Interface, VDI)來實(shí)現(xiàn)和外部的FMU車輛動力學(xué)模型聯(lián)合仿真?
    的頭像 發(fā)表于 08-07 10:19 ?2474次閱讀
    <b class='flag-5'>自動駕駛</b><b class='flag-5'>聯(lián)合</b><b class='flag-5'>仿真</b>——<b class='flag-5'>功能</b><b class='flag-5'>模型</b><b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(終)

    FPGA在自動駕駛領(lǐng)域有哪些優(yōu)勢?

    通過標(biāo)準(zhǔn)接口與其他硬件組件進(jìn)行集成,如傳感器、處理器和通信模塊等。這種易于集成的特性使得FPGA能夠方便地融入自動駕駛系統(tǒng)的整體架構(gòu)中。同時,F(xiàn)PGA還支持模塊化設(shè)計,可以根據(jù)需要擴(kuò)展功能或升級性能
    發(fā)表于 07-29 17:11

    FPGA在自動駕駛領(lǐng)域有哪些應(yīng)用?

    數(shù)據(jù)的實(shí)時處理和反饋,為自動駕駛汽車的決策提供實(shí)時、準(zhǔn)確的數(shù)據(jù)支持。 、控制系統(tǒng)優(yōu)化自動駕駛汽車的控制系統(tǒng)是復(fù)雜的,需要實(shí)現(xiàn)對車速、轉(zhuǎn)向、剎車等多種信息的實(shí)時控制。FPGA可以提供高速的控制邏輯,并
    發(fā)表于 07-29 17:09

    分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(四)

    功能模型接口是一個開放且獨(dú)立于工具的標(biāo)準(zhǔn),便于實(shí)現(xiàn)自動駕駛仿真工具間的模型交換和
    的頭像 發(fā)表于 07-24 10:54 ?2987次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>分享 | <b class='flag-5'>自動駕駛</b><b class='flag-5'>聯(lián)合</b><b class='flag-5'>仿真</b>——<b class='flag-5'>功能</b><b class='flag-5'>模型</b><b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(四)

    分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(二)

    功能模型接口在復(fù)雜系統(tǒng)的建模與仿真中具有重要作用。本文探討了FMU的時間概念、模型交換和聯(lián)合
    的頭像 發(fā)表于 06-26 14:40 ?3074次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>分享 | <b class='flag-5'>自動駕駛</b><b class='flag-5'>聯(lián)合</b><b class='flag-5'>仿真</b>——<b class='flag-5'>功能</b><b class='flag-5'>模型</b><b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(二)

    自動駕駛仿真測試實(shí)踐:高精地圖仿真

    引言隨著自動駕駛技術(shù)的快速發(fā)展,基于高精地圖的自動駕駛功能已初步落地應(yīng)用,并持續(xù)迭代升級。在研發(fā)測試階段,多方面因素導(dǎo)致測試人員可能無法拿到控制器內(nèi)部高精地圖對應(yīng)的OpenDRIVE文件①,使得
    的頭像 發(fā)表于 06-13 08:25 ?907次閱讀
    <b class='flag-5'>自動駕駛</b><b class='flag-5'>仿真</b>測試實(shí)踐:高精地圖<b class='flag-5'>仿真</b>

    分享 | 自動駕駛聯(lián)合仿真——功能模型接口FMI(一)

    功能模型接口是一個開放且獨(dú)立于工具的標(biāo)準(zhǔn),包含C-API接口、XML描述文件和可交換的功能模型
    的頭像 發(fā)表于 06-12 13:07 ?1116次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>分享 | <b class='flag-5'>自動駕駛</b><b class='flag-5'>聯(lián)合</b><b class='flag-5'>仿真</b>——<b class='flag-5'>功能</b><b class='flag-5'>模型</b><b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(一)

    未來已來,多傳感器融合感知是自動駕駛破局的關(guān)鍵

    方面表示,這是L4級自動駕駛公司和車企為了打造Robotaxi量產(chǎn)車,在國內(nèi)成立的首個合資公司。首款車型已完成產(chǎn)品定義,正在進(jìn)行設(shè)計造型的聯(lián)合評審,計劃明年實(shí)現(xiàn)量產(chǎn)。未來已來,2024年是全球L3
    發(fā)表于 04-11 10:26

    方案 | 從概念到生產(chǎn)的自動駕駛軟件在環(huán)(SiL)測試解決方案

    自動駕駛軟件在環(huán)(SiL)測試解決方案 自動駕駛軟件在環(huán)(SiL)測試解決方案能夠研究和驗(yàn)證高歷程實(shí)驗(yàn)和惡劣駕駛環(huán)境下的AD系統(tǒng)的性能,支持云端和PC端操作,提供高保真度的仿真環(huán)境和傳
    的頭像 發(fā)表于 02-06 11:09 ?569次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>方案 | 從概念到生產(chǎn)的<b class='flag-5'>自動駕駛</b>軟件在環(huán)(SiL)測試解決方案

    方案 | L2進(jìn)階L3,數(shù)據(jù)采集如何助力自動駕駛

    12月14日,寶馬集團(tuán)宣布,搭載L3級別自動駕駛功能的車輛在上海市正式獲得高快速路自動駕駛測試牌照。寶馬表示,將在上海市政府的監(jiān)督和指導(dǎo)下,在指定區(qū)域開展L3高快速路自動駕駛道路測試。
    的頭像 發(fā)表于 01-25 18:06 ?429次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>方案 | L2進(jìn)階L3,數(shù)據(jù)采集如何助力<b class='flag-5'>自動駕駛</b>

    方案 | 加速自動駕駛系統(tǒng)開發(fā)的技術(shù)解決方案

    ADTF(AUTOMOTIVE DATA & TIME-TRIGGERED FRAMEWORK)是一款專為自動駕駛系統(tǒng)開發(fā)人員設(shè)計的軟件,提供多種功能和工具,加速系統(tǒng)開發(fā)和測試
    的頭像 發(fā)表于 01-19 15:57 ?310次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>方案 | 加速<b class='flag-5'>自動駕駛</b>系統(tǒng)開發(fā)的技術(shù)解決方案

    新聞丨走進(jìn)科技——您的自動駕駛解決方案合作伙伴

    面對日益增長的行業(yè)需求,虹科自動駕駛事業(yè)部正式更名為“”。這一重要改變代表了虹科持續(xù)發(fā)展進(jìn)程中新的里程碑,也體現(xiàn)了我們在自動駕駛領(lǐng)域不斷創(chuàng)新的精神。
    的頭像 發(fā)表于 01-19 14:49 ?314次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>新聞丨走進(jìn)<b class='flag-5'>康</b><b class='flag-5'>謀</b>科技——您的<b class='flag-5'>自動駕駛</b>解決方案合作伙伴

    產(chǎn)品 | 基于事件的智能數(shù)據(jù)管理平臺Heex

    自動駕駛HEEX致力于ADAS和AD開發(fā)中獲取針對性數(shù)據(jù),即最相關(guān)的數(shù)據(jù)“智能數(shù)據(jù)”,采用基于事件的工作流和預(yù)設(shè)觸發(fā)器的方法,使得工程團(tuán)隊(duì)能夠在邊緣或云端直接提取與事件相關(guān)的數(shù)據(jù),自動
    的頭像 發(fā)表于 01-10 17:36 ?324次閱讀
    <b class='flag-5'>康</b><b class='flag-5'>謀</b>產(chǎn)品 | 基于事件的智能數(shù)據(jù)管理平臺Heex

    LabVIEW開發(fā)自動駕駛的雙目測距系統(tǒng)

    精確的距離信息,從而提高車輛的主動安全性能。這一系統(tǒng)的開發(fā)和應(yīng)用有望在自動駕駛領(lǐng)域取得更多突破性進(jìn)展。 ? 這是LabVIEW的一個功能介紹,更多的使用方法與開發(fā)案例,歡迎登錄官網(wǎng),了解更多信息。有需要LabVIEW項(xiàng)目合作開發(fā),請與我們聯(lián)系。
    發(fā)表于 12-19 18:02