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

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

    关注

    794

    文章

    14985

    浏览量

    181465
  • 数字孪生
    +关注

    关注

    4

    文章

    1686

    浏览量

    14035
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何构建适合自动驾驶的世界模型?

    [首发于智驾最前沿微信公众号]世界模型经历了系统动力学阶段(1960年~2000年)、认知科学阶段(2001年~2017年)、深度学习阶段(2018年至今),但将其应用到自动驾驶汽车上,还是近几年才
    的头像 发表于 02-18 08:14 1.1w次阅读
    如何构建适合<b class='flag-5'>自动驾驶</b>的世界模型?

    自动驾驶汽车如何完成超车?

    在我们日常开车时,别人想要超车,只要确认后方、旁边有没有车,打个灯、稍微加速、换个车道就完成了。这一动作乍一看非常简单,但对自动驾驶汽车来说,这个过程需要多方协调。 自动驾驶车辆要完成超车动作,必须
    的头像 发表于 02-16 17:37 1.7w次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>如何完成超车?

    自动驾驶汽车如何实现自动驾驶

    人类驾驶员而言是非常直观且有效的指令,但对于自动驾驶汽车来说,则意味着需要一套极其复杂的感知、理解与决策链路。 自动驾驶如何看清文字? 自动驾驶
    的头像 发表于 02-10 08:50 789次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>如何实现<b class='flag-5'>自动驾驶</b>

    2026年自动驾驶汽车发展趋势前瞻

    自动驾驶汽车会使用人工智能吗?答案是肯定的。人工智能(AI)是自动驾驶汽车运行的基石,它使车辆能够平稳、安全地在道路上正常行驶,适应实时交通状况,并做出瞬间的决策,确保道路交通安全,是
    的头像 发表于 02-05 09:38 3936次阅读
    2026年<b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>发展趋势前瞻

    CAN XL 技术解析:从协议演进到自动驾驶数据采集应用实践

    汽车电子与工业自动化领域,CAN 总线技术始终是数据传输的核心支柱。随着自动驾驶、车联网等技术的快速发展,传统
    的头像 发表于 12-22 17:39 857次阅读
    <b class='flag-5'>CAN</b> XL 技术解析:从协议演进到<b class='flag-5'>自动驾驶</b>数据采集应用实践

    汽车自动驾驶的太阳光模拟应用研究

    测试装备,通过提供可控、可重复的测试环境,已成为汽车自动驾驶研发、验证与标定过程中不可或缺的核心工具。汽车自动驾驶的光挑战与测试需求luminbox
    的头像 发表于 12-10 18:04 563次阅读
    <b class='flag-5'>汽车</b><b class='flag-5'>自动驾驶</b>的太阳光模拟应用研究

    自动驾驶汽车如何确定自己的位置和所在车道?

    [首发于智驾最前沿微信公众号]我们平时开车时,判断自己在哪条路、哪个车道,只需要看一眼导航、扫几眼车道线、再听听提示就够了。但对自动驾驶汽车来说,这件事既简单又复杂。简单在于自动驾驶汽车
    的头像 发表于 11-18 09:03 1053次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>如何确定自己的位置和所在车道?

    不同等级的自动驾驶技术要求上有何不同?

    谈到自动驾驶,不可避免地会涉及到自动驾驶分级,美国汽车工程师学会(SAE)根据自动驾驶系统与人类驾驶员参与
    的头像 发表于 10-18 10:17 2857次阅读

    如何确保自动驾驶汽车感知的准确性?

    [首发于智驾最前沿微信公众号]自动驾驶汽车想要自动驾驶,首先要做的就是能对周边环境实现精准感知,也就是能“看”清道路,那自动驾驶汽车如何在复
    的头像 发表于 08-23 15:06 1821次阅读
    如何确保<b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>感知的准确性?

    塑造自动驾驶汽车格局的核心技术

    自动驾驶汽车长期以来一直是科幻小说中的情节,但在如今的2025年,它似乎已经离我们越来越近,智能辅助驾驶已经出现在越来越多的新能源汽车中。但距离完全的
    的头像 发表于 08-21 16:03 1095次阅读

    自动驾驶汽车是如何准确定位的?

    [首发于智驾最前沿微信公众号]随着自动驾驶技术的快速发展,车辆的精准定位成为安全驾驶与路径规划的核心基础。相比于传统人类驾驶依赖路标和视觉判断,自动驾驶
    的头像 发表于 06-28 11:42 1482次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>汽车</b>是如何准确定位的?

    自动驾驶安全基石:ODD

    电子发烧友网综合报道 自动驾驶ODD(Operational Design Domain)即设计运行域,是指自动驾驶系统被设计为安全、有效运行的具体条件范围。它定义了自动驾驶汽车在哪些
    的头像 发表于 05-19 03:52 6978次阅读