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

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

3天内不再提示

详解自动驾驶汽车CAN总线数字孪生建模(一)

上海控安 来源:上海控安 作者:上海控安 2021-04-28 17:36 次阅读

标注:本文来自本实验室单超的研究成果。

数字孪生用于虚拟描述真实存在的一个或多个特定实体的数字复制品,也就是说建立的数字孪生模型是物理实体的实时数据表达,因此本文拟建立的CAN 数字孪生模型需要做到虚拟CAN 总线和实体CAN 总线的实时的状态同步,并且要有一定的数据表达能力,实时同步和数据展示是本文探索的重点。由于Simulink 和Carla 都有python 接口可以调用,本文采用python 编程语言作为数据流通的媒介以实现Carla 和Simulink 的实时数据交互。本文直接使用python 的matplotlib 库作为绘制工具,绘制源数据即模型的模拟结果从matlab 的workspace 中获取。

pIYBAGB-QpyAWZIYAAA0hYx_Uvg200.png

Simulink CAN 仿真模型设计

查看Simulink 的CAN 通信模块的配置参数。CAN Pack 模块提供的功能为把原始数据封装成CAN 报文并发送到总线网络中,相当于ECU 报文封装的功能,因此使用该模块的前提是确定封装数据的数据结构,也就是说需要确定CAN 应用层协议的选择。本文选择honda_civic_sedan_16_diesel_2019_can_generated.dbc,该文件对应的是东风本田civic sedan 2019 款的汽车CAN 总线所有非拓展帧的报文格式。本文先针对汽车速度相关报文进行分析。表示汽车速度对应的报文格式如图所示,报文ID 为777,字段的构造均以小端的方式。

汽车速度对应报文数据段结构

pIYBAGB-Qp2AdMOjAAC2fUVq_f8286.png

转向信息对应报文数据段结构

o4YBAGB-Qp2AYW-kAAC-bn9GaFY428.png

档位相关报文数据段结构

pIYBAGB-Qp-AZ-K_AABhqAKlB9w889.png

CAR_SPEED 字段以第7 bit 作为起始点,长为16 bit,数据范围在0~65535 之间,注释提供的单位为国际车速单位kph,对应千米每小时。由于COUNTER 和CHECKSUM字段存在部分重合,且CHECKSUM 和COUNTER 不属于数据段应表示的部分,经考虑,在构造数据结构时删除CHECKSUM 和COUNTER,在CAN Pack 模块中构造的信号结构如图所示。

STEERING_SENSORS 报文中,STEER_SENSOR_STATUS_x 字段被STEER_ANGLE_RAGE字段覆盖,在模型中重现数据结构时删除上述5 个字段,只保留GEAR_SHIFTER 和GEAR 字段。GEARBOX 报文中,COUNTER 和CHECKSUM 不属于数据段内容,经考虑,在模型中重现数据结构时删除COUNTER 和CHECKSUM。

报文数据结构在模型中重现的步骤是类似的,本文先按流程构建CAR_SPEED 报文,并提供详细的配置说明,之后再提供STEERING_SENSOR 和GEARBOX 构造结果,最后展示整个模型。

pIYBAGB-QqCAEdlVAABgT8H9ao8116.png

参数配置完成后的CAN Pack 模块生成了6 个字段输入端口,1 个CAN 报文输出端口,为6 个配置输入端口配置常量模块作为输入,CAN Pack 模块将依据一定的采样频率构造报文。后续环节将使用python 调用matlab 结构更改常量的值作为输入数据的方式。

o4YBAGB-QqCAFFr8AAAW-OqCfiM309.png

CAN Transmit 模块用于将CAN Pack 模块的报文输出输入到CAN 总线内,配置为默认设置即可。

CAN Transmit 模块配置

o4YBAGB-QqGAPI68AACBmSxvfF0046.png

CAN Transmit 模块

pIYBAGB-QqKAUiiXAAAO1ygoAMI747.png

对于Virtual Channel 还有额外的配置模块,用于控制总线传输速度,同样保持默认配置即可。

CAN Channel Configuration 模块配置

pIYBAGB-QqOASiMjAAB7M2CEcEs030.png

CAN Receive 模块用于从指定的虚拟CAN 隧道接收报文,可选择过滤标准数据帧和扩展数据帧,这里保持默认配置,接收所有报文,采样时间设置为0.1 秒,每0.1 秒触发目标调用函数,并输出CAN 报文。

CAN Receive 模块配置

o4YBAGB-QqSAJZWuAACscXW_lEc113.png

最终创建的CAN Receive 模块如图所示,没有输出端口,输出为一个函数触发端口,一个报文输出端口,这两个端口和Simulink Function-Call Subsystem 模块对接。

o4YBAGB-QqaAKfjvAAAXuSCVk1I449.png

pIYBAGB-QqeAaqA6AABNgezMjY4064.png

之后进入Function-Call System 内部,加入CAN Unpack 模块,该模块会解析指定ID 的标准数据帧数据结构,拆分并输出,内部配置和CAN Pack 模块流程相同,先确定CAN 报文数据结构,再添加字段。

pIYBAGB-QqeAINUYAAF_VAqts5Y685.png

创建后的模块位于Function-Call System 模块中,会有对应的6 个输出,将这6 个输出接入Function-Call System 的输出。

o4YBAGB-QqmAUuxjAACKwWDGV7o737.png

创建Real-Time Sync 模块,使得整个模型在模拟实时模拟。

o4YBAGB-QqqAW__uAACWzXAYfk8363.png

