一种基于边缘计算的自动驾驶服务卸载方法与流程

文档序号:19570597发布日期:2019-12-31 18:53阅读:399来源:国知局
一种基于边缘计算的自动驾驶服务卸载方法与流程

本发明涉及边缘计算的任务卸载策略以及自动驾驶技术领域,更具体地,涉及一种基于边缘计算的自动驾驶服务卸载方法。



背景技术:

近年来,无人驾驶技术逐渐成为国内外高校和企业的研究热点,其在商业应用测试中的频频亮相引起大众的关注。无人车在实现自动驾驶过程中,自主驾驶系统的信息感知子系统与数据的实时计算和反馈是无人车自动驾驶的关键基础,是保证无人车安全稳定,无碰撞正常行驶的前提。

随着无人驾驶技术需求的提高和传感器各项功能与技术的完善,越来越多的传感器部署应用在无人驾驶汽车平台上,如何把传感器采集到的数据通过合理的计算来提高服务质量是无人驾驶领域的一个关键性问题。传统上的车载计算平台例如搭载在audiq7和teslamodelx的nvidiapx2成本太高,售价一万五千美元左右。借助于外在计算资源的方案大都将重心集中在节能和服务更多用户方面,不适用于要求低时延和高安全性的无人驾驶任务。因此如何借助外在计算资源,高效地进行自动驾驶任务卸载仍然是一个开放的重要问题。

针对车载云计算(vcc)模型,车载单元(obu)和云平台之间存在长时间且不可预测的延迟。而基于多个mec-bc(移动边缘计算基站)协作增强mec(移动边缘计算)的计算转移服务的方法更多的侧重于节能,无法满足低延迟的要求。到目前为止还没有将边缘计算应用于实际自动驾驶应用的研究,可以部署在低廉的轻量级车载计算平台,同时满足严格的低延迟要求。



技术实现要素:

本发明为克服上述现有技术中的缺陷,提供一种基于边缘计算的自动驾驶服务卸载方法,保证了无人驾驶所需的低延迟性能,并有效地缩短了自动驾驶计算任务的响应时间。

为解决上述技术问题,本发明采用的技术方案是:一种基于边缘计算的自动驾驶服务卸载方法,包括以下步骤:

s1.具有自动驾驶功能的车辆通过各种传感器感知周围环境并获取数据;

s2.无人车辆检测当前的网络状态并获取各平台可用的计算资源;

s3.如果当前网络状态在事先已经由整数线性规划模型计算的各种网络状态下的卸载策略查找表中成功匹配,那么就使用表中的卸载策略;否则将最接近网络状态对应的卸载策略用作参照卸载策略,利用启发式算法来进行自适应动态调度;即用一个查找表来存储使用整数线性规划模型得到的在各种网络状态与资源的情况下的最优卸载策略,如果车辆当前的网络状态在表中得到了匹配,就采取表中的卸载策略,否则使用自适应动态调度算法基于距离当前网络状况欧式距离最近的查找表中的卸载策略按照贪婪策略进行更新,得到一个新的卸载策略;

s4.各计算节点完成后,边缘服务器和云平台将计算完成的数据结果返回给车辆;

s5.下一个周期开始时,重复上述过程。

本发明提供了一种基于边缘计算的自动驾驶服务卸载方法,通过使用离线整数线性规划模型与在线动态自适应启发式算法实现任务调度,将其卸载到边缘服务器和云平台,从而尽可能保证自动驾驶低延迟的特性,实现各任务的实时计算处理。主要的建模和技术方案:大多数非反馈自动驾驶服务都可以被建模为周期性的具有数据依赖任务,并可以表示为有向无环图。有向无环图中的每个节点是一个计算任务,每条有向边则代表各任务节点之间的通信任务。根据不同的网络情况以及车载任务的有向无循环图,可以使用整数线性规划计算出各种网络情况下的最优卸载策略,以查找表的形式存储在各个计算平台。车辆在行驶过程中,会实时检测当前的网络情况,并在查找表中进行匹配。当成功匹配时,则按照查找表中对应的卸载策略进行计算任务卸载。否则基于距离当前网络状况最近(欧式距离)的查找表中的卸载策略将会被返回,作为在线自适应启发式算法的初始状态进行迭代更新,计算得出最终的调度序列。由于车载传感器的数据量往往较大,以16线激光雷达传感器为例,平均大小为426千字节(kb)的点云数据以10hz的速率生成。本发明基于draco算法对点云数据进行了编解码操作,将其被适配为机器人操作系统(ros)的一个任务节点。在仿真和实际环境中对我们的方法进行了测试,并使用实时定位与建图(slam)作为测试的无人驾驶计算服务。与现有的方法相比,该方法具有对车辆本身的计算能力要求较低的优点,极大地减少了本地的计算成本,而且结合边缘服务器与云平台的高效计算能力达到低延迟的效果,缩短了自动驾驶计算任务的响应时间。此外,该方法有效地提高了lidarslam的定位精度。

