一种面向无人驾驶的边缘卸载方法及装置与流程

文档序号:19149679发布日期:2019-11-15 23:56阅读:264来源:国知局
一种面向无人驾驶的边缘卸载方法及装置与流程

本发明涉及计算机技术领域,具体涉及一种面向无人驾驶的边缘卸载方法及装置。



背景技术:

目前,无人车在行驶过程中使用多个传感器感知复杂的外部环境,通过大量计算完成定位、目标识别与追踪、决策和控制等操作,大规模计算所带来的巨大能耗和散热问题严重了影响了无人车的续航能力。大部分无人车应用具有时延敏感性,需要在短时内得到结果,传统云计算下较大的车-云网络延迟难以保证无人驾驶任务的正确执行。

现有的实现方案主要有两种,一种是基于远程调用的细粒度卸载实现方案,典型的是maui,但适用范围比较窄、开发难度较大,而且很难保证无人驾驶的安全性和隐私性需求。另一种是基于虚拟机的粗粒度卸载实现方案,典型的是cloudlet,但响应速度比较慢,因为虚拟机的创建与启动比较慢,此外虚拟机对宿主机资源占用较多,降低了服务质量。

边缘计算将计算、存储、共享能力从云端延伸到网络边缘,提供了更紧凑的端-端数据接入方式,非常适合于部署更新频率高、实时服务延迟低、覆盖面积广的无人驾驶服务,协同无人驾驶计算。边缘节点有能力在提供低延迟计算卸载服务的同时减少无人车能耗,增强车载计算平台的低续航风险。随着边缘计算与5g技术的兴起,计算与存储资源在边缘节点上的就近部署使得无人车的协同计算成为可能,但当多车辆的多类应用卸载在同一边缘环境下时,安全和隐私是计算卸载不得不考虑的问题,尤其对无人驾驶应用,这两个问题至关重要。如果卸载应用在边缘服务器上被其他应用或黑客干扰,得到错误结果,可能影响车辆决策,引发严重事故。



技术实现要素:

为解决上述问题,本申请提供了一种能够为计算卸载提供应用间可隔离的运行环境,能满足无人驾驶安全性和隐私性需求,实现边缘服务器与无人车的协同计算的卸载方法及装置。

根据第一方面,本申请提供了一种面向无人驾驶的边缘卸载方法,包括:

接收步骤:接收无人车发出的应用卸载请求;

判断步骤:判断距离最近的边缘服务器是否满足卸载需求,若满足,则直接选取距离最近的边缘服务器进行计算卸载;若不满足,则重新选择边缘服务器进行计算卸载;

返回结果步骤:将计算结果返回无人车。

在一些实施例,所述判断步骤包括:

判断距离最近的边缘服务器计算卸载能否节省能耗,若能节约能耗,则继续判断应用能否在限制时间内返回;若不能节约能耗,则判定为不满足卸载要求。

在一些实施例,判断计算卸载能否节省能耗的步骤包括:

获取数据传输量、无人车与距离最近的边缘服务器间的数据传输速度、数据传输模块的功率;

基于数据传输量、无人车与距离最近的边缘服务器间的数据传输速度、数据传输模块的功率计算距离最近的边缘服务器的应用卸载能耗,并将所述应用卸载能耗与应用本地执行能耗进行比较,若所述应用卸载能耗大于或等于应用本地执行能耗,则判断为能节省能耗;若所述应用卸载能耗小于应用本地执行能耗,则判断为不能节约能耗。

在一些实施例,判断应用能否在限制时间内返回的步骤包括:

获取数据传输量、应用计算量、无人车与距离最近的边缘服务器间的数据传输速度以及距离最近的边缘服务器剩余的计算能力;

根据所述数据传输量、应用计算量、无人车与距离最近的边缘服务器间的数据传输速度以及距离最近的边缘服务器剩余的计算能力,计算卸载完成时间;

将卸载完成时间与完成时限进行比较,若卸载完成时间大于或等于完成时限,则判断为不满足卸载要求;若卸载完成时间小于完成时限,则继续判断距离最近的边缘服务器内存是否充足。

