CN107478232B - 机器人导航路径的搜索方法 - Google Patents
机器人导航路径的搜索方法 Download PDFInfo
- Publication number
- CN107478232B CN107478232B CN201710698659.2A CN201710698659A CN107478232B CN 107478232 B CN107478232 B CN 107478232B CN 201710698659 A CN201710698659 A CN 201710698659A CN 107478232 B CN107478232 B CN 107478232B
- Authority
- CN
- China
- Prior art keywords
- point
- intersection point
- grid
- path
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000005192 partition Methods 0.000 abstract description 5
- 238000004140 cleaning Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000004888 barrier function Effects 0.000 description 4
- 238000010408 sweeping Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 239000000428 dust Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本发明属于一种机器人导航路径的搜索方法及芯片,通过采用分区搜索的方式,每次只在一个栅格区域内,搜索与该区域相邻的待过栅格区域的交界线上的交接点,从而确定从出发位置点到交接点之间的路径。当一个栅格区域搜索完后,就释放内存,然后再搜索下一个待过栅格区域,最终形成从出发位置点到第一交接点、第二交接点、第N+1交接点和目标位置点的导航路径。如此,可以减小路径搜索时的内存占用量,提高路径搜索效率,同时扩大了搜索的应用范围,满足不同的搜索需求。
Description
技术领域
本发明涉及机器人领域,具体涉及一种机器人导航路径的搜索方法及芯片。
背景技术
扫地机器人,又称自动打扫机、智能吸尘、机器人吸尘器等,是智能家用电器的一种,能凭借一定的人工智能,自动在房间内完成地板清理工作。扫地机器人需要按照一定的路径规划来覆盖整个房间区域,完成清扫的目的。路径规划,有随机清扫和规划清扫两种。随机清扫,是指机器人根据一定的移动算法,如三角形、五边形轨迹尝试性的覆盖作业区,如果遇到障碍,则执行对应的转向函数。这种方法是一种以时间换空间的低成本策略,如不计时间可以达到100%覆盖率。随机覆盖法不用定位、也没有环境地图,也无法对路径进行规划。规划清扫,是指机器人行走过程中建立起环境地图,实时分析地图,将房间划分成不同区域,分区域清扫。这种方法效率高,在保证覆盖率的前提下,能够以最快的速度完成清扫。
目前,有的规划清扫方式采用的是路径搜索算法,其中,A*(A-Star)算法是一种栅格地图中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。但是,A*算法有一个最主要的缺点:A*算法非常消耗内存,每个加入被搜索的栅格,都要消耗十几个字节,因此当栅格地图很大时,对内存的消耗非常大,从而降低搜索效率,导致该算法的应用受到一定局限性。
发明内容
为解决上述问题,本发明提供了一种机器人导航路径的搜索方法及芯片,通过采用分区搜索的方式来提高机器人路径搜索的效率,从而扩大搜索应用范围。本发明的具体技术方案如下:
本发明所述的机器人导航路径的搜索方法,包括如下步骤:
基于机器人的行进路径创建栅格地图;
基于栅格地图进行区域划分,形成多个栅格区域;
基于目标位置点,确定从出发位置点到达目标位置点需要经过的待过栅格区域;
基于出发位置点所在的起点栅格区域,搜索所述起点栅格区域与相邻的第一待过栅格区域交界线上的第一交接点;
确定所述第一交接点后,再搜索所述第一待过栅格区域与相邻的第二待过栅格区域交界线上的第二交接点;
以此类推,
确定所述第N交接点后,最后搜索所述第N待过栅格区域与相邻的目标位置点所在目标栅格区域交界线上的第N+1交接点;
从出发位置点到第一交接点、第二交接点、第N+1交接点和目标位置点构成的路径作为导航路径;
其中,所述N为自然数。
进一步地,所述基于机器人的行进路径创建栅格地图,包括如下步骤:
机器人在行进过程中,基于栅格单元的形式,标示行进过的栅格单元为已行进单元,标示碰到障碍物的栅格单元为障碍单元,标示未行进过的栅格单元为未行进单元;
基于所述已行进单元、障碍单元和未行进单元,创建所述栅格地图。
进一步地,所述基于栅格地图进行区域划分,形成多个栅格区域,包括如下步骤:
以出发点为原点,构建XY轴坐标系;
将预定长度和预定宽度的方形区域作为栅格区域排布在XY轴坐标系中;
其中,由已行进单元构成的栅格区域为已行进区域,由障碍单元和未行进单元构成的栅格区域为未行进区域。
进一步地,所述基于目标位置点,确定从出发位置点到达目标位置点需要经过的待过栅格区域,包括如下步骤:
确定出发位置点所在的起点栅格区域;
确定与所述起点栅格区域相邻的已行进区域的权值;
选择权值最小的已行进区域作为第一待过栅格区域;
再确定与所述第一待过栅格区域相邻的已行进区域的权值;
选择权值最小的已行进区域作为第二待过栅格区域;
以此类推,
选择权值最小的已行进区域作为第N待过栅格区域,所述第N待过栅格区域与所述目标栅格区域相邻;
其中,如果有两个或者两个以上相邻的已行进区域的权值最小且相同,则随机选择并确定其中一个作为待过栅格区域;
所述相邻为一个栅格区域与另一个栅格区域之间通过一条共同的边连接。
进一步地,所述已行进区域的权值的确定,包括如下步骤:
基于XY轴坐标系,赋予每个排布在XY轴坐标系中的栅格区域坐标值;
确定出发位置点所在的起点栅格区域的坐标值为(SX,SY);
确定已行进区域的坐标值为(CX,CY);
确定目标位置点所在目标栅格区域的坐标值为(DX,DY);
确定从起点栅格区域到所述已行进区域的第一开销为K1,K1=sqrt((CX-SX)*(CX-SX)+(CY-SY)*(CY-SY)),其中,sqrt为开平方根;
确定从目标栅格区域到所述已行进区域的第二开销为K2,K2=abs(CX-DX)+abs(CY-DY),其中,abs为绝对值;
确定所述已行进区域的权值为Q,Q=K1+K2。
进一步地,搜索并确定交界线上的交接点,包括如下步骤:
确定所述相邻的栅格区域的交界线;
判断所述交界线上的第一参考交接点是否第一接近出发位置点或者上一个交接点,且所述第一参考交接点的通过性是否大于预设宽度;
如果是,则确定第一参考交接点为交接点;
如果否,则判断所述交界线上的第二参考交接点是否第二接近出发位置点或者上一个交接点,且所述第二参考交接点的通过性是否大于预设宽度;
如果是,则确定第二参考交接点为交接点;
如果否,则判断所述交界线上的第三参考交接点的通过性是否大于其它参考交接点的通过性,且大于预设宽度;
如果是,则确定第三参考交接点为交接点;
如果否,则搜索失败;
其中,所述通过性为基于参考交接点为中心的连续排布的已行进单元所组成的通过宽度。
进一步地,搜索并确定交界线上的交接点,包括如下步骤:
确定所述相邻的栅格区域的交界线;
判断所述交界线上的第一参考交接点是否第一接近出发位置点或者上一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与所述出发位置点或者上一个交接点之间的路径是否为有效路径;
如果是,则确定第一参考交接点为交接点;
如果否,则判断所述交界线上的第二参考交接点是否第二接近出发位置点或者上一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与出发位置点或者上一个交接点之间的路径是否为有效路径;
如果是,则确定第二参考交接点为交接点;
如果否,则判断所述交界线上的第三参考交接点是否第三接近出发位置点或者上一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与出发位置点或者上一个交接点之间的路径是否为有效路径;
如果是,则确定第三参考交接点为交接点;
以此类推,如果所述交界线上的所有参考交接点不能确定为交接点,则选取上一个交接点所在的交界线上的另一个参考交接点作为新的交接点,再分别与所述相邻的栅格区域的交界线上的参考交接点进行判断,直到确定所述参考交接点能够作为交接点;
如果上一个交接点所在的交界线上的所有参考交接点作为新的交接点,都不能确定所述相邻的栅格区域的交界线上的交接点,则搜索失败;
其中,所述通过性为基于参考交接点为中心的连续排布的已行进单元所组成的通过宽度。
进一步地,所述搜索失败后,还包括如下步骤:
选择与所述搜索失败对应的栅格区域相邻的另一个已行进区域作为交换区域;
确定所述搜索失败对应的栅格区域与所述交换区域的交界线;
判断所述交界线上的第一参考交接点是否第一接近上一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与上一个交接点之间的路径是否为有效路径;
如果是,则确定第一参考交接点为第一交换点;
如果否,则判断所述交界线上的第二参考交接点是否第二接近上一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与上一个交接点之间的路径是否为有效路径;
如果是,则确定第二参考交接点为第一交换点;
如果否,则判断所述交界线上的第三参考交接点是否第三接近上一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与上一个交接点之间的路径是否为有效路径;
如果是,则确定第三参考交接点为第一交换点;
以此类推,直到确定所述第一交换点;
在确定所述第一交换点后,判断所述交界线上的第一参考交接点是否第一接近下一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与下一个交接点之间的路径是否为有效路径;
如果是,则确定第一参考交接点为第二交换点;
如果否,则判断所述交界线上的第二参考交接点是否第二接近下一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与下一个交接点之间的路径是否为有效路径;
如果是,则确定第二参考交接点为第二交换点;
如果否,则判断所述交界线上的第三参考交接点是否第三接近下一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与下一个交接点之间的路径是否为有效路径;
如果是,则确定第三参考交接点为第二交换点;
以此类推,直到确定所述第二交换点;
判断如果所述第一交换点和所述第二交换点之间的路径是否为有效路径,
如果是,则确定所述第一交换点和所述第二交换点为交接点;
如果否,则重新确定所述第一交换点和所述第二交换点,直到所确定的所述第一交换点和所述第二交换点之间的路径为有效路径,否则,搜索失败。
进一步地,所述有效路径为可到达的路径。
本发明所述的芯片,用于存储程序,所述程序用于控制机器人执行上述的搜索方法。
本发明的有益效果在于:所述的机器人导航路径的搜索方法及芯片,通过采用分区搜索的方式,每次只在一个栅格区域内搜索路径,当一个栅格区域搜索完后,就释放内存,然后再搜索下一个栅格区域,以此减小路径搜索时的内存占用量,提高路径搜索效率,同时扩大了搜索的应用范围。
附图说明
图1为本发明所述的机器人导航路径的搜索方法的流程图。
图2为本发明所述的基于XY轴坐标系所构建的栅格区域示意地图。
图3为本发明所述的搜索待进栅格区域的示意地图一。
图4为本发明所述的搜索待进栅格区域的示意地图二。
图5为本发明所述的搜索交接点的示意地图一。
图6为本发明所述的搜索交接点的示意地图二。
图7为本发明所述的搜索交接点的示意地图三。
图8为本发明所述的搜索交接点的示意地图四。
图9为本发明所述的搜索交接点的示意地图五。
图10为本发明所述的搜索交接点的示意地图六。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
如图1所示,本发明所述的机器人导航路径的搜索方法,包括如下步骤:基于机器人的行进路径创建栅格地图;基于栅格地图进行区域划分,形成多个栅格区域;基于目标位置点,确定从出发位置点到达目标位置点需要经过的待过栅格区域;基于出发位置点所在的起点栅格区域,搜索所述起点栅格区域与相邻的第一待过栅格区域交界线上的第一交接点;确定所述第一交接点后,再搜索所述第一待过栅格区域与相邻的第二待过栅格区域交界线上的第二交接点;以此类推,确定所述第N交接点后,最后搜索所述第N待过栅格区域与相邻的目标位置点所在目标栅格区域交界线上的第N+1交接点;从出发位置点到第一交接点、第二交接点、第N+1交接点和目标位置点构成的路径作为导航路径。
其中,所述N为自然数,可以根据出发位置点和目标位置点之间的距离位置关系进行确定。
所述搜索方法,通过采用分区搜索的方式,每次只在一个栅格区域内,搜索与该区域相邻的待过栅格区域的交界线上的交接点,从而确定从出发位置点到交接点之间的路径。当一个栅格区域搜索完后,就释放内存,然后再搜索下一个待过栅格区域,最终形成从出发位置点到第一交接点、第二交接点、第N+1交接点和目标位置点的导航路径。如此,可以减小路径搜索时的内存占用量,提高路径搜索效率,同时扩大了搜索的应用范围,满足不同的搜索需求。
优选的,所述基于机器人的行进路径创建栅格地图,包括如下步骤:机器人在行进过程中,基于栅格单元的形式,标示行进过的栅格单元为已行进单元,标示碰到障碍物的栅格单元为障碍单元,标示未行进过的栅格单元为未行进单元;基于所述已行进单元、障碍单元和未行进单元,创建所述栅格地图。其中,所述栅格地图为一个由很多栅格单元构成的虚拟地图,通过该地图可以表示机器人行进过的路径和所处的环境情况。所述栅格单元为相同形状的正方形构成的基本单元格,每个栅格单元用一个8bit的数来表示。其高四位记录区域信息,表示此栅格位于那个区域内,因此最多支持16个区域。低四位用来表示障碍物信息:第0位表示扫地机器人是否到达过此栅格,为0表示未到达过,为1表示到达过;第1位表示此栅格是否存在障碍物,为0表示不存在,为1表示存在;第2位,预留;第3位,预留。
优选的,所述基于栅格地图进行区域划分,形成多个栅格区域,包括如下步骤:以出发点为原点,构建XY轴坐标系;将预定长度和预定宽度的方形区域作为栅格区域排布在XY轴坐标系中;其中,由已行进单元构成的栅格区域为已行进区域,由障碍单元和未行进单元构成的栅格区域为未行进区域。所述预定长度和预定宽度可以根据实际需求进行设置,也可以设置为相等的值。
如图2所示,以开机时机器人的起始点为原点构成的XY轴坐标系中,将整个栅格地图化分为4*4米的多个栅格区域(图中每一个方格表示一个栅格区域),其中,白色方格表示的栅格区域为已行进区域,灰色方格表示的栅格区域为未行进区域。假如机器人支持16*16平方米的清扫范围,可以把整个栅格地图划分为16个4*4平方米的栅格区域。可以对这些栅格区域进行坐标编号(编号如图所示(0,0)、(0,1)、(-1,0)等),每个编号也是由x和y构成,通过编号,可以区别不同的栅格区域,同时所赋予的坐标值,可以作为计算该栅格区域的权值的参考数据。其中,栅格地图高四位用来记录栅格区域信息,x和y各占两个位。
优选的,所述基于目标位置点,确定从出发位置点到达目标位置点需要经过的待过栅格区域,包括如下步骤:确定出发位置点所在的起点栅格区域;确定与所述起点栅格区域相邻的已行进区域的权值;选择权值最小的已行进区域作为第一待过栅格区域;再确定与所述第一待过栅格区域相邻的已行进区域的权值;选择权值最小的已行进区域作为第二待过栅格区域;以此类推,选择权值最小的已行进区域作为第N待过栅格区域,所述第N待过栅格区域与所述目标栅格区域相邻。其中,如果有两个或者两个以上相邻的已行进区域的权值最小且相同,则随机选择并确定其中一个作为待过栅格区域。所述N为自然数,可以根据出发位置点和目标位置点之间的距离位置关系进行确定。所述相邻为区域相邻,即指一个栅格区域与另一个栅格区域之间通过一条共同的边连接,如图3中,(0,0)区分别与(0,1)区、(1,0)区、(0,-1)区和(-1,0)区相邻。
其中,所述已行进区域的权值的确定,包括如下步骤:基于XY轴坐标系,赋予每个排布在XY轴坐标系中的栅格区域坐标值;确定出发位置点所在的起点栅格区域的坐标值为(SX,SY);确定已行进区域的坐标值为(CX,CY);确定目标位置点所在目标栅格区域的坐标值为(DX,DY);确定从起点栅格区域到所述已行进区域的第一开销为K1,K1=sqrt((CX-SX)*(CX-SX)+(CY-SY)*(CY-SY)),其中,sqrt为开平方根;确定从目标栅格区域到所述已行进区域的第二开销为K2,K2=abs(CX-DX)+abs(CY-DY),其中,abs为绝对值;确定所述已行进区域的权值为Q,Q=K1+K2。
如图3和图4所示,出发位置点所在的起点栅格区域为(-1,1)区,目标位置点所在的目标栅格区域为(1,0)区。搜索并确定从出发位置点到达目标位置点需要经过的待过栅格区域,则需要先确定与(-1,1)区相邻的已行进区域有(0,1)区和(-1,0)区。根据上述计算方法,计算得出(0,1)区的第一开销为1(标示在该区的左下角),第二开销为2(标示在该区的右下角),所以,该(0,1)区的权值为3(标示在该区的左上角)。计算得出(-1,0)区的第一开销为1(标示在该区的左下角),第二开销为2(标示在该区的右下角),所以,该(-1,0)区的权值为3(标示在该区的左上角)。由于(0,1)区和(-1,0)区的权值相同,所以,机器人可以随机选取一个区作为第一待过栅格区域,图3中机器人选择并确定(-1,0)区作为第一待过栅格区域。
接着,如图4所示,再确定与(-1,0)区相邻的已行进区域有(0,0)区和(-2,0)区。计算得出(0,0)区的第一开销为1.4(标示在该区的左下角),第二开销为1(标示在该区的右下角),所以,该(0,0)区的权值为2.4(标示在该区的左上角)。同理,计算得出(-2,0)区的第一开销为1.4,第二开销为3,所以,该(-2,0)区的权值为4.4。所以,选择权值较小的(0,0)区作为第二待过栅格区域。所述第二待过栅格区域与所述目标栅格区域(即(1,0)区)相邻。
优选的,在确定了待过栅格区域所组成的基本路径后,还需要搜索并确定基本路径上的相邻栅格区域的交界线上的交接点,以进一步确定具体的行进路径。具体包括如下步骤:确定所述相邻的栅格区域的交界线;判断所述交界线上的第一参考交接点是否第一接近出发位置点或者上一个交接点,且所述第一参考交接点的通过性是否大于预设宽度,如果是,则确定第一参考交接点为交接点;如果否,则判断所述交界线上的第二参考交接点是否第二接近出发位置点或者上一个交接点,且所述第二参考交接点的通过性是否大于预设宽度,如果是,则确定第二参考交接点为交接点;如果否,则判断所述交界线上的第三参考交接点的通过性是否大于其它参考交接点的通过性,且大于预设宽度,如果是,则确定第三参考交接点为第一交接点;如果否,则搜索失败。其中,所述通过性为基于参考交接点为中心的连续排布的已行进单元所组成的通过宽度,所述通过宽度越大,则所述通过性越好。所述预设宽度为机器人能够通过的最小宽度,该预设宽度可以根据实际需求进行相应设定,为了避免因为误差等原因导致机器人无法通过,可以把该值设置得比机器人机身宽度要大一些。
如图5所示,以图4中的(-1,1)区和(-1,0)区为例进行说明。由于(-1,1)区是出发位置点A所在的起点栅格区域,(-1,0)区是第一待过栅格区域,所以,从(-1,1)区行进至(-1,0)区,需要通过两区之间交界线上的交接点。由上述步骤可知,先确定这两个区的交界线,所述交界线为两个区域所共用的一条边,即为A1、A2、A3和A4所在的直线。图中所示的交界线上,用×表示障碍单元,用○表示已行进单元。将每一段连续排布的已行进单元的中心作为一个参考交接点,则所示交界线上有A1、A2、A3和A4四个参考交接点。接着,通过计算并判断得出,第一参考交接点A1第一接近出发位置点A,即第一参考交接点A1相对于其它参考交接点与出发位置点A的距离最近,并且,其通过性大于预设宽度,所以,确定第一参考交接点A1作为第一交接点。
如图6所示,以图4中的(-1,1)区、(-1,0)区和(0,0)区为例进行说明。通过所述分析结果可知,A1作为起点栅格区域和第一待过栅格区域之间的交接点,机器人从A点行进至A1点后,需要继续行进至第二待过栅格区域,此时,需要搜索并确定第一待过栅格区域与第二代过栅格区域之间的交界线上的第二交接点。通过计算并判断得出,位于所述交界线上的第一参考交接点B1与A1的距离最近,但是B1的通过性小于预设宽度,所以B1不能作为交接点。进一步考虑第二参考交接点B2,由于B2为第二接近A1的参考交接点,即B2相对于B1以外的其它参考交接点与上一个交接点A1的距离最短,并且B2的通过性大于预设宽度,所以,确定第二参考交接点B2作为第二交接点。
同理,如图7所示,以图4中的(-1,1)区、(-1,0)区、(0,0)区和(1,0)区为例进行说明。通过所述分析结果可知,B2作为第一待过栅格区域和第二待过栅格区域之间的交接点,机器人从A点行进至A1点和B2点后,需要继续行进至目标栅格区域(即目标位置点D所在的(1,0)区),此时,需要搜索并确定第二待过栅格区域与目标栅格区域之间的交界线上的第三交接点。通过计算并判断得出,位于所述交界线上的第一参考交接点C1和第二参考交接点C2相对于第三参考交接点C3和第四参考交接点C4,与B2的距离最近。但是C1和C2的通过性都小于预设宽度,所以C1和C2不能作为交接点。进一步考虑第三参考交接点C3和第四参考交接点C4,虽然C3相对于C4更接近于B2,但是C4的通过性相对于C1、C2和C3最大,且大于预设宽度,所以,确定第四参考交接点C4作为第三交接点。
上述实施例中,预设宽度设为三个○表示的宽度,只要参考交接点上连续排布的○个数大于或等于三个,则认为通过性大于预设宽度。
优选的,搜索并确定交界线上的交接点,包括如下步骤:确定所述相邻的栅格区域的交界线;判断所述交界线上的第一参考交接点是否第一接近出发位置点或者上一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与所述出发位置点或者上一个交接点之间的路径是否为有效路径;如果是,则确定第一参考交接点为交接点;如果否,则判断所述交界线上的第二参考交接点是否第二接近出发位置点或者上一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与出发位置点或者上一个交接点之间的路径是否为有效路径;如果是,则确定第二参考交接点为交接点;如果否,则判断所述交界线上的第三参考交接点是否第三接近出发位置点或者上一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与出发位置点或者上一个交接点之间的路径是否为有效路径;如果是,则确定第三参考交接点为交接点;以此类推,如果所述交界线上的所有参考交接点不能确定为交接点,则选取上一个交接点所在的交界线上的另一个参考交接点作为新的交接点,再分别与所述相邻的栅格区域的交界线上的参考交接点进行判断,直到确定所述参考交接点能够作为交接点;如果上一个交接点所在的交界线上的所有参考交接点作为新的交接点,都不能确定所述相邻的栅格区域的交界线上的交接点,则搜索失败。其中,所述通过性为基于参考交接点为中心的连续排布的已行进单元所组成的通过宽度。
如图8所示,(0,0)区中有一个障碍物100,此时,要从上一个交接点B2行进至目标位置点D,需要先经过第二待过栅格区域(即(0,0)区),所以,需要先确定第二待过栅格区域与目标栅格区域的交界线上的交接点。具体步骤如下:先把与上一个交接点B2距离最近的点C2作为第一参考交接点,由于C2点的通过性小于预设宽度,所以C2点不能作为交接点,需要进一步地,选择与B2点的距离第二接近的C1点作为第二参考交接点。由于C1点的通过性也小于预设宽度,所以C1不能作为交接点,需要进一步地,选择与B2的距离第三接近的C3点作为第三参考交接点。由于C3点的通过性大于预设宽度,且B2点与C3点之间的路径为有效路径,所以,把第三参考交接点C3作为交接点。
如图9所示,如果第三参考交接点C3的通过性小于预设宽度,则需要进一步地,选择与B2的距离第四接近的C4点作为第四参考交接点,虽然C4点的通过性大于预设宽度,但是B2点与C4点之间的路径不是有效路径,已经被障碍物100阻挡,所以,C4点不能作为交接点。此时,需要选择B2点所在的交界线上的下一个参考交接点作为新的交接点,由于第一参考点B1点的通过小于预设宽度,所以,B1点不能作为交接点。选取通过性大于预设宽度的第三参考点B3作为新的交接点。判断B3点分别与C1点、C2点、C3点和C4点的关系,由于C1点、C2点和C3点的通过性都小于预设宽度,且与B3点之间的路径不是有效路径,被障碍物100阻挡了。只有第四参考点C4的通过性大于预设宽度,且B3点和C4点之间的路径为有效路径,所以,确定C4点作为交接点。故,最终组成的导航路径为A-A1-B3-C4-D。通过这种调整上一个交接点的方式,可以有效解决待过栅格区域被障碍物上下分隔阻断时,所造成的路径搜索失败或者出错的问题,使得搜索路径可以绕过障碍物,依然以最优的路径到达目标位置点,从而提高机器人路径搜索的准确性、稳定性和高效性。
假如C4点的通过性小于预设宽度,则C4点也不能作为交接点,路径搜索失败。
优选的,所述搜索失败后,还包括如下步骤:选择与所述搜索失败对应的栅格区域相邻的另一个已行进区域作为交换区域;确定所述搜索失败对应的栅格区域与所述交换区域的交界线;判断所述交界线上的第一参考交接点是否第一接近上一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与上一个交接点之间的路径是否为有效路径;如果是,则确定第一参考交接点为第一交换点;如果否,则判断所述交界线上的第二参考交接点是否第二接近上一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与上一个交接点之间的路径是否为有效路径;如果是,则确定第二参考交接点为第一交换点;如果否,则判断所述交界线上的第三参考交接点是否第三接近上一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与上一个交接点之间的路径是否为有效路径;如果是,则确定第三参考交接点为第一交换点;以此类推,直到确定所述第一交换点。在确定所述第一交换点后,判断所述交界线上的第一参考交接点是否第一接近下一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与下一个交接点之间的路径是否为有效路径;如果是,则确定第一参考交接点为第二交换点;如果否,则判断所述交界线上的第二参考交接点是否第二接近下一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与下一个交接点之间的路径是否为有效路径;如果是,则确定第二参考交接点为第二交换点;如果否,则判断所述交界线上的第三参考交接点是否第三接近下一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与下一个交接点之间的路径是否为有效路径;如果是,则确定第三参考交接点为第二交换点;以此类推,直到确定所述第二交换点。判断如果所述第一交换点和所述第二交换点之间的路径是否为有效路径,如果是,则确定所述第一交换点和所述第二交换点为交接点;如果否,则重新确定所述第一交换点和所述第二交换点,直到所确定的所述第一交换点和所述第二交换点之间的路径为有效路径,否则,搜索失败。其中,所述通过性为基于参考交接点为中心的连续排布的已行进单元所组成的通过宽度。
如图10所示,(0,0)区中有一个障碍物200,该障碍物200阻断了从左边的交接点直接行进到右边的交接点的路径,从而导致了从左边的交接点到右边的交接点的路径搜索失败。此时,需要选择与所述搜索失败对应的栅格区域(即(0,0)区)相邻的另一个已行进区域(即(0,1)区)作为交换区域;确定(0,0)区与(0,1)区的交界线;判断得出所述交界线上的第一参考交接点J11第一接近上一个交接点B2,且其通过性大于预设宽度,J11点与交接点B2之间的路径也为有效路径;所以,确定第一参考交接点J11为第一交换点。
同理,判断得出,判断得出所述交界线上的第五参考交接点J21第一接近下一个交接点C4,且其通过性大于预设宽度,J21点与交接点C4之间的路径也为有效路径;所以,确定第五参考交接点J21为第二交换点。
由于J11点与J21点之间的路径也为有效路径,所以,确定J11点与J21点为交接点。故,由此组成的导航路径为A-A1-B2-J11-J21-C4-D。通过这种引入交换区的方式,可以有效解决待过栅格区域被障碍物左右分隔阻断时,所造成的路径搜索失败或者出错的问题,使得搜索路径可以绕过障碍物,依然以最优的路径到达目标位置点,从而提高机器人路径搜索的准确性、稳定性和高效性。
假如,J11点的通过性不大于预设宽度或者J11与B2之间的路径不是有效路径,则继续判断J12点和J13点是否符合要求,如果都不符合要求,则路径搜索失败,尝试下一个交换区域的搜索。
同理,假如,J21和J22也不符合要求,不能成为交接点,则路径搜索失败,尝试下一个交换区域的搜索。
所述实施例所述有效路径为可到达的路径,即从一个点到达另一点时,机器人的行进路径是可以通过的,不一定是最短的直线路径。
本发明所述的芯片,用于存储程序,所述程序用于控制机器人执行上述的搜索方法。机器人通过装配该芯片,能够通过采用分区搜索的方式,每次只在一个栅格区域内,搜索与该区域相邻的待过栅格区域的交界线上的交接点,从而确定从出发位置点到交接点之间的路径。当一个栅格区域搜索完后,就释放内存,然后再搜索下一个待过栅格区域,最终形成从出发位置点到第一交接点、第二交接点、第N+1交接点和目标位置点的导航路径。如此,可以减小路径搜索时的内存占用量,提高路径搜索效率,同时扩大了搜索的应用范围,满足不同的搜索需求。
以上实施例仅为充分公开而非限制本发明,凡基于本发明的创作主旨、未经创造性劳动的等效技术特征的替换,应当视为本申请揭露的范围。
Claims (5)
1.一种机器人导航路径的搜索方法,其特征在于,包括如下步骤:
基于机器人的行进路径创建栅格地图;
基于栅格地图进行区域划分,形成多个栅格区域;
基于目标位置点,确定从出发位置点到达目标位置点需要经过的待过栅格区域;
基于出发位置点所在的起点栅格区域,搜索所述起点栅格区域与相邻的第一待过栅格区域交界线上的第一交接点;
确定所述第一交接点后,再搜索所述第一待过栅格区域与相邻的第二待过栅格区域交界线上的第二交接点;
以此类推,
确定第N交接点后,最后搜索第N待过栅格区域与相邻的目标位置点所在目标栅格区域交界线上的第N+1交接点;
从出发位置点到第一交接点、第二交接点、第N+1交接点和目标位置点构成的路径作为导航路径;
其中,所述N为自然数;
其中,所述基于目标位置点,确定从出发位置点到达目标位置点需要经过的待过栅格区域,包括如下步骤:
确定出发位置点所在的起点栅格区域;
确定与所述起点栅格区域相邻的已行进区域的权值;
选择权值最小的已行进区域作为第一待过栅格区域;
再确定与所述第一待过栅格区域相邻的已行进区域的权值;
选择权值最小的已行进区域作为第二待过栅格区域;
以此类推,
选择权值最小的已行进区域作为第N待过栅格区域,所述第N待过栅格区域与所述目标栅格区域相邻;
其中,如果有两个或者两个以上相邻的已行进区域的权值最小且相同,则随机选择并确定其中一个作为待过栅格区域;
所述相邻为一个栅格区域与另一个栅格区域之间通过一条共同的边连接;
其中,所述已行进区域的权值的确定,包括如下步骤:
基于XY轴坐标系,赋予每个排布在XY轴坐标系中的栅格区域坐标值;
确定出发位置点所在的起点栅格区域的坐标值为(SX,SY);
确定已行进区域的坐标值为(CX,CY);
确定目标位置点所在目标栅格区域的坐标值为(DX,DY);
确定从起点栅格区域到所述已行进区域的第一开销为K1,K1=sqrt((CX-SX)*(CX-SX)+(CY-SY)*(CY-SY)),其中,sqrt为开平方根;
确定从目标栅格区域到所述已行进区域的第二开销为K2,K2=abs(CX-DX)+abs(CY-DY),其中,abs为绝对值;
确定所述已行进区域的权值为Q,Q=K1+K2;
其中,搜索并确定交界线上的交接点,包括如下步骤:
确定相邻的栅格区域的交界线;
判断交界线上的第一参考交接点是否第一接近出发位置点或者上一个交接点,且所述第一参考交接点的通过性是否大于预设宽度;
如果是,则确定第一参考交接点为交接点;
如果否,则判断交界线上的第二参考交接点是否第二接近出发位置点或者上一个交接点,且所述第二参考交接点的通过性是否大于预设宽度;
如果是,则确定第二参考交接点为交接点;
如果否,则判断交界线上的第三参考交接点的通过性是否大于其它参考交接点的通过性,且大于预设宽度;
如果是,则确定第三参考交接点为交接点;
如果否,则搜索失败;
其中,所述通过性为基于参考交接点为中心的连续排布的已行进单元所组成的通过宽度;
或者,搜索并确定交界线上的交接点,包括如下步骤:
确定相邻的栅格区域的交界线;
判断交界线上的第一参考交接点是否第一接近出发位置点或者上一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与所述出发位置点或者上一个交接点之间的路径是否为有效路径;
如果是,则确定第一参考交接点为交接点;
如果否,则判断交界线上的第二参考交接点是否第二接近出发位置点或者上一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与出发位置点或者上一个交接点之间的路径是否为有效路径;
如果是,则确定第二参考交接点为交接点;
如果否,则判断交界线上的第三参考交接点是否第三接近出发位置点或者上一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与出发位置点或者上一个交接点之间的路径是否为有效路径;
如果是,则确定第三参考交接点为交接点;
以此类推,如果所述交界线上的所有参考交接点不能确定为交接点,则选取上一个交接点所在的交界线上的另一个参考交接点作为新的交接点,再分别与所述相邻的栅格区域的交界线上的参考交接点进行判断,直到确定所述参考交接点能够作为交接点;
如果上一个交接点所在的交界线上的所有参考交接点作为新的交接点,都不能确定所述相邻的栅格区域的交界线上的交接点,则搜索失败;
其中,所述通过性为基于参考交接点为中心的连续排布的已行进单元所组成的通过宽度。
2.根据权利要求1所述的搜索方法,其特征在于:所述基于机器人的行进路径创建栅格地图,包括如下步骤:
机器人在行进过程中,基于栅格单元的形式,标示行进过的栅格单元为已行进单元,标示碰到障碍物的栅格单元为障碍单元,标示未行进过的栅格单元为未行进单元;
基于所述已行进单元、障碍单元和未行进单元,创建所述栅格地图。
3.根据权利要求2所述的搜索方法,其特征在于:所述基于栅格地图进行区域划分,形成多个栅格区域,包括如下步骤:
以出发点为原点,构建XY轴坐标系;
将预定长度和预定宽度的方形区域作为栅格区域排布在XY轴坐标系中;
其中,由已行进单元构成的栅格区域为已行进区域,由障碍单元和未行进单元构成的栅格区域为未行进区域。
4.根据权利要求1所述的搜索方法,其特征在于,所述搜索失败后,还包括如下步骤:
选择与搜索失败对应的栅格区域相邻的另一个已行进区域作为交换区域;
确定所述搜索失败对应的栅格区域与所述交换区域的交界线;
判断所述交界线上的第一参考交接点是否第一接近上一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与上一个交接点之间的路径是否为有效路径;
如果是,则确定第一参考交接点为第一交换点;
如果否,则判断所述交界线上的第二参考交接点是否第二接近上一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与上一个交接点之间的路径是否为有效路径;
如果是,则确定第二参考交接点为第一交换点;
如果否,则判断所述交界线上的第三参考交接点是否第三接近上一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与上一个交接点之间的路径是否为有效路径;
如果是,则确定第三参考交接点为第一交换点;
以此类推,直到确定第一交换点;
在确定所述第一交换点后,判断所述交界线上的第一参考交接点是否第一接近下一个交接点,所述第一参考交接点的通过性是否大于预设宽度,且所述第一参考交接点与下一个交接点之间的路径是否为有效路径;
如果是,则确定第一参考交接点为第二交换点;
如果否,则判断所述交界线上的第二参考交接点是否第二接近下一个交接点,所述第二参考交接点的通过性是否大于预设宽度,且所述第二参考交接点与下一个交接点之间的路径是否为有效路径;
如果是,则确定第二参考交接点为第二交换点;
如果否,则判断所述交界线上的第三参考交接点是否第三接近下一个交接点,所述第三参考交接点的通过性是否大于预设宽度,且所述第三参考交接点与下一个交接点之间的路径是否为有效路径;
如果是,则确定第三参考交接点为第二交换点;
以此类推,直到确定第二交换点;
判断如果所述第一交换点和所述第二交换点之间的路径是否为有效路径,
如果是,则确定所述第一交换点和所述第二交换点为交接点;
如果否,则重新确定第一交换点和第二交换点,直到所确定的所述第一交换点和所述第二交换点之间的路径为有效路径,否则,搜索失败。
5.根据权利要求1或4所述的搜索方法,其特征在于,所述有效路径为可到达的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710698659.2A CN107478232B (zh) | 2017-09-18 | 2017-09-18 | 机器人导航路径的搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710698659.2A CN107478232B (zh) | 2017-09-18 | 2017-09-18 | 机器人导航路径的搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107478232A CN107478232A (zh) | 2017-12-15 |
CN107478232B true CN107478232B (zh) | 2020-02-21 |
Family
ID=60598845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710698659.2A Active CN107478232B (zh) | 2017-09-18 | 2017-09-18 | 机器人导航路径的搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107478232B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108444484B (zh) * | 2018-03-12 | 2020-09-15 | 珠海市一微半导体有限公司 | 一种构建栅格地图的控制方法和芯片及机器人 |
CN109363585B (zh) * | 2018-12-17 | 2021-07-02 | 深圳市银星智能科技股份有限公司 | 分区遍历方法、清扫方法及其扫地机器人 |
CN110146091A (zh) * | 2019-07-02 | 2019-08-20 | 成都翼若云天科技有限公司 | 一种基于空间划分的智能机器人自主导航方法 |
CN112515554B (zh) * | 2020-10-14 | 2022-05-03 | 深圳市银星智能科技股份有限公司 | 一种机器人行走路径搜索方法及电子设备 |
CN113093736B (zh) * | 2021-03-17 | 2023-01-13 | 湖南格兰博智能科技有限责任公司 | 一种适用于扫地机的低成本芯片寻路算法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101769754A (zh) * | 2010-01-19 | 2010-07-07 | 湖南大学 | 一种基于类三维地图的移动机器人全局路径规划方法 |
KR20120069949A (ko) * | 2010-12-21 | 2012-06-29 | 고려대학교 산학협력단 | 이동 로봇의 최적 경로 생성 방법 및 이를 이용한 이동 로봇 |
KR101179075B1 (ko) * | 2012-02-28 | 2012-09-03 | 국방과학연구소 | 자율로봇의 경로계획방법 및 이를 구비한 경로계획장치 |
CN106441303A (zh) * | 2016-09-30 | 2017-02-22 | 哈尔滨工程大学 | 一种基于可搜索连续邻域a*算法的路径规划方法 |
CN106647769A (zh) * | 2017-01-19 | 2017-05-10 | 厦门大学 | 基于a*提取引导点的agv路径跟踪与避障协调方法 |
CN106774310A (zh) * | 2016-12-01 | 2017-05-31 | 中科金睛视觉科技(北京)有限公司 | 一种机器人导航方法 |
CN106840168A (zh) * | 2017-03-16 | 2017-06-13 | 苏州大学 | 清洁机器人及其动态环境下全覆盖路径规划方法 |
-
2017
- 2017-09-18 CN CN201710698659.2A patent/CN107478232B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101769754A (zh) * | 2010-01-19 | 2010-07-07 | 湖南大学 | 一种基于类三维地图的移动机器人全局路径规划方法 |
KR20120069949A (ko) * | 2010-12-21 | 2012-06-29 | 고려대학교 산학협력단 | 이동 로봇의 최적 경로 생성 방법 및 이를 이용한 이동 로봇 |
KR101179075B1 (ko) * | 2012-02-28 | 2012-09-03 | 국방과학연구소 | 자율로봇의 경로계획방법 및 이를 구비한 경로계획장치 |
CN106441303A (zh) * | 2016-09-30 | 2017-02-22 | 哈尔滨工程大学 | 一种基于可搜索连续邻域a*算法的路径规划方法 |
CN106774310A (zh) * | 2016-12-01 | 2017-05-31 | 中科金睛视觉科技(北京)有限公司 | 一种机器人导航方法 |
CN106647769A (zh) * | 2017-01-19 | 2017-05-10 | 厦门大学 | 基于a*提取引导点的agv路径跟踪与避障协调方法 |
CN106840168A (zh) * | 2017-03-16 | 2017-06-13 | 苏州大学 | 清洁机器人及其动态环境下全覆盖路径规划方法 |
Non-Patent Citations (2)
Title |
---|
一种可搜索无限个邻域的改进A*算法;辛煜 等;《机器人》;20140930;第36卷(第05期);第627-633页 * |
煤矿井下基于改进A*算法的移动机器人路径规划;王帅;《煤矿机械》;20081130;第29卷(第11期);第65-67页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107478232A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107478232B (zh) | 机器人导航路径的搜索方法 | |
CN107357295B (zh) | 一种基于栅格地图的路径搜索方法和芯片及机器人 | |
CN102435200B (zh) | 一种路径快速规划方法 | |
CN109541634A (zh) | 一种路径规划方法、装置和移动设备 | |
CN112161629B (zh) | 清洁机器人的路径规划方法、装置、清洁机器人及介质 | |
CN109059926A (zh) | 跨楼层路径规划方法及系统 | |
CN109540155A (zh) | 一种扫地机器人的路径规划与导航方法、计算机装置以及计算机可读存储介质 | |
CN106695790A (zh) | 一种机器人的移动控制方法及机器人 | |
CN110909961B (zh) | 基于bim的室内路径查询方法及装置 | |
CN111080786A (zh) | 基于bim的室内地图模型构建方法及装置 | |
CN108932876B (zh) | 一种引入黑区的a*和蚁群混合算法的快递无人机航迹规划方法 | |
CN102854880A (zh) | 面向混合地形区域不确定环境的机器人全局路径规划方法 | |
CN101241507A (zh) | 一种地图寻路方法及系统 | |
CN101122468A (zh) | 兴趣点信息的存储方法及利用兴趣点信息的导航方法 | |
CN101630366B (zh) | 大量分块地形数据的动态淹没区提取方法、装置及系统 | |
CN114815802A (zh) | 一种基于改进蚁群算法的无人天车路径规划方法和系统 | |
CN108268039A (zh) | 移动机器人的路径规划方法及系统 | |
CN107390700B (zh) | 机器人的动态建图方法及芯片 | |
CN108665117A (zh) | 一种室内空间最短路径的计算方法、装置、终端设备以及存储介质 | |
KR20220103144A (ko) | 자동화된 저장 및 취출 시스템을 그의 물리적인 설계를 재구축하는 동안 제어하는 방법, 시스템 및 컴퓨터 프로그램 | |
CN111631639A (zh) | 全局栅格地图的地图遍历块建立方法、芯片及移动机器人 | |
CN116795089A (zh) | 一种路径规划方法和装置以及一种云平台 | |
CN105352506B (zh) | 室内的路网规划方法及装置 | |
WO2023231757A1 (zh) | 基于地图区域轮廓的设置方法与机器人沿边结束控制方法 | |
CN113485355A (zh) | 一种机器人任务规划方法、系统、后台决策系统、搜索机器人及任务服务机器人 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong Patentee after: Zhuhai Yiwei Semiconductor Co.,Ltd. Country or region after: China Address before: Room 105-514, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee before: AMICRO SEMICONDUCTOR Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |