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

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

3天内不再提示

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

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

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

整体思路:仿真模型通过python打开并运行之后,会启动Carla, 使用Carla API 获取汽车的相关数据之后,启动matplotlib绘制线程,将Carla提供的数据输进模型,再从matlab的worksapce通过接口获取输出结果并绘制。

python调用仿真模型

Matlab提供python API供外部调用,本文将需要使用的matlab功能封装成类的形式进行调用。Matlab class用于连接Matlab软件并对模型输入数据获取输出结果,其中connectToMatlab方法通过Matlab命令行启动Simulink运行仿真模型,simulate方法用于把数据输入模型,之后将输出结果以数组形式存入实例变量中。

python控制Carla客户端

python脚本启动的Carla客户端以pygame库作为媒介,实现用户输入和Carla服务端交互的各种功能,再将最新的结果渲染并绘制到pygame的用户界面中。初始需要先将Carla服务端启动,暴露本地2000端口用于客户端连接。获取到初始化的 pygame.display实例后进入循环渲染阶段,此时键盘的输入作为pygame的事件触发parse_events方法调用

数据提取

建模部分提到,simulink CAN 仿真模型主要传输的是车速、转向角、档位三种数据报文。所有的数据来源于以下三个实例:

车速:车速V(km/h)计算方式为 V = 3.6 * √(x^2 + y^2 + z^2 ) (其中x、y、z表示前/后、左/右、上/下方向的速度矢量,单位为m/s)。

档位:档位共分为R、P、D三档,分别代表倒车、停车、直行,档位的判断依据汽车的行驶状态来定,因此档位的数据源需要汽车车速和倒车参数来判定。

转向角度:转向角可以直接从实例中获取。

实时数据展示

上文已经解决了模型实时输入实时输出问题,那么当获取到仿真模型的输出结果时,该结果是以数组的形式记录从仿真开始到当前时间的所有结果,所以每次获取到结果后都需要重新依据新的数据样本进行绘制,由于python是Carla和Simulink数据传输的媒介,因此最好的解决方案是基于python的绘图工具实时绘制。本文采用python Matplotlib库以实现该需求。

绘制代码实现

由于绘制的是模型的输出结果,现针对输出的车速数据绘制相应的实时变化曲线,为了做到良好的代码风格,增加代码复用率,本文将一系列绘制相关的方法集中到Draw类里。

实时仿真并绘制

本部分将结合前面的实验结果,将所有对接Carla的python模块、对接Matlab/Simulink的python模块、实时绘制相关的python模块都组合起来运行。

车速实时变化

实时模拟时长为60秒,60秒内,汽车的速度变化曲线在图像中持续不断地刷新,直到60秒到为止。

从图中可以看出,经过仿真模型模拟出来的速度数据和原数据基本一致,说明模型的CAN报文解封装过程顺利执行,但是在车速的转折点存在模型的模拟结果比原数据更平滑的问题,很明显是由于原数据输入过于频繁,两个相邻的输入时间间隔小于模型最小采样时间,而采样时间不能进一步缩小,否则会导致该时间段内无正确模拟结果输出。

档位实时变化

时长为60秒,手动控制汽车行驶,共尝试两个档位,P和D、分别代表泊车和直行,对应参数为17和20,泊车后发送单个P档位报文,到车辆开始直行这段时间不发送任何报文,直行后会依据汽车的速度反馈不断发送D档位报文。从图中可以看出,由于原数据变化的不是非常频繁,模型模拟出来的结果完全匹配了原数据,说明输入频率远小于模型采样频率会使模拟结果贴合预期结果。

转向角度实时变化

时长60秒,手动控制汽车行驶,并控制轮胎左右转向,向左角度为负,向右角度为正,值位于[-100, 100]区间内。由图可知,转向角变化数据更新十分频繁,仿真模型在处理大量的输入时必然会卡顿并抛弃大量数据,使得模拟结果没有很好地贴合原数据,因此在高频输入的前提下,模型模拟结果无法完全贴合预期。

小结

本文介绍了基于Carla自动驾驶模拟仿真平台构造Simulink CAN仿真模型并结合python API及其绘图工具库matplotlib的一整套实时仿真流程的设计和实现细节,实际模拟了虚拟汽车车速,档位、转向角度三个信息在CAN中的解封装和传递。发现在低频的数据输入场景下,模型能做到贴合实际结果,而在高频输入数据场景下,模型容易运行卡顿并在多个时间点输出无效数据,抛弃这些数据后模拟结果相对于预期结果显得平滑,无法体现预期结果中的峰值。

fqj

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

    关注

    783

    文章

    13682

    浏览量

    166144
  • 数字孪生
    +关注

    关注

    4

    文章

    1280

    浏览量

    12206
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    自动驾驶汽车安全吗?

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

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

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

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

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

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

    低,适合用于实现高效的图像算法,如车道线检测、交通标志识别等。 雷达和LiDAR处理:自动驾驶汽车通常会使用雷达和LiDAR(激光雷达)等多种传感器来获取环境信息。FPGA能够协助完成这些传感器
    发表于 07-29 17:09

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

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

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

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

    吉利与Foretellix合作开发自动驾驶汽车

    汽车制造商吉利与以色列的自动驾驶安全技术领军企业Foretellix达成了战略合作。此次合作旨在确保自动驾驶汽车的安全大规模部署,并寻求降低吉利的研发成本,同时提升开发效率。
    的头像 发表于 05-14 09:52 399次阅读

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

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

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

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

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

    自动驾驶汽车技术 | 车载雷达系统
    的头像 发表于 03-20 08:09 2839次阅读
    <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开发自动驾驶的双目测距系统 随着车辆驾驶技术的不断发展,自动驾驶技术正日益成为现实。从L2级别的辅助驾驶技术到L3级别的受条件约束的
    发表于 12-19 18:02