进一步的,所述的s3步骤中利用整数线性规划模型计算最优调度序列的过程如下:

s31.首先构造计算任务的有向无环图g={t,e},其中计算任务的集合为t={t1,t2,…,tn},我们使用一个元组ti={ωi,δi}来表示计算任务ti,其中ωi为执行任务所需的计算资源,δi为任务的截止时间。对于每一个任务ti,令为ti分配到指定平台的集合,即:

此外,用p={v,e,c}来标识三个不同的平台,分别为车辆本地,边缘服务器,云平台;

s32.假设三个平台的计算能力即cpu频率分别为fv、fe和fc,由此可以得到对于计算量为ωi的任务ti在不同平台的运行时间分别为:

对于每一个任务ti,它的终止时间为释放时间加上运行时间:

s33.对终止时间中的数学符号进行解释、推导,设hj为在平台p上执行的除了ti以外的所有任务的集合,即

设dj为执行tj所需的所有任务的集合,包括与tj有数据依赖的任务,以及在同一平台p上所有截止时间小于tj的截止时间δj的任务:

dj={ti|ti∈t,eij=1}∪{ti|ti∈hj,δi≤δj}(5)

那么任务tj的释放时间rj可以表示为在执行tj所需的所有任务中具有最大终止时间的任务tk的终止时间加上其通信时间:

所以其终止时间表示为释放时间加上运行时间:

因此,以变量求解最小化响应时间l可以描述为:

minimizel=max(fj)。(8)

进一步的,为了计算最优调度序列,整数线性规划模型考虑如下约束:

l-τij≥rij≥0(11)

δ≥ri+τi(15)

其中,ilp建模过程中的约束和变量如表1所示。约束条件中的约束式(9)表示每个计算任务都必须被调度到某一个平台中执行;约束式(10)和(11)表示:所有的计算/通信任务在当前周期内都必须是可调度的;约束式(12)和(13)表示:一旦一个计算/通信任务开始执行,其他计算/通信任务都不能开始执行,直到该计算/通信任务完成,其中通信任务cmn和cij的释放时间分别用rmn和rij表示,通信任务cij的通信时间表示为τij;约束式(14)和(15)表示:在同一个平台执行的没有数据依赖的任务应该使用edf进行调度;约束式(16)表明:任务间应满足有向无环图(dag)的数据依赖关系。

下表为建模过程中的约束和变量:

表1建模过程中的约束和变量

在本发明中,自适应动态调度算法(oda)的伪代码如下表所示:

表2自适应动态调度算法(oda)的伪代码

为任务ti在平台p上的运行时间和传输时间的和,即

假设任务ti在平台p上的成本小于等于在其他平台上的成本最小值,那么任务将被分配到平台p上,即

这种方法更适用于串行情况,它只为当前任务提供最佳调度,而不考虑任务之间的并行性。因此,将并行模块添加到其中,这将在某些情况下大大缩短任务的执行时间。并行模块将给予任务ti-1和任务ti-2(i>2)的执行平台以一定的惩罚,在某种程度上,任务ti与任务ti-1和任务ti-2(i>2)并行执行,可以使计算任务的并行度更高。当一个新的任务ti出现时,它更可能被分配到具有可用资源的平台。如果在多个平台上有可用资源,则应根据上述启发式算法安排任务ti。

其中表2为自适应动态调度方法的伪代码。首先查询当前的车辆网络状态,并且在查找表中查找距离当前网络状况最近(欧式距离)的表项以获得参考调度如表2中的第1~2行。从未分配给任何平台的第一个任务ti开始,算法需要检查dag中ti的数据依赖关系,并计算其他任务与ti的通信成本,如表2中的第4~11行。起初,ti被调度到具有最低成本的平台p,如表2中的第12~16行。接下来,与ti具有依赖关系的任务或与ti执行平台相同所有任务都将被找到,以计算ti的释放时间,如表2中第17~23行。同时使用并行模块,尽量并行执行任务,提高并行性,如表2中第24行。然后通过比较终止时间,找到一个最佳平台,如表2中第25~28行。然后,使用当前网络状态等计算参考调度的释放时间,如表2中第29行。最后,将其与参考调度的释放时间进行比较,获得最早释放时间,以获得更好的结果,如表2中第30~33行。然后算法迭代地找到基于整数线性规划查找表的调度序列。