在一些实施例,判断距离最近的边缘服务器内存是否充足的步骤包括:

获取应用内存需求及距离最近的边缘服务器剩余可用内存;

判断应用内存需求是否大于距离最近的边缘服务器剩余可用内存,若不大于,则判断为满足卸载需求,若大于,则判断为不满足需求。

在一些实施例,重新选择边缘服务器进行计算卸载的步骤包括:

筛选出可用边缘服务器,所述可用边缘服务器需满足:边缘服务器的应用卸载能耗小于应用本地执行能耗且边缘服务器的卸载完成时间小于完成时限;

将筛选出的可用边缘服务器按照应用卸载能耗的大小进行升序排序,生成服务器列表;

遍历服务器列表,对于遍历到的服务器,判断遍历到的服务器的剩余可用内存是否满足卸载需求,若满足卸载需求,则选中所述遍历到的服务器进行计算卸载;若不满足卸载需求,则继续遍历服务器列表;

若遍历完成,没有可用边缘服务器被选中,则本次计算卸载失败,并将失败信息返回无人车。

在一些实施例,判断遍历到的服务器的剩余可用内存是否满足卸载需求的步骤包括:

获取应用内存需求及遍历到的服务器的剩余可用内存;

判断应用内存需求是否大于遍历到的服务器剩余可用内存,若不大于,则判断为满足卸载需求,选中遍历到的服务器进行计算卸载;若大于,则判断为不满足需求,继续遍历服务器列表。

在一些实施例,边缘服务器进行计算卸载的步骤包括:

创建并预启动容器;

接收无人车车辆信息和应用卸载请求,并确认无人车车辆信息;

根据应用卸载请求,获取应用类型和计算数据;

根据应用类型判断是否存在对应的预启动的容器,若存在,则选取对应的预启动的容器进行计算;若不存在,则基于所述应用类型创建新容器,并对所述计算数据进行计算;

计算完成后,将计算结果返回无人车,并删除容器。

在一些实施例,基于所述应用类型创建新容器的步骤包括:

中心云维护一个docker镜像仓库,保存着开发者编写并已完成审核的镜像;

将镜像从中心云拉取到本地,生成本地docker镜像列表;

根据应用类型从本地docker镜像列表中选取合适的镜像;

基于选取的镜像创建容器,并调整容器计算份额与内存量。

根据第二方面,本申请还提供了一种面向无人驾驶的边缘卸载装置,包括:

存储器,用于存储程序;

处理器,用于通过执行所述存储器存储的程序以实现如权利要求1-9中任一项所述的方法。

依据上述实施例,由于本申请提供的面向无人驾驶的边缘卸载方法,在无人车有卸载需求时,首先判断距离最近的边缘服务器是否满足卸载需求,如果满足就直接选取该边缘服务器进行计算卸载;如果不满足,就重新选取合适的边缘服务器进行计算卸载,选取的边缘服务器使用docker容器虚拟化技术来提供应用所需运行环境,能够降低成本,隔离了应用运行环境,为无人驾驶提供了安全的卸载服务,并满足无人驾驶应用对响应延迟的严格要求。

附图说明

图1为本申请提供的面向无人驾驶的边缘卸载方法的流程图;

图2为本申请提供的判断步骤的流程图;

图3为本申请提供的重新选择边缘服务器进行计算卸载的流程图;

图4为本申请提供的边缘服务器进行计算卸载的流程图;

图5为本申请提供的面向无人驾驶的边缘卸载装置的示例图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。

另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。

如图1-4所示,本申请提供了一种面向无人驾驶的边缘卸载方法,包括:

接收步骤s1:接收无人车发出的应用卸载请求。

判断步骤s2:判断距离最近的边缘服务器是否满足卸载需求,若满足,则直接选取距离最近的边缘服务器进行计算卸载;若不满足,则重新选择边缘服务器进行计算卸载。

返回结果步骤s3:将计算结果返回无人车。

参阅图2,判断步骤s2包括:

