一种机器人的避障方法、机器人及计算机可读存储介质
技术领域
本发明实施例涉及机器人自主导航技术领域,特别涉及一种机器人的避障方法、机器人及计算机可读存储介质。
背景技术
随着计算机技术、传感器技术及人工智能的迅速发展,机器人自主导航技术也取得了很大进展,其中局部路径规划算法在机器人导航算法中占有重要地位。
发明人发现现有技术中至少存在如下问题:现有技术中,机器人在做局部路径规划的时候很容易选择错误的路径,从而导致机器人被障碍物挡住而无法绕回预定的路径,因此,有必要提供一种新的机器人的避障方法,以提高机器人局部路径规划的可靠性。
发明内容
本发明实施方式的目的在于提供一种机器人的避障方法、机器人及计算机可读存储介质,能够提高机器人的局部路径规划的可靠性。
为解决上述技术问题,本发明的实施方式提供了一种机器人的避障方法,包括:获取所述机器人所处环境的当前时刻的障碍物点云,并根据所述当前障碍物点云建立动态图层;获取所述机器人所处环境的静态图层;将所述动态图层和所述静态图层进行对比,确定所述机器人所处环境的静态障碍物;根据所述静态障碍物的位置信息,确定所述机器人的路径。
本发明的实施方式还提供了一种机器人,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的机器人的避障方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的机器人的避障方法。
本发明实施方式相对于现有技术而言,通过根据所述静态障碍物的位置信息,确定所述机器人的路径,从而能够滤除被不能移动的静态障碍物挡住的路径,避免被静态障碍物挡住而无法绕回预定的路径的情况发生,提高了机器人的局部路径规划的可靠性;并且,通过将所述动态图层和所述静态图层进行对比,确定所述机器人所处环境的静态障碍物,从而能够提高检测静态障碍物的准确性,进一步提高机器人的局部路径规划的准确性。
另外,所述将所述动态图层和所述静态图层进行对比,确定所述机器人所处环境的静态障碍物,具体为:将所述动态图层和所述静态图层中均存在的障碍物,作为所述静态障碍物。如此设置,能够避免直接将静态图层中的障碍物作为静态障碍物时,由于建立静态图层时误将动态障碍物包含其中、而导致误将动态障碍物认定为静态障碍物的情况。
另外,所述将所述动态图层和所述静态图层中均存在的障碍物,作为所述静态障碍物之前,还包括:获取所述机器人的目标点周围的疑似障碍物点;所述将所述动态图层和所述静态图层中均存在的障碍物,作为所述静态障碍物,具体包括:判断所述疑似障碍物点在所述动态图层和所述静态图层中是否均为障碍物点;当所述疑似障碍物点在所述动态图层和所述静态图层中均为障碍物点时,将所述疑似障碍物点的障碍物作为所述静态障碍物。
另外,所述获取所述机器人的目标点周围的疑似障碍物点,具体包括:以所述机器人的目标点位置为原点、所述机器人的目标点姿态为X轴,建立右手坐标系;在所述右手坐标系的Y轴正半轴上以所述动态图层的分辨率为步进值取多个Y轴点,作为所述目标点左侧的疑似障碍物点;在所述右手坐标系的Y轴负半轴上以所述动态图层的分辨率为步进值取多个Y轴点,作为所述目标点右侧的疑似障碍物点。
另外,所述根据所述静态障碍物,确定所述机器人的路径,具体包括:将所述目标点左侧的所述静态障碍物中Y轴坐标的绝对值最小的所述静态障碍物,作为选定的左侧静态障碍物;将所述目标点右侧的所述静态障碍物中Y轴坐标的绝对值最小的所述静态障碍物,作为选定的右侧静态障碍物;根据选定的左侧静态障碍物和选定的右侧静态障碍物,确定所述机器人的路径。
另外,所述根据选定的左侧静态障碍物和选定的右侧静态障碍物,确定所述机器人的路径,具体包括:将所述选定的左侧静态障碍物的Y轴坐标的绝对值,作为所述选定的左侧静态障碍物到目标点的第一距离;将所述选定的右侧静态障碍物的Y轴坐标的绝对值,作为所述选定的右侧静态障碍物到目标点的第二距离;根据所述第一距离和所述第二距离,确定所述机器人的路径。
另外,所述根据所述第一距离和所述第二距离,确定所述机器人的路径之前,还包括:根据预设轨迹长度以及所述机器人的当前运动状态,生成多个定长备选轨迹;分别计算每个所述定长备选轨迹的末点姿态与所述机器人的目标点姿态的角度差;所述根据所述第一距离和所述第二距离,确定所述机器人的路径,具体包括:根据所述第一距离和预设滤波角度计算第一滤波角度,根据所述第二距离和预设滤波角度计算第二滤波角度;根据所述角度差、第一滤波角度以及第二滤波角度,从所述定长备选轨迹中筛选出待用轨迹,并从所述待用轨迹中确定所述机器人的路径。
另外,所述从所述待用轨迹中确定所述机器人的路径之前,还包括:将末点姿态角大于所述机器人姿态角的所述定长备选轨迹,作为第一备选轨迹;将末点姿态角小于所述机器人姿态的角所述定长备选轨迹,作为第二备选轨迹;所述根据所述角度差、第一滤波角度以及第二滤波角度,从所述定长备选轨迹中筛选出待用轨迹,具体包括:筛选出所述角度差小于或等于第一滤波角度的所述第一备选轨迹、以及所述角度差大于或等于第二滤波角度的所述第二备选轨迹,共同作为所述待用轨迹。
另外,所述获取所述机器人所处环境的静态图层,具体包括:获取已建好的静态全局点云地图;获取所述机器人的当前位姿、以及所述动态图层的尺寸信息;根据所述机器人的当前位姿从所述静态全局点云地图中截取、与所述尺寸信息匹配的局部静态点云地图;根据所述局部静态点云地图建立所述静态图层。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明第一实施方式提供的机器人的避障方法的流程图;
图2是本发明第一实施方式提供的机器人的避障方法的流程图;
图3是本发明第一实施方式中有静态障碍物时的示意图;
图4是本发明第一实施方式中动态图层中无障碍物时的示意图;
图5是本发明第一实施方式中静态图层中无障碍物时的示意图;
图6是本发明第二实施方式提供的机器人的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种机器人的避障方法。本实施方式的核心在于,如图1所示,机器人的避障方法包括:S1:获取机器人所处环境的当前时刻的障碍物点云,并根据当前障碍物点云建立动态图层;S2:获取机器人所处环境的静态图层;S3:将动态图层和静态图层进行对比,确定机器人所处环境的静态障碍物;S4:根据静态障碍物的位置信息,确定机器人的路径,通过根据静态障碍物的位置信息,确定机器人的路径,从而能够滤除被不能移动的静态障碍物挡住的路径,避免被静态障碍物挡住而无法绕回预定的路径的情况发生,提高了机器人的局部路径规划的可靠性;并且,通过将动态图层和静态图层进行对比,确定机器人所处环境的静态障碍物,从而能够提高检测静态障碍物的准确性,进一步提高机器人的局部路径规划的准确性。
下面对本实施方式的机器人的避障方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本实施方式中的机器人的避障方法如图2所示,具体包括以下步骤:
S11:获取机器人所处环境的当前时刻的障碍物点云,并根据当前障碍物点云建立动态图层。
本步骤中,带有激光和超声波传感器的机器人进行自主巡逻导航时,将当前得到的障碍物点云存入待处理障碍物点云中,将获得的障碍物点云压缩到一个平面,并据此建立分辨率为resolution的栅格地图,即为动态图层。
S12:获取机器人所处环境的静态图层。
本步骤中,获取已建好的静态全局点云地图,获取所述机器人的当前位姿、以及所述动态图层的尺寸信息,根据所述机器人的当前位姿从所述静态全局点云地图中截取、与所述尺寸信息匹配的局部静态点云地图,根据所述局部静态点云地图建立所述静态图层。
S13:获取机器人的目标点周围的疑似障碍物点。
本步骤中,以所述机器人的目标点位置为原点、所述机器人的目标点姿态为X轴,建立右手坐标系;在所述右手坐标系的Y轴正半轴上以所述动态图层的分辨率为步进值取多个Y轴点,作为所述目标点左侧的疑似障碍物点;在所述右手坐标系的Y轴负半轴上以所述动态图层的分辨率为步进值取多个Y轴点,作为所述目标点右侧的疑似障碍物点。
S14:判定疑似障碍物点在动态图层和静态图层中均为障碍物点时,将疑似障碍物点的障碍物作为静态障碍物。
如此设置,能够避免直接将静态图层中的障碍物作为静态障碍物时,由于建立静态图层时误将动态障碍物包含其中、而导致误将动态障碍物认定为静态障碍物的情况。
S15:将目标点左侧的静态障碍物中Y轴坐标的绝对值最小的静态障碍物,作为选定的左侧静态障碍物;将目标点右侧的静态障碍物中Y轴坐标的绝对值最小的静态障碍物,作为选定的右侧静态障碍物。
具体的说,按照Y轴坐标的绝对值从小到大的顺序,依次判断所述目标点左侧的多个疑似障碍物点是否为静态障碍物,当找到第一个左侧静态障碍物时,即为选定的左侧静态障碍物,同样的,按照Y轴坐标的绝对值从小到大的顺序,依次判断所述目标点右侧的多个疑似障碍物点是否为静态障碍物,当找到第一个右侧静态障碍物时,即为选定的右侧静态障碍物。
也就是说,通过步骤S13、步骤S14和步骤S15,在利用目标点建立的右手坐标系下通过步进查找的方法得到目标点左右两侧的距离最近的静态障碍物的y轴坐标。
S16:根据预设轨迹长度以及机器人的当前运动状态,生成多个定长备选轨迹。
具体的说,利用dwa动态窗口法,根据机器人当前的速度及机器人最大加速度生成速度窗口,根据速度窗口以及事先设定的备选轨迹的预设轨迹长度,生成多个定长备选轨迹。
如图3中(a)所示,即为生成的多个定长备选轨迹示意图,其中,虚线为生成的定长备选轨迹,虚线圆为障碍物的膨胀区域(即,机器人内切圆半径膨胀出的障碍),在实际应用中,机器人轮廓的垂直投影不应该和障碍物有交叉,机器人中心不应该与虚线圆有交叉。
值得一提的是,步骤S16与步骤S11、S12、S13、S14及S15没有确定的先后顺序关系,可以在这些步骤之前、之后或同时进行,此处不做限定。
S17:根据选定的左侧静态障碍物和选定的右侧静态障碍物,从多个定长备选轨迹中确定所述机器人的路径。
本步骤中,将所述选定的左侧静态障碍物的Y轴坐标的绝对值,作为所述选定的左侧静态障碍物到目标点的第一距离leftdist;将所述选定的右侧静态障碍物的Y轴坐标的绝对值,作为所述选定的右侧静态障碍物到目标点的第二距离rightdist。
并且,分别计算每个所述定长备选轨迹的末点姿态与所述机器人的目标点姿态的角度差,根据所述第一距离和预设滤波角度计算第一滤波角度,根据所述第二距离和预设滤波角度计算第二滤波角度。
具体的说,设定最大滤波角度为
最小滤波角度为
距离比例因子为dist
factor,从而根据以下公式计算出左右两侧的障碍物离目标点的最大距离
及最小距离分别为
具体如下:
然后,利用第一距离left
dist以及左右两侧的障碍物离目标点的最大距离
及最小距离分别为
计算第一滤波角度
利用第二距离right
dist以及左右两侧的障碍物离目标点的最大距离
及最小距离分别为
计算第二滤波角度
具体如下:
在实际应用中,可对照应用环境及机器人本体参数,配置相应的最大滤波角度、最小滤波角度以及距离比例因子等参数。
最后,根据所述角度差、第一滤波角度以及第二滤波角度,从所述定长备选轨迹中筛选出待用轨迹,并从所述待用轨迹中确定所述机器人的路径。具体的说,将末点姿态角大于所述机器人姿态角的所述定长备选轨迹,作为第一备选轨迹(即左侧的定长备选轨迹),将末点姿态角小于所述机器人姿态的角所述定长备选轨迹,作为第二备选轨迹(即右侧的定长备选轨迹),筛选出所述角度差小于或等于第一滤波角度的所述第一备选轨迹、以及所述角度差大于或等于第二滤波角度的所述第二备选轨迹,共同作为所述待用轨迹。
其中,定长备选轨迹的末点姿态角,即为定长备选轨迹的轨迹终点的切线(即,终点朝向)在目标点的右手坐标系下的角度(可以为定长备选轨迹的终点朝向相对于该右手坐标系的x轴正方向的角度),机器人姿态角,即为机器人当前姿态(即,朝向)在目标点的右手坐标系下的角度(可以为机器人当前姿态相对于该右手坐标系的x轴正方向的角度)。
当然,也可以利用其它的方式来判别左侧的定长备选轨迹和右侧的定长备选轨迹,此处不做限定,只要保证对于左侧的定长备选轨迹,滤除角度差大于第一滤波角度的轨迹,对于右侧的定长备选轨迹,滤除角度差小于第二滤波角度的轨迹,将剩余的定长备选轨迹作为待用轨迹即可。
如图3中(b)所示,即为对多个定长备选轨迹进行滤波后得到待用轨迹的示意图。
在实际应用中,可能存在均不是静态障碍物的情形,此时,可能有两种情况,具体如下:
当四周无障碍物时,由于动态图层中无障碍物,故目标点两侧均无静态障碍物,机器人采用设定的最大滤波角度
来滤除定长备选轨迹,以获得待用轨迹,此时,如图4中(a)所示,即为滤波前的定长备选轨迹的示意图,图4中(b)所示,即为对多个定长备选轨迹进行滤波后得到待用轨迹的示意图;
当动态障碍物出现在机器人视野内时,由于静态图层中没有障碍物,故目标点两侧均无静态障碍物,机器人仍然采用设定的最大滤波角度
来滤除定长备选轨迹,以获得待用轨迹,此时,如图5中(a)所示,即为滤波前的定长备选轨迹的示意图,图5中(b)所示,即为对多个定长备选轨迹进行滤波后得到待用轨迹的示意图。
在实际应用中,可以通过评分函数从所述待用轨迹中选择一条作为所述机器人的路径。
本发明实施方式相对于现有技术而言,通过根据所述静态障碍物的位置信息,确定所述机器人的路径,从而能够滤除被不能移动的静态障碍物挡住的路径,避免被静态障碍物挡住而无法绕回预定的路径的情况发生,提高了机器人的局部路径规划的可靠性;并且,通过将所述动态图层和所述静态图层进行对比,确定所述机器人所处环境的静态障碍物,从而能够提高检测静态障碍物的准确性,进一步提高机器人的局部路径规划的准确性。也就是说,本实施方式中,基于costmap的自适应朝向滤波算法,判断障碍物是静态障碍物还是动态障碍物,并利用其中的静态障碍物对dwa动态窗口法生成的定长待选轨迹进行滤波,从而滤除可能卡住的路径,避免一些不允许后退的阿克曼车体的机器人无法正常运行的致命问题。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第二实施方式涉及一种机器人,如图6所示,包括:至少一个处理器201;以及,与所述至少一个处理器201通信连接的存储器;其中,所述存储器202存储有可被所述至少一个处理器201执行的指令,所述指令被所述至少一个处理器201执行,以使所述至少一个处理器201能够执行如上述的机器人的避障方法。
其中,存储器202和处理器201采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器201和存储器202的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器201处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器201。
处理器201负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器202可以被用于存储处理器201在执行操作时所使用的数据。
本发明第三实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。