与现有技术相比,有益效果是:

1.本发明提供的一种基于边缘计算的自动驾驶服务卸载方法,基于三层网络架构,使用边缘计算卸载自动驾驶服务,相比于vcc的计算模型,该方法保证了无人驾驶所需的低延迟性能,并有效地缩短了自动驾驶计算任务的响应时间;

2.相较于多mec多用户的任务卸载方法,本发明针对单车的无人驾驶服务质量提升,提出了可以在低廉的车载半导体计算平台上部署的轻量级任务卸载方法;

3.本发明实现了基于边缘计算的lidarslam算法,相较于传统的gps定位,可以达到分米范围内的定位精度以弥补gps定位的不足;

4.本发明将分布式lidarslam算法部署在现实的无人驾驶场景中,通过蜂窝网络和无线网络进行远程数据交换,并将传输的点云数据进行编解码,实现任务间的高效数据传输和并行运算。在车辆本地,边缘服务器和云平台上的协同计算任务部署,具有降低延迟并且延迟波动小的优点,使自动驾驶服务可以获得更稳定的性能,实验验证了本发明的实用性和有效性。

附图说明

图1是本发明中slam算法流程图。

图2是本发明基于边缘计算的自动驾驶服务卸载框架。

具体实施方式

附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。

实施例1:

如图1和2所示,一种基于边缘计算的自动驾驶服务卸载方法,包括以下步骤:

s1.具有自动驾驶功能的车辆通过各种传感器感知周围环境并获取数据;

s2.无人车辆检测当前的网络状态并获取各平台可用的计算资源;

s3.如果当前网络状态在事先已经由整数线性规划模型计算的各种网络状态下的卸载策略查找表中成功匹配,那么就使用表中的卸载策略;否则将最接近网络状态的策略用作参照卸载策略,利用启发式算法来进行自适应动态调度;即用一个查找表来存储使用整数线性规划模型得到的在各种网络状态与资源的情况下的最优卸载策略,如果车辆当前的网络状态在表中得到了匹配,就采取表中的卸载策略,否则使用自适应动态调度算法基于距离当前网络状况欧式距离最近的查找表中的卸载策略按照贪婪策略进行更新,得到一个新的卸载策略;

s4.各计算节点完成后,边缘服务器和云平台将计算完成的数据结果返回给车辆;

s5.下一个周期开始时,重复上述过程。

如图1所示,本方法针对自动驾驶中轻量级obu计算能力欠缺的问题,提出一种三层网络架构并利用具有时效性的路边设施与边缘服务器和云平台来弹性卸载自动驾驶服务,以保证自动驾驶服务的实时性和可靠性。

lidarslam算法通过3dlidar扫描仪进行自主构建通过区域的地图和定位,可以有效地解决传统的gps定位精准度不足的问题。图1为部署到所有平台的slam算法的实现流程。本发明基于loam算法进行了slam分布式和算法改进,其中主要包括特征提取,里程估计,建图和定位四个核心部分。

工作流程如下:

1.t1从物理设备lidar收集原始数据。

2.在t2中,来自lidar的原始数据将被分类,并且根据这些分类的空间信息提取特征。t1和t2为预处理阶段。

3.t3分析来自t2的两个连续lidar点云数据帧之间的特征,并使用levenberg-marquardt的方法估计它们之间的关系。

4.根据t3里程估计的结果,t5可以输出粗略定位的结果。

5.在全局坐标系下获得每个帧的正确位置和方向,并在t4中累积每一帧并将它们映射到全局坐标中。

最后,可以在t6中获得精确的定位信息。

图2显示了本发明基于边缘计算卸载自动驾驶计算服务的方法框架,该框架由两个部分组成,分别是离线的ilp模型和用于在线的启发式调度算法。在离线部分,ilp模型旨在计算出最佳卸载策略,包括在三个平台的dag的划分,分配和调度。对于一系列可能的网络参数的最佳卸载策略将被计算并存储在查找表中以供在线使用。在线的oda调度算法以离线调度作为基础,考虑实际的网络状态,如果当前网络状态与查找表中的状态匹配则选择存储在查找表中的策略;否则将最接近网络状态的策略用作我们贪心算法的参照策略。