判断距离最近的边缘服务器计算卸载能否节省能耗,若能节约能耗,则继续判断应用能否在限制时间内返回;若不能节约能耗,则判定为不满足卸载要求。判断计算卸载能否节省能耗的步骤包括:

获取数据传输量、无人车与距离最近的边缘服务器间的数据传输速度、数据传输模块的功率;

基于数据传输量、无人车与距离最近的边缘服务器间的数据传输速度、数据传输模块的功率计算距离最近的边缘服务器的应用卸载能耗,并将所述应用卸载能耗与应用本地执行能耗进行比较,若所述应用卸载能耗大于或等于应用本地执行能耗,则判断为能节省能耗;若所述应用卸载能耗小于应用本地执行能耗,则判断为不能节约能耗。

判断应用能否在限制时间内返回的步骤包括:

获取数据传输量、应用计算量、无人车与距离最近的边缘服务器间的数据传输速度以及距离最近的边缘服务器剩余的计算能力;

根据所述数据传输量、应用计算量、无人车与距离最近的边缘服务器间的数据传输速度以及距离最近的边缘服务器剩余的计算能力,计算卸载完成时间;

将卸载完成时间与完成时限进行比较,若卸载完成时间大于或等于完成时限,则判断为不满足卸载要求;若卸载完成时间小于完成时限,则继续判断距离最近的边缘服务器内存是否充足。

判断距离最近的边缘服务器内存是否充足的步骤包括:

获取应用内存需求及距离最近的边缘服务器剩余可用内存;

判断应用内存需求是否大于距离最近的边缘服务器剩余可用内存,若不大于,则判断为满足卸载需求,若大于,则判断为不满足需求。

具体地,判断步骤s2的判断过程如下:

定义elocal表示该应用本地执行能耗;ptransform表示车载数据传输模块的功率;wtransmit表示数据传输量;b表示无人车与边缘服务器间的数据传输速度;tlimit代表应用完成时限;wcompute表示应用计算量;rv表示边缘服务器剩余的计算能力;m表示应用内存需求,rm代表边缘服务器剩余可用内存。

首先判断距离最近的边缘服务器计算卸载能否节省能耗,即

判断是否成立,若不成立,则判断该服务器为不满足卸载需求,重新选取边缘服务器进行计算卸载;若成立,则判断应用能否在限制时间内返回,即

判断是否成立,若不成立,则判断该服务器为不满足卸载需求,重新选取边缘服务器进行计算卸载;若成立,则判断该边缘服务器内存是否充足,即

判断m≤rm是否成立,若不成立,则判断该服务器为不满足卸载需求,重新选取边缘服务器进行计算卸载;若成立,则直接选取该边缘服务器进行计算卸载。

参阅图3,重新选择边缘服务器进行计算卸载的步骤包括:

筛选出q个可用边缘服务器,记筛选出的可用边缘服务器集合为j;定义eoffload(j)表示将应用卸载到第j个边缘服务器上的卸载能耗,ttransmit(j)表示应用卸载到第j个边缘服务器上的卸载完成时间,其中

筛选出的可用边缘服务器需满足:边缘服务器的应用卸载能耗小于应用本地执行能耗且边缘服务器的卸载完成时间小于完成时限,即

eoffload(j)<elocal且ttransmit(j)<tlimit。

将筛选出的q个可用边缘服务器按照应用卸载能耗的大小进行升序排序,生成长度为q的服务器列表,即

eoffload(1)≤eoffload(2)≤…≤eoffload(q)。

遍历服务器列表,判断遍历到的边缘服务器的剩余可用内存是否满足卸载需求,若满足卸载需求,则选中所述遍历到的边缘服务器进行计算卸载;若不满足卸载需求,则继续遍历服务器列表。

若遍历完成,没有可用边缘服务器被选中,则本次计算卸载失败,并将失败信息返回无人车。

判断遍历到的服务器的剩余可用内存是否满足卸载需求的步骤包括:

获取应用内存需求及遍历到的服务器的剩余可用内存;

判断应用内存需求是否大于遍历到的服务器剩余可用内存,若不大于,则判断为满足卸载需求,选中遍历到的服务器进行计算卸载;若大于,则判断为不满足需求,继续遍历服务器列表。

