参考点动态变化的机器人快速找座方法、芯片和机器人
文献发布时间:2023-06-19 11:35:49
技术领域
本发明涉及机器人领域,具体涉及一种参考点动态变化的机器人快速找座方法、芯片和机器人。
背景技术
移动机器人,诸如扫拖机器人、消毒机器人或宠物机器人等都配置有充电电池,在电池电量耗光之前,机器人必须回到充电座进行充电。目前,机器人一般采用自动找座的方法回座,常见的找座方法有随机找座、沿墙找座和RRT(快速扩展随机树算法)找座等。但是,上述找座方法不仅找座速度慢,还容易产生碰撞以及卡死的情况。比如,当通过沿墙方法找座时,机器人需要在整个空间的边沿移动,大大增加了移动距离,而且不可避免地会遇上位于墙边的障碍物。因此,我们提出一种基于参考点的、保持固定距离进行覆盖式探索的快速找座方法,可以在地图上没有记录充电座的信息,也没有充电座的信号的情况下,以较快的速度和较少的碰撞找到充电座。
在实际的测试中,我们发现上述基于参考点的快速找座方法仍然存在如下问题:当环境复杂,比如存在多个房间时,如果参考点一直保持不变,容易出现当前房间没有搜索完就进入下一房间进行搜索的情况。这样不仅不符合人的思维,还可能会增加移动距离。例如,机器人在第一个房间已完成一半区域的探索,突然移动到第二个房间,等探索完发现充电座不在第二个房间,那么机器人就需要返回第一个房间中上次离开的位置继续探索剩下的一半区域。如此一来,就降低了找座效率。因此,需要对该方法进行改进。
发明内容
为解决上述问题,本发明提供了一种参考点动态变化的机器人快速找座方法、芯片和机器人,以一种更加符合人的思维、更加高效的方式搜索充电座。本发明的具体技术方案如下:
一种参考点动态变化的机器人快速找座方法,所述方法如下:机器人读取预存储的地图,将起始位置设置为搜索节点和参考点,然后搜索充电座信号,若搜索不到则根据参考点的位置设置下一个搜索节点;机器人在设置每一个搜索节点之前,会重新检测参考点是否满足边界条件,若满足则根据此参考点的位置设置下一个搜索节点,若不满足则从第一个搜索节点开始重新检测所有的搜索节点是否满足边界条件,当检测到第一个满足边界条件的搜索节点时,将其设置为新的参考点并根据新的参考点的位置设置下一个搜索节点;机器人重复设置搜索节点,并在搜索节点上搜索充电座信号,直至找到充电座或者检测到所有的搜索节点均不满足边界条件为止。本发明所述的方法可以克服机器人离开当前正在执行任务的区域而中途前往下一区域的问题,提高了找座效率,该方法也更加符合人的思维模式。
进一步地,所述机器人检测一个参考点或搜索节点是否满足边界条件的方法为:首先,机器人以参考点或搜索节点为圆心、预设距离为半径作圆;然后,机器人判断圆上是否存在直线可达的点,若存在,则继续判断直线可达的点中是否存在与每个已设置的搜索节点的距离大于等于预设距离的点,若存在,则该参考点或搜索节点满足边界条件。检测搜索节点是否满足边界条件,可以知道该搜索节点是否可以扩展出下一个搜索节点。
进一步地,设置下一个搜索节点的方法为,机器人判断其所在位置与参考点的位置是否相同,若相同,则执行:S11,机器人以所在位置为圆心、预设距离为半径作圆;S12,机器人在圆上任取一个待定点,然后判断待定点是否直线可达,若是则继续判断待定点与每个已设置的搜索节点的距离是否大于等于预设距离,若是则将其设置为下一个搜索节点,若任一条件不满足,则进入S13;S13,机器人从S12中的待定点开始,每隔一个预设角度,在所述圆上向两边展开取新的待定点,并进行实时判断,然后将第一个同时满足S12中两个条件的待定点设置为下一个搜索节点;若不同,则执行:S21,机器人以所在位置为圆心、预设距离为半径作圆;S22,机器人连线所在位置与参考点,取线与圆的交点作为待定点;S23,机器人判断待定点是否直线可达,若是则继续判断待定点与每个已设置的搜索节点的距离是否大于等于预设距离,若是则将其设置为下一个搜索节点,若任一条件不满足,则进入S24;S24,机器人从S23中的待定点开始,每隔一个预设角度,在所述圆上向两边展开取新的待定点,并进行实时判断,然后将第一个同时满足S23中两个条件的待定点设置为下一个搜索节点。取直线可达的点,可以减少不必要的移动和碰撞;隔一定的距离取点,避免重复搜索;先取连线与圆的交点作为待定点进行判断,当该待定点满足条件时即可立即得到下一个搜索节点,减少了大量不必要的计算,大大提高了找座效率。
进一步地,所述机器人在检测参考点是否满足边界条件之后且在设置下一个搜索节点之前,还会检测其当前所在搜索节点是否满足边界条件,若满足则直接设置下一个搜索节点,若不满足则移动到导航代价最小的搜索节点后再设置下一个搜索节点。
进一步地,所述机器人移动到导航代价最小的搜索节点的方法为:S31,机器人检测所有已设置的搜索节点是否满足边界条件,然后选择其中满足边界条件的搜索节点;S32,机器人规划从当前位置导航至S31中所述满足边界条件的搜索节点的路径,并计算各条路径的长度;S33,机器人比较路径长度并移动到其中最短路径所对应的搜索节点上。选择路径最短的搜索节点,可以减少不必要的移动和碰撞,提高找座效率。
进一步地,所述机器人每到一个搜索节点,会原地自转以搜索充电座信号。
一种芯片,内置控制程序,所述控制程序用于控制机器人执行上述参考点动态变化的快速找座方法。本发明所述的芯片可以控制机器人执行一种参考点动态变化的机器人快速找座方法,以克服机器人离开当前正在执行任务的区域而中途前往下一区域的问题,提高了找座效率,该方法也更加符合人的思维模式。
一种机器人,装配有主控芯片,所述主控芯片是上述的芯片。本发明所述的机器人可以克服其离开当前正在执行任务的区域而中途前往下一区域的问题,提高了找座效率,该方法也更加符合人的思维模式。
附图说明
图1为本发明一种实施例所述参考点动态变化的机器人快速找座方法流程图。
图2为本发明一种实施例所述参考点动态变化的机器人快速找座示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
在本发明专利中,需要理解的是术语“上”、“下”、“左”、“右”、“前”、“后”等指示方位或位置关系为基于附图所示的方位或位置关系,仅是为了方便描述本发明实施和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明专利的限制。
所述机器人在行走过程中,会遇到不同的障碍物,为了有效简化对室内环境的描述,便于在路径规划中提出合理的对应策略,除非特殊说明,不然对室内障碍物做如下处理:1、只要障碍物与墙壁的距离不满足所述机器人通行的最小距离,机器人不能顺利通过,就按靠墙障碍物处理;2、对于直线型障碍物,用矩形代表其轮廓特征;对于非直线型障碍物,采用折线逼近法处理;3、当两个障碍物之间的距离很近而无法使所述机器人顺利通过时,可将二者看做一个障碍物进行处理。
本发明的机器人载体上装有陀螺仪用于转动角度角度检测、里程计用于行程距离检测,并且装有能够检测墙面距离的传感器,检测墙面距离的传感器可以是超声波距离传感器、红外强度检测传感器、红外距离传感器、物理开关检测碰撞传感器,电容或者电阻变化检测传感器等。
如图1所示,一种参考点动态变化的机器人快速找座方法,所述方法如下:机器人读取预存储的地图,将起始位置设置为搜索节点和参考点,然后搜索充电座信号,若搜索不到则根据参考点的位置设置下一个搜索节点;机器人在设置每一个搜索节点之前,会重新检测参考点是否满足边界条件,若满足则根据此参考点的位置设置下一个搜索节点,若不满足则从第一个搜索节点开始重新检测所有的搜索节点是否满足边界条件,当检测到第一个满足边界条件的搜索节点时,将其设置为新的参考点并根据新的参考点的位置设置下一个搜索节点;机器人重复设置搜索节点,并在搜索节点上搜索充电座信号,直至找到充电座或者检测到所有的搜索节点均不满足边界条件为止。本实施例所述的方法可以克服机器人离开当前正在执行任务的区域而中途前往下一区域的问题,提高了找座效率,该方法也更加符合人的思维模式。
作为其中一种实施方式,所述机器人检测一个参考点或搜索节点是否满足边界条件的方法为:首先,机器人以参考点或搜索节点为圆心、预设距离为半径作圆;然后,机器人判断圆上是否存在直线可达的点,若存在,则继续判断直线可达的点中是否存在与每个已设置的搜索节点的距离大于等于预设距离的点,若存在,则该参考点或搜索节点满足边界条件。本实施例所述的方法,检测搜索节点是否满足边界条件,可以知道该搜索节点是否可以扩展出下一个搜索节点。
作为其中一种实施方式,设置下一个搜索节点的方法为,机器人判断其所在位置与参考点的位置是否相同,若相同,则执行:S11,机器人以所在位置为圆心、预设距离为半径作圆;S12,机器人在圆上任取一个待定点,然后判断待定点是否直线可达,若是则继续判断待定点与每个已设置的搜索节点的距离是否大于等于预设距离,若是则将其设置为下一个搜索节点,若任一条件不满足,则进入S13;S13,机器人从S12中的待定点开始,每隔一个预设角度,在所述圆上向两边展开取新的待定点,并进行实时判断,然后将第一个同时满足S12中两个条件的待定点设置为下一个搜索节点;若不同,则执行:S21,机器人以所在位置为圆心、预设距离为半径作圆;S22,机器人连线所在位置与参考点,取线与圆的交点作为待定点;S23,机器人判断待定点是否直线可达,若是则继续判断待定点与每个已设置的搜索节点的距离是否大于等于预设距离,若是则将其设置为下一个搜索节点,若任一条件不满足,则进入S24;S24,机器人从S23中的待定点开始,每隔一个预设角度,在所述圆上向两边展开取新的待定点,并进行实时判断,然后将第一个同时满足S23中两个条件的待定点设置为下一个搜索节点。本实施例所述的方法,取直线可达的点,可以减少不必要的移动和碰撞;隔一定的距离取点,避免重复搜索;先取连线与圆的交点作为待定点进行判断,当该待定点满足条件时即可立即得到下一个搜索节点,减少了大量不必要的计算,大大提高了找座效率。
作为其中一种实施方式,所述机器人在检测参考点是否满足边界条件之后且在设置下一个搜索节点之前,还会检测其当前所在搜索节点是否满足边界条件,若满足则直接设置下一个搜索节点,若不满足则移动到导航代价最小的搜索节点后再设置下一个搜索节点。
作为其中一种实施方式,所述机器人移动到导航代价最小的搜索节点的方法为:S31,机器人检测所有已设置的搜索节点是否满足边界条件,然后选择其中满足边界条件的搜索节点;S32,机器人规划从当前位置导航至S31中所述满足边界条件的搜索节点的路径,并计算各条路径的长度;S33,机器人比较路径长度并移动到其中最短路径所对应的搜索节点上。本实施例所述的方法,选择路径最短的搜索节点,可以减少不必要的移动和碰撞,提高找座效率。
作为其中一种实施方式,所述机器人每到一个搜索节点,会原地自转以搜索充电座信号。
一种芯片,内置控制程序,所述控制程序用于控制机器人执行上述参考点动态变化的快速找座方法。本实施例所述的芯片可以控制机器人执行一种参考点动态变化的机器人快速找座方法,以克服机器人离开当前正在执行任务的区域而中途前往下一区域的问题,提高了找座效率,该方法也更加符合人的思维模式。
一种机器人,装配有主控芯片,所述主控芯片是上述的芯片。本实施例所述的机器人可以克服其离开当前正在执行任务的区域而中途前往下一区域的问题,提高了找座效率,该方法也更加符合人的思维模式。
下面结合图2对图1所述的一种参考点动态变化的机器人快速找座方法进行详细的介绍。需要说明的是,机器人在开始找座之前已经建立了环境地图,所述环境地图可以是激光SLAM地图或者视觉SLAM地图或者激光与视觉融合SLAM地图等。地图的精度越高,越能体现出本发明提出的方法的优势。本实施例中以激光SLAM地图为例进行说明。
参照图2,机器人没有充电座的位置信息,也检测不到充电座的信号。N0是机器人的起始位置,因为刚开始时只有一个点,所以该点同时也作为参考点。首先,机器人以N0为圆心,预设距离为半径作圆设置下一个搜索节点,即找到下一个搜索充电座的位置。其中,预设距离由充电座的信号范围决定,一般为1-2米。机器人在圆上任取一个待定点,然后借助激光SLAM地图进行判断:如果该待定点直线可达,即在N0到待定点的连线上没有障碍物和墙壁阻挡,那么将该待定点设置为下一个搜索节点;如果该待定点直线不可达,则从该待定点开始,机器人在圆上按照预设的角度向两边展开取点,并对获得的待定点进行实时检测,直到找到第一个直线可达的待定点时停止。第一个直线可达的待定点即为下一个搜索节点,在本实施例中,即为图2所示的N1。需要说明的是,在找到N1之前,只存在N0一个点,所以这里判断待定点与“其他已存在的搜索节点”的距离是否大于等于预设距离,实际上只需要判断待定点与NO的距离是否大于等于预设距离。而待定点本来就是在以NO为中心的圆上取的一个点,所以这里认为第一个直线可达的待定点即为下一个搜索节点。还需要说明的是,一般情况下,起始位置N0是满足边界条件的。如果不满足,说明机器人此时位于一个非常狭窄的空间中(预设距离仅为1-2米)。这是不符合实际情况的(除非机器人刚好被动态障碍物和/或其他障碍物包围),但为了严谨,进行如下说明:机器人会去寻找一个新的参考点。然而,机器人检测到所有已设置的搜索节点(此时只有NO)都不满足边界条件,即没有一个新的参考点可供机器人选择。那么,机器人将停止搜索。
机器人导航到N1处,原地旋转以检测充电座的信号。如果检测到充电座的信号,则按照信号的指引回座。如果检测不到,需要移动到下一个搜索节点进行检测。机器人检测到N0和N1满足边界条件,这表明N0和N1都属于边界点。随后以N1为圆心,预设距离为半径作圆设置下一个搜索节点。不同的是,这次不再是任取圆上的一个点作为待定点。而是,连接N1与N0,取连线与圆的交点作为待定点,这种做法实际是以向量
需要说明的是,所述边界点是搜索节点的一种属性。只要机器人在搜索节点处能够找到一个同时满足距离要求且直线可达这两个条件的待定点,那么就认为该搜索节点属于边界点。换句话说,就是如果机器人能够在搜索节点处找到一个可扩展的点,那么就认为该搜索节点属于边界点,否则为非边界点。需要注意的是,边界点会随着寻找充电座的进程推进从而转化为非边界点。
机器人导航到N2处,原地旋转以检测充电座的信号。如果检测到充电座的信号,则按照信号的指引回座。如果检测不到,需要移动到下一个搜索节点进行检测。机器人检测到N0和N2为边界点,所以同样的,以向量
机器人按照设置搜索节点的顺序,即N0至N3的移动顺序依次对搜索节点进行判断,将第一个属于边界点的搜索节点N1设置为新的参考点。然后,机器人判断到N3属于边界点,于是,以向量
机器人在N6处检测到N1这个参考点不再是边界点,于是更新参考点为N3(N2此时为非边界点)。随即机器人又检测到当前所在搜索节点N6也是非边界点,已经无法从N6扩展出下一个搜索节点。机器人需要从已存在的搜索节点N0至N5中寻找一个导航代价最小的点并在该点处扩展出下一个搜索节点。首先,机器人排除掉N0至N5中的非边界点,剩下N3、N4和N5这三个边界点,然后分别规划从N6移动到前述三个边界点的路径,最后比较三条路径的长度,取其中最短路径对应的N5,用来扩展下一个搜索节点。机器人从N6导航到N5,以向量
机器人检测到N3不再是边界点,于是更新符合条件的N7作为新的参考点。随即检测到N9也不是边界点,于是导航到路径代价最小的N7处设置下一个搜索节点。可以看出,此时的参考点和搜索节点是同一个点,与机器人在N0时的情况一样,这里机器人采用前述设置N1的方法来设置下一个搜索节点。但是需要增加与其他搜索节点的距离判断。参照图2,N10和N11已进入下一个房间,并在N11处,机器人成功检测到充电座的信号并回座。假设如下情况:N10和N11所在房间的房门是关闭的,那么N0至N9所有点都将变为非边界点,此时机器人会因找不到边界点而停止找座,因为这意味着当前可探索的区域已经全部探索完成。
从机器人最终完成的探索路径来看,机器人实现了层层推进的覆盖式探索,这样可以确保在不知道充电座位置的情况下,不遗漏区域地快速找到充电座。这得益于参考点动态变化的策略,由图2 可以看出,N1、N2和N3是基于参考点N0确立的,N4、N5和N6是基于参考点N1确立的,N8和N9是基于参考点N3确立的,N10和N11是基于参考点N7确立的。假设在图2的点N3下方有个门可以通向下一个房间,而参考点始终为N0的话,那么N4就不会在当前位置,而会在下一个房间中。当参考点变为N1后,情况则不同,因为改变了设置方向,导致率先找到的符合条件的点是图2 中的N4,而不会落在下一个房间中。不难看出,当房间数量越多,在参考点不变的情况下去设置搜索节点,越容易出现、也会更频繁出现当前房间未搜索完成就到下一个房间进行搜索的情况。而这样,会大大增加机器人的移动距离,从而降低找座效率。所以,当环境复杂时,采用参考点动态变化的策略更有利于提高找座效率。
显然,上述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,各个实施例之间的技术方案可以相互结合。此外,如果实施例中出现“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等术语,其指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位或以特定的方位构造和操作,因此不能理解为对本发明的限制。如果实施例中出现“第一”、“第二”、“第三”等术语,是为了便于相关特征的区分,不能理解为指示或暗示其相对重要性、次序的先后或者技术特征的数量。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
- 参考点动态变化的机器人快速找座方法、芯片和机器人
- 一种机器人快速找座方法、芯片和机器人