0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

康谋自动驾驶 2024-07-24 10:54 次阅读

​在上一篇文章 “康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(三)https://www.elecfans.com/d/3875615.html”,我们讲述了在构建FMU中,如何通过fmi_simple_car.cpp来实现FMI2.0,即如何实现一个简单的车辆模型来进行车辆动力学仿真。今天康谋接着展示如何通过simple_car.cpp和simple_car.h构建车辆模型本身。

一、操作步骤

首先simple_car.cpp主要构建了车辆所需的多个动力学参数,包括底盘的位姿、车轮的状态等,而simple_car.h提供多个函数来实现基于FMI2.0标准将参数写入到车辆中。

simple_car.cpp主要分为三部分:

  • 初始化车辆动力学参数
  • 计算参数并更新车辆的运动变化
  • 根据车辆的位姿计算车轮的坐标

在头文件中,除了定义相关函数外,还提供了车辆的一些静态参数,用于协助动力学参数的计算,比如给定车辆的转向传动比、轴距、最大附着加速度、车轮半径等。

wKgaomaga4qAaTULAAFYZldGreo680.png

1、实例化

我们来看一个simple_car.cpp中实现车辆状态更新的简单示例:

const double wheel_angle =val_refs[STEERING_ANGLE] / m_steer_transmission_ratio; const double curvature = wheel_angle / m_wheelbase const double yaw_rate = curvature * val_refs[CHASSIS_SPEED]

这三个分别计算了转向角、曲率和偏航率。基于这个三个值,再结合车辆的静态参数,我们可以计算并推算出其他的车辆运动姿态参数。

我们也会通过加速踏板和刹车踏板的状态来计算车辆(底盘的纵向加速度),其中m_max_adh_acc为在头文件中预先定义的最大附着加速度:

if val_refs[BRAKE_PEDAL_POSITION] < 0.0 { val_refs[CHASSIS_LONGITUDINAL_ACCELERATION] = val_refs[BRAKE_PEDAL_POSITION] * m_max_adh_acc; }

可以注意到我们使用了宏定义的[STEERING_ANGLE]、[CHASSIS_LONGITUDINAL_ACCELERATION]和[BRAKE_PEDAL_POSITION]。

使用这一方式的原因:一是为了计算不同参数时清晰明了,此外更重要的是这和FMU中的modelDescription.xml文件所对应,modelDescription.xml规定了FMU的结构,其结构可以参考FMI系列的第二篇文章:“康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(二)https://www.elecfans.com/d/3535805.html”。

2、关注参数

在XML文件中,需要关注的参数类型为name和valuReference,STEERING_ANGLE这一name对应的valuReference值为3,那么为了方便我们使用这些参数,可以把这些定义的宏写入到value_reference_ids.h中,当然也可以写入simple_car.h这一头文件里。

wKgZomagbGWAIYFqAAP_TDgDKig915.png

3、Cmake 编译

在完成simple_car.cpp、simple_car.h和FMU描述文件modelDescription.xml文件的构建,最后一步就是要将其编译成为所需FMU文件并生成我们的动态库文件(.so/.dll)。

我们采用Cmake来进行编译,除了定义源文件、添加库、指定目录、链接库(主要是glm和fmi2_interface)以外,我们还需要针对FMI平台进行配置:

wKgaomagbHuAWYReAAHfZ6od84Y167.png

以上就是基于FMI2.0构建FMU的全部内容,在下一期中我们将介绍在仿真软件aiSim中通过车辆动力学API来实现和FMU的联合仿真。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 汽车行业
    +关注

    关注

    0

    文章

    289

    浏览量

    15292
  • 联合仿真
    +关注

    关注

    0

    文章

    5

    浏览量

    8306
  • 自动驾驶
    +关注

    关注

    780

    文章

    13424

    浏览量

    165026
  • 功能模块
    +关注

    关注

    0

    文章

    19

    浏览量

    2702