依据上述的方法,使得无人车倾向于选择传输速度最快的边缘服务器进行计算卸载从而节省更多的能耗,减少了成本。

参阅图4,边缘服务器进行计算卸载的步骤包括:

中心云维护一个docker镜像仓库,保存着开发者编写并已完成审核的镜像;将镜像从中心云拉取到本地,生成本地docker镜像列表。

创建并预启动若干个容器;

接收无人车车辆信息和应用卸载请求,并确认无人车车辆信息;

根据应用卸载请求,获取应用类型和计算数据;

根据应用类型判断是否存在对应的预启动的容器,若存在,则选取对应的预启动的容器进行计算;若不存在,则根据应用类型从本地docker镜像列表中选取合适的镜像,基于选取的镜像创建容器,并调整容器计算份额与内存量。

计算完成后,将计算结果返回无人车,并删除容器。

根据上述方法,通过docker容器虚拟化来提供应用所需的运行环境,隔离了应用运行环境,运算完成后再将结果返回无人车,为无人驾驶提供了安全的卸载服务,并满足无人驾驶应用对响应延迟的严格要求。同时,采用预启动容器的方案,能够有效提高响应速度,降低响应延迟。

本申请提供了一种面向无人驾驶的边缘卸载装置,包括:

存储器,用于存储程序;

处理器,用于通过执行所述存储器存储的程序以实现如上所述的方法。

如图5所示,本申请还提供了一种面向无人驾驶的边缘卸载装置,包括:无人车1搭载的数据传输模块11和卸载决策模块12、协调器2、多个边缘服务器3。

数据传输模块11用于传输数据。卸载决策模块12用于决策是否卸载应用。

协调器2包括:卸载调度模块21和服务管理模块22。服务管理模块22用于监控多个边缘服务器3的运行状态,实时更新边缘服务器3的健康状态、剩余资源量等信息。卸载调度模块21用于重新选择边缘服务器3进行计算卸载,建立边缘服务器3与无人车1的连接。

边缘服务器3包括:镜像管理模块31、容器管理模块32和资源管理模块33。镜像管理模块31用于管理和更新本地docker镜像列表。具体地,镜像管理模块31管理本地存储的镜像,还会定期从中心云拉取镜像到本地,更新本地镜像。由于docker镜像内的各层都是只读的,使得当对同一个镜像创建多个容器时,每个容器都只需要在该镜像之上添加一个可写的容器层,多个容器可以共享镜像内的各层级。新建容器不需要复制镜像中的内容,该特性减少了创建及启动容器的代价,也节省了宿主机的存储空间。

容器管理模块32用于创建或删除docker容器并管理容器运行状态,同时还为部分可卸载应用创建并预启动若干容器,分配非常少量的计算份额与内存量。资源管理模块33用于记录边缘服务器3的剩余内存,调整容器计算份额与内存量,并在创建/删除/调整容器内存量时,对应调整边缘服务器3的剩余内存。

具体地,当车辆有卸载请求时,卸载决策模块12判断距离最近的边缘服务器是否满足卸载需求,若满足,则直接选取距离最近的边缘服务器进行计算卸载;若不满足,则向协调器2发送卸载请求,由协调器2选择合适的边缘服务器进行计算卸载。选中合适的边缘服务器后,卸载调度模块21使边缘服务器3与无人车1建立连接,边缘服务器3接收到来自无人车1的卸载请求后,通过信令交互确认车辆信息,身份验证通过后,将获取待卸载应用的应用类型和计算数据,容器管理模块32根据应用类型判断是否存在对应的预启动的容器,若存在,则选取对应的预启动的容器进行计算;若不存在,则通过镜像管理模块31根据应用类型从本地docker镜像列表中选取合适的镜像创建容器,然后再通过资源管理模块33调整容器计算份额与内存量,计算完成后,将计算结果返回无人车,由容器管理模块32删除容器。

本申请还提供了一种计算机可读存储介质,包括程序,所述程序能够被处理器执行以实现如上所述的方法。

本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1