在本实施例中,s3步骤中利用整数线性规划模型计算最优调度序列的过程如下:

s31.首先构造计算任务的有向无环图g={t,e},其中计算任务的集合为t={t1,t2,…,tn},对于每一个任务ti,令为ti分配到指定平台的集合;即:

此外,用p={v,e,c}来标识三个不同的平台,分别为车辆本地,边缘服务器,云平台;

s32.假设三个平台的计算能力即cpu频率分别为fv、fe和fc,由此可以得到对于计算量为ωi的任务ti在不同平台的运行时间分别为:

对于每一个任务ti,它的终止时间为释放时间加上运行时间:

s33.对终止时间中的数学符号进行解释、推导,设hj为在平台p上执行的除了tj以外的所有任务的集合,即

设dj为执行tj所需的所有任务的集合,包括与tj有数据依赖的任务,以及在同一平台p上所有截止时间小于tj的截止时间δj的任务:

dj={ti|ti∈t,eij=1}∪{ti|ti∈hj,δi≤δj}(5)

那么任务tj的释放时间rj可以表示为在执行tj所需的所有任务中具有最大终止时间的任务tk的终止时间加上其通信时间:

所以其终止时间表示为释放时间加上运行时间:

因此,以变量求解最小化响应时间l可以描述为:

minimizel=max(fj)。(8)

另外,为了计算最优调度序列,整数线性规划模型考虑如下约束:

l-τij≥rij≥0(11)

δ≥ri+τi(15)

其中,ilp建模过程中的约束和变量如表1所示。约束条件中的约束式(9)表示每个计算任务都必须被调度到某一个平台中执行;约束式(10)和(11)表示:所有的计算/通信任务在当前周期内都必须是可调度的;约束式(12)和(13)表示:一旦一个计算/通信任务开始执行,其他计算/通信任务都不能开始执行,直到该计算/通信任务完成(其中通信任务cmn和cij的释放时间分别用rmn和rij表示,通信任务cij的通信时间表示为τij);约束式(14)和(15)表示:在同一个平台执行的没有数据依赖的任务应该使用edf进行调度;约束式(16)表明:任务间应满足有向无环图(dag)的数据依赖关系。

以下表1为建模过程中的约束和变量:

表1建模过程中的约束和变量

在本实施例中,自适应动态调度算法(oda)的伪代码如下表示:

表2自适应动态调度算法(oda)的伪代码

为任务ti在平台p上的运行时间和传输时间的和,即

假设任务ti在平台p上的成本小于等于在其他平台上的成本最小值,那么任务将被分配到平台p上,即

这种方法更适用于串行情况,它只为当前任务提供最佳调度,而不考虑任务之间的并行性。因此,将并行模块添加到其中,这将在某些情况下大大缩短任务的执行时间。并行模块将给予任务ti-1和任务ti-2(i>2)的执行平台以一定的惩罚,在某种程度上,任务ti与任务ti-1和任务ti-2(i>2)并行执行,可以使计算任务的并行度更高。当一个新的任务ti出现时,它更可能被分配到具有可用资源的平台。如果在多个平台上有可用资源,则应根据上述启发式算法安排任务ti。

其中表2为自适应动态调度方法的伪代码。首先查询当前的车辆网络状态,并且在查找表中查找距离当前网络状况最近(欧式距离)的表项以获得参考调度如表2中的第1~2行。从未分配给任何平台的第一个任务ti开始,算法需要检查dag中ti的数据依赖关系,并计算其他任务与ti的通信成本,如表2中的第4~11行。起初,ti被调度到具有最低成本的平台p,如表2中的第12~16行。接下来,与ti具有依赖关系的任务或与ti执行平台相同所有任务都将被找到,以计算ti的释放时间,如表2中第17~23行。同时使用并行模块,尽量并行执行任务,提高并行性,如表2中第24行。然后通过比较终止时间,找到一个最佳平台,如表2中第25~28行。然后,使用当前网络状态等计算参考调度的释放时间,如表2中第29行。最后,将其与参考调度的释放时间进行比较,获得最早释放时间,以获得更好的结果,如表2中第30~33行。然后算法迭代地找到基于整数线性规划查找表的调度序列。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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