收藏 人收藏

    评论

    相关推荐

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

    功能模型接口在复杂系统的建模与仿真中具有重要作用。本文探讨了FMU的时间概念、模型交换和联合
    的头像 发表于 06-26 14:40 3010次阅读
    <b class='flag-5'>康</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'>功能</b><b class='flag-5'>模型</b><b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(二)

    自动驾驶联合仿真——功能模型接口FMI(终)

    本文带您了解,如何在aiSim中,通过UDP和aiSim车辆动力学API(Vehicle Dynamics Interface, VDI)来实现和外部的FMU车辆动力学模型联合仿真
    的头像 发表于 08-07 10:19 2398次阅读
    <b class='flag-5'>自动驾驶</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'>接口</b><b class='flag-5'>FMI</b>(终)

    FPGA在自动驾驶领域有哪些优势?

    通过标准接口与其他硬件组件进行集成,如传感器、处理器和通信模块等。这种易于集成的特性使得FPGA能够方便地融入自动驾驶系统的整体架构中。同时,FPGA还支持模块化设计,可以根据需要扩展功能或升级性能
    发表于 07-29 17:11

    谷歌的自动驾驶汽车是酱紫实现的吗?

    看到新闻报道说谷歌自动驾驶汽车已经行驶近30万公里了,非常的强大~~上次参加了重庆新能源汽车峰会,对会上富士通半导体宣讲的一款全景视频汽车实时监控技术平台似乎看到了自动驾驶的影子(利用MB86R11
    发表于 06-14 16:15

    自动驾驶真的会来吗?

    。autopilot是用户驾驶的一个辅助功能,可以帮助驾驶员在开车过程中进行更好的判断、更轻松的操作。这个Google等进行的自动驾驶有明显的不同。”张璐说。美国高速公路安全委员会(N
    发表于 07-21 09:00

    自动驾驶的到来

      传统汽车厂商更趋向于通过技术的不断积累,场景的不断丰富,逐步从辅助驾驶过渡到半自动驾驶,进而在将来最终实现无人驾驶;某些高科技公司则希望通过各种外部传感器实时采集海量数据,处理器经过数据分析然后
    发表于 06-08 15:25

    AI/自动驾驶领域的巅峰会议—国际AI自动驾驶高峰论坛

    由南德意志出版及活动有限公司举办的 国际AI自动驾驶高峰论坛 将于 2017年11月28/29日 在 德国慕尼黑 举办,中德联合股份公司作为中国独家合作伙伴,诚邀您拨冗莅临!【活动背景】AI
    发表于 09-13 13:59

    【PYNQ-Z2试用体验】基于PYNQ的神经网络自动驾驶小车 - 项目规划

    完成,在PYNQ上搭建含有硬件神经网络和硬件PWM控制器的PYNQ Overlay,由Python接口完成小车的整体框架。 、实现步骤1. 搭建自动驾驶小车的底盘和硬件,焊接制作电源电路,完成各个
    发表于 03-02 23:10

    如何让自动驾驶更加安全?

    自动驾驶、完全自动驾驶。第级别是汽车驾驶自动化、智能化程度最高级别,也就是通常所说的无人驾驶
    发表于 05-13 00:26

    自动驾驶汽车的处理能力怎么样?

    对环境和拥堵产生积极影响。市场调研公司ABI Research预测:到2030年,道路上分之一的汽车将会是自动驾驶汽车。行业专家已经为自动驾驶的发展定义了五个级别。 每个级别分别描述了汽车从
    发表于 08-07 07:13

    自动驾驶车的人车交互接口设计方案

    。随着驾驶任务的消失和车辆控制权人数的增加,自动驾驶也必然会带来全新的人车关系。因此,面向自动驾驶车的人车交互接口的再设计面临了机遇和挑战,我们需要重新探讨如何为全新交互场景下的“乘客
    发表于 07-30 07:57

    自动驾驶线控底盘VCU功能介绍

    满足自动驾驶远程遥控的线控底盘整车控制器VCU1 自动驾驶线控底盘VCU功能介绍满足自动驾驶及遥控驾驶的线控底盘整车控制器VCU作为新能源及
    发表于 09-07 06:30

    新闻丨走进科技——您的自动驾驶解决方案合作伙伴

    面对日益增长的行业需求,虹科自动驾驶事业部正式更名为“”。这一重要改变代表了虹科持续发展进程中新的里程碑,也体现了我们在自动驾驶领域不断创新的精神。
    的头像 发表于 01-19 14:49 301次阅读
    <b class='flag-5'>康</b><b class='flag-5'>谋</b>新闻丨走进<b class='flag-5'>康</b><b class='flag-5'>谋</b>科技——您的<b class='flag-5'>自动驾驶</b>解决方案合作伙伴

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

    功能模型接口是一个开放且独立于工具的标准,包含C-API接口、XML描述文件和可交换的功能模型
    的头像 发表于 06-12 13:07 1024次阅读
    <b class='flag-5'>康</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'>功能</b><b class='flag-5'>模型</b><b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(一)

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

    功能模型接口是一个开放且独立于工具的标准,便于实现自动驾驶仿真工具间的模型交换和
    的头像 发表于 07-10 15:52 1175次阅读
    <b class='flag-5'>康</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'>功能</b><b class='flag-5'>模型</b><b class='flag-5'>接口</b><b class='flag-5'>FMI</b>(三)