本发明涉及电子信息处理技术领域,特别是涉及一种智能驾驶虚拟仿真云平台。
背景技术:
随着互联网技术的高度发展,智能化技术的应用越来越普遍。在汽车领域,“智能汽车”和“模拟仿真系统”的概念已经被大家熟知,在仿真环境下开发、测试、验证自动驾驶系统往往事半功倍,但是驾驶环境仿真场景的搭建费时费力,而且很难保证跟现实世界一致。但如果能基于高精度地图搭建仿真开发场景,它跟现实世界是很一致的,所有的车道线、交通灯、障碍物,甚至包括交通标志牌上的图片,都是直接从高精度地图采集的数据里提出来的。即市面上鲜有基于云环境与高精度地图集成的虚拟仿真系统。另外,桌面单机版虚拟仿真系统,集成高精度地图数据能力有限,通用程度不高。而每个图商的高精度地图数据在每个地区的精度都是不同的,也就是说图商们各有自己的区域性地图数据高精度优势。市面上的虚拟仿真系统无法灵活地、根据区域性地图数据高精度程度来选择和加载不同图商的高精度地图数据,另外也没有高弹性、高可扩展能力。
并且市面上的高精度地图服务大多为提供公开的数据服务接口,客户端获取相应的地图数据并渲染显示,但不能灵活地修改高精度地图数据,以满足定制化和个性化需求。智能驾驶虚拟仿真平台需要根据各种测试场景,灵活地进行场景管理、参数配置、地图显示等,并需要良好的用户操作体验,以实现对车辆的全方位测试验证,如果直接使用市面上已有的高精度地图服务系统,是无法满足的。有一些比较有名的智能驾驶模拟仿真系统软件产品,但各有不足。有些系统是单机版桌面应用环境,虽然可以在vr界面里定制和编辑模拟仿真地图场景,但缺乏海量场景库的支持,无法存储和使用海量场景数据,也无法支持高并发模拟仿真测试。还有些系统虽然带有服务端,但是缺乏高精度地图数据支持的模拟仿真系统,也不是云环境支撑的。总之基于云计算环境 高精度地图系统 模拟仿真平台,实现智能驾驶虚拟仿真验证能力的解决方案,几乎没有。
技术实现要素:
本发明的一个目的是要提供一种智能驾驶虚拟仿真云平台的高精度地图操作管理系统,基于aws公有云平台的高精度地图数据管理和应用解决方案ehp(electronichorizonprovider)-ehr(electronichorizonreconstructor),实现了高精度地图数据的统一存储、统一缓冲、统一解码、统一计算,并为ehr提供统一的业务级别数据访问接口,为后续虚拟仿真平台的搭建提供底层高精度地图数据和服务技术支撑。
本发明一个进一步的目的是要提供一种智能驾驶虚拟仿真云平台的高精度地图同步系统,提出了一种客户端与基于aws公有云的高精度地图管理系统的安全通信握手、互连访问解决方案,实现了高精度地图数据的统一存储并提供同步管理。
本发明另一个进一步的目的是要提供一种智能驾驶虚拟仿真云平台的基于测试用例的高精度地图应用系统,实现测试用例对高精度地图的在线编辑、定制化;在测试流程实例运行过程中,vr客户端对虚拟车辆的运行状态全程可视,以及实时环境感知高精度定位和模拟仿真行为决策支持。
特别地,本发明提供了一种智能驾驶虚拟仿真云平台,包括:地图操作管理系统,所述地图操作管理系统包括:
公有云模块,用于实现地图数据文件的编解码以及对应地图数据的操作计算,并将结果通知给客户端应用模块;
所述客户端应用模块,用于对所述公有云模块的数据进行实时展示、监控并提供可视化界面。
进一步地,所述公有云模块包括:
数据服务模块,用于根据请求的参数从地图库获取对应的地图数据;
地图数据操作模块,用于根据用于的操作请求,分别调用所述公有云模块中的所述地图数据;
地图解码服务模块,用于对所述地图数据进行解码,并分析成系统可用的数据格式;
地图热缓存模块,用于地图数据云端的持久化;
云-客户端应用数据交互模块,与客户端应用模块进行数据交互,以及对所述智能驾驶虚拟仿真云平台的仿真测试流程模块的功能进行调用,并通过授权机制将数据发送给所述客户端应用模块;
场景用例管理模块、所述数据服务模块、所述地图解码服务模块、所述地图热缓存模块以及所述云-客户端应用数据交互模块分别与所述地图数据操作模块交互连接。
进一步地,所述地图解码服务模块包括:
2d地图解码模块,用于将地图原始文件解析成平面数据点模式;
3d地图解码模块,用于将所述地图原始文件解析成立体数据点模式。
进一步地,所述数据服务模块包括:
原始数据存储amazons3,用于存储所述地图原始文件;
地图索引数据库mysql,用于存放地图索引与所述地图原始文件之间的关系;
更新索引处理函数lambda,用于更新地图的索引。
进一步地,所述智能驾驶虚拟仿真云平台还包括:地图数据同步系统,所述客户端应用模块、所述数据服务模块和地图服务模块之间交互以形成所述地图数据同步系统,所述地图服务模块用于对接地图供应商并通过api的方式获取地图数据,同时提供同步更新接口,所述数据服务模块用于与所述客户端应用模块进行数据交互,以从所述地图服务模块获取数据后对其进行管理,通过授权机制,将数据发送给所述客户端应用模块,同时将实时更新的数据同步给地图服务模块。
进一步地,所述数据服务模块还包括:
httpapp负载均衡器,用于对http请求进行负载均衡处理;
airflowonamazonec2集群,用于将满足更新条件的数据同步给地图库;
在所述数据服务模块中,所述更新索引处理函数lambda,还用于将最新更新的地图添加索引,并放入索引库统一管理;所述原始数据存储amazons3,还用于存储所述地图数据的原始文件,并对其进行分类管理;所述地图索引数据库mysql,还用于存放地图索引数据。
进一步地,所述智能驾驶虚拟仿真云平台还包括:基于测试用例的地图应用系统,所述地图应用系统由所述公有云模块和所述客户端应用模块配置形成,且所述公有云模块还包括:
路由服务模块,用于对所述地图数据进行路径规划;
算法服务模块,用于针对用户请求对地图元素及数据进行计算;
通信连接管理模块,用于管理系统缓存中的数据,通过所述仿真测试流程模块的输入,对数据进行对应操作,并将结果反馈给所述云-客户端应用数据交互模块。
进一步地,所述通信连接管理模块包括:
长连接对象管理模块,用于对用户连接的请求进行审核,并将审核完的数据写入连接对象热缓存模块;
所述连接对象热缓存模块,用于存储用户的状态,地址、特征的相关数据。
进一步地,所述公有云模块和所述客户端应用模块之间采用gpb作为通信协议。
进一步地,所述客户端应用模块采用电视大屏端模块、智能手机端模块、pc端模块和浏览器web端模块中的一种或多种。
本发明的智能驾驶虚拟仿真云平台包括地图操作管理系统,该地图操作管理系统提出一种基于aws公有云平台的高精度地图数据管理和应用解决方案ehp-ehr,实现了高精度地图数据的统一存储、统一缓冲、统一解码、统一计算,并为ehr提供统一的业务级别数据访问接口,为后续虚拟仿真平台的搭建提供底层高精度地图数据和服务技术支撑。并且对于高精度地图数据的管理采用基于aws公有云的弹性存储资源和计算资源,支持海量场景数据的存储和使用,实现了灵活的2d/3d高精度地图数据的查询、加载、编辑、保存等一系列操作动作,可定制化各种测试场景和cornercase,为智能驾驶虚拟仿真平台的研发保驾护航。
进一步地,本发明的智能驾驶虚拟仿真云平台还包括地图数据同步系统,该地图数据同步系统,提出了一种客户端与基于aws公有云的高精度地图管理系统的安全通信握手、互连访问解决方案,实现了高精度地图数据的统一存储并提供同步管理;系统管理员通过管理界面,可轻松监控和管理高精度地图的数据。为后续支持高并发虚拟仿真测试,提供了技术实现基础。并且该地图数据同步系统实现了地图供应商数据中心将高精度地图传输给智能驾驶高精度地图管理平台的数据同步方案,支持多个地图供应商、不同地图数据源、不同高精度地图数据格式和标准的传输同步、海量地图原始大数据存储支持。对各个公有云服务商的高精度地图数据的同步,进行了抽象设计。通过分布式工作流,调用和监控数据同步任务,对各个图商不同文件格式和内容的高精度地图数据进行了基于资源访问授权、密钥加解密、压缩/解压缩算法、分布式对象存储桶目录结构、索引库构建等一系列功能实现,有极好的安全性、灵活性、扩展性、兼容性和开放性。
进一步地,本发明的智能驾驶虚拟仿真云平台还包括基于测试用例的地图应用系统,该地图应用系统是一种基于aws公有云平台的高精度地图在智能驾驶虚拟仿真测试用例中的应用解决方案ehp-ehr,实现了测试用例对高精度地图的在线编辑、定制化;在测试流程实例运行过程中,vr客户端对虚拟车辆的运行状态全程可视,以及实时环境感知高精度定位和模拟仿真行为决策支持。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明实施例的智能驾驶虚拟仿真云平台的地图操作管理系统的工作原理图;
图2是根据本发明实施例的智能驾驶虚拟仿真云平台的地图数据同步系统的工作原理图;
图3是根据本发明实施例的智能驾驶虚拟仿真云平台的地图应用系统的工作原理图。
附图标记:
地图操作管理系统100;
地图数据同步系统200;
地图应用系统300;
数据服务模块10;原始数据存储amazons311;地图索引数据库mysql12;更新索引处理函数lambda13;httpapp负载均衡器14;airflowonamazonec2集群15;
地图数据操作模块20;
地图解码服务模块30;2d地图解码模块31;3d地图解码模块32;
地图热缓存模块40;
云-客户端应用数据交互模块50;
客户端应用模块60;
地图服务模块70;
路由服务模块81;算法服务模块82;通信连接管理模块83;长连接对象管理模块831;连接对象热缓存模块832;
场景用例管理服务91;仿真测试流程模块92。
具体实施方式
参见图1,本发明的智能驾驶虚拟仿真云平台包括地图操作管理系统100,地图操作管理系统100主要由公有云模块和客户端应用模块60两大部分组成。其中,公有云模块可以采用abs公有云平台,公有云模块可以用于实现地图数据文件的编解码以及对应地图数据的操作计算,并将结果通知给客户端应用模块60。客户端应用模块60可以用于对公有云模块的数据进行实时展示、监控并提供可视化界面。本发明的智能驾驶虚拟仿真云平台包括地图操作管理系统100,该地图操作管理系统100提出一种基于aws公有云平台的高精度地图数据管理和应用解决方案ehp-ehr,实现了高精度地图数据的统一存储、统一缓冲、统一解码、统一计算,并为ehr提供统一的业务级别数据访问接口,为后续虚拟仿真平台的搭建提供底层高精度地图数据和服务技术支撑。并且对于高精度地图数据的管理采用基于aws公有云的弹性存储资源和计算资源,支持海量场景数据的存储和使用,实现了灵活的2d/3d高精度地图数据的查询、加载、编辑、保存等一系列操作动作,可定制化各种测试场景和cornercase,为智能驾驶虚拟仿真平台的研发保驾护航。
需要说明的是,地图数据管理是虚拟仿真平台的重要功能。虚拟仿真平台要使用高精度地图作3d场景重建(包括静态场景和动态场景),以便后续在模拟仿真环境里对自动驾驶车辆各类算法进行验证。
根据本发明的一个实施例,如图1所示,公有云模块主要由数据服务模块10、地图数据操作模块20、地图解码服务模块30、地图热缓存模块40、云-客户端应用数据交互模块50组成。其中,数据服务模块10可以用于根据请求的参数从地图库获取对应的地图数据。地图数据操作模块20可以用于根据用于的操作请求,分别调用公有云模块中特定的子模块。地图解码服务模块30可以用于对地图数据进行解码,并分析成系统可用的数据格式。地图热缓存模块40可以用于地图数据云端的持久化。地图热缓存模块40的意义在于客户端应用模块60在使用地图数据时,可以快速获得,不必每次都到云数据库和分布式对象存储里面去获取,然后再解码,从而极大提高查询速度,提升用户使用体验。云-客户端应用数据交互模块50可以与客户端应用模块60进行数据交互,以及对智能驾驶虚拟仿真云平台的仿真测试流程模块92的功能进行调用,并通过授权机制将数据发送给客户端应用模块60。场景用例管理模块、数据服务模块10、地图解码服务模块30、地图热缓存模块40以及云-客户端应用数据交互模块50分别与地图数据操作模块20交互连接。其中,场景用例管理模块为场景用例管理服务91,场景用例管理模块主要用来管理(增、删、改、查)场景用例。场景用例包括静态地图场景管理、动态交通流管理、天气设置、路径规划、车辆传感器仿真配置、车辆动力学仿真配置、智能驾驶决策算法接口导入等。其中,场景用例管理中的静态地图场景管理,需要使用高精度地图数据管理平台中的地图计算lambda、全局路径导航lambda、地图数据操作lambda、以及高精度地图数据等。
在本发明的一些具体实施方式中,参见图1,地图解码服务模块30包括2d地图解码模块31和3d地图解码模块32。2d地图解码模块31可以用于将地图原始文件解析成平面数据点模式。3d地图解码模块32可以用于将地图原始文件解析成立体数据点模式。数据服务模块10包括原始数据存储amazons311、地图索引数据库mysql12和更新索引处理函数lambda13。其中,原始数据存储amazons311可以用于存储地图原始文件。地图索引数据库mysql12可以用于存放地图索引与地图原始文件之间的关系。更新索引处理函数lambda13可以用于更新地图的索引。在做2d地图加载、显示、编辑、保存以及3d地图效果查看时,客户端与云平台采用httprestful短连接方式交互。客户端与云平台之间做高精度地图数据通信时,通信协议采用gpb((googleprotocolbuffer))。gpb协议有如下优点:性能方面(数据体积小、序列化速度快、传输速度快),使用方面(使用简单、维护成本低、向后兼容性好、加密性好),使用范围方面(跨平台、跨语言、可扩展性好)。当然需要说明的是,客户端与云平台之间做高精度地图数据通信时,采用gpb(googleprotocolbuffer)通信协议。但如果只是用户身份认证鉴权,那么短连接则可以采用httprestful/json的方式通讯,长连接则需要采用httprestful/json websocket。
客户端应用模块60采用电视大屏端模块、智能手机端模块、pc端模块和浏览器web端模块中的一种或多种,也就是说,客户端应用模块60采用电视大屏vr应用、智能手机vr应用、pcvr应用和浏览器web应用。
原始数据存储amazons3桶中存储了地图原始数据文件和地图的缩略图文件,而且不同图商有自己的地图数据文件格式,这里考虑多个桶和目录结构划分,分别存储不同图商的地图数据文件。更新索引处理函数lambda13将作为地图原始数据存储amazons311的后触发执行步骤,每次s3桶数据文件内容更新,都会触发更新索引处理函数lambda13。更新索引处理函数lambda13首先根据不同图商的地图文件数据存储格式,进行文件属性信息的获取和内容解析,然后对获取和解析出来的结果,生成数据记录到地图索引数据库mysql12中保存,以便虚拟仿真平台调用查询使用。地图索引数据库mysql12存储了每个高精度地图原始数据文件的索引和属性信息。
地图数据操作lambda,负责根据地图数据查询条件,到地图索引数据库中查询对应的索引记录,然后根据索引库查询结果,再去原始数据存储amazons311中查询地图原始数据文件。之后要根据用户请求的地图展现形式,分别调用对应的2d和3d地图解码器服务。最后根据需要,要把地图最新操作序列数据写入地图热缓存模块40。
解码器仅与地图数据操作域的lambda交互数据,它首先对地图原始数据文件进行内容格式解析,然后对解析的结果作反偏转计算解码,最后根据用户请求的需要,提取对应的2d地图数据或3d地图数据返回。
在启动测试流程实例前,需要对场景用例或地图数据进行先行编辑和保存。这里要通过web浏览器加载场景用例对应的2d地图,或者2d地图模板。用户加载和编辑地图时,支持自定义地图生成、基于高精度地图原始数据的地图生成、以及基于gan生成对抗网络的虚拟仿真地图生成。
而web用户对于加载的地图进行编辑,需要首先将加载的地图原始数据进行缓存,然后对编辑后的地图最新操作序列也要缓存,最后当统一提交保存时,再将编辑后的、完整的地图数据写入数据服务域,整个过程需要将地图原始数据写入地图热缓存模块40中。另外,web用户对加载的场景地图进行全局路径导航规划,需要用到地图解码后的数据,所以这部分数据也要写入地图操作序列缓存。因此这里采用分布式redis作为地图操作序列的缓存,并包含了地图编辑用的原始数据,也包含了全局路径导航用的地图解码后的数据。
web客户端对2d地图的查询、加载、编辑、保存,以及vr客户端对3d地图的渲染显示,都要经过restfulapigateway。
通过以上方案,通过web浏览器,对2d高精度地图进行编辑,实现定制化地图数据生成,以支持未来的模拟仿真场景定义,则需要首先得到2d地图数据查询列表。然后在查询列表中选择一个目标地图数据,进行加载和显示,当客户端是web应用时,客户端web应用发送2d地图查询请求给restfulapigateway。restfulapigateway调用地图数据操作函数根据查询条件,检索地图索引数据库mysql12,返回地图索引结果集给地图数据操作函数。地图数据操作函数根据索引结果集中的索引缩略图的路径,到地图原始数据存储amazons311中查询地图缩略图得到目标地图缩略图给地图数据操作函数,然后将目标地图缩略图和之前获取到的目标地图索引数据集进行统一格式封装。
web浏览器用户想要自定制高精度地图数据,需要先加载目标高精度地图2d数据并在界面上渲染显示出来。客户端web应用发送目标地图查询请求给restfulapigateway调用地图数据操作函数。地图数据操作函数根据参数到地图操作序列缓存redis中查询地图数据并获得地图操作序列缓存redis的查询结果应答反馈。此时,其会检查目标地图操作序列在缓存redis中是否存在,如果存在,则清除对应的地图操作序列缓存数据记录。同时地图数据操作函数根据参数,查询地图索引数据库mysql12返回查询结果集给地图数据操作函数,到地图原始数据存储amazons311中查询目标地图原始数据,获取返回的查询结果数据。地图数据操作函数转发目标地图原始数据给2d地图解码器函数。2d地图解码器解析并进行地理位置反偏转计算最后将解析后的地图数据应答反馈给地图数据操作函数。同时将数据写入地图操作序列缓存redis并将解析后的地图数据应答反馈给restfulapigateway反馈应答查询结果集给客户端web应用。客户端web应用经过计算,得到三角形面,然后根据这些三角形面来渲染整个界面。
web浏览器用户在加载目标高精度地图数据后,可以自由编辑界面元素,然后将地图最新操作序列数据缓存;另外利用2d地图解码器将地图原始数据解析成界面渲染数据格式以便显示。客户端web应用修改2d地图信息需要访问restfulapigateway,在web浏览器编辑地图操作后,以地图增量操作序列作为参数,提交地图增量编辑内容给restfulapigateway调用地图数据操作函数。其通过参数计算出地图增量数据,然后将本次地图操作序列数据发送给2d地图解码器函数。2d地图解码器对本次增量的地图操作序列数据进行解码并进行地理位置反偏转计算。2d地图解码器函数将解析后的地图数据应答反馈给地图数据操作函数。地图数据操作函数将本次地图操作序列数据和本次增量的地图操作序列解码后的数据都更新到缓存redis。并将地图增量编辑结果反馈应答给restfulapigateway。restfulapigateway反馈应答查询结果集给客户端web应用。客户端web应用经过计算,得到三角形面并渲染界面。
web浏览器用户在编辑好2d高精度地图数据后,可以统一将最新操作序列缓存的数据持久化保存到对象存储和数据库中。客户端web应用保存2d地图信息时,先发送保存编辑后的2d地图数据请求给restfulapigateway。
restfulapigateway调用地图数据操作函数。地图数据操作函数根据会参数,到地图最新操作序列缓存redis中,获取编辑后的地图原始数据。将查询结果应答反馈给地图数据操作函数并根据查询结果生成缩略图。地图数据操作函数根据连接数量选择直接替换保存缩略图和地图原始数据到amazons3桶文件;或者将缩略图和地图原始数据另存为amazons3桶的新文件。amazons3的更新将触发后处理的更新地图索引函数。更新地图索引函数在事件对象中获取地图文件信息。将地图索引信息更新写入索引数据库mysql。最后将操作执行结果应答给客户端。
web浏览器客户端将2d地图数据编辑并保存后,可以通过vr桌面客户端加载该目标地图数据并以3d的方式显示出来,以便用户检查自定制编辑效果。vr客户端获取3d地图信息时,先发送查询请求给restfulapigateway,restfulapigateway根据参数调用地图数据操作函数查询地图索引数据库mysql12,将查询结果集返回给地图数据操作函数。地图数据操作函数根据结果,到地图原始数据存储amazons311中获取目标地图原始数据。将数据转发给3d地图解码器函数。其对目标地图原始数据进行解码并进行地理位置反偏转计算后,将地图数据应答反馈给地图数据操作函数。地图数据操作函数将地图数据应答反馈给restfulapigateway。最后将查询结果应答反馈给客户端应用。vr客户端应用经过计算,得到三角形面并渲染vr界面。
根据本发明的一个实施例,参见图2,智能驾驶虚拟仿真云平台还包括地图数据同步系统200,客户端应用模块60、数据服务模块10和地图服务模块70之间交互以形成地图数据同步系统200。
模拟仿真平台需要用高精度地图数据建模。高精度地图数据来源于第三方的地图云平台(即地图服务模块70)。从地图服务模块70同步数据到地图数据同步系统200有两种触发方式。第一种是让用户自己触发数据同步,即用户通过客户端应用模块60(具体可以是web浏览器客户端)触发数据同步操作。然后通过httpapp负载均衡器14,将操作指令转发给部署在amazonec2集群上的airflow分布式工作流编排引擎。最后由airflow执行python程序完成高精度地图数据从地图服务模块70下载,并写入地图原始数据文件到amazons3。第二种是在airflow集群中设置定时任务crontab,定时任务会定时触发airflow上的python程序,进而完成数据同步。
需要注意的是,一旦地图原始数据被成功写入数据服务模块10的amazons3,更新索引lambda函数将被自动触发,该函数解析amazons3里的地图数据文件,获得必要的地图属性元数据信息,并根据这些元数据信息新建记录索引到mysql数据库中。索引记录在mysql建立成功以后,里面的url字段,即表明了地图原始文件在amamzons3上实际存储的位置,而其他的地图元数据信息,可以作为查询条件,供地图数据操作模块20里的lambda查询使用。
地图数据操作模块20的lambda可以根据上层业务请求,先到数据服务模块10的mysql数据库中,查询到目标地图索引,然后再根据这个索引信息,到amazons3里面查询目标地图原始数据文件。
地图服务模块70旨在能与各个图商的地图数据服务对接和同步数据。常见的高精度地图服务商一般在建图之后,会发布地图数据到公有云上。在各家公有云上同步高精度地图数据,一般简单的做法是图商的地图核心服务集群将可以共享的高精度地图数据导出到对象存储服务中,比如阿里云的oss、腾讯云的cos、华为云的obs等。地图数据文件首先根据外部需要,考虑压缩或不压缩,然后使用密钥加密明文,然后按照一定的目录结构规则保存到对象存储服务中。在高精度地图数据对象存储服务上,要设置各种访问鉴权机制。以aws公有云平台为例,对象存储服务的访问控制列表(acl)可以管理对存储桶和对象的访问权限。每个存储桶和对象都有一个作为子资源而附件的acl。它定义了哪些云账户或组将被授予访问权限以及访问的类型。收到针对某个资源的请求后,对象存储服务将检查相应的acl以验证请求者是否拥有所需的访问权限。另外各个图商的地图数据都有自己的内容格式,也可以根据用户的需求提供定制的内容,包括但不限于图形格式、图形索引格式、属性数据格式、地理坐标系统与投影信息、几何体空间索引、列表中活动字段的属性索引、地理编码索引、文件的属性索引、元数据、字符编码等。
在本发明的一些具体实施方式中,参见图2,数据服务模块10还包括httpapp负载均衡器14和airflowonamazonec2集群15。其中,httpapp负载均衡器14可以用于对http请求进行负载均衡处理。airflowonamazonec2集群15可以用于将满足更新条件的数据同步给地图库。在数据服务模块10中,更新索引处理函数lambda13还用于将最新更新的地图添加索引,并放入索引库统一管理。原始数据存储amazons311还用于存储地图数据的原始文件,并对其进行分类管理.地图索引数据库mysql12还用于存放地图索引数据。
具体来说,本发明的智能驾驶虚拟仿真云平台的地图数据同步系统200中,客户端应用模块60主要是指浏览器web应用,它允许系统管理员认证鉴权后,手动触发地图数据同步服务功能。浏览器客户端通过httprestful协议连接云平台数据服务域的httpapp七层负载均衡服务,进而开启高精度地图数据在云平台之间同步的功能。
数据服务模块10由httpapp负载均衡器14、airflowonamazonec2集群15、地图原始数据存储amazons311、更新索引处理函数lambda13、地图索引数据库mysql12共同组成。地图数据同步的关键处理部件部署在amazonec2集群15上,该集群由一系列amazonec2弹性计算云组成,以实弹性扩展和高可用。每个ec2服务节点安装了airflow服务系统精度。当地图数据同步任务的启动时,方式有2种:1.用户手动启动:用户管理员通过airflow的web管理界面,手动启动数据同步任务,并对任务的执行状态,进行实时界面监控。2.airflow定时启动:在airflow内设置定时器,定时触发python程序,自动开启数据同步任务。高精度地图数据同步程序采用python语言编写,该程序也部署在该ec2集群上,并由airflow进行任务调度、业务编排和可视化监控。
云平台与外部其他云平台可以采用互联网方式连接,用https协议传输加密数据,也可以在互联网上搭建vpn安全隧道,来进行安全性更高的数据同步传输机制。本发明的智能驾驶仿真云平台接收到数据文件后,通过密钥进行解密。对于解密后的高精度地图数据,如果必要的话,按照一定的数据压缩方式进行解压缩。解压缩后,可能会有一系列文件生成,需按照不同图商、一定目录结构来存储解压后的地图文件集到地图原始数据的amazons3中。更新索引处理函数lambda13,将作为地图原始数据存储amazons311的后触发执行步骤,每次s3桶数据文件内容更新,都会触发更新索引处理函数lambda13。该lambda函数,首先根据不同图商的地图文件数据存储格式,进行文件属性信息的获取和内容解析,然后对获取和解析出来的结果,生成数据记录到地图索引数据库mysql12中保存,以便虚拟仿真平台调用查询使用。
地图数据同步系统200可以通过以下方案实现高精度地图数据同步。图商在自己的云平台上,将可以开放的高精度地图数据进行对象存储。并根据密钥,在本地对地图数据进行加密保存,同时暴露高精度地图的存储地址给云平台访问,并设置访问控制权限。该系统使用两种方式同步地图,手动触发或者定时器触发。前者是客户端web应用在满足同步条件后,发送数据同步请求给httpapp负载均衡。后者是由运行在amazonec2上的airflow系统定时器触发数据同步任务。httpapp负载均衡服务根据负载策略,将任务流分配到相应的、运行在amazonec2上的airflow集群环境。airflow服务将启动由python语言编写的数据同步处理程序,其会发送获取图商对象存储目录的各个文件属性信息请求给httpapp负载均衡服务,将访问图商数据对象存储endpoint返回查询结果集。httpapp负载均衡将查询结果集返回给python处理程序。python处理程序在得到图商文件后,将向地图原始数据amazons3发送获取历史地图文件属性信息的请求。地图原始数据amazons3将返回查询结果集。同时python处理程序对新旧文件的属性进行比较和计算并生成待同步文件列表。当待同步文件列表存在,即在需要更新的情况下,python处理程序发送地图文件请求给httpapp负载均衡服务。httpapp负载均衡服务访问图商数据对象存储endpoint,返回目标地图文件集。python处理程序获得地图增量完整文件后,使用密钥对最新增量文件进行解密。最后更新文件内容到本地amazons3。此时amazons3会触发后处理逻辑函数lambda在事件对象中获取地图文件信息,将地图索引信息写入数据库,进行索引库更新。
根据本发明的一个实施例,参见图3,智能驾驶虚拟仿真云平台还包括基于测试用例的地图应用系统300,地图应用系统300由公有云模块和客户端应用模块60配置形成,且公有云模块还包括路由服务模块81、算法服务模块82和通信连接管理模块83。其中,路由服务模块81可以用于对地图数据进行路径规划。算法服务模块82可以用于针对用户请求对地图元素及数据进行计算。通信连接管理模块83可以用于管理系统缓存中的数据,通过仿真测试流程模块92的输入,对数据进行对应操作,并将结果反馈给云-客户端应用数据交互模块50。
通信连接管理模块83包括长连接对象管理模块831和连接对象热缓存模块832。其中,长连接对象管理模块831可以用于对用户连接的请求进行审核,并将审核完的数据写入连接对象热缓存模块832。连接对象热缓存模块832可以用于存储用户的状态,地址、特征的相关数据。
具体来说,如图3所示,路由服务模块81最核心的内容是全局路径导航lambda函数。全局路径导航lambda函数需要从地图渲染数据缓存redis中获取到指定的地图数据,然后进行全局路径导航的规划。有两个主要功能点用到该lambda,一个是web端做场景用例时,需要预先设计虚拟仿真车辆出行任务的起始点和结束点,然后调用该lambda生成全局导航路径,并可视化在web浏览器上。这样做可以让用户不断地进行全局路径设计的调整,以符合仿真测试路径的需要。另一个是在启动测试流程实例后,虚拟车辆在行驶过程中,根据周围识别到的环境和实际行驶路线,在必要时要重新设计和规划全局路径(比如实际行驶路线和预设的全局导航路线的偏离已经达到阈值,认为需要重新做全局路径导航等)。
算法服务模块82最核心的内容是地图计算lambda函数。有如下主要功能点用到该lambda。在测试流程实例启动后,虚拟车辆的实时高精度定位(环境感知阶段),以及局部路径规划和智能决策等,都要用到该地图计算lambda。
vr客户端与websocket网关建立长连接握手后,lambda长连接授权方会把测试流程实例id、apiid、connectionid写入该域的redis中。然后web管理客户端就可以通过长连接对象管理lambda查询连接对象热缓存redis数据记录,并显示所有在线的vr客户端(包括哪个vr客户端连接了哪个测试流程实例)。最后当vr客户端与websocket网关断开连接时,也是通过长连接对象管理lambda来清理连接对象热缓存redis中的数据记录。
通过以上方案,设计场景用例,首先需要得到查询列表,然后选择一个场景用例进行编辑、查看和保存,客户端web应用发送2d场景用例查询请求给restfulapigateway转发查询请求给场景用例管理服务91,并将结果返回地图数据操作函数。地图数据操作函数根据查询条件检索地图索引数据库mysql12结果返回后,地图数据操作函数根据结果到地图原始数据存储amazons311中查询地图缩略图,得到结果后返回目标地图查询结果集列表给场景用例管理服务91。场景用例管理服务91将查询结果集列表反馈应答给restfulapigateway。最终查询结果集列表反馈应答给客户端web应用,最终渲染查询结果集列表界面。
用户在得到2d场景用例列表后,可以选择一个打开,被选择的场景用例绑定了对应的高精度地图,从而可以在界面上渲染2d场景地图。客户端web应用发送2d地图查询请求给restfulapigateway,restfulapigateway转发查询请求给场景用例管理服务91。场景用例管理服务91将调用地图数据操作函数。地图数据操作函数根据参数,到地图最新操作序列缓存redis中查询地图最新操作序列缓存数据。并将查询结果应答反馈给地图数据操作函数。当目标地图最新操作序列在缓存中存在则清除会话id对应的地图最新操作序列缓存数据。同时根据参数检索地图索引数据库mysql12。得到结果后到地图原始数据存储amazons311中获取目标地图原始数据并将查询结果数据返回给地图数据操作函数。地图数据操作函数转发目标地图原始数据给2d地图解码器函数。2d地图解码器解析目标地图原始数据格式并进行地理位置反偏转计算后将结果应答反馈给地图数据操作函数。地图数据操作函数将地图原始数据和解码后的数据都写入地图最新操作序列缓存redis。最终将结果反馈给场景用例管理服务91。场景用例管理服务91将静态地图场景信息反馈应答给restfulapigateway。restfulapigateway将查询结果集应答反馈给客户端web应用。客户端web应用经过计算,得到三角形面并渲染界面。
客户端web应用在加载2d场景地图后,可以自由编辑界面元素,然后将地图最新操作序列数据缓存。另外利用2d地图解码器将地图原始数据解析成界面渲染数据格式以便显示。客户端web应用发送编辑请求给restfulapigateway。restfulapigateway调用场景用例管理服务91。场景用例管理服务91调用地图数据操作函数。其将本次场景地图操作序列数据发送给2d地图解码器函数。2d地图解码器对本次增量的场景地图操作序列数据进行解码并进行地理位置反偏转计算。最终将解析后的场景地图数据应答反馈给地图数据操作函数。地图数据操作函数将本次地图操作序列数据和本次增量的地图操作序列解码后的数据都更新到缓存redis并处理结果返回给场景用例管理服务91。场景用例管理服务91将地图增量编辑结果反馈应答给restfulapigateway。restfulapigateway返回应答给客户端web应用。客户端web应用经过计算,得到三角形面并渲染界面。
客户端web应用在编辑好2d场景地图数据后,可以统一将最新操作序列缓存的数据持久化保存到对象存储和数据库中。客户端web应用发送保请求给restfulapigateway。restfulapigateway转发请求给场景用例管理服务91。场景用例管理服务91根据参数调用地图数据操作函数。地图数据操作函数到地图最新操作序列缓存redis中获取编辑后的地图原始数据并将查询结果应答反馈给地图数据操作函数。当地图数据操作函数检查地图操作的增量数据存在是则生成地图对应的缩略图,将缩略图和地图原始数据另存为amazons3桶的新文件。并将另存操作应答反馈给场景用例管理服务91。场景用例管理服务91建立映射关系。并将处理结果返回给restfulapigateway。restfulapigateway将操作执行结果应答反馈给客户端web应用。同时地图原始数据存储amazons311的更新将触发更新地图索引函数。更新地图索引函数在事件对象中获取地图文件信息将地图索引信息更新写入地图索引数据库mysql12。
客户端web应用将2d场景地图数据编辑并保存后,可以通过vr桌面客户端加载该目标场景地图数据并以3d的方式显示出来,以便用户检查自定制编辑效果。vr客户端发送查询3d地图场景数据的请求给restfulapigateway。restfulapigateway转发请求给场景用例管理服务91。场景用例管理服务91根据参数调用地图数据操作函数。地图数据操作函数根据参数查询地图索引数据库mysql12。地图索引数据库mysql12返回查询结果集给地图数据操作函数。
地图数据操作函数根据返回结果从原始数据存储amazons311中获取目标地图原始数据。并转发目标地图原始数据给3d地图解码器函数。3d地图解码器解析目标地图原始数据格式并进行地理位置反偏转计算后将解析后的地图数据应答反馈给地图数据操作函数。地图数据操作函数将地图数据应答反馈给场景用例管理服务91。场景用例管理服务91将地图数据应答反馈给restfulapigateway。restfulapigateway将查询结果应答反馈给vr客户端应用。vr客户端应用经过计算,得到三角形面并渲染界面。
在用户编辑和保存场景地图后,就可以在场景地图上进行全局路径导航规划了,规划完成后的全局路径可以在web浏览器上显示出来,以便用户查看。当客户端web应用打开一个场景用例。并在场景用例的2d地图上设置开始节点和结束节点。此时全局导航路径请求给restfulapigateway。restfulapigateway转发请求给场景用例管理服务91。场景用例管理服务91根据参数调用全局路径导航函数。其根据到地图操作序列缓存redis中获取相应的地图渲染数据地图操作序列缓存redis将查询结果集返回给全局路径导航函数。全局路径导航函数进行最优地图全局路径规划计算后将计算结果集返回给场景用例管理服务91。场景用例管理服务91将计算结果集反馈应答给restfulapigateway。最终restfulapigateway将计算结果集反馈应答给客户端web应用以供客户端web应用渲染界面。
在完成场景用例编辑、保存以及全局路径导航规划后,就可以启动测试流程了。测试流程实例启动过程,需要将地图原始数据和解码后的渲染数据都写入分布式缓存中,以便后续环境感知高精度定位、模拟仿真行为决策、实时全局路径导航规划等使用。客户端web应用发送启动测试流程实例请求给restfulapigateway。restfulapigateway将场景用例id转发给测试流程实例管理服务。测试流程实例管理服务(仿真测试流程模块92)根据算法生成一个标识并映射关系同时将其转发给场景用例管理服务91。场景用例管理服务91根据参数调用地图数据操作函数。地图数据操作函数从地图实时数据缓存redis中获取地图实时缓存数据。当地图数据操作函数检查目标地图数据在缓存中不存在时,根据参数查询地图索引数据库mysql12。将查询结果集返回给地图数据操作函数。地图数据操作函从地图原始数据存储amazons311中获取目标地图原始数据。并数据返回给地图数据操作函数。地图数据操作函数转发目标地图原始数据给3d地图解码器函数。3d地图解码器解析目标地图原始数据格式并进行地理位置反偏转计算最后将解析后的地图数据应答反馈给地图数据操作函数。地图数据操作函数将地图原始数据和解码后的渲染数据都写入地图实时数据热缓存redis同时将地图渲染数据应答反馈给场景用例管理服务91。场景用例管理服务91将加载场景用例结果应答反馈给测试流程实例管理服务。其将启动测试流程实例结果应答反馈给restfulapigateway。restfulapigateway将启动测试流程实例结果应答反馈给客户端web应用。
在执行某个测试流程实例的过程中,虚拟仿真平台需要不断地对虚拟车辆进行实时环境感知的高精度定位(在仿真测试环境中,测试流程实例拥有上帝视角,可模拟传感器直接为虚拟车辆提供实时环境感知信息,之后需要对虚拟车辆进行高精度定位),为后续的实时车辆行为决策提供参考依据。测试流程实例启动后,根据参数周期触发各种地图实时计算请求给测试流程实例管理服务。测试流程实例管理服务将参数转发给场景用例管理服务91。场景用例管理服务91根据参数调用地图计算函数查询地图实时数据热缓存redis。地图实时数据热缓存redis将查询结果应答反馈给地图计算函数。地图计算函数根据输入的请求条件和获得的地图数据进行地图计算,将计算结果应答反馈给场景用例管理服务91。场景用例管理服务91将计算结果应答反馈给测试流程实例管理服务。测试流程实例管理服务将计算结果应答反馈给环境感知高精度定位服,其通过websocketapigateway将地图计算结果推送给vr客户端应用。vr客户端应用渲染界面,完成虚拟车辆新的实时高精度定位显示。
在执行某个测试流程实例的过程中,虚拟仿真平台需要不断地依据环境感知结果,对虚拟车辆进行实时行为决策,以完成对决策算法合理性的验证。模拟仿真平台在检测到虚拟车辆行驶路线和事先规划好的全局路径导航规划路线不一致时,需要利用高精度地图数据对虚拟车辆进行全局路径导航的重新规划。模拟仿真行为决策服务发送实时路径规划请求给测试流程实例管理服务。测试流程实例管理服务将请求转发给场景用例管理服务91。场景用例管理服务91调用全局路径导航函数。全局路径导航函数参数到地图实时数据缓存redis中获取相应的地图数据。并跟据车辆当前位置信息和地图数据信息,进行最优地图全局路径导航计算。最后将结果应答反馈给场景用例管理服务91。场景用例管理服务91将计算结果应答反馈给测试流程实例管理服务。测试流程实例管理服务将计算结果应答反馈给模拟仿真行为决策服务。模拟仿真行为决策服务得到计算结果后,通过websocketapigateway将地图计算结果推送给vr客户端应用。vr客户端应用渲染界面,完成虚拟车辆新的全局路径导航规划的显示。
总而言之,本发明的智能驾驶虚拟仿真云平台包括地图操作管理系统100,该地图操作管理系统100提出一种基于aws公有云平台的地图数据管理和应用解决方案ehp-ehr,实现了高精度地图数据的统一存储、统一缓冲、统一解码、统一计算,并为ehr提供统一的业务级别数据访问接口,为后续虚拟仿真平台的搭建提供底层高精度地图数据和服务技术支撑。并且对于高精度地图数据的管理采用基于aws公有云的弹性存储资源和计算资源,支持海量场景数据的存储和使用,实现了灵活的2d/3d高精度地图数据的查询、加载、编辑、保存等一系列操作动作,可定制化各种测试场景和cornercase,为智能驾驶虚拟仿真平台的研发保驾护航。并且本发明的智能驾驶虚拟仿真云平台还包括地图数据同步系统200,该地图数据同步系统200,提出了一种客户端与基于aws公有云的高精度地图管理系统的安全通信握手、互连访问解决方案,实现了高精度地图数据的统一存储并提供同步管理;系统管理员通过管理界面,可轻松监控和管理高精度地图的数据。为后续支持高并发虚拟仿真测试,提供了技术实现基础。并且该地图数据同步系统实现了地图供应商数据中心将高精度地图传输给智能驾驶高精度地图管理平台的数据同步方案,支持多个地图供应商、不同地图数据源、不同高精度地图数据格式和标准的传输同步、海量地图原始大数据存储支持。对各个公有云服务商的高精度地图数据的同步,进行了抽象设计。通过分布式工作流,调用和监控数据同步任务,对各个图商不同文件格式和内容的高精度地图数据进行了基于资源访问授权、密钥加解密、压缩/解压缩算法、分布式对象存储桶目录结构、索引库构建等一系列功能实现,有极好的安全性、灵活性、扩展性、兼容性和开放性。此外,本发明的智能驾驶虚拟仿真云平台还包括基于测试用例的高精度地图应用系统300,该地图应用系统300是一种基于aws公有云平台的高精度地图在智能驾驶虚拟仿真测试用例中的应用解决方案ehp-ehr,实现了测试用例对高精度地图的在线编辑、定制化;在测试流程实例运行过程中,vr客户端对虚拟车辆的运行状态全程可视,以及实时环境感知高精度定位和模拟仿真行为决策支持。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
1.一种智能驾驶虚拟仿真云平台,其特征在于,包括:地图操作管理系统,所述地图操作管理系统包括:
公有云模块,用于实现地图数据文件的编解码以及对应地图数据的操作计算,并将结果通知给客户端应用模块;
所述客户端应用模块,用于对所述公有云模块的数据进行实时展示、监控并提供可视化界面。
2.根据权利要求1所述的智能驾驶虚拟仿真云平台,其特征在于,所述公有云模块包括:
数据服务模块,用于根据请求的参数从地图库获取对应的地图数据;
地图数据操作模块,用于根据用于的操作请求,分别调用所述公有云模块中的所述地图数据;
地图解码服务模块,用于对所述地图数据进行解码,并分析成系统可用的数据格式;
地图热缓存模块,用于地图数据云端的持久化;
云-客户端应用数据交互模块,与客户端应用模块进行数据交互,以及对所述智能驾驶虚拟仿真云平台的仿真测试流程模块的功能进行调用,并通过授权机制将数据发送给所述客户端应用模块;
场景用例管理模块、所述数据服务模块、所述地图解码服务模块、所述地图热缓存模块以及所述云-客户端应用数据交互模块分别与所述地图数据操作模块交互连接。
3.根据权利要求2所述的智能驾驶虚拟仿真云平台,其特征在于,所述地图解码服务模块包括:
2d地图解码模块,用于将地图原始文件解析成平面数据点模式;
3d地图解码模块,用于将所述地图原始文件解析成立体数据点模式。
4.根据权利要求3所述的智能驾驶虚拟仿真云平台,其特征在于,所述数据服务模块包括:
原始数据存储amazons3,用于存储所述地图原始文件;
地图索引数据库mysql,用于存放地图索引与所述地图原始文件之间的关系;
更新索引处理函数lambda,用于更新地图的索引。
5.根据权利要求4所述的智能驾驶虚拟仿真云平台,其特征在于,所述智能驾驶虚拟仿真云平台还包括:地图数据同步系统,所述客户端应用模块、所述数据服务模块和地图服务模块之间交互以形成所述地图数据同步系统。
6.根据权利要求5所述的智能驾驶虚拟仿真云平台,其特征在于,所述数据服务模块还包括:
httpapp负载均衡器,用于对http请求进行负载均衡处理;
airflowonamazonec2集群,用于将满足更新条件的数据同步给地图库;
在所述数据服务模块中,所述更新索引处理函数lambda,还用于将最新更新的地图添加索引,并放入索引库统一管理;所述原始数据存储amazons3,还用于存储所述地图数据的原始文件,并对其进行分类管理;所述地图索引数据库mysql,还用于存放地图索引数据。
7.根据权利要求3所述的智能驾驶虚拟仿真云平台,其特征在于,所述智能驾驶虚拟仿真云平台还包括:基于测试用例的地图应用系统,所述地图应用系统由所述公有云模块和所述客户端应用模块配置形成,且所述公有云模块还包括:
路由服务模块,用于对所述地图数据进行路径规划;
算法服务模块,用于针对用户请求对地图元素及数据进行计算;
通信连接管理模块,用于管理系统缓存中的数据,通过所述仿真测试流程模块的输入,对数据进行对应操作,并将结果反馈给所述云-客户端应用数据交互模块。
8.根据权利要求7所述的智能驾驶虚拟仿真云平台,其特征在于,所述通信连接管理模块包括:
长连接对象管理模块,用于对用户连接的请求进行审核,并将审核完的数据写入连接对象热缓存模块;
所述连接对象热缓存模块,用于存储用户的状态,地址、特征的相关数据。
9.根据权利要求1-8中任一项所述的智能驾驶虚拟仿真云平台,其特征在于,所述公有云模块和所述客户端应用模块之间采用gpb作为通信协议。
10.根据权利要求1-8中任一项所述的智能驾驶虚拟仿真云平台,其特征在于,所述客户端应用模块采用电视大屏端模块、智能手机端模块、pc端模块和浏览器web端模块中的一种或多种。
技术总结