具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种AGV的位姿调整方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的AGV的位姿调整方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种AGV的位姿调整方法,图2是根据本发明实施例的AGV的位姿调整方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在确定具备二维码导航能力的自动导引运输车AGV未处于所述AGV中记录的地图中包括的二维码节点上的情况下,确定所述AGV对障碍物的检测结果、所述AGV的负载状态以及所述地图的信息;
步骤S204,基于所述检测结果、所述负载状态以及所述地图的信息确定所述地图中包括的目标二维码节点;
步骤S206,规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上。
在上述实施例中,AGV可以通过摄像头检测障碍物,还可以通过超声模块检测障碍物,当然,还可以通过其他类型的传感器(例如,距离传感器、红外传感器、激光传感器等)来检测障碍物,本发明对检测方法不做限制。上述地图可以是通过AGV自行绘制保存到本地的地图,还可以是输入到AGV中的地图,当然,也可以是AGV从服务器等设备中获取到的地图,地图的信息可以包括地图中各节点的属性、各个节点之间的关系、各个节点的能力信息(例如,是否支持AGV旋转,所能承载的最大重量等)、路径信息等。
可选地,上述步骤的执行主体可以AGV,或者是后台处理器,或者其他的具备类似处理能力的设备,但不限于此。
通过本发明,当AGV未处于AGV中记录的地图中包括的二维码节点上时,根据AGV对障碍物的检测结果、AGV的负载状态及地图信息确定出地图中包括的目标二维码节点,规划AGV的行驶路径,使之按照规划的行驶路径行驶至目标二维码节点上,实现准确调整AGV位姿。因此,可以解决相关技术中存在无法准确地调整AGV的位姿的问题,达到准确高效调整AGV位姿的效果。
在一个可选的实施例中,基于所述检测结果、所述负载状态以及所述地图的信息确定所述地图中包括的目标二维码节点包括:基于所述检测结果确定出不存在障碍物的第一行驶方向;基于所述地图的信息确定出,所述地图中包括的位于所述第一行驶方向上的且距离所述AGV最近的第一二维码节点,并将所述第一二维码节点确定为所述目标二维码节点,其中,所述地图的信息中记录有所述地图中包括的节点的位置信息;基于所述负载状态判断是否对所述目标二维码节点进行更新;基于判断结果确定所述目标二维码节点。在本实施例中,判断AGV的传感器是否检测到障碍物,若检测到障碍物,则将不存在障碍物的方向确定为第一行驶方向;若未检测到障碍物,则将各个方向都确定为第一行驶方向;然后再在第一行驶方向上选择距离AGV最近的二维码节点作为目标二维码节点。其中,第一行驶方向可以是障碍物方向的120°(该取值仅是一种可选的方式,本发明对该取值不做限制,具体可以根据AGV的大小、障碍物的体积、占地面积等确定该取值,例如,还可以取110°,130°等)范围外的方向,即与障碍物方向(例如障碍物的中心线方向或者障碍物的边缘线方向)向左或向右超过60°的任意方向。若未检测到障碍物,则在所有方向中选择一个距离AGV最近的节点作为目标二维码节点。然后,再根据AVG的负载状态判断是否需要更新目标二维码节点,基于判断结果来确定目标二维码节点,即,在需要更新的情况下,将更新后的二维码节点作为目标二维码节点,在不需要更新的情况下,维持目标二维码节点不变。
在一个可选的实施例中,基于所述负载状态判断是否对所述目标二维码节点进行更新包括:在基于所述负载状态确定出所述AGV承载有负载,且满足以下条件之一时,确定需要对所述目标二维码节点进行更新:所述负载的朝向与所述AGV行驶至所述第一二维码节点的路径所支持的负载朝向所构成的夹角大于第一角度阈值;所述负载的朝向与所述第一二维码节点至所述地图中与所述第一二维码节点具备连通性的下一二维码节点之间的路径所支持的负载朝向所构成的夹角大于第二角度阈值,且所述第一二维码节点不支持AGV旋转;基于判断结果确定所述目标二维码节点包括:在确定需要对所述目标二维码节点进行更新的情况下,基于所述地图的信息搜索所述地图中包括的第二二维码节点中距离所述AGV最近的第三二维码节点,其中,所述第二二维码节点为除所述第一二维码节点之外的与所述第一二维码节点具有连通性的二维码节点,所述地图的信息中记录有所述地图中包括的节点之间的连通关系;将所述目标二维码节点由所述第一二维码节点更新为所述第二二维码节点。在本实施例中,AGV在选择行驶路径时需要综合考虑负载朝向的要求、节点是否有支持转向的限制。因此,当AGV承载有负载,且当前负载的朝向与AGV行驶至第一二维码的路径所支持的负载朝向构成的夹角大于第一角度阈值时,需要对目标二维码节点进行更新(考虑到AGV安全性问题,一般在除地图上的二维码节点位置之外的位置上是禁止AGV旋转的,或者仅允许AGV进行旋转方向的微调)。当AGV承载有负载,且AGV从第一二维码节点行驶到与第一二维码节点具有连通性的下一二维码节点,AGV在两者之间的路径行驶时,负载的朝向与当前负载的朝向之间的夹角大于第二角度阈值,且第一二维码节点不支持AGV旋转时,需要对目标二维码进行更新。其中,有连通性的节点可以为在地图中可以直接相连的节点。不支持AGV旋转的节点可以在地图信息中记录,也可以在其他文件中记录,再输入至AGV中,还可以记录在服务器中,由AGV从服务其中获取节点信息。需要说明的是,本发明对第一角度阈值和第二角度阈值不做限制,第一角度阈值可以与第二角度阈值相等,也可以与第二角度阈值不等,例如,第一角度阈值可以为20°,第二角度阈值可以为15°,还可以第一角度阈值为25°,第二角度阈值为25°,但不限于此。
在本实施例中,在确定AGV为负载状态,当前负载朝向与后续路径要求的负载朝向不符时(对应于上述两种情况),则搜索与第一二维码节点有连通性的次近节点(对应于上述第三二维码节点)作为新的纠偏目标点(对应于上述目标二维码节点)。即,在确定需要对目标二维码节点进行更新时,在地图的信息中搜索与第一二维码有连通性的第二二维码节点中距离AGV最近的第三二维码节点,并将目标二维码节点更新为第三二维码节点。
在一个可选的实施例中,基于所述负载状态判断是否对所述目标二维码节点进行更新包括:在基于所述负载状态确定出所述AGV承载有负载,且满足以下条件之一时,确定无需对所述目标二维码节点进行更新:所述负载的朝向与所述AGV行驶至所述第一二维码节点的路径所支持的负载朝向所构成的夹角小于或等于第一角度阈值,且所述负载的朝向与所述第一二维码节点至所述地图中与所述第一二维码节点具备连通性的下一二维码节点之间的路径所支持的负载朝向所构成的夹角小于或等于第二角度阈值;所述负载的朝向与所述AGV行驶至所述第一二维码节点的路径所支持的负载朝向所构成的夹角小于或等于第一角度阈值,所述负载的朝向与所述第一二维码节点至所述地图中与所述第一二维码节点具备连通性的下一二维码节点之间的路径所支持的负载朝向所构成的夹角大于第二角度阈值且所述第一二维码节点支持AGV旋转;或者,在基于所述负载状态确定出所述AGV未承载有负载的情况下,确定无需对所述目标二维码节点进行更新;基于判断结果确定所述目标二维码节点包括:在确定无需对所述目标二维码节点进行更新的情况下,将所述目标二维码节点维持为所述第一二维码节点。在本实施例中,当AGV承载有负载,且当前负载的朝向与AGV行驶至第一二维码的路径所支持的负载朝向构成的夹角小于或等于第一角度阈值,且AGV行驶在从第一二维码节点到与第一二维码节点具有连通性的下一二维码节点之间的路径,负载的朝向与当前负载的朝向之间的夹角小于或等于第二角度阈值时,无需对目标二维码进行更新;或者,当AGV承载有负载,且当前负载的朝向与AGV行驶至第一二维码节点的路径所支持的负载朝向构成的夹角小于或等于第一角度阈值,且AGV行驶在从第一二维码节点到与第一二维码节点具有连通性的下一二维码节点之间的路径,负载的朝向与当前负载的朝向之间的夹角大于第二角度阈值,但第一二维码节点支持AGV旋转时,无需对目标二维码进行更新;或者,当AGV未承载负载时,需要对目标二维码进行更新;直接将目标二维码节点维持为第一二维码节点。
在一个可选的实施例中,规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上包括:基于所述地图的信息搜索与所述目标二维码节点具有连通性的第四二维码节点;确定所述AGV到所述目标二维码节点与所述第四二维码节点的连线线段或者连线线段延长线的垂足;基于所述垂足确定出所述第四二维码节点包括的满足预定条件的第五二维码节点;确定所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的最短距离;基于所述最短距离规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上。在本实施例中,搜索所有与目标二维码节点具有连通性的第四二维码节点,确定AGV到目标二维码节点与第四二维码节点的连线线段或连线线段延长线的垂足,确定出与AGV垂直距离最近的连接线,并计算得出最短距离minDis,根据最短距离minDis规划AGV行驶至目标二维码节点的行驶路径,并控制AGV按照行驶路径行驶至目标二维码节点上。
在一个可选的实施例中,基于所述垂足确定出所述第四二维码节点包括的满足预定条件的第五二维码节点包括以下至少之一:在存在所述垂足落在线段内的第一连线线段上的情况下,确定出所述第一连线线段包括的距离所述AGV最近的第二连线线段,将与所述目标二维码节点构成的所述第二连线线段的第四二维码节点确定为所述第五二维码节点;在所述垂足均落在所述连线线段延长线上的情况下,确定出所述垂足与所述连线线段两端的二维码节点中最近的二维码节点的距离小于预定阈值的第三连线线段,确定出所述第三连线线段中包括的所在延长线距离所述AGV最短的第四连线线段,将与所述目标二维码节点构成所述第四连线线段的第四二维码节点确定为所述第五二维码节点。在本实施例中,当AGV承载负载时,可以优先考虑垂足落在连线内的线段,将垂足落在连线内的最短线段确定为第二连线线段,将与目标二维码节点构成第二连线线段的节点确定为第五二维码节点。再考虑落垂足在延长线上的线段,其中,垂足距离线段两端的节点的距离不能超过预定阈值,该预设阈值可以为AGV车身长度的1.5倍(该取值仅是一种可选的方式,可以根据车身长度及距离应用环境设置该阈值,例如,还可以设置为车身长度的1.3倍、1.4倍等)。若不存在满足上述条件的第五二维码节点时,可以执行报警等相关处理,由人工进行干预,例如,由人工调整AGV的位姿等。当AGV未承载负载时,计算AGV位置到目标二维码节点与后续路径节点(目标二维码节点的下一个节点,该节点为第五二维码节点)所连线段的垂直距离minDis。
在一个可选的实施例中,基于所述最短距离规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上包括:在确定所述最短距离小于或等于预定的精度距离时,确定所述AGV的车头方向与目标直线的夹角,其中,所述目标直线为所述目标二维码节点与所述第五二维码节点的连接线段所在的直线;按照所述AGV的车头方向与目标直线的最小夹角转动所述AGV,以使所述AGV的车头方向与所述目标直线平行;控制所述AGV按照所述AGV车头的方向通过直线前进或直线后退的方式行驶至所述目标二维码节点上。在本实施例中,由于AGV自身机械结构与定位能力的限制,存在到点精度nodePrec(对应于上述预定的精度距离,该预定的精度距离的距离值可以灵活设置,例如,设置成0.5倍的车长、0.8倍的车长、0.5米、0.6米等),小于nodePrec的距离,默认车辆在该位置,当minDis不大于nodePrec时,认为AGV已经在目标二维码节点与第五二维码节点连线线段所在的直线上,再计算车头方向与直线方向的夹角,选择一个最小转角方向作为AGV方向调整方向,使AGV以前进或后退的方式到达目标二维码节点。
在一个可选的实施例中,基于所述最短距离规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上包括:在确定所述最短距离大于预定的精度距离时,比较所述AGV与所述目标二维码节点的横向距离与所述目标预定精度距离的大小;在确定所述AGV与所述目标二维码节点的横向距离大于所述预定精度距离的情况下,基于所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的垂足,所述目标二维码节点以及所述AGV所在的点确定出中介点,其中,所述AGV行驶至所述中介点的过程中车身方向旋转次数小于预定次数且每次车身旋转的角度小于第二预定角度;控制所述AGV按照先行驶至所述中介点,再由所述中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上。在本实施例中,当minDis大于nodePrec时,再判断车辆与纠偏目标节点的横向距离是否也大于nodePrec。当横向距离不大于nodePrec时,不做调整,默认AGV已完成该方向的纠偏,基于车辆当前坐标与目标节点坐标计算出车辆纠偏的目标行驶方向,延该方向行驶minDis,完成纠偏;当横向距离大于nodePrec时,首先确定出中介点,再控制AGV按照先行驶至中介点,再由中介点行驶至目标二维码节点的行驶路径行驶至目标二维码节点上。
在一个可选的实施例中,基于所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的垂足,所述目标二维码节点以及所述AGV所在的点确定出中介点包括:构造以所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的垂足、所述二维码节点以及所述AGV所在的点为顶点的矩形;将所述矩形中除所述AGV所在的点以及所述目标二维码节点以外的顶点确定为所述中介点。在本实施例中,通过AGV坐标(AGV所在的点)、目标二维码节点、AGV距离目标二维码节点与第五二维码节点的连接线段所在直线的垂足,会得到一个垂直于连接线段所在直线的矩形,并将矩形除AGV所在的点、目标二维码节点的另两个顶点作为中介点备选点(对应于上述中介点)。其中,确定中介点示意图可参见附图3。
在一个可选的实施例中,控制所述AGV按照先行驶至所述中介点,再由所述中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上包括:在确定所述中介点中仅包括一个对应行驶路径上不存在障碍物的第一中介点的情况下,控制所述AGV按照先行驶至所述第一中介点,再由所述第一中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上,其中,所述对应行驶路径为所述AGV行驶至中介点的路径;在确定所述中介点中包括有多个对应行驶路径上不存在障碍物的第一中介点的情况下,确定出所述第一中介点中包括的第二中介点;控制所述AGV按照先行驶至所述第二中介点,再由所述第二中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上,其中,所述AGV行驶至所述第二中介点的过程中车身方向旋转次数小于预定次数且每次车身旋转的角度小于第二预定角度。在本实施例中,若AGV前方或后方遇障,筛掉对应方向的中介点,若非遇障,则计算AGV分别沿两个中介点的方向纠偏的旋转次数与旋转角度,选择一个旋转次数最少且旋转角度最小的中介点完成校正。
下面结合具体实施方式对如何调整AGV的位姿进行说明,图4是根据本发明具体实施例的AGV的位姿调整方法流程图,如图4所示,该流程包括:
步骤S402,确定车辆当前位置,如当前位置不在二维码节点上,则进入车辆位置纠偏流程,调整车辆位置,使其行驶到节点上。
步骤S404,判断设备的传感器是否检测到障碍物,若判断结果为是,则执行步骤S406,如判断结果为否,则执行步骤S408。
步骤S406,检测到障碍物,则选择一个非该方向(障碍物方向的120°范围外)的最近节点作为纠偏目标节点(对应于上述目标二维码节点)。
步骤S408,未检测到障碍物,则选择一个最近节点作为纠偏目标节点。并判断设备车身上是否有负载,若判断结果为是,则执行步骤S412,若判断结果为否,则执行步骤S410。
步骤S410,车身上无负载,计算车身位置与目标纠偏点到后续路径节点所在直线的垂直距离minDis。
步骤S412,判断后续路径是否有满足负载目标角度的节点,若判断结果为是,在执行步骤S412,若判断结果为否,则执行步骤S416。
步骤S414,当前负载朝向与后续路径要求的负载朝向不符,则搜索与当前规则起点有连通性且满足负载目标角度的节点。
步骤S416,搜索所有与纠偏目标节点有连通性的连线,找出与车辆位置垂直距离最近的连接线,并计算得出最短距离minDis。
步骤S418,判断最短距离是否小于到点距离,由于AGV自身机械结构与定位能力的限制,存在到点精度nodePrec,即小于nodePrec的距离,默认车辆在该位置。将minDis与nodePrec比较,根据比较结果采取不同的后续步骤,若判断结果为是,则执行步骤S420,若判断结果为否,则执行步骤S422。
步骤S420,当minDis不大于nodePrec时,认为车辆已经在步骤S416中计算得到节点连线所在的直线上,再计算车头方向与直线方向的夹角,选择一个最小转角方向作为车辆方向调整方向,使车辆以前进或后退的方式到达纠偏目标点。
步骤S422,当minDis大于nodePrec时,选择转弯次数最小的校正中介点完成纠偏,其中,具体步骤如下:当minDis大于nodePrec时,再判断车辆与纠偏目标节点的横向距离是否也大于nodePrec。当横向距离不大于nodePrec时,不做调整,默认AGV已完成该方向的纠偏,基于车辆当前坐标与目标纠偏节点坐标计算出车辆纠偏的目标行驶方向,延该方向行驶minDis,完成纠偏;当横向距离大于nodePrec时,通过AGV坐标向目标纠偏节点与连接线的方向各做垂线,会得到一个垂直于连接线的矩形,并将矩形除AGV坐标、目标节点坐标的另两个顶点作为中介点备选点,若车辆前方或后方遇障,筛掉对应方向的中介点,若非遇障,则计算AGV分别沿两个中介点的方向纠偏的旋转次数与旋转角度,选择一个旋转次数最少且旋转角度最小的中介点完成校正。
步骤S424,AGV到达纠偏目标节点,坐标为节点坐标,方向为目标角度,纠偏完成。
在前述实施中,采取基于AGV车身状态、现场环境与地图信息等因素的起始位姿纠偏路线的规划方法,能够在纠偏过程考虑到现场环境(如AGV附近有无障碍物)、地图(规划一条尽可能地图路线贴合的行车路线)与车身状态(到点精度、车身负载与空载状态),从而选择了一条尽可能合理、高效的纠偏路线;利用AGV起始位姿纠偏路线高效的行驶逻辑,在通过计算AGV纠偏路线中通过车身转弯次数与转弯角度,规划出尽可能少转弯,转弯角度小、前进与后退相结合的车辆运行方式,提升了AGV的行车效率;采用AGV空载与负载时起始位姿纠偏目标二维码节点的搜索方法,基于AGV的车辆状态、坐标与地图信息来搜索纠偏的目标二维码节点,而不是简单的通过AGV重复移动来寻找,提高了调整AGV位姿的效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种AGV的位姿调整装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的AGV的位姿调整装置的结构框图,如图5所示,该装置包括:
第一确定模块52,用于在确定具备二维码导航能力的自动导引运输车AGV未处于所述AGV中记录的地图中包括的二维码节点上的情况下,确定所述AGV对障碍物的检测结果、所述AGV的负载状态以及所述地图的信息;
第二确定模块54,用于基于所述检测结果、所述负载状态以及所述地图的信息确定所述地图中包括的目标二维码节点;
控制模块56,用于规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上。
在一个可选的实施例中,所述第二确定模块54可以通过如下方式实现基于所述检测结果、所述负载状态以及所述地图的信息确定所述地图中包括的目标二维码节点:基于所述检测结果确定出不存在障碍物的第一行驶方向;基于所述地图的信息确定出,所述地图中包括的位于所述第一行驶方向上的且距离所述AGV最近的第一二维码节点,并将所述第一二维码节点确定为所述目标二维码节点,其中,所述地图的信息中记录有所述地图中包括的节点的位置信息;基于所述负载状态判断是否对所述目标二维码节点进行更新;基于判断结果确定所述目标二维码节点。
在一个可选的实施例中,所述第二确定模块54可以通过以下方式实现基于所述负载状态判断是否对所述目标二维码节点进行更新:在基于所述负载状态确定出所述AGV承载有负载,且满足以下条件之一时,确定需要对所述目标二维码节点进行更新:所述负载的朝向与所述AGV行驶至所述第一二维码节点的路径所支持的负载朝向所构成的夹角大于第一角度阈值;所述负载的朝向与所述第一二维码节点至所述地图中与所述第一二维码节点具备连通性的下一二维码节点之间的路径所支持的负载朝向所构成的夹角大于第二角度阈值,且所述第一二维码节点不支持AGV旋转;所述第二确定模块54可以通过以下方式实现基于判断结果确定所述目标二维码节点包括:在确定需要对所述目标二维码节点进行更新的情况下,基于所述地图的信息搜索所述地图中包括的第二二维码节点中距离所述AGV最近的第三二维码节点,其中,所述第二二维码节点为除所述第一二维码节点之外的与所述第一二维码节点具有连通性的二维码节点,所述地图的信息中记录有所述地图中包括的节点之间的连通关系;将所述目标二维码节点由所述第一二维码节点更新为所述第三二维码节点。
在一个可选的实施例中,所述第二确定模块54可以通过如下方式实现基于所述负载状态判断是否对所述目标二维码节点进行更新:在基于所述负载状态确定出所述AGV承载有负载,且满足以下条件之一时,确定无需对所述目标二维码节点进行更新:所述负载的朝向与所述AGV行驶至所述第一二维码节点的路径所支持的负载朝向所构成的夹角小于或等于第一角度阈值,且所述负载的朝向与所述第一二维码节点至所述地图中与所述第一二维码节点具备连通性的下一二维码节点之间的路径所支持的负载朝向所构成的夹角小于或等于第二角度阈值;所述负载的朝向与所述AGV行驶至所述第一二维码节点的路径所支持的负载朝向所构成的夹角小于或等于第一角度阈值,所述负载的朝向与所述第一二维码节点至所述地图中与所述第一二维码节点具备连通性的下一二维码节点之间的路径所支持的负载朝向所构成的夹角大于第二角度阈值且所述第一二维码节点支持AGV旋转;或者,在基于所述负载状态确定出所述AGV未承载有负载的情况下,确定无需对所述目标二维码节点进行更新;所述第二确定模块54可以通过如下方式实现基于判断结果确定所述目标二维码节点:在确定无需对所述目标二维码节点进行更新的情况下,将所述目标二维码节点维持为所述第一二维码节点。
在一个可选的实施例中,所述控制模块56可以通过如下方式实现规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上:基于所述地图的信息搜索与所述目标二维码节点具有连通性的第四二维码节点;确定所述AGV到所述目标二维码节点与所述第四二维码节点的连线线段或者连线线段延长线的垂足;基于所述垂足确定出所述第四二维码节点包括的满足预定条件的第五二维码节点;确定所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的最短距离;基于所述最短距离规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上。
在一个可选的实施例中,所述控制模块56可以通过以下至少之一实现基于所述垂足确定出所述第四二维码节点包括的满足预定条件的第五二维码节点:在存在所述垂足落在线段内的第一连线线段上的情况下,确定出所述第一连线线段包括的距离所述AGV最近的第二连线线段,将与所述目标二维码节点构成的所述第二连线线段的第四二维码节点确定为所述第五二维码节点;在所述垂足均落在所述连线线段延长线上的情况下,确定出所述垂足与所述连线线段两端的二维码节点中最近的二维码节点的距离小于预定阈值的第三连线线段,确定出所述第三连线线段中包括的所在延长线距离所述AGV最短的第四连线线段,将与所述目标二维码节点构成所述第四连线线段的第四二维码节点确定为所述第五二维码节点。
在一个可选的实施例中,所述控制模块56可以通过如下方式实现基于所述最短距离规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上:在确定所述最短距离小于或等于预定的精度距离时,确定所述AGV的车头方向与目标直线的夹角,其中,所述目标直线为所述目标二维码节点与所述第五二维码节点的连接线段所在的直线;按照所述AGV的车头方向与目标直线的最小夹角转动所述AGV,以使所述AGV的车头方向与所述目标直线平行;控制所述AGV按照所述AGV车头的方向通过直线前进或直线后退的方式行驶至所述目标二维码节点上。
在一个可选的实施例中,所述控制模块56可以通过如下方式实现基于所述最短距离规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上:在确定所述最短距离大于预定的精度距离时,,比较所述AGV与所述目标二维码节点的横向距离与所述目标预定精度距离的大小;在确定所述AGV与所述目标二维码节点的横向距离大于所述预定精度距离的情况下,基于所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的垂足,所述目标二维码节点以及所述AGV所在的点确定出中介点;控制所述AGV按照先行驶至所述中介点,再由所述中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上。
在一个可选的实施例中,所述控制模块56可以通过如下方式实现基于所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的垂足,所述目标二维码节点以及所述AGV所在的点确定出中介点:构造以所述AGV距离所述目标二维码节点与所述第五二维码节点的连接线段所在直线的垂足、所述二维码节点以及所述AGV所在的点为顶点的矩形;将所述矩形中除所述AGV所在的点以及所述目标二维码节点以外的顶点确定为所述中介点。
在一个可选的实施例中,所述控制模块56可以通过如下方式实现控制所述AGV按照先行驶至所述中介点,再由所述中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上:在确定所述中介点中仅包括一个对应行驶路径上不存在障碍物的第一中介点的情况下,控制所述AGV按照先行驶至所述第一中介点,再由所述第一中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上,其中,所述对应行驶路径为所述AGV行驶至中介点的路径;在确定所述中介点中包括有多个对应行驶路径上不存在障碍物的第一中介点的情况下,确定出所述第一中介点中包括的第二中介点;控制所述AGV按照先行驶至所述第二中介点,再由所述第二中介点行驶至所述目标二维码节点的行驶路径行驶至所述目标二维码节点上,其中,所述AGV行驶至所述第二中介点的过程中车身方向旋转次数小于预定次数且每次车身旋转的角度小于第二预定角度。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在确定具备二维码导航能力的自动导引运输车AGV未处于所述AGV中记录的地图中包括的二维码节点上的情况下,确定所述AGV对障碍物的检测结果、所述AGV的负载状态以及所述地图的信息;
S2,基于所述检测结果、所述负载状态以及所述地图的信息确定所述地图中包括的目标二维码节点;
S3,规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上。
可选地,在本实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在确定具备二维码导航能力的自动导引运输车AGV未处于所述AGV中记录的地图中包括的二维码节点上的情况下,确定所述AGV对障碍物的检测结果、所述AGV的负载状态以及所述地图的信息;
S2,基于所述检测结果、所述负载状态以及所述地图的信息确定所述地图中包括的目标二维码节点;
S3,规划所述AGV行驶至所述目标二维码节点的行驶路径,并控制所述AGV按照所述行驶路径行驶至所述目标二维码节点上。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。