无人车停车方法、装置、电子设备和计算机可读介质
文献发布时间:2023-06-19 11:29:13
技术领域
本公开的实施例涉及无人车技术领域,具体涉及无人车停车方法、装置、电子设备和计算机可读介质。
背景技术
无人车需要在居民小区、写字楼、商场门口等车辆和行人较多,环境较为复杂的场景下停车。这些区域往往与公开道路相邻,车辆将在这些区域进行自由空间规划。常用的无人车停车方案为设定一个基准停车位置,无人车向基准停车位置进行运动,直至到达后完成停车操作。
在现有技术中,无人车停车存在以下问题:
第一,当原始停靠点被占据时,无人车将无法继续停车。此时可以更换停车位置,通过人工选定或自动选定周围的其他停车位置来停车,停车效率不高;
第二,由于环境的不确定性,有时更换其他停车位置也无法停车,只能进行远程人工接管,降低了无人车的停车效率。
发明内容
本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开的一些实施例提出了无人车停车方法、装置、电子设备和计算机可读介质,来解决以上背景技术部分提到的技术问题。
第一方面,本公开的一些实施例提供了一种无人车停车方法,该方法包括:响应于上述无人车到达预定位置,检测基准停车位置的第一占用状态信息,上述第一占用状态信息为未占用或已占用;响应于上述第一占用信息为已占用,基于上述基准停车位置生成至少一个邻居节点,并通过上述至少一个邻居节点确定目标停车位置。
第二方面,本公开的一些实施例提供了一种无人车停车装置,该装置包括:第一占用状态信息检测单元,被配置成响应于上述无人车到达预定位置,检测基准停车位置的第一占用状态信息,上述第一占用状态信息为未占用或已占用;目标停车位置确定单元,被配置成响应于上述第一占用信息为已占用,基于上述基准停车位置生成至少一个邻居节点,并通过上述至少一个邻居节点确定目标停车位置。
第三方面,本公开的一些实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面任一实现方式所描述的方法。
第四方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现上述第一方面任一实现方式所描述的方法。
本公开的上述各个实施例中具有如下有益效果:通过本公开的一些实施例的无人车停车方法确定了目标停车位置,使得无人车的停车效率有所提高。具体来说,造成无人车的停车效率不够高的原因在于:基准停车位置被占用的情况下,无人车无法在基准停车位置停车。基于此,本公开的一些实施例的无人车停车方法可以在基准停车位置生成至少一个邻居节点,并通过邻居节点确定目标停车位置。进而实现了在基准停车位置附近停车。也因为能够通过基准停车位置附近的邻居节点确定目标停车位置,从而避免了停车过程的人工干预,提高了无人车的停车效率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,元件和元素不一定按照比例绘制。
图1是本公开的一些实施例的无人车停车方法的无人车模块工作流程图;
图2是本公开的一些实施例的无人车停车方法的应用场景的示意图;
图3是根据本公开的无人车停车方法的一些实施例的流程图;
图4是根据本公开的无人车停车方法的另一些实施例的流程图;
图5是根据本公开的无人车停车方法的又一些实施例的流程图;
图6是根据本公开的无人车停车装置的一些实施例的结构示意图;
图7是适于用来实现本公开的一些实施例的电子设备的结构示意图。
图8是本公开邻居节点的各个损失值的计算示意图;
图9是本公开的备选停车凸包区域的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本公开。
图1是根据本公开一些实施例的无人车停车方法的无人车模块工作流程图。如图1所示,停车过程在规划决策模块中的停车场景中执行。规划决策模块将从定位模块获得当前车辆在地图坐标系下的坐标,从高精地图模块得到精准的地图信息及转换后的语义信息,从感知模块中得到无人车周围的障碍物信息及交通灯信息等,从道路路由模块得到当前任务自起始配送点到停靠点的车道级道路指引线,从任务状态中获得本次配送任务的具体信息。
以上数据传入规划决策模块后,将进行数据初始化,在该模块中构建不同场景。通过以上模块的数据实现场景间的切换,在场景内执行各个规划决策算法。其中,停车场景即本发明重点介绍的场景,在距离停靠点一定距离时,将切入此场景。在停车场景中,通过构建可行的停靠点和停靠区域,将目标点信息用于路径规划和速度规划,最终获得一条带有速度和时间信息的轨迹,传入最终的控制模块,实现车辆的停靠过程。
图2是根据本公开一些实施例的无人车停车方法的一个应用场景的示意图。
如图2所示,包括无人车201、第一基准停车位置202、第二基准停车位置203、道路边界204、道路中心线205。第一基准停车位置202对应有备选停车区域2021和多个目标邻居节点2022。第二基准停车位置203对应有备选停车区域2031和多个目标邻居节点2032。当无人车201到达预定位置时,可以通过无人车201上的雷达或摄像头等设备检测第一基准停车位置202的第一占用状态信息。第一基准停车位置202没有被其他车辆或物体占用时,第一占用状态信息为未占用。此时,无人车201可以在第一基准停车位置202处停车。停车位置202实际上是一片区域,在规划算法中,通过传入一个基准停车位置进行路径规划。当原始基准停车位置被占据时,通过选择停靠区域内的其他合理基准停车位置代替原始基准停车位置用于规划。停靠完成的条件有两个,第一为顺利到达基准停车位置,车辆后轴中心与基准停车位置距离在一定范围内,角度在一定范围内,认为到达;第二个条件为无法到达基准停车位置时,若此时无人车后轴中心点在停靠区域内,角度也满足时,认为到达。当第一占用状态信息为已占用时,无人车201可以在第一基准停车位置202附近的备选停车区域2021生成多个邻居节点。其中,备选停车区域2021可以是综合考虑了道路边界204和道路中心线205等因素后确定的。相邻的邻居节点之间的距离可以是设定距离(例如可以是30厘米等)。然后在从多个邻居节点中确定目标停车位置。当无法在备选停车区域2021找到合适的目标停车位置是,无人车201还可以在第二基准停车位置203进行上述的停车操作。如此,实现了在第一基准停车位置202被占用且无需人工干预的情况下,根据第一基准停车位置202附近的实际情况重新选择停车位置。如此,避免了人工干预,提高了无人车的停车效率。
继续参考图3,图3示出了根据本公开的无人车停车方法的一些实施例的流程300。该无人车停车方法,包括以下步骤:
步骤301,响应于上述无人车到达预定位置,检测基准停车位置的第一占用状态信息。
在一些实施例中,无人车停车方法的执行主体(例如图2所示的无人车201,还可以是控制无人车201的网络端或路端设备)可以通过有线连接方式或者无线连接方式检测是否到达预定位置。
通常,执行主体在道路行驶时的行驶状态与停车时的行驶状态不同。当执行主体需要在基准停车位置停车时,需要先结束道路行驶的行驶状态,然后再进入停车时的行驶状态。则预定位置可以是结束道路行驶时执行主体所在的位置,或开始进入停车时执行主体所在的位置。通常,预定位置与基准停车位置之间留有足够的调整空间。当执行主体到达预定位置后,可以通过执行主体上的雷达或摄像头等设备检测基准停车位置的第一占用状态信息。上述第一占用状态信息为未占用或已占用。即,当基准停车位置被其他车辆或物体占用时,第一占用状态信息为已占用,否则为未占用。
步骤302,响应于上述第一占用信息为已占用,基于上述基准停车位置生成至少一个邻居节点,并通过上述至少一个邻居节点确定目标停车位置。
在一些实施例中,执行主体可以根据第一占用信息的具体内容确定无人车的停车位置。当第一占用信息为未占用时,说明基准停车位置可以停放无人车。此时,执行主体可以控制无人车在基准停车位置处停车。当第一占用信息为已占用时,说明其他物品阻挡了无人车在基准停车位置的正常停车。此时,执行主体可以更换另一基准停车位置停车。但是,在更换另一基准停车位置时,可能同样遇到基准停车位置被占用的情况。为此,本申请执行主体可以在不更换基准停车位置的情况下,在现有的基准停车位置附近的可用空间重新生成至少一个邻居节点,并通过邻居节点重新确定可用于停放无人车的目标停车位置。即,目标停车位置在基准停车位置的附近,无人车在目标停车位置停车也认为停车成功。其中,可用空间基于基准停车位置以及停靠边界确定,在垂直距离停靠边界为车宽(或车长,与停靠时车辆是平行停靠还是垂直停靠有关)加上一个0.5米至1米的缓冲区,平行距离与目标点距离在10米内,且在停靠道路边界覆盖范围内的区域可以认为是可用空间。生成邻居节点的步长可以结合车辆尺寸和实际规划算法效果来确定,通常在0.2米左右,与无人车的转弯半径无关。如此,大大提高了无人车停车的冗余性和效率。
本公开的一些实施例公开的无人车停车方法,确定了目标停车位置,使得无人车的停车效率有所提高。具体来说,造成无人车的停车效率不够高的原因在于:基准停车位置被占用的情况下,无人车无法在基准停车位置停车。基于此,本公开的一些实施例的无人车停车方法可以在基准停车位置生成至少一个邻居节点,并通过邻居节点确定目标停车位置。进而实现了在基准停车位置附近停车。也因为能够通过基准停车位置附近的邻居节点确定目标停车位置,从而避免了停车过程的人工干预,提高了无人车的停车效率。
继续参考图4,图4示出了根据本公开的无人车停车方法的一些实施例的流程400。该无人车停车方法,包括以下步骤:
步骤401,响应于上述无人车到达预定位置,检测基准停车位置的第一占用状态信息。
步骤401的内容与步骤301的内容相同,此处不再一一赘述。
步骤402,响应于上述第一占用信息为已占用,确定上述基准停车位置的停车方向。
当第一占用信息为已占用时,执行主体可以在基准停车位置附件生成至少一个邻居节点。实际中,基准停车位置在确定时已经考虑了无人车的停车角度以及无人车占据的空间。并且基准停车位置与实际停车场景也是相适应的。例如,实际停车场景都是朝向某一方向停车等。为此,在生成邻居节点时,需要考虑基准停车位置的停车方向。通常,基准停车位置的停车方向可以认为是无人车的车头方向或车尾方向。
步骤403,以上述基准停车位置为初始节点,基于上述停车方向生成至少一个邻居节点。
确定了停车方向后,执行主体可以以基准停车位置为初始节点,基于上述停车方向生成至少一个邻居节点。具体的,执行主体可以以基准停车位置的中点为起点,沿多个方向,每间隔设定距离设置一个邻居节点。如此,可以生成多个邻居节点。其中,设定距离可以设置的较小(例如可以是20厘米),以尽量利用基准停车位置附近的空间实现停车。
在一些实施例的一些可选的实现方式中,上述以上述基准停车位置为初始节点,基于上述停车方向生成至少一个邻居节点,可以包括以下步骤:
第一步,以上述基准停车位置为初始节点,沿上述停车方向和与上述停车方向垂直的方向生成至少一个初始邻居节点。
为了充分利用基准停车位置附近的空闲空间,提升搜索效率,执行主体可以以上述基准停车位置为初始节点,沿上述停车方向和与上述停车方向垂直的方向生成至少一个初始邻居节点。通常,基准停车位置的方向,一定是通过现场设定,方向上是最为合理的,在进行BFS(Breadth First Search,广度优先搜索)扩展时,需要按一定分辨率构建网格,参考基准停车位置的方向进行垂直和水平扩展,符合实际情况。
第二步,获取上述基准停车位置的位置属性信息。
在生成初始邻居节点时,有些空间虽然也可以利用,但还是不能用于停放车辆。还有些空闲的空间可能影响到正常的车辆行驶。因此,执行主体需要获取上述基准停车位置的位置属性信息。上述位置属性信息可以包括以下至少一项:无人车占用空间信息、道路边界信息、道路中心线信息。
第三步,通过上述位置属性信息对上述至少一个初始邻居节点进行筛选,得到至少一个邻居节点。
得到位置属性信息后,执行主体可以通过位置属性信息对至少一个初始邻居节点进行筛选,从而得到可以用于停放无人车的至少一个邻居节点。
在一些实施例的一些可选的实现方式中,上述通过上述位置属性信息对上述至少一个初始邻居节点进行筛选,得到至少一个邻居节点,可以包括以下步骤:
第一步,获取上述基准停车位置的区域地图。
为了准确获取邻居节点,执行主体可以通过电子地图获取上述基准停车位置所在区域的区域地图。区域地图可以是高精地图。
第二步,基于上述位置属性信息将上述区域地图划分为可停车区域和不可停车区域。
执行主体可以通过位置属性信息与区域地图进行匹配,将区域地图划分为可停车区域和不可停车区域。例如,当位置属性信息为道路边界信息和道路中心线信息时,执行主体可以将区域地图中的、对应道路中心线信息的道路中线位置设定距离内的空间设置为不可停车区域(即靠近路中间的区域),将不可停车区域与道路边界信息对应的位置内的空间设置为可停车区域(即靠近路边的区域)。
第三步,从上述至少一个初始邻居节点中筛选出属于上述可停车区域的邻居节点。
确定了可停车区域后,执行主体可以将属于可停车区域的初始邻居节点设置为邻居节点。则邻居节点就是可以用于停放无人车的区域。
步骤404,计算上述至少一个邻居节点中每个邻居节点的损失值。
得到邻居节点后,执行主体可以计算每个邻居节点的损失值。上述损失值用于表征从上述基准停车位置到对应停车节点的损耗。损耗可以通过耗电量、耗油量、耗费时间等来表示。损失值可以是位姿损失值、停靠边界损失值、车道中心线损失值等。
在一些实施例的一些可选的实现方式中,上述计算上述至少一个邻居节点中每个邻居节点的损失值,可以包括:对于上述至少一个邻居节点中的邻居节点,计算该邻居节点与基准停车位置之间的第一距离,基于上述第一距离和第一权重计算位姿损失值。
邻居节点的损失值可以包括位姿损失值,上述位姿损失值用于表示从邻居节点到基准停车位置的损耗。位姿损失值可以通过第一距离和第一权重的乘积等方式表示。上述位姿损失值可以与上述第一距离为正比关系。上述第一权重可以为姿损失值在邻居节点的损失值中的权重。
位姿损失值还可以通过以下公式计算:
Cost
其中,Cost
由位姿损失值的计算公式可知,与基准停车位置越远的邻居节点位姿损失值越大,对应的,与基准停车位置越近的邻居节点位姿损失值越小。如图8所示,图8包括多个实心圆的无效的邻居节点(包括实心圆的邻居节点801和其他未标记的实心圆的邻居节点)、多个空心圆的有效的邻居节点804、边界线段802、设定停车距离803、基准停车位置805和车道中心线806。其中,邻居节点8041和邻居节点8042为多个有效的邻居节点804中两个不同的邻居节点。由图8可知,和邻居节点8041相比,邻居节点8042与基准停车位置805的距离更远。基于上述的位姿损失值的计算公式可知,邻居节点8042的位姿损失值更大。
在一些实施例的一些可选的实现方式中,上述计算该邻居节点与基准停车位置之间的第一距离,可以包括以下步骤:
第一步,查询上述无人车的至少一个基准停车位置。
实际中,无人车可以在目的地的至少一个基准停车位置出停车。为了确定位姿损失值,执行主体可以首先查询无人车的至少一个基准停车位置。通常,至少一个基准停车位置之间的相互距离较近。
第二步,计算该邻居节点分别与上述至少一个基准停车位置中每个基准停车位置的距离,得到至少一个距离信息。
执行主体可以分别计算当前的邻居节点与每个基准停车位置的距离,得到至少一个距离信息。则至少一个距离信息可以表示当前邻居节点与每个基准停车位置的相关程度。
第三步,将上述至少一个距离信息中取值最小的距离信息对应的基准停车位置设置为目标基准停车位置。
邻居节点与基准停车位置的距离越小,相关性也越大。为此,执行主体可以将取值最小的距离信息对应的基准停车位置设置为目标基准停车位置。即,最小的距离信息对应的基准停车位置的优先级最大。
第四步,计算该邻居节点与目标基准停车位置之间的第一距离。
确定了目标基准停车位置后,执行主体可以计算邻居节点与目标基准停车位置之间的第一距离。则后续都是对目标基准停车位置计算停靠边界损失值、车道中心线损失值等。
在一些实施例的一些可选的实现方式中,上述计算上述至少一个邻居节点中每个邻居节点的损失值,可以包括:对于上述至少一个邻居节点中的邻居节点,计算该邻居节点与道路边界之间的第二距离,基于上述第二距离和第二权重计算停靠边界损失值。
邻居节点的损失值可以包括停靠边界损失值,上述停靠边界损失值可以用于表示从邻居节点到道路边界的损耗。停靠边界损失值可以通过第二距离和第二权重的乘积等方式表示。上述第二距离可以为邻居节点到最近的道路边界的垂直距离。上述停靠边界损失值可以与上述第二距离为正比关系。上述第二权重为停靠边界损失值在邻居节点的损失值中的权重。
执行主体可以通过电子地图判断邻居节点与距离最近的道路边界的位置关系,根据该位置关系计算停靠边界损失值。停靠边界损失值还可以通过以下公式计算:
Cost
其中,Cost
由停靠边界损失值的计算公式可知,与基准停车位置越远的邻居节点停靠边界损失值越大,对应的,与基准停车位置越近的邻居节点停靠边界损失值越小。如图8所示,与邻居节点8043相比,邻居节点8042与道路边界更远。由上述停靠边界损失值的计算公式可知,邻居节点8042的停靠边界损失值大于邻居节点8043的停靠边界损失值。
在一些实施例的一些可选的实现方式中,上述基于上述第二距离和第二权重计算停靠边界损失值,可以包括以下步骤:
第一步,获取上述基准停车位置的区域地图。
此处区域地图与步骤303中的区域地图相同,可以是实景图或路线图等。区域地图可以包含道路边界,在区域地图中,道路边界可以通过多个边界点表示。对应的,上述区域地图包含的道路边界通过至少一个边界点表示。
第二步,从上述区域地图中识别出至少一个边界点,并基于上述至少一个边界点生成边界线段序列。
如图8所示,执行主体可以识别出区域地图中的边界点,并将相邻的边界点连接起来构成边界线段802,得到对应的道路边界的边界线段序列。
第三步,计算该邻居节点与上述边界线段序列中的、与该邻居节点垂直的目标边界线段之间的第二距离。
执行主体可以首先确定与邻居节点804相垂直的目标边界线段,然后再计算邻居节点804与目标边界线段之间的第二距离。图8中,通过邻居节点804与边界线段802之间的虚线来表示第二距离。
第四步,响应于上述第二距离小于设定距离条件,计算上述第二距离和第二权重计算该邻居节点的停靠边界损失值,否则,将该邻居节点的停靠边界损失值设置为无穷大。
设定距离条件包括以下至少一项:设定停车距离,道路边界长度。图8中,道路边界长度由多个边界线段802构成的折线段的两端组成。位于道路边界长度和设定停车距离803之间的空心的邻居节点804同时满足小于设定停车距离和道路边界长度的要求,为有效邻居节点。多个实心的邻居节点801为位于道路边界长度之外的无效邻居节点。其他的实心的无效邻居节点为位于设定停车距离之外的无效邻居节点。有效邻居节点可以计算对应的停靠边界损失值,无效邻居节点的停靠边界损失值设置为无穷大。
在一些实施例的一些可选的实现方式中,上述计算上述至少一个邻居节点中每个邻居节点的损失值,包括:对于上述至少一个邻居节点中的邻居节点,计算该邻居节点与道路中心线之间的第三距离,基于上述第三距离和第三权重计算位姿损失值。
邻居节点的损失值可以包括车道中心线损失值,上述车道中心线损失值可以用于表示从邻居节点到道路中心线的损耗。中心线损失值可以通过第三距离和第三权重的乘积等方式来表示。其中,上述位姿损失值可以与上述第三距离为反比关系;上述第三距离可以为邻居节点到最近的道路中心线的垂直距离;上述第三权重可以为车道中心线损失值在邻居节点的损失值中的权重。
车道中心线损失值可以通过以下公式计算:
其中,Cost
由车道中心线损失值的计算公式可知,与基准停车位置越远的邻居节点车道中心线损失值越小,对应的,与基准停车位置越近的邻居节点车道中心线损失值越大。如图8所示,相比邻居节点8042,邻居节点8043与车道中心线806的距离更远。由上述车道中心线损失值的计算公式可知,邻居节点8043的车道中心线损失值小于邻居节点8042的车道中心线损失值。
则每个邻居节点的损失值可以是位姿损失值、停靠边界损失值和车道中心线损失值之和。通常,损失值越小,则对应的邻居节点的优先级越高。
步骤405,按照损失值从小到大的顺序对上述至少一个邻居节点进行排序,得到邻居节点序列。
得到每个邻居节点的损失值后,执行主体可以按照损失值从小到大的顺序对邻居节点进行排序,得到邻居节点序列。
步骤406,基于上述邻居节点序列确定目标停车位置。
得到邻居节点序列后,执行主体可以从邻居节点序列中选择可用的邻居节点对应的空间作为目标停车位置。
在一些实施例的一些可选的实现方式中,上述邻居节点序列中的邻居节点包含序列号,上述序列号用于标识对应邻居节点在上述邻居节点序列中的排序;以及,上述基于上述邻居节点序列确定目标停车位置,可以包括以下步骤:
第一步,检测上述邻居节点序列中邻居节点的第二占用状态信息。
由上述描述可知,邻居节点序列中越靠前的邻居节点的损失值越小。实际中,邻居节点对应的空间的占用情况可能是变化的。因此,在确定目标停车位置时,执行主体需要进一步检测邻居节点的第二占用状态信息,以确定邻居节点是否可用。其中,上述第二占用状态信息为未占用或已占用。
第二步,根据上述第二占用状态信息确定上述无人车的目标停车位置。
在执行主体可以在第二占用状态信息的基础上,筛选出可用的邻居节点,进而确定目标停车位置。
在一些实施例的一些可选的实现方式中,上述根据上述第二占用状态信息确定上述无人车的目标停车位置,可以包括以下步骤:
第一步,从上述邻居节点序列中筛选出第二占用状态信息为无占用的至少一个备选邻居节点。
执行主体可以从邻居节点中选出可用的邻居节点。具体的,执行主体可以将第二占用状态信息为无占用的邻居节点设置为备选邻居节点。
第二步,通过上述至少一个备选邻居节点构建备选停车凸包区域。
备选区域的大小由备选停车位置决定,即根据道路边界,本申请中限制的可计算损失的节点范围即最大的停靠范围,在垂直道路边界方向上,为无人车宽度或长度(根据原始停靠车辆垂直道路边界或平行道路边界计算),加上一个0.5米至1米的缓冲区,在平行边界的方向上,目标点距离在10米内,且在停靠道路边界覆盖范围内。
每个备选邻居节点都对应一定的空间。得到至少一个备选邻居节点后,执行主体可以通过至少一个备选邻居节点构建备选停车凸包区域。如图9所示,备选停车凸包区域可以是由道路边界901和停车距离曲线902组成。备选停车凸包区域内的多个邻居节点即为备选邻居节点903。
第三步,从上述备选停车凸包区域中选择出至少一个目标邻居节点组合。
无人车的占用空间为固定值。执行主体可以从备选停车凸包区域中选择出至少一个目标邻居节点组合。每个目标邻居节点组合构成的空间都可以用于停放无人车。即,上述目标邻居节点组合构成的区域满足上述无人车尺寸。
第四步,将上述至少一个目标邻居节点组合中损失值之和最小的目标邻居节点组合构成的区域,设置为目标停车位置。
每个邻居节点都有对应的损失值,目标邻居节点组合由多个邻居节点组合而成,则目标邻居节点组合的损失值可以认为是组成目标邻居节点组合的邻居节点的损失值之和。据此,执行主体可以将损失值之和最小的目标邻居节点组合构成的区域,设置为目标停车位置。如此,可以在损失最小的情况下找到目标停车位置,提高了无人车停车的效率。
继续参考图5,图5示出了根据本公开的无人车停车方法的一些实施例的流程500。该无人车停车方法,包括以下步骤:
步骤501,响应于上述无人车到达预定位置,检测基准停车位置的第一占用状态信息。
步骤502,响应于上述第一占用信息为已占用,基于上述基准停车位置生成至少一个邻居节点,并通过上述至少一个邻居节点确定目标停车位置。
步骤501和步骤502的内容与步骤301和步骤302的内容相同,此处不再一一赘述。
步骤503,通过上述预定位置和上述目标停车位置生成行车轨迹。
确定了目标停车位置后,执行主体可以通过多种方法(模拟退火算法、人工势场法、模糊逻辑算法、禁忌搜索算法、可视图空间法等)规划从预定位置到目标停车位置的行车轨迹。例如,当无法从预定位置直线到达目标停车位置时,执行主体可以借助电子地图、雷达或摄像头等设备生成曲线的行车轨迹等。如此,避免了技术人员对无人车的人工干预,将目标停车位置的理论性转化为实用性,提高了无人车的停车效率。
步骤504,控制上述无人车按照上述行车轨迹停车至上述目标停车位置。
确定了行车轨迹后,执行主体可以控制无人车沿行车轨迹行驶,进而到达目标停车位置,完成无人车的停车任务。
进一步参考图6,作为对上述各图所示方法的实现,本公开提供了一种无人车停车装置的一些实施例,这些装置实施例与图3所示的那些方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,一些实施例的无人车停车装置600包括:第一占用状态信息检测单元601和目标停车位置确定单元602。其中,第一占用状态信息检测单元601,被配置成响应于上述无人车到达预定位置,检测基准停车位置的第一占用状态信息,上述第一占用状态信息为未占用或已占用;目标停车位置确定单元602,被配置成响应于上述第一占用信息为已占用,基于上述基准停车位置生成至少一个邻居节点,并通过上述至少一个邻居节点确定目标停车位置。
在一些实施例的可选实现方式中,上述目标停车位置确定单元602可以包括:停车方向确定子单元(图中未示出)和邻居节点生成子单元(图中未示出)。其中,停车方向确定子单元,被配置成确定上述基准停车位置的停车方向;邻居节点生成子单元,被配置成以上述基准停车位置为初始节点,基于上述停车方向生成至少一个邻居节点。
在一些实施例的可选实现方式中,上述邻居节点生成子单元可以包括:初始邻居节点生成模块(图中未示出)、位置属性信息获取模块(图中未示出)和邻居节点筛选模块(图中未示出)。其中,初始邻居节点生成模块,被配置成以上述基准停车位置为初始节点,沿上述停车方向和与上述停车方向垂直的方向生成至少一个初始邻居节点;位置属性信息获取模块,被配置成获取上述基准停车位置的位置属性信息,上述位置属性信息包括以下至少一项:无人车占用空间信息、道路边界信息、道路中心线信息;邻居节点筛选模块,被配置成通过上述位置属性信息对上述至少一个初始邻居节点进行筛选,得到至少一个邻居节点。
在一些实施例的可选实现方式中,上述邻居节点筛选模块可以包括:区域地图获取子模块(图中未示出)、区域划分子模块(图中未示出)和邻居节点筛选子模块(图中未示出)。其中,区域地图获取子模块,被配置成获取上述基准停车位置的区域地图;区域划分子模块,被配置成基于上述位置属性信息将上述区域地图划分为可停车区域和不可停车区域;邻居节点筛选子模块,被配置成从上述至少一个初始邻居节点中筛选出属于上述可停车区域的邻居节点。
在一些实施例的可选实现方式中,上述目标停车位置确定单元602可以包括:损失值计算子单元(图中未示出)、邻居节点序列获取子单元(图中未示出)和目标停车位置确定子单元(图中未示出)。其中,损失值计算子单元,被配置成计算上述至少一个邻居节点中每个邻居节点的损失值,上述损失值用于表征从上述基准停车位置到对应停车节点的损耗;邻居节点序列获取子单元,被配置成按照损失值从小到大的顺序对上述至少一个邻居节点进行排序,得到邻居节点序列;目标停车位置确定子单元,被配置成基于上述邻居节点序列确定目标停车位置。
在一些实施例的可选实现方式中,上述损失值可以包括位姿损失值,上述位姿损失值用于表示从邻居节点到基准停车位置的损耗;以及,上述损失值计算子单元包括位姿损失值计算模块,被配置成对于上述至少一个邻居节点中的邻居节点,计算该邻居节点与基准停车位置之间的第一距离,基于上述第一距离和第一权重计算位姿损失值,上述位姿损失值与上述第一距离为正比关系,上述第一权重为姿损失值在邻居节点的损失值中的权重。
在一些实施例的可选实现方式中,上述位姿损失值计算模块进一步被配置成查询上述无人车的至少一个基准停车位置;计算该邻居节点分别与上述至少一个基准停车位置中每个基准停车位置的距离,得到至少一个距离信息;将上述至少一个距离信息中取值最小的距离信息对应的基准停车位置设置为目标基准停车位置;计算该邻居节点与目标基准停车位置之间的第一距离。
在一些实施例的可选实现方式中,上述损失值包括停靠边界损失值,上述停靠边界损失值用于表示从邻居节点到道路边界的损耗;以及,上述损失值计算子单元包括:停靠边界损失值计算模块,被配置成对于上述至少一个邻居节点中的邻居节点,计算该邻居节点与道路边界之间的第二距离,基于上述第二距离和第二权重计算停靠边界损失值,上述第二距离为邻居节点到道路边界的垂直距离,上述停靠边界损失值与上述第二距离为正比关系,上述第二权重为停靠边界损失值在邻居节点的损失值中的权重。
在一些实施例的可选实现方式中,上述停靠边界损失值计算模块进一步被配置成:获取上述基准停车位置的区域地图,上述区域地图包含的道路边界通过至少一个边界点表示;从上述区域地图中识别出至少一个边界点,并基于上述至少一个边界点生成边界线段序列;计算该邻居节点与上述边界线段序列中的、与该邻居节点垂直的目标边界线段之间的第二距离;响应于上述第二距离小于设定距离条件,计算上述第二距离和第二权重计算该邻居节点的停靠边界损失值,否则,将该邻居节点的停靠边界损失值设置为无穷大,上述设定距离条件包括以下至少一项:设定停车距离,道路边界长度。
在一些实施例的可选实现方式中,上述损失值包括车道中心线损失值,上述车道中心线损失值用于表示从邻居节点到道路中心线的损耗;以及,上述损失值计算子单元包括:车道中心线损失值计算模块,被配置成对于上述至少一个邻居节点中的邻居节点,计算该邻居节点与道路中心线之间的第三距离,基于上述第三距离和第三权重计算位姿损失值,上述位姿损失值与上述第三距离为反比关系,上述第三距离为邻居节点到道路中心线的垂直距离,上述第三权重为车道中心线损失值在邻居节点的损失值中的权重。
在一些实施例的可选实现方式中,上述邻居节点序列中的邻居节点包含序列号,上述序列号用于标识对应邻居节点在上述邻居节点序列中的排序;以及,上述目标停车位置确定子单元可以包括:第二占用状态信息检测模块(图中未示出)和目标停车位置确定模块(图中未示出)。其中,第二占用状态信息检测模块,被配置成检测上述邻居节点序列中邻居节点的第二占用状态信息,上述第二占用状态信息为未占用或已占用;目标停车位置确定模块,被配置成根据上述第二占用状态信息确定上述无人车的目标停车位置。
在一些实施例的可选实现方式中,上述目标停车位置确定模块可以包括:备选邻居节点选择子模块(图中未示出)、备选停车区域构建子模块(图中未示出)、目标邻居节点组合确定子模块(图中未示出)和目标停车位置确定子模块(图中未示出)。其中,备选邻居节点选择子模块,被配置成从上述邻居节点序列中筛选出第二占用状态信息为无占用的至少一个备选邻居节点;备选停车区域构建子模块,被配置成通过上述至少一个备选邻居节点构建备选停车区域;目标邻居节点组合确定子模块,被配置成从上述备选停车区域中选择出至少一个目标邻居节点组合,上述目标邻居节点组合构成的区域满足上述无人车尺寸;目标停车位置确定子模块,被配置成将上述至少一个目标邻居节点组合中损失值之和最小的目标邻居节点组合构成的区域,设置为目标停车位置。
在一些实施例的可选实现方式中,无人车停车装置600还可以包括:行车轨迹生成单元(图中未示出)和停车控制单元(图中未示出)。其中,行车轨迹生成单元,被配置成通过上述预定位置和上述目标停车位置生成行车轨迹;停车控制单元,被配置成控制上述无人车按照上述行车轨迹停车至上述目标停车位置。
可以理解的是,该装置600中记载的诸单元与参考图3描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置600及其中包含的单元,在此不再赘述。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图7中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本公开的一些实施例的方法中限定的上述功能。
需要说明的是,本公开的一些实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:响应于上述无人车到达预定位置,检测基准停车位置的第一占用状态信息,上述第一占用状态信息为未占用或已占用;响应于上述第一占用信息为已占用,基于上述基准停车位置生成至少一个邻居节点,并通过上述至少一个邻居节点确定目标停车位置。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一占用状态信息检测单元和目标停车位置确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,目标停车位置确定单元还可以被描述为“重新确定目标停车位置的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
- 无人车停车方法、装置、电子设备和计算机可读介质
- 无人车路径规划方法、装置、电子设备和计算机可读介质