STEERING_SENSORS 和GEARBOX 的数据结构配置也同样按照上述流程进行。

值得说明的是——honda_civic_sedan_16_diesel_2019_can_generated.dbc 内部含有51 个不同CAN 报文数据结构定义,所以对如此数量的CAN 报文类型一个一个去实现对应的CAN Pack 模块和CAN Unpack 模块重复工作量较大,本文在这里只针对典型的汽车数据,如车速,转向角,档位相关的数据作为输入,模拟这三类报文在仿真CAN 总线上的传输。

pIYBAGB-QquAee50AABrJXsThsc064.png

fqj

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

    关注

    783

    文章

    13682

    浏览量

    166144
  • 数字孪生
    +关注

    关注

    4

    文章

    1280

    浏览量

    12206
收藏 人收藏

    评论

    相关推荐

    MEMS技术在自动驾驶汽车中的应用

    MEMS技术在自动驾驶汽车中的应用主要体现在传感器方面,这些传感器为自动驾驶汽车提供了关键的环境感知和数据采集能力。以下是对MEMS技术在自动驾驶
    的头像 发表于 11-20 10:19 169次阅读

    MITRE数字试验场将加速验证自动驾驶汽车

    Mcity、MITRE 将与 NVIDIA 起打造物理和虚拟自动驾驶汽车测试平台。
    的头像 发表于 11-20 09:48 138次阅读

    自动驾驶汽车安全吗?

    随着未来汽车变得更加互联,汽车逐渐变得更加依赖技术,并且逐渐变得更加自动化——最终实现自动驾驶,了解自动驾驶
    的头像 发表于 10-29 13:42 438次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>安全吗?

    自动驾驶技术的典型应用 自动驾驶技术涉及到哪些技术

    自动驾驶技术的典型应用 自动驾驶技术是种依赖计算机、无人驾驶设备以及各种传感器,实现汽车自主行驶的技术。它通过使用人工智能、视觉计算、雷达
    的头像 发表于 10-18 17:31 515次阅读

    美国拟禁止自动驾驶汽车使用中国软件

    据外媒最新报道,美国政府正酝酿项重要政策,计划在未来几周内正式提出项新规,旨在全面禁止在自动驾驶汽车中使用中国软件,特别是针对搭载L3及以上高级别
    的头像 发表于 08-06 16:37 531次阅读

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

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)在自动驾驶领域具有显著的优势,这些优势使得FPGA成为自动驾驶技术中不可或缺的部分。以下是FPGA在
    发表于 07-29 17:11

    FPGA在自动驾驶领域有哪些应用?

    是FPGA在自动驾驶领域的主要应用: 、感知算法加速 图像处理:自动驾驶中需要通过摄像头获取并识别道路信息和行驶环境,这涉及到大量的图像处理任务。FPGA在处理图像上的运算速度快,可并行性强,且功耗
    发表于 07-29 17:09

    自动驾驶汽车如何识别障碍物

    自动驾驶汽车识别障碍物是个复杂而关键的过程,它依赖于多种传感器和技术的协同工作。这些传感器主要包括激光雷达(LiDAR)、雷达、摄像头以及超声波雷达等,它们各自具有不同的工作原理和优势,共同为
    的头像 发表于 07-23 16:40 959次阅读

    自动驾驶汽车传感器有哪些

    自动驾驶汽车传感器是实现自动驾驶功能的关键组件,它们通过采集和处理车辆周围环境的信息,为自动驾驶系统提供必要的感知和决策依据。以下是对自动驾驶
    的头像 发表于 07-23 16:00 2031次阅读

    未来已来,多传感器融合感知是自动驾驶破局的关键

    的Robotaxi运营。这标志着L4级自动驾驶迎来了新的里程碑,朝着商业化落地迈进了大步。中国的车企也不甘落后:4月7日,广汽埃安与滴滴自动驾驶宣布合资公司——广州安滴科技有限公司获批工商执照。广汽埃安
    发表于 04-11 10:26

    大众汽车和Mobileye加强自动驾驶合作

    美国智能驾驶芯片巨头Mobileye与大众汽车集团近日宣布,在自动驾驶领域深化合作,共同推动全新自动驾驶功能在大众旗下量产车型的应用。Mobileye依托其领先的Mobileye
    的头像 发表于 03-22 11:46 868次阅读

    自动驾驶汽车技术 | 车载雷达系统

    自动驾驶汽车技术 | 车载雷达系统
    的头像 发表于 03-20 08:09 2835次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>技术 | 车载雷达系统

    自动驾驶发展问题及解决方案浅析

    随着科技的飞速进步,自动驾驶汽车已经从科幻概念逐渐转变为现实。然而,在其蓬勃发展的背后,自动驾驶汽车仍面临系列亟待解决的问题和挑战。本文将
    的头像 发表于 03-14 08:38 1064次阅读

    Waymo自愿召回444辆自动驾驶汽车 L4的自动驾驶还有很多路要走

    近日,谷歌旗下的自动驾驶部门Waymo自愿召回了444辆自动驾驶汽车,原因是其软件可能无法准确预测拖曳车辆的运动轨迹
    的头像 发表于 02-26 10:22 1140次阅读
    Waymo自愿召回444辆<b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b> L4的<b class='flag-5'>自动驾驶</b>还有很多路要走

    LabVIEW开发自动驾驶的双目测距系统

    精确的距离信息,从而提高车辆的主动安全性能。这系统的开发和应用有望在自动驾驶领域取得更多突破性进展。 ​ 这是LabVIEW的个功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息。有需要LabVIEW项目合作开发
    发表于 12-19 18:02