路线处理方法及装置
技术领域
本公开涉及计算机技术中的自动驾驶领域,尤其涉及一种路线处理方法及装置。
背景技术
随着自动驾驶技术的不断发展,目前在自动驾驶的过程中,需要对障碍物进行规避,从而保证车辆行驶的安全性。
目前,相关技术中在进行对障碍物的规避的时候,通常都是基于路径规划算法确定车辆行驶路径,在路径规划的处理过程中会实现对障碍物的规避,然而,通常路径规划算法的计算量都比较大,同时在自动驾驶系统中会包括多个处理单元,各个处理单元所分配到的算力资源是有限的。
因此,在算力资源有限的前提下,由于目前的路径规划算法的计算量较大,从而会导致无法保证车辆实现准确安全的绕障。
发明内容
本公开提供了一种路线处理方法及装置。
根据本公开的第一方面,提供了一种路线处理方法,包括:
获取车辆对应的初始行驶路线,所述初始行驶路线包括多个轨迹点;
确定每个轨迹点对应的车辆行驶区域,所述车辆行驶区域包括所述车辆行驶至所述轨迹点时所述车辆所在的区域;
根据每个轨迹点对应的车辆行驶区域,在所述多个轨迹点中确定至少一个目标轨迹点,所述目标轨迹点对应的车辆行驶区域内存在第一障碍物;
根据所述至少一个目标轨迹点的位置和每个目标轨迹点对应的第一障碍物的位置,在所述初始行驶路线中分别对每个目标轨迹点的位置进行更新处理,并根据更新处理后的目标轨迹点得到目标行驶路线;
控制所述车辆按照所述目标行驶路线行驶。
根据本公开的第二方面,提供了一种路线处理装置,包括:
获取模块,用于获取车辆对应的初始行驶路线,所述初始行驶路线包括多个轨迹点;
确定模块,用于确定每个轨迹点对应的车辆行驶区域,所述车辆行驶区域包括所述车辆行驶至所述轨迹点时所述车辆所在的区域;
所述确定模块,还用于根据每个轨迹点对应的车辆行驶区域,在所述多个轨迹点中确定至少一个目标轨迹点,所述目标轨迹点对应的车辆行驶区域内存在第一障碍物;
更新模块,用于根据所述至少一个目标轨迹点的位置和每个目标轨迹点对应的第一障碍物的位置,在所述初始行驶路线中分别对每个目标轨迹点的位置进行更新处理,并根据更新处理后的目标轨迹点得到目标行驶路线;
控制模块,用于控制所述车辆按照所述目标行驶路线行驶。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
根据本公开的技术,在算力资源有限的情况下,有效保证了车辆实现准确安全的绕障。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的自动泊车的学习路线示意图;
图2为本公开实施例提供的行驶路线中的障碍物示意图一;
图3为本公开实施例提供的行驶路线中的障碍物示意图二;
图4为本公开实施例提供的行驶路线中的障碍物示意图三;
图5为本公开实施例提供的路线处理方法的流程图;
图6为本公开实施例提供的路线处理方法的流程图二;
图7为本公开实施例提供的初始行驶路线的示意图;
图8为本公开实施例提供的扩展车辆投影区域的实现示意图;
图9为本公开实施例提供的车辆行驶区域内的障碍物的实现示意图;
图10为本公开实施例提供的第一障碍物和车辆行驶区域的侧边的距离的实现示意图;
图11为本公开实施例提供的确定移动方向的实现示意图一;
图12为本公开实施例提供的确定移动方向的实现示意图二;
图13为本公开实施例提供的移动目标轨迹点的实现示意图;
图14为本公开实施例提供的平滑处理的实现示意图;
图15为本公开实施例提供的路线处理方法的流程图三;
图16为本公开实施例提供的车辆行驶区域包括第二障碍物的示意图;
图17为本公开实施例提供的对第二障碍物进行绕障的实现示意图;
图18为本公开实施例提供的车辆行驶区域不包括第二障碍物的示意图;
图19为本公开实施例的路线处理装置的结构示意图;
图20是用来实现本公开实施例的路线处理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了更好的理解本公开的技术方案,下面对本公开所涉及的相关技术进行进一步的详细介绍。
随着科学技术的不断发展,自动驾驶技术也越来越成熟,以自动驾驶模式运行的车辆可以将乘员、尤其是驾驶员从一些驾驶相关的职责中解放出来。
可以理解的是,在自动驾驶的过程中,为了保证车辆行驶的安全性,需要对道路中的障碍物进行规避,目前,相关技术中在实现障碍物规避的时候,都是通过相应的路径规划算法确定车辆行驶路径,在路径规划的过程中就实现对障碍物的规避,以保证规划得到的车辆行驶路径中不会发生障碍物的碰撞。
但是,通常路径规划算法的计算量都比较大,同时在自动驾驶系统中会包括多个处理单元,比如说感知单元、定位单元、控制单元等等,每个处理单元所能够分配到的算力资源是有限的,在算力资源有限的情况下,因为目前的路径规划算法的计算量较大,所以也会消耗较多的算力资源,从而会导致无法保证车辆实现准确安全的绕障。
针对现有技术中的问题,本公开提出了如下技术构思:在确定车辆行驶轨迹的时候首先不考虑障碍物的位置,在确定车辆的行驶轨迹之后,再根据道路中的障碍物的位置,对车辆行驶轨迹中的各个轨迹点进行平移,以实现对障碍物的规避,从而可以简单有效的实现车辆的实时绕障,以在有效的算力资源的基础上,保证车辆实现准确安全的绕障。
下面结合图1至图4,以具体的自动泊车场景为例,对本公开的路线处理方法的应用场景进行介绍,图1为本公开实施例提供的自动泊车的学习路线示意图,图2为本公开实施例提供的行驶路线中的障碍物示意图一,图3为本公开实施例提供的行驶路线中的障碍物示意图二,图4为本公开实施例提供的行驶路线中的障碍物示意图三。
首先对自动泊车的场景进行简单介绍,其中,自动泊车是指车辆在自动驾驶的模式下,将车辆行驶到目标停车位,自动泊车可以分为两个阶段,一个是巡航阶段,另一个是泊车阶段。在巡航阶段,车辆需要从当前所在的位置行驶到目标泊车位所在的位置,之后在泊车阶段,车辆会将车俩停靠进目标泊车位。
可以理解的是,在自动泊车的巡航阶段,车辆实际上就是在停车场的一些复杂场景下进行自动驾驶,在此过程中,车辆需要进行绕障处理,以保证车辆行驶的安全性。
在一种可能的实现方式中,在车辆进行自动泊车之前,车辆首先会对从起点到目标停车位的路线进行学习,其中起点例如可以为小区门口、商场门口等等,当前的起点可以取决于用户想要车辆从什么位置开始进行自动泊车,本实施例对起点和目标停车位的具体实现方式不做限制。
例如可以由用户将车辆从起点驾驶至目标停车位,车辆在此过程中对路线进行学习;或者还可以直接将路线数据输入至车辆中,以使得车辆确定学习的行驶路线。
例如可以参见图1,图1所示的场景即为停车场的场景,在停车场中可以停泊至少一辆车辆,图1中的车辆101为自动驾驶车辆,其中的路线102即为自动驾驶车辆学习的路线。
在该路线中没有障碍物的时候,车辆就可以按照该路线进行自动驾驶,从而到达目标停车位,但是停车场的情况通常比较复杂,并且不可控,因此在该路线中有可能会出现障碍物,当障碍物出现的时候,车辆就需要进行绕障处理。
例如可以参见图2进行理解,如图2所示,当前车辆201在停车场中按照学习路线进行自动泊车的巡航,但是在学习路线中存在图2所示的路障202,此处的路障202作为一个障碍物,车辆需要对该障碍物进行绕障处理,例如可以按照图2中所示的路线203进行行驶,从而实现对障碍物202的规避。
还例如可以参见图3进行理解,如图3所示,当前车辆301在停车场中按照学习路线进行自动泊车的巡航,但是在学习路线中存在图3所示的车辆302,此处的车辆302作为一个障碍物,车辆需要对该障碍物进行绕障处理,例如可以按照图3中所示的路线303进行行驶,从而实现对障碍物302的规避。
还例如可以参见图4进行理解,如图4所示,当前车辆401在停车场中按照学习路线进行自动泊车的巡航,但是在学习路线中存在图4所示的路侧车头凸出车位的障碍物402,车辆需要对该障碍物402进行绕障处理,例如可以按照图4中所示的路线403进行行驶,从而实现对障碍物402的规避。
上述图2至图4介绍了可能的障碍物情况,在实际实现过程中,针对路侧车头凸出车位、柱子/墙体侵入车道、弯道内、外侧锥筒、柱子、墙体、车辆等障碍物情况,均需要进行绕障处理,可以理解的是,凡是阻碍车辆通行的物体均可以理解为障碍物,车辆均需要进行绕障处理,本实施例对障碍物的具体实现不做限制。
上述结合图1至图4介绍的是自动泊车的场景下进行绕障的示意图,可以理解的是,在城市道路、高速等等场景下,车辆进行自动驾驶的实现方式是一样的,均需要在自动驾驶的过程中进行绕障处理,本实施例对其余场景不再进行详细介绍,其实现方式与上述介绍的自动泊车的场景类似。
下面结合具体的实施例对本公开实施例提供的路线处理方法进行详细介绍,值得说明的是,本公开中各实施例的执行主体例如可以为车辆中的处理器,或者还可以为云端的服务器等等,本实施例对此不做限制,其可以根据实际需求进行选择,只要可以实现本公开中的路线处理方法即可。
首先结合图5进行说明,图5为本公开实施例提供的路线处理方法的流程图。
如图5所示,该方法包括:
S501、获取车辆对应的初始行驶路线,初始行驶路线包括多个轨迹点。
在本实施例中,存在车辆对应的初始行驶路线,在初始行驶路线中可以包括多个轨迹点,其中轨迹点的数量、密度等等可以根据实际需求进行选择,本实施例对此不做限制。
在一种可能的实现方式中,在自动泊车场景下,车辆对应的初始行驶路线例如可以为,上述实施例中介绍的车辆的学习路线,则例如可以从存储单元中直接获取车辆对应的初始行驶路线。
或者,在道路中的自动驾驶场景下,车辆对应的初始行驶路线还例如可以为,根据起始点和结束点规划得到的路线,则可以通过路线规划,从而获取车辆对应的初始行驶路径,本实施例对车辆对应的初始行驶路线的具体实现方式不做限制,其可以根据实际需求进行选择。
可以理解的是,本实施例中的初始行驶路线并未考虑对障碍物的规避,因此获取车辆对应的初始行驶路线的计算量是比较小的。
S502、确定每个轨迹点对应的车辆行驶区域,车辆行驶区域包括车辆行驶至轨迹点时车辆所在的区域。
在本实施例中,初始行驶路线中可以包括多个轨迹点,每一个轨迹点均可以对应车辆行驶区域,其中车辆行驶区域可以包括车辆行驶至轨迹点时车辆所在的区域。
可以理解的是,每个轨迹点均对应各自的位置信息,用于指示当车辆行驶至该轨迹点的时候,具体位于什么位置,同时,因为车辆是存在一定体积的物体,因此当车辆行驶至轨迹点的时候,占据的是一片区域,而不是一个点,因此可以确定的每个轨迹点对应的车辆行驶区域。
值得说明的是,车辆行驶至轨迹点,可以是车辆的特定部位行驶至轨迹点,例如可以为车辆的车头行驶至轨迹点,或者还可以为车辆的车位行驶至轨迹点,或者还可以为车辆的中心行驶至轨迹点,本实施例对此不做限制。
S503、根据每个轨迹点对应的车辆行驶区域,在多个轨迹点中确定至少一个目标轨迹点,目标轨迹点对应的车辆行驶区域内存在第一障碍物。
在确定各个轨迹点各自对应的车辆行驶区域之后,可以根据每个轨迹点对应的车辆行驶区域,在多个轨迹点中确定至少一个目标轨迹点。本实施中的目标轨迹点例如可以理解为,车辆需要进行绕障处理的轨迹点。
可以理解的是,各个轨迹点对应的车辆行驶区域包括车辆行驶至该轨迹点时车辆所在的区域,那么当某个轨迹点对应的车辆行驶区域中存在障碍物的时候,就表示车辆在该轨迹点时和障碍物存在碰撞风险,那么在该轨迹点就需要进行绕障处理,因此本实施例中的目标轨迹点对应的车辆行驶区域内存在第一障碍物。
其中,第一障碍物例如可以为上述介绍的路障、车辆等等,或者还可以为上述介绍的凸出的车头等等,也就是说本实施例中的第一障碍物可以是一个完整的物体,或者还可以是完整物体的一部分,本实施例对此不做限制,凡是在道路中对车辆的通行产生阻碍的对象,均可以确定为本实施例中的第一障碍物。
S504、根据至少一个目标轨迹点的位置和每个目标轨迹点对应的第一障碍物的位置,在初始行驶路线中分别对每个目标轨迹点的位置进行更新处理,并根据更新处理后的目标轨迹点得到目标行驶路线。
在确定目标轨迹点之后,就需要针对各个目标轨迹点进行绕障处理,以避免在目标轨迹点处车辆和障碍物发生碰撞,在一种可能的实现方式中,可以根据目标轨迹点的位置,以及目标轨迹点对应的第一障碍物的位置,对目标轨迹点的位置进行更新,更新后的目标轨迹点的位置例如可以满足:更新后的目标轨迹点对应的车辆行驶区域内不存在第一障碍物,也就是说当车辆行驶到更新后的目标轨迹点对应的位置时,不会和第一障碍物发生碰撞,从而实现了在目标轨迹点的绕障。
在多各个目标轨迹点的位置进行更新处理之后,可以根据更新处理后的目标轨迹点确定目标行驶路线,在目标行驶路线中包括更新处理后的目标轨迹点。
在一种可能的实现方式中,为了保证车辆行驶的平稳性,还例如可以针对各个未更新的轨迹点,根据更新处理后的目标轨迹点的位置进行平滑处理,以确定平滑处理后的各个轨迹点,则在目标行驶路线中例如可以包括平滑处理后的各个轨迹点以及更新处理后的各个目标轨迹点。
或者,还可以直接将更新处理后的各个目标轨迹点,以及初始行驶路线中未进行更新处理的各个轨迹点,所组成的路线,确定为目标行驶路线,这样可以在一定程度上节省计算资源,本实施例对确定目标行驶路线的具体实现方式不做限制,只要保证目标行驶路线中包括更新处理后的各个目标轨迹点即可。
S505、控制车辆按照目标行驶路线行驶。
在确定目标行驶路线之后,就可以控制车辆按照目标行驶路线行驶,因为在目标行驶路线中已经实现了对障碍物的绕障处理,从而可以保证车辆按照目标行驶路线行驶的过程中,可以有效实现对障碍物的规避,以保证可车辆的安全稳定的行驶。
本公开实施例提供的路线处理方法,包括:获取车辆对应的初始行驶路线,初始行驶路线包括多个轨迹点。确定每个轨迹点对应的车辆行驶区域,车辆行驶区域包括车辆行驶至轨迹点时车辆所在的区域。根据每个轨迹点对应的车辆行驶区域,在多个轨迹点中确定至少一个目标轨迹点,目标轨迹点对应的车辆行驶区域内存在第一障碍物。根据至少一个目标轨迹点的位置和每个目标轨迹点对应的第一障碍物的位置,在初始行驶路线中分别对每个目标轨迹点的位置进行更新处理,并根据更新处理后的目标轨迹点得到目标行驶路线。控制车辆按照目标行驶路线行驶。通过在初始行驶路径包括的多个轨迹点中,确定车辆行驶区域和障碍物存在重合的目标轨迹点,之后根据目标轨迹点的位置和对应的第一障碍物的位置,对目标障碍物的位置进行更新处理,以实现在目标轨迹点处对障碍物的规避,之后根据更新处理后的目标轨迹点确定目标行驶路线,在确定初始行驶路线时不考虑障碍物,之后再基于上述过程简单有效的实现绕障处理,从而可以有效减少确定车辆行驶路线的计算量,以在算力资源有限的情况下,保证车辆实现准确安全的绕障。
在上述实施例的基础上,下面结合图6至图14对本公开提供的路线处理方法进行进一步的详细介绍,图6为本公开实施例提供的路线处理方法的流程图二,图7为本公开实施例提供的初始行驶路线的示意图,图8为本公开实施例提供的扩展车辆投影区域的实现示意图,图9为本公开实施例提供的车辆行驶区域内的障碍物的实现示意图,图10为本公开实施例提供的第一障碍物和车辆行驶区域的侧边的距离的实现示意图,图11为本公开实施例提供的确定移动方向的实现示意图一,图12为本公开实施例提供的确定移动方向的实现示意图二,图13为本公开实施例提供的移动目标轨迹点的实现示意图,图14为本公开实施例提供的平滑处理的实现示意图。
如图6所示,该方法包括:
S601、获取车辆对应的初始行驶路线,初始行驶路线包括多个轨迹点。
其中,S601的实现方式与S501的实现方式类似,在上述内容的基础上,例如可以结合图7对初始行驶路线和轨迹点进行进一步的理解。
如图7所示,例如当前获取的车辆对应的初始行驶路径为图7中的70所指示的路径,在初始行驶路径70中包括多个轨迹点,例如可以包括图7所示的轨迹点701、轨迹点702、轨迹点703、轨迹点704、轨迹点705、轨迹点706。
参照图7,每一个轨迹点都对应各自的位置,其中轨迹点的位置用于指示车辆行驶该至该轨迹点的时候,车辆所在的位置。
S602、获取轨迹点对应的车头角度。
在本实施例中,每个轨迹点除了对应各自的位置之外,每一个轨迹点还对应各自的车头角度,此处的车头角度例如可以理解为车辆的航向角,其中,车辆的航向角通常指地面坐标系下,车辆质心速度与横轴的夹角。
例如可以结合图7进行理解,例如针对轨迹点701,其对应的车头角度为箭头a所指示的角度,以及针对轨迹点702,其对应的车头角度为箭头b所指示的角度,以及针对轨迹点703,其对应的车头角度为箭头c所指示的角度,以及针对轨迹点704,其对应的车头角度为箭头d所指示的角度,以及针对轨迹点705,其对应的车头角度为箭头e所指示的角度,以及针对轨迹点706,其对应的车头角度为箭头f所指示的角度。
结合图7可以确定的是,每个轨迹点各自对应有位置以及车头角度,根据位置和车头角度,就可以确定车辆在各个轨迹点的位姿,其中,位姿包括位置和姿态。
S603、根据轨迹点对应的车头角度、轨迹点的位置以及车辆的长度和宽度,得到轨迹点对应的车辆投影区域。
基于上述介绍可以确定的是,本实施例中需要确定各个轨迹点各自对应的车辆行驶区域,在一种可能的实现方式中,例如可以根据轨迹点对应的车头角度、轨迹点的位置以及车辆的长度和宽度,首先确定各个轨迹点各自对应的车辆投影区域。
参见图7,根据轨迹点对应的车头角度、轨迹点的位置,可以确定车辆在轨迹点的位姿,之后根据车辆在该轨迹点的位姿以及车辆的长度和宽度,就可以确定车辆投影区域,其中的车辆投影区域可以理解为,车辆保持轨迹点对应的位置和角度指示的位姿之后,将车辆向地面进行投影得到的区域。
比如说图7中的轨迹点701对应的车辆投影区域就为区域1,轨迹点702对应的车辆投影区域就为区域2,其余各个轨迹点对应的车辆投影区域的实现方式类似,可以参照图7进行理解,此处不再赘述。
S604、将车辆投影区域的横向扩展第一长度,和/或,将车辆投影区域的纵向扩展第二长度,得到轨迹点对应的车辆行驶区域。
上述确定的车辆投影区域是真实车辆所对应的投影区域,但是在实际实现过程中,为了预留一定的容差范围,还会将车辆投影区域进行一定程度的扩展,从而得到轨迹点对应的车辆行驶区域。
在一种可能的实现方式中,可以将车辆投影区域的横向扩展第一长度,和/或,将车辆投影区域的纵向扩展第二长度,从而实现对车辆投影区域的扩展,从而得到轨迹点对应的车辆行驶区域,其中,第一长度和第二长度的具体实现方式可以根据实际需求进行选择,本实施例对此不做限制。
例如可以结合图8理解根据车辆投影区域得到车辆行驶区域,参见图8,假设当前针对轨迹点1对应的车辆投影区域801,将其横向扩展了图8所示的m+n,以及将纵向扩展了图8所示的t+p,从而可以得到轨迹点1对应的车辆行驶区域801,其中,m、n、t、p为大于等于0的数字。
以及,可以将轨迹点2对应的车辆投影区域803,进行横向扩展和纵向扩展,从而得到轨迹点2对应的车辆行驶区域804。针对区域的轨迹点3、轨迹点4、轨迹点5、轨迹点6的实现方式类似,此处不再赘述。
可以确定的是,将轨迹点对应的车辆投影区域进行扩展,得到轨迹点对应的车辆行驶区域,其中车辆行驶区域实际上是大于车辆实际上所占据的区域的,这样可以在实际处理过程中,预留一部分的容差距离,从而可以有效提升绕障处理的性能和安全性。
在实际实现过程中,在对车辆投影区域进行扩展得到车辆行驶区域时,例如可以在横向上扩展第一长度,以及在纵向上扩展第二长度,或者,还可以仅在横向上扩展,或者还可以仅在纵向上扩展,同时,扩展的范围不一定是矩形范围,还例如可以为扇形范围、圆形范围、多边形形状的范围、不规则形状的范围等等,本实施例对此不做限制,只要是对车辆投影区域进行扩展就可以。
S605、获取至少一个障碍物的位置。
在确定各个轨迹点各自对应的车辆行驶区域之后,就可以将对应的车辆行驶区域内存在障碍物的轨迹点,确定为目标轨迹点。
例如可以首先获取道路中的障碍物的位置,之后根据障碍物的位置确定目标轨迹点,在一种可能的实现方式中,例如可以通过自动驾驶系统中的感知模块,确定道路中的障碍物的位置。
S606、若根据至少一个障碍物的位置,确定轨迹点对应的车辆行驶区域中存在障碍物,则将轨迹点确定为目标轨迹点。
在确定目标轨迹点的时候,例如可以根据获取的至少一个障碍物的位置,若确定轨迹点对应的车辆行驶区域中存在障碍物,则可以将该轨迹点确定为目标轨迹点。
例如可以结合图9进行理解,如图9所示,例如当前存在图9所示的障碍物91、障碍物92、障碍物93、障碍物94、障碍物95、障碍物96、障碍物97,其中,每个障碍物均对应各自的位置,则可以根据各个障碍物的位置以及各个轨迹点各自对应的车辆行驶区域,确定目标轨迹点。
参加图9,当前在轨迹点3对应的车辆行驶区域901中存在障碍物91、障碍物92、障碍物93,则可以将轨迹点3确定为目标轨迹点。以及,当前轨迹点4对应的车辆行驶区域902中存在障碍物94、障碍物95、障碍物96,则可以将轨迹点4确定为目标轨迹点。
同时,参见图9,可以确定在轨迹点2对应的车辆行驶区域903附近,同样存在障碍物97,但是障碍物97并不在轨迹点2对应的车辆行驶区域903中,因此障碍物97并不会对车辆的通行造成阻碍,因此并不需要对障碍物97进行绕障处理,那么就不用将轨迹点2确定为目标轨迹点,因此在图9所示的场景下,会将轨迹点3和轨迹点4确定为目标轨迹点。
在本实施例中,目标轨迹点对应的车辆行驶区域内存在第一障碍物,在一种可能的实现方式中,第一障碍物为和车辆行驶区域距离最近的轨迹点,例如可参照图9进行理解,比如说针对图9中的轨迹点3,其对应的车辆行驶区域901内存在障碍物91、障碍物92、障碍物93。
基于图9可以确定的是,其中的障碍物92和车辆行驶区域901是距离最近的,其中的障碍物92也可以理解为最危险的障碍物,那么车辆在轨迹点3对应的位置,只要避开了障碍物92,那么也肯定可以避开障碍物91和障碍物93,那么可以将障碍物91确定为轨迹点3对应的第一轨迹点,之后基于第一轨迹点进行避障处理。
也就是说,本实施例中的目标轨迹点对应的车辆行驶区域中可以包括至少一个障碍物,那么可以将目标轨迹点对应的车辆行驶区域所包括的至少一个障碍物中,和车辆行驶区域的侧边距离最短的障碍物,确定为第一障碍物。
通过在车辆行驶区域中包括的至少一个障碍物中,确定第一障碍物,之后基于第一障碍物实现绕障处理,从而可以安全有效的实现对所有障碍物的规避,同时可以有效的减少绕障的计算量。
S607、获取第一障碍物与车辆行驶区域的第一侧边的第一距离,以及第一障碍物与车辆行驶区域的第二侧边的第二距离。
在确定各个目标轨迹点以及各个目标轨迹点各自对应的第一障碍物之后,就可以基于第一障碍物的位置,对目标轨迹点的位置进行更新,从而实现在目标轨迹点处的绕障了,在对目标轨迹点的位置进行更新的时候,具体是将目标轨迹点的位置进行移动,那么就要确定移动距离和移动方向。
此处首先对确定移动距离的实现方式进行介绍,在本实施例中,车辆行驶区域对应有两条侧边,例如可以分别表示为第一侧边和第二侧边,之后可以获取第一障碍物与对应的车辆行驶区域的第一侧边的第一距离,以及第一障碍物与车辆行驶区域的第二侧边的第二距离。
例如可以结合图10进行理解,如图10所示,假设当前轨迹点3为目标轨迹点,在目标轨迹点3对应的车辆行驶区域1001中包括第一障碍物1002。
其中,车辆行驶区域1001存在两条侧边,分别是1003指示的第一侧边和1004指示的第二侧边,则可以获取障碍物到两条侧边的距离,在一种可能的实现方式中,本实施例中确定到障碍物的侧边的距离的目的,是为了对障碍物进行规避,因此本实施例中获取的是障碍物距离侧边较远的边界到侧边的距离。
可以结合图10进行理解,当前障碍物1002和第一侧边1003的第一距离,就是障碍物1002的下边缘到第一侧边1003的距离β,其中障碍物1002的下边缘是远离第一侧边1003的边缘;以及当前障碍物1002到第二侧边1004的第二距离,就是障碍物1002的上边缘到第二侧边1004的距离α,其中障碍物1002的上边缘是远离第二侧边1004的边缘。
S608、将第一距离和第二距离中的最小值确定为目标距离。
在确定第一障碍物与第一侧边的第一距离,以及第一障碍物与第二侧边的第二距离之后,可以将第一距离和第二距离中的最小值确定为目标距离。
可以理解的是,当前的目标距离是需要将目标轨迹点进行平移的基础距离,实际上将目标轨迹点向第一侧边对应的远离第一障碍物的方向至少移动第一距离,或者将目标轨迹点向第二侧边对应的第一远离障碍物的方向至少移动第二距离,都可以实现避开第一障碍物,但是为了保证车辆的行驶路线尽可能的平稳,本实施例中选择将第一距离和第二距离中的最小值确定为移动距离,以减少车辆路线的改动,进而保证车辆的平稳运行。
S609、将目标距离和预设误差信息之和确定为移动距离,其中,预设误差信息包括如下中的至少一种:预设感知误差、预设定位误差、预设控制误差。
本实施例中将车辆平移目标距离之后,理论上是可以实现避开障碍物的,但是在自动驾驶处理过程中,各个处理单元会存在一定的误差,因此可以将目标距离加上预设误差信息之后得到的距离,确定为移动距离。
其中,预设误差信息例如可以包括预设感知误差、预设定位误差、预设控制误差,其中,预设感知误差可以理解为感知单元的误差,比如说感知单元在进行障碍物感知的时候,会存在一定的误差;以及,预设定位误差可以理解为定位单元的误差,比如说定位单元在对车辆进行定位的时候,会存在一定的误差;以及,预设控制误差可以理解为控制单元的误差,如上控制单元在控制车辆移动的时候,会存在一定的误差,因此可以考虑这些处理单元的误差余量,从而得到移动距离,以保证将目标轨迹点移动相应的移动距离之后,能够准确有效的实现第一障碍物的规避。
可以理解的是,本实施例中的目标距离还可以理解为障碍物进入车辆行驶区域的深度,则本实施例中实际上是根据障碍物进入车辆行驶区域的深度,以及各个处理单元的误差余量之和,得到了目标轨迹点的移动距离。
S610、若第一距离小于或等于第二距离,则确定移动方向为第一障碍物指向第二侧边的方向,移动方向与第二侧边垂直。
本实施例中还需要确定目标轨迹点对应的移动方向,可以理解的是,移动方向是指示将目标轨迹点向哪个方向移动,移动的目的是为了实现对第一障碍物的绕障,则总体来说,需要将远离障碍物的方向确定为移动方向。
在一种可能的实现方式中,若第一距离小于或等于第二距离,则表示第一障碍物和车辆行驶区域的第一侧边的距离更近,则为了实现避开障碍物,可以将第一障碍物指向第二侧边,并且与第二侧边垂直的方向,确定为移动方向,例如可以结合图11进行理解。
如图11所示,当前目标轨迹点3对应的车辆行驶区域1101,其第一侧边为1103,第二侧边为1104,基于图11可以确定的是,当前第一障碍物1102距离车辆行驶区域1101的第一侧边1103的距离更近,也就是说当前第一距离小于第二距离,那么当前在移动目标轨迹点的时候,需要远离第一障碍物1102,以保证移动之后障碍物不在车辆行驶区域中,则可以将第一障碍物1102指向第二侧边1104,并且与第二侧边1104垂直的方向A,确定为移动方向。
S610、若第一距离大于第二距离,则确定移动方向为第一障碍物指向第一侧边的方向,移动方向与第一侧边垂直。
在另一种可能的实现方式中,若第一距离大于第二距离,则表示第一障碍物和车辆行驶区域的第二侧边的距离更近,则为了实现避开障碍物,可以将第一障碍物指向第一侧边,并且与第一侧边垂直的方向,确定为移动方向,例如可以结合图12进行理解。
如图12所示,当前目标轨迹点3对应的车辆行驶区域1201,其第一侧边为1203,第二侧边为1204,基于图12可以确定的是,当前第一障碍物1202距离车辆行驶区域1201的第二侧边1203的距离更近,也就是说当前第一距离大于第二距离,那么当前在移动目标轨迹点的时候,需要远离第一障碍物1202,以保证移动之后障碍物不在车辆行驶区域中,则可以将第一障碍物1202指向第一侧边1203,并且与第一侧边1204垂直的方向B,确定为移动方向。
S611、将目标轨迹点的位置向移动方向移动相应的移动距离,得到移动后的目标轨迹点。
在确定移动方向和移动距离之后,就可以对目标轨迹点进行移动了,具体的,可以将目标轨迹点的位置向上述确定的移动方向移动相应的移动距离,从而得到移动后的目标轨迹点。
例如可以结合图13进行理解,如图13所示,假设当前针对目标轨迹点3,确定的移动距离为图13中的θ所示的距离,移动方向为图13中的箭头B所指示的方向,则可以将轨迹点3向箭头B所指示的方向平移距离θ,从而得到移动后的目标轨迹点3`。
如图13所示,移动后的目标轨迹点3`对应更新后的车辆行驶区域1301,其中车辆行驶区域1301就避开了障碍物1302,其中确定车辆行驶区域的确定方式与上述介绍的类似,此处不再赘述。
本实施例中移动目标轨迹点的位置的实现方式可以通俗的理解为,轨迹点进入了车辆行驶轨迹多少深度,那么就在进入的这个深度的基础上,加上相应的误差余量,将轨迹点将远离障碍物的方向移动多少距离,以实现绕障处理。
S612、根据移动后的目标轨迹点,在初始行驶路线中更新目标轨迹点的位置。
在对各个目标轨迹点进行移动之后,就可以根据更新后的目标轨迹点,在初始行驶路线中对各个目标轨迹点的位置进行更新,以得到更新后的初始行驶路线,在更新后的初始行驶路线中包括更新后的各个目标轨迹点。
例如可以结合图14进行理解,如图14所示,假设当前初始行驶路线为图14中的1401所示的路线,在初始行驶路线1401中包括轨迹点1、轨迹点2、轨迹点3、轨迹点4、轨迹点5、轨迹点6。
假设其中的轨迹点3为目标轨迹点,若更新后的目标轨迹点为图14中的3`所示的轨迹点,则可以将初始行驶路线中的目标轨迹点3对应的位置,更新至移动后的目标轨迹点3`所示的位置,以保证对目标轨迹点3处的障碍物进行绕障。
S613、根据更新处理后的目标轨迹点以及初始行驶路线中的起始轨迹点和结束轨迹点,对初始行驶路线中未更新处理的其余轨迹点进行平滑处理,得到目标行驶路线。
同时,本实施例中除了会对目标轨迹点的位置进行移动之外,为了保证车辆可以平滑的行驶,还可以针对其余的轨迹点同样进行移动,从而保证车辆行驶的路线不会太过于生硬,从而出现急转弯等情形,以保证车辆的平滑行驶。
可以理解的是,在平滑处理的过程中,更新处理后的目标轨迹点的位置,以及初始行驶路线中的起始轨迹点的位置和结束轨迹点的位置是不会发生变化的,因此可以根据更新处理后的目标轨迹点以及初始行驶路线中的起始轨迹点和结束轨迹点,对初始行驶路线中未更新处理的其余轨迹点进行平滑处理,其中平滑处理实际上也是对未更新的各个其余轨迹点进行了平移,从而得到目标行驶路线,其中,目标行驶路线中包括更新处理后的目标轨迹点、起始轨迹点、结束轨迹点以及平滑处理后的其余轨迹点。
在实际实现过程中,平滑处理的具体实现方式可以根据实际需求进行选择,其可以为任一种可能的平滑算法,本实施例对此不做限制。
例如可以参照图14理解,在图14中,轨迹点3`为更新后的目标轨迹点,轨迹点1为起始轨迹点,轨迹点2为结束轨迹点,保持这3个轨迹点的位置,然后对其余的轨迹点进行平滑处理,例如将轨迹点2移动到了图14中的2`所示的位置,以及将轨迹点4移动到了图14中的4`所示的位置,从而得到图14所示的目标行驶路线1402,在目标行驶路线1402中包括更新处理后的目标轨迹点3`,起始轨迹点1,结束轨迹点2,以及平滑处理后的其余轨迹点2`、4`、5。
S614、控制车辆按照目标行驶路线行驶。
在确定目标行驶路线之后,就可以控制车辆按照目标行驶路线进行行驶了,在车辆按照目标行驶路线行驶的过程中,可以有效的实现绕障,并且可以保证车辆的平滑行驶。
本公开实施例提供的路线处理方法,通过将车辆投影区域进行横向和纵向扩展之后,得到车辆行驶区域,之后根据车辆行驶区域内是否存在障碍物,确定目标轨迹点,从而可以在实际处理过程中,预留一部分的容差距离,以有效提升绕障处理的性能和安全性。同时,在确定目标轨迹点之后,将和目标轨迹点对应的车辆行驶区域的侧边距离最短的障碍物,确定为第一障碍物,从而可以安全有效的实现对所有障碍物的规避,同时可以有效的减少绕障的计算量。并且本实施例中通过确定移动方向和移动距离,之后将目标轨迹点向移动方向移动相应的移动距离,从而可以简单有效的实现绕障处理,此过程中的计算量是非常小的。同时在对目标轨迹点的位置进行更新之后,对初始行驶轨迹中的区域轨迹点同样进行平滑处理,从而可以有效保证最终得到的目标行驶轨迹是平滑的轨迹,以有效保证了车辆运行的平稳性和安全性。
在上述实施例的基础上,在把目标轨迹点向移动方向移动相应的移动距离之后,还可以进一步的对移动方向对应的另一侧的障碍物进行规避,从而进一步的保证车辆绕障处理的安全性,下面结合图15至图18对路线处理方法进行进一步的详细介绍。
图15为本公开实施例提供的路线处理方法的流程图三,图16为本公开实施例提供的车辆行驶区域包括第二障碍物的示意图,图17为本公开实施例提供的对第二障碍物进行绕障的实现示意图,图18为本公开实施例提供的车辆行驶区域不包括第二障碍物的示意图。
如图15所示,该方法包括:
S1501、确定移动后的目标轨迹点对应的车辆行驶区域。
在对目标轨迹点进行移动之后,移动后的目标轨迹点同样对应有车辆行驶区域,因此可以确定移动后的目标轨迹点对应的车辆行驶区域,其中,确定移动后的目标轨迹点对应的车辆行驶区域的实现方式,与上述介绍的确定轨迹点对应的车辆行驶区域的实现方式类似,此处不再赘述。
S1502、判断移动后的目标轨迹点对应的车辆行驶区域中是否存在第二障碍物,若是,则执行S1502,若否,则执行S1507。
基于上述介绍可以确定的是,在对目标轨迹点进行移动之后,实际上就已经实现了对第一障碍物的绕障,因此在移动后的目标轨迹点对应的车辆行驶区域中是不存在第一障碍物的。
但是目标轨迹点向移动方向移动之后,相应的车辆行驶区域就也进行了移动,因此移动后的目标轨迹点对应的车辆行驶区域中可能出现新的第二障碍物,其中,第二障碍物的概念与上述第一障碍物的概念类似,只是第二障碍物是与第一障碍物不同的障碍物。
S1503、根据第二障碍物的位置和第一障碍物的位置,确定第二障碍物和第一障碍物在移动方向上的距离。
在一种可能的实现方式中,移动后的目标轨迹点对应的车辆行驶区域中存在第二障碍物,也就表示,在对目标轨迹点进行移动之后,车辆行驶区域中出现了新的障碍物。
例如可以结合图16进行理解,比如说图16中的16A表示的是移动目标轨迹点之前的状态,参见图16,假设当前的轨迹点3为目标轨迹点,在移动目标轨迹点3之前,目标轨迹点3对应的车辆行驶区域1602中存在第一障碍物1601,以及在车辆行驶区域的外侧还存在第二障碍物1603,因为第一障碍物1601在车辆行驶区域1602中,则需要对第一障碍物1601进行绕障处理,具体的,可以将目标轨迹点3向移动方向移动相应的移动距离,从而得到移动后的目标轨迹点。
例如可以参照图16中的16B理解移动目标轨迹点之后的状态,参见图16中的16B,在将目标轨迹点3移动相应的距离之后,可以得到移动后的目标轨迹点3`,其中,目标轨迹点3`对应的车辆行驶区域1604中已经不包括第一障碍物1601了,也就是说实现了对第一障碍物1601的绕障处理。
但是,在目标轨迹点3`对应的车辆行驶区域1604中包括了第二障碍物1603,也就是说在移动轨迹点之后,原来不包括在车辆行驶区域中的障碍物,现在包括在车辆行驶区域中了,则针对另一侧的第二障碍物,同样需要进行规避处理。
在一种可能的实现方式中,例如可以首先根据第二障碍物的位置和第一障碍物的位置,确定第二障碍物和第一障碍物在移动方向上的距离。
例如可以结合图17进行理解,如图17所示,假设图17中的1701为第一障碍物,1702为第二障碍物,在将目标轨迹点3向箭头A所指示的移动方向移动相应的移动距离之后,得到移动后的目标轨迹点3`,从而实现了对第一障碍物1701的绕障。
其中,移动后的目标轨迹点3`对应的车辆行驶区域为图17中的1703所指示的区域,结合图17可以确定的是,在图17中基于实线框的车辆投影区域进行扩展,得到车辆行驶区域时,是在横向上的两侧进行了矩形的扩展,在纵向上的一侧进行了圆形的扩展,从而得到了图17中的虚线1703所指示的车辆行驶区域。
其中,车辆行驶区域1703为移动后的目标轨迹点3`对应的车辆行驶区域,参见图17,在车辆行驶区域1703中存在第二障碍物1702,则同样需要针对第二障碍物1702进行绕障处理,可以获取第一障碍物1701和第二障碍物1702在移动方向A上的距离,也就是图17中的η所指示的距离。
S1504、判断移动方向上的距离是否大于预设距离,若是,则执行S1504,若否,则执行S1505。
在确定第一障碍物和第二障碍物在移动方向上的距离之后,可以首先将移动方向上的距离和预设距离进行比较,本实施例中的预设距离大于或等于车辆的宽度,因此当前的判断可以理解为,判断两个障碍物在移动方向上的距离是否足够车辆通行。
S1505、将移动后的目标轨迹点向移动方向的反方向移动,移动至和移动方向上的距离的中点对应的位置,得到更新后的目标轨迹点的位置。
在一种可能的实现方式中,若确定第一障碍物和第二障碍物在移动方向上的距离大于预设距离,则可以确定第一障碍物和第二障碍物之间的距离是足够车辆通行的,则为了实现对第二障碍物的绕障,同时保证两侧通行的安全性,在可以将移动后的目标轨迹点向上述确定的移动方向的反方向进行移动,当前这样移动是为了远离第二障碍物。
具体的,可以将移动后的目标轨迹点移动至和移动方向上的距离的中点对应的位置,也就是说将目标轨迹点移动至两个障碍物的中间位置,从而保证两侧通行的安全性。
例如可以结合图17进行理解,参见图17,在将目标轨迹点3向移动方向A移动相应的移动距离之后,得到移动后的目标轨迹点3`,因为当前确定移动后的目标轨迹点3`的车辆行驶区域1703中存在第二障碍物1702,则需要将移动后的目标轨迹点3`向移动方向A的反方向进行移动,也就是向图17中的箭头B所指示的方向进行移动。
移动到两个障碍物的移动方向上的距离的中点对应的位置,在图17中,两个障碍物的移动方向上的距离为η所指示的距离,则移动方向上的距离的中点为图17中的1704所指示的位置,则可以将目标轨迹点3`向箭头B所指示的方向,移动至和中点1704对应的位置,从而得到更新后的目标轨迹点3``,其位置可以参照图17进行理解。
在本实施例中,通过将移动后的目标轨迹点进行再次的移动,并且移动至两个障碍物在移动方向上的距离的中点对应的位置,从而可以有效实现对第二障碍物的避障,并且同时保证两侧通行的安全性。
S1506、控制车辆停止行驶,并向目标设备发送指示信息,其中,指示信息用于指示车辆无法通行。
在另一种可能的实现方式中,若确定第一障碍物和第二障碍物在移动方向上的距离小于等于预设距离,则可以确定第一障碍物和第二障碍物之间的距离是不够车辆通行的,因此当前不管车辆怎么调整位置,都无法实现对障碍物的绕障。
为了保证车辆行驶的安全性,当前可以控制车辆停止行驶,并且向目标设备发送指示信息,指示信息用于指示当前车辆无法通行。
S1507、将移动后的目标轨迹点的位置确定为更新后的目标轨迹点的位置。
在另一种可能的实现方式中,若移动后的目标轨迹点对应的车辆行驶区域中不存在第二障碍物,也就是说在对目标轨迹点进行移动之后,另一侧也没有障碍物的影响,在可以直接将移动后的目标轨迹点的位置确定为更新后的目标轨迹点的位置,之后按照该更新后的目标轨迹点的位置进行通行即可。
例如可以结合图18进行理解,比如说图18中的18A表示的是移动目标轨迹点之前的状态,参见图18,假设当前的轨迹点3为目标轨迹点,在移动目标轨迹点3之前,目标轨迹点3对应的车辆行驶区域1802中存在第一障碍物1801,以及在车辆行驶区域的外侧还存在第二障碍物1803,因为第一障碍物1801在车辆行驶区域1802中,则需要对第一障碍物1801进行绕障处理,具体的,可以将目标轨迹点3向移动方向移动相应的移动距离,从而得到移动后的目标轨迹点。
例如可以参照图18中的18B理解移动目标轨迹点之后的状态,参见图18中的18B,在将目标轨迹点3移动相应的距离之后,可以得到移动后的目标轨迹点3`,其中,目标轨迹点3`对应的车辆行驶区域1804中已经不包括第一障碍物1801了,也就是说实现了对第一障碍物1801的绕障处理。
同时,在目标轨迹点3`对应的车辆行驶区域1804中也不包括第二障碍物1803,也就是说针对另一侧不存在障碍物需要绕障,因此可以直接将移动后的目标轨迹点3`确定为更新后的目标轨迹点。
本公开实施例提供的路线处理方法,通过在对目标轨迹点进行移动之后,对移动相应的另一侧的第二障碍物同样进行绕障处理,具体的,将目标轨迹点移动至两个障碍物在移动方向上的距离的中点对应的位置,从而可以有效保证车辆两侧的通行安全性。
在上述介绍的各实施例的基础上,此处还需要说明的是,本公开实施例工的路线处理方法,是按照一定的频率实时进行的,比如说按照10帧/秒的频率进行处理,也就是说在每秒内获取10帧图像,针对每一帧图像都进行上述的处理过程,以实现实时的绕障处理,同时可以理解的是,针对静态的障碍物,其在每一帧图像中的位置是不会发生变化的,因此可以有效的实现绕障处理;针对动态的障碍物,虽然其位置会发生变化,但是因为本实施例中是按照图像帧中的障碍物位置进行处理,因此动态的障碍物也会转化为静态的障碍物进行实时的处理,因此也可以实现有效的绕障处理,在实际实现过程中,获取图像帧的频率的具体实现可以根据实际需求进行选择,本实施例对此不做限制。
图19为本公开实施例的路线处理装置的结构示意图。如图19所示,本实施例的路线处理装置1900可以包括:获取模块1901、确定模块1902、更新模块1903、控制模块1904。
获取模块1901,用于获取车辆对应的初始行驶路线,所述初始行驶路线包括多个轨迹点;
确定模块1902,用于确定每个轨迹点对应的车辆行驶区域,所述车辆行驶区域包括所述车辆行驶至所述轨迹点时所述车辆所在的区域;
所述确定模块1902,还用于根据每个轨迹点对应的车辆行驶区域,在所述多个轨迹点中确定至少一个目标轨迹点,所述目标轨迹点对应的车辆行驶区域内存在第一障碍物;
更新模块1903,用于根据所述至少一个目标轨迹点的位置和每个目标轨迹点对应的第一障碍物的位置,在所述初始行驶路线中分别对每个目标轨迹点的位置进行更新处理,并根据更新处理后的目标轨迹点得到目标行驶路线;
控制模块1904,用于控制所述车辆按照所述目标行驶路线行驶。
一种可能的实现方式中,针对所述至少一个目标轨迹点中的任意一个目标轨迹点;所述更新模块1903具体用于:
根据所述车辆行驶区域的位置和所述目标轨迹点对应的第一障碍物的位置,确定所述目标轨迹点的移动方向和移动距离;
根据所述目标轨迹点的移动方向和移动距离,在所述初始行驶路线中更新所述目标轨迹点的位置。
一种可能的实现方式中,所述更新模块1903具体用于:
获取所述第一障碍物与所述车辆行驶区域的第一侧边的第一距离,以及所述第一障碍物与所述车辆行驶区域的第二侧边的第二距离;
将所述第一距离和所述第二距离中的最小值确定为目标距离;
将所述目标距离和预设误差信息之和确定为所述移动距离,其中,所述预设误差信息包括如下中的至少一种:预设感知误差、预设定位误差、预设控制误差。
一种可能的实现方式中,所述更新模块1903具体用于:
若所述第一距离小于或等于所述第二距离,则确定所述移动方向为所述第一障碍物指向所述第二侧边的方向,所述移动方向与所述第二侧边垂直;
若所述第一距离大于所述第二距离,则确定所述移动方向为所述第一障碍物指向所述第一侧边的方向,所述移动方向与所述第一侧边垂直。
一种可能的实现方式中,所述更新模块1903具体用于:
将所述目标轨迹点的位置向所述移动方向移动所述移动距离,得到移动后的目标轨迹点;
根据所述移动后的目标轨迹点,在所述初始行驶路线中更新所述目标轨迹点的位置。
一种可能的实现方式中,所述更新模块1903具体用于:
确定所述移动后的目标轨迹点对应的车辆行驶区域;
若所述移动后的目标轨迹点对应的车辆行驶区域中不存在第二障碍物,则将所述移动后的目标轨迹点的位置确定为更新后的目标轨迹点的位置;
若所述移动后的目标轨迹点对应的车辆行驶区域中存在第二障碍物,则根据所述第二障碍物的位置和所述第一障碍物的位置,在所述初始行驶路线中更新所述目标轨迹点的位置。
一种可能的实现方式中,所述更新模块1903具体用于:
根据所述第二障碍物的位置和所述第一障碍物的位置,确定所述第二障碍物和所述第一障碍物在所述移动方向上的距离;
若所述移动方向上的距离大于预设距离,则将所述移动后的目标轨迹点向所述移动方向的反方向移动,移动至和所述移动方向上的距离的中点对应的位置,得到更新后的所述目标轨迹点的位置,所述预设距离大于或等于所述车辆的宽度。
一种可能的实现方式中,所述控制模块1904还用于:
若所述垂直距离小于等于所述预设距离,则控制车辆停止行驶,并向目标设备发送指示信息,其中,所述指示信息用于指示所述车辆无法通行。
一种可能的实现方式中,所述确定模块1902具体用于:
获取所述轨迹点对应的车头角度;
根据所述轨迹点对应的车头角度、所述轨迹点的位置以及车辆的长度和宽度,得到所述轨迹点对应的车辆投影区域;
将所述车辆投影区域的横向扩展第一长度,和/或,将所述车辆投影区域的纵向扩展第二长度,得到所述轨迹点对应的车辆行驶区域。
一种可能的实现方式中,所述更新模块1903具体用于:
根据更新处理后的目标轨迹点以及所述初始行驶路线中的起始轨迹点和结束轨迹点,对所述初始行驶路线中未更新处理的其余轨迹点进行平滑处理,得到目标行驶路线;
其中,所述目标行驶路线中包括所述更新处理后的目标轨迹点、所述起始轨迹点、所述结束轨迹点以及所述平滑处理后的其余轨迹点。
一种可能的实现方式中,所述确定模块1902具体用于:
获取至少一个障碍物的位置;
若根据所述至少一个障碍物的位置,确定轨迹点对应的车辆行驶区域中存在障碍物,则将所述轨迹点确定为目标轨迹点。
一种可能的实现方式中,所述确定模块1902还用于:
在所述在所述多个轨迹点中确定至少一个目标轨迹点之后,针对各所述目标轨迹点,将所述目标轨迹点对应的车辆行驶区域所包括的至少一个障碍物中,和所述车辆行驶区域的侧边距离最短的障碍物,确定为所述第一障碍物。
本公开提供一种路线处理方法及装置,应用于计算机技术中的自动驾驶领域,以达到在算力资源有限的情况下,保证车辆实现准确安全的绕障的目的。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图8示出了可以用来实施本公开的实施例的示例电子设备2000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图20所示,电子设备2000包括计算单元2001,其可以根据存储在只读存储器(ROM)2002中的计算机程序或者从存储单元2008加载到随机访问存储器(RAM)2003中的计算机程序,来执行各种适当的动作和处理。在RAM 2003中,还可存储设备2000操作所需的各种程序和数据。计算单元2001、ROM 2002以及RAM 2003通过总线2004彼此相连。输入/输出(I/O)接口2005也连接至总线2004。
设备2000中的多个部件连接至I/O接口2005,包括:输入单元2006,例如键盘、鼠标等;输出单元2007,例如各种类型的显示器、扬声器等;存储单元2008,例如磁盘、光盘等;以及通信单元2009,例如网卡、调制解调器、无线通信收发机等。通信单元2009允许设备2000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元2001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元2001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元2001执行上文所描述的各个方法和处理,例如路线处理方法。例如,在一些实施例中,路线处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元2008。在一些实施例中,计算机程序的部分或者全部可以经由ROM2002和/或通信单元2009而被载入和/或安装到设备2000上。当计算机程序加载到RAM 2003并由计算单元2001执行时,可以执行上文描述的路线处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元2001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行路线处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。