CN108189039B - 一种移动机器人的行进方法及装置 - Google Patents
一种移动机器人的行进方法及装置 Download PDFInfo
- Publication number
- CN108189039B CN108189039B CN201810133017.2A CN201810133017A CN108189039B CN 108189039 B CN108189039 B CN 108189039B CN 201810133017 A CN201810133017 A CN 201810133017A CN 108189039 B CN108189039 B CN 108189039B
- Authority
- CN
- China
- Prior art keywords
- path
- axis
- determining
- traveled
- current position
- 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 90
- 230000008569 process Effects 0.000 claims abstract description 58
- 238000004364 calculation method Methods 0.000 claims abstract description 16
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000010408 sweeping Methods 0.000 description 48
- 239000002184 metal Substances 0.000 description 11
- 238000004140 cleaning Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000005520 cutting process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000007493 shaping process Methods 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 1
- 241001417527 Pempheridae Species 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1653—Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
Abstract
本发明提供了一种移动机器人的行进方法及装置,该方法可以包括:确定所述移动机器人经过的至少一条已行走路径;确定每一条所述已行走路径对应的路径两端的一对端点信息;确定所述移动机器人所处的当前位置;根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径。本方案能降低移动机器人在确定待行进路径过程中的数据存储量和计算量。
Description
技术领域
本发明涉及自动化控制技术领域,特别涉及一种移动机器人的行进方法及装置。
背景技术
随着科学技术的发展,移动机器人作为可自动执行任务的机器装置,已经越来越多的走入了人们的生活。例如,扫地机器人可根据预设的程序自动对地面进行清洁,其已成为一种常用的智能家电。移动机器人在行进过程中,主要根据存储的已行走过的路径信息,确定待行进路径,待行进路径的确定效率对移动机器人的工作效率具有重要影响。
传统的移动机器人基于网格点对已清扫过的路径信息进行存储,以扫地机器人为例,其将清洁区域划分为多个相同的网格点,每一行/列网格点对应一条已清扫路径,即一条已清扫路径对应同一行/列的多个网格点。
当扫地机器人根据存储的已清扫路径信息确定待行进路径时,由于每条已清扫路径对应有多个网格点,使得存储的已清扫的路径信息较多,导致确定待行进路径过程中的数据计算量较大。
发明内容
本发明实施例提供了一种移动机器人的行进方法及装置,能降低移动机器人在确定待行进路径过程中的数据计算量。
第一方面,本发明实施例提供了一种移动机器人的行进方法,包括:
确定所述移动机器人经过的至少一条已行走路径;
确定每一条所述已行走路径对应的路径两端的一对端点信息;
确定所述移动机器人所处的当前位置;
根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径。
优选地,
进一步包括:
构建直角坐标系;
根据所述直角坐标系,设置所述移动机器人的行进规则;其中,所述行进规则为:沿y轴的第一方向直线行进,每次在行进过程中遇到障碍物时,沿着x轴正方向行进预设的标准距离之后,转向y轴的第二方向继续行进;
所述移动机器人从所述直接坐标系的原点出发,根据所述行进规则进行行走;
所述确定所述移动机器人经过的至少一条已行走路径,包括:
将所述移动机器人行走过程中沿y轴方向形成的每一条线段记录为一条所述已行走路径;
所述确定每一条所述已行走路径对应的路径两端的一对端点信息,包括:
确定行走过程中沿y轴方向的每一条线段的两个端点的x轴和y轴的坐标;
所述根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径,包括:
根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点;
以所述待行进目标点为起点,根据所述行进规则形成所述移动机器人的待行进路径。
优选地,
所述根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点,包括:
A1:确定各条已行走路径中是否存在所述当前位置对应的相邻路径,如果是,执行A2;其中,所述当前位置对应的x轴和y轴坐标与所述相邻路径的两个端点的x轴和y轴坐标满足以下第一公式;
其中,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,(x0,y0)表征所述当前位置对应的x轴和y轴坐标,r1表征预设的第一距离阈值;
A2:确定所述相邻路径的数量是否为1,如果是,执行A3;
A3:确定所述当前位置对应于所述相邻路径的x轴投影坐标,根据所述x轴投影坐标,确定所述移动机器人的待行进方向;
A4:根据所述当前位置的x轴和y轴坐标,在所述待行进方向上确定所述待行进目标点。
优选地,
进一步包括:当确定出所述相邻路径的数量不为1时,
针对任意一条所述相邻路径,执行:
B1:确定所述相邻路径的两个端点坐标是否满足:y2>y0且y1<y0,其中,y2>y1;如果是,执行A3和B2;否则执行B4;
B2:将所述相邻路径作为当前路径,确定在所述待行进方向上是否存在所述当前路径对应的相邻路径;如果是,执行B3;否则,从所述当前路径中的两个端点中选择一个端点作为所述当前位置,并执行A4;
B3:确定所述相邻路径的两个端点坐标是否满足:|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值;如果是,执行B2,否则执行B4;
B4:从所述相邻路径的两个端点中选择一个端点作为所述待行进目标点。
优选地,
所述A3中的所述确定所述当前位置对应于所述相邻路径的x轴投影坐标,包括:
利用下述第二计算公式,确定所述x轴投影坐标;
其中,x表征所述x轴投影坐标,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,y0表征所述当前位置对应的y轴坐标;
所述A3中的所述根据所述x轴投影坐标,确定所述移动机器人的待行进方向,包括:
根据所述x轴投影坐标与所述当前坐标的x轴坐标之间的大小关系,确定所述待行进方向;
优选地,
所述A4,包括:
C1:确定在所述待行进方向上,与所述当前位置的距离不大于所述标准距离的范围内是否存在障碍物,如果是,执行C2,否则执行C4;
C2:确定所述移动机器人根据所述行进规则行进时,碰撞到所述障碍物的碰撞次数,并确定所述碰撞次数是否大于预设的次数阈值,如果否,执行C3;
C3:将在所述待行进方向的反方向上,且距离所述当前位置的距离为预设的第三距离阈值的位置作为当前位置,执行C1;其中,所述第三距离阈值小于所述标准距离;
C4:将在所述待行进方向上与所述当前位置的距离为所述标准距离的位置作为所述待行进目标点。
优选地,
在所述形成所述移动机器人的待行进路径之后,进一步包括:
确定所述至少一条已行走路径中是否存在至少一条目标已行走路径;其中,目标已行走路径的两个端点的x轴坐标满足:|x5-xp2|<r4且|x6-xp1|<r5,x5和x6表征所述目标已行走路径的两个端点的x轴坐标,x6≥x5,xp1和xp2表征所述待行进路径的两个端点的x轴坐标,xp2≥xp1,r4表征预设的第四距离阈值,r5表征预设的第五距离阈值,r5≥r4;
如果是,将所述目标已行走路径与所述待行进路径合并为同一条行进路径,根据所述目标已行走路径的端点的y轴坐标与所述待行进路径的端点的y轴坐标,分别从所述目标已行走路径的两个端点和所述待行进路径的两个端点中选择一个端点,将选择出的所述端点作为所述行进路径的端点。
第二方面,本发明实施例提供了一种移动机器人的行进装置,包括:端点信息确定单元、当前位置确定单元和行进路径确定单元;其中,
所述端点信息确定单元,用于确定所述移动机器人经过的至少一条已行走路径,以及每一条所述已行走路径对应的路径两端的一对端点信息;
所述当前位置确定单元,用于确定所述移动机器人所处的当前位置;
所述行进路径确定单元,用于根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径。
优选地,
进一步包括:行进规则设置单元;其中,
所述行进规则设置单元,用于构建直角坐标系;根据所述直角坐标系,设置所述移动机器人的行进规则;其中,所述行进规则为:沿y轴的第一方向直线行进,每次在行进过程中遇到障碍物时,沿着x轴正方向行进预设的标准距离之后,转向y轴的第二方向继续行进;
所述端点信息确定单元,用于当所述移动机器人从所述直接坐标系的原点出发,根据所述行进规则进行行走时,将所述移动机器人行走过程中沿y轴方向形成的每一条线段记录为一条所述已行走路径,并确定行走过程中沿y轴方向的每一条线段的两个端点的x轴和y轴的坐标;
所述行进路径确定单元,用于根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点;以所述待行进目标点为起点,根据所述行进规则沿y轴行进,形成所述移动机器人的待行进路径。
优选地,
所述行进路径确定单元包括:相邻路径确定子单元、数量确定子单元、行进方向确定子单元和目标点确定子单元;其中,
所述相邻路径确定子单元,用于确定各条已行走路径中是否存在所述当前位置对应的相邻路径,如果是,触发所述数量确定子单元;其中,所述当前位置对应的x轴和y轴坐标与所述相邻路径的两个端点的x轴和y轴坐标满足以下第一公式;
其中,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,(x0,y0)表征所述当前位置对应的x轴和y轴坐标,r1表征所述第一距离阈值;
所述数量确定子单元,用于确定所述相邻路径的数量是否为1,如果是,触发所述行进方向确定子单元;
所述行进方向确定子单元,用于确定所述当前位置对应于所述相邻路径的x轴投影坐标,根据所述x轴投影坐标,确定所述移动机器人的待行进方向;
所述目标点确定子单元,用于根据所述当前位置的x轴和y轴坐标,在所述待行进方向上确定所述待行进目标点。
优选地,
当所述数量确定子单元确定出所述相邻路径的数量不为1时,进一步包括:第一坐标判定子单元和第二坐标判定子单元;其中,
所述第一坐标判定子单元,用于确定所述相邻路径的两个端点坐标是否满足:y2>y0且y1<y0,其中,y2>y1;如果是,触发所述行进方向确定子单元和所述相邻路径确定子单元;否则触发所述目标点确定子单元;
所述相邻路径确定子单元,进一步用于将所述相邻路径作为当前路径,确定在所述待行进方向上是否存在所述当前路径对应的相邻路径;如果是,触发所述第二坐标判定子单元,否则,从所述当前路径中的两个端点中选择一个端点作为所述当前位置,并触发所述目标点确定子单元;
所述第二坐标判定子单元,用于确定所述相邻路径的两个端点坐标是否满足:|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值;如果是,触发所述相邻路径确定子单元,否则触发所述目标点确定子单元;
所述目标点确定子单元,用于从所述相邻路径的两个端点中选择一个端点作为所述待行进目标点;
优选地,
所述行进方向确定子单元,用于利用下述第二计算公式,确定所述x轴投影坐标;根据所述x轴投影坐标与所述当前坐标的横坐标之间的大小关系,确定所述待行进方向;
其中,x表征所述x轴投影坐标,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,y0表征所述当前位置对应的y轴坐标;
优选地,
进一步包括:合并单元;其中,
所述合并单元,用于确定所述至少一条已行走路径中是否存在至少一条目标已行走路径;其中,目标已行走路径的两个端点的x轴坐标满足:|x5-xp2|<r4且|x6-xp1|<r5,x5和x6表征所述目标已行走路径的两个端点的x轴坐标,x6≥x5,xp1和xp2表征所述待行进路径的两个端点的x轴坐标,xp2≥xp1,r4表征预设的第四距离阈值,r5表征预设的第五距离阈值,r5≥r4;如果是,将所述目标已行走路径与所述待行进路径合并为同一条行进路径,将x6和xp1对应的两个端点作为合并后的所述行进路径的两个端点,并删除x5对应的端点信息。
本发明实施例提供了一种移动机器人的行进方法及装置,通过确定移动机器人经过的已行走路径,以及每一条已行走路径两端的端点信息,然后根据移动机器人所处的当前位置以及确定出的端点信息,确定移动机器人的待行进路径。由于一条已行走路径仅对应两个端点信息,相较于现有技术基于网格点的存储方式,减少了已行走路径信息的存储数据量,从而降低了移动机器人在确定待行进路径过程中的数据计算量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种移动机器人的行进方法的流程图;
图2是本发明一个实施例提供的一种移动机器人经过的已行走路径的示意图;
图3是本发明一个实施例提供的一种移动机器人所处的当前位置与已行走路径的相对位置的示意图;
图4是本发明一个实施例提供的一种移动机器人经过的当前路径与相邻路径的相对位置的示意图;
图5是本发明另一个实施例提供的一种移动机器人经过的已行走路径的示意图;
图6是本发明另一个实施例提供的一种移动机器人所处的当前位置与已行走路径的相对位置的示意图;
图7是本发明一个实施例提供的一种移动机器人经过的已行走路径与待行进路径的相对位置的示意图;
图8是本发明另一个实施例提供的一种移动机器人的行进方法的流程图;
图9是本发明一个实施例提供的一种移动机器人的行进装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种移动机器人的行进方法,该方法可以包括以下步骤:
步骤101:确定所述移动机器人经过的至少一条已行走路径;
步骤102:确定每一条所述已行走路径对应的路径两端的一对端点信息;
步骤103:确定所述移动机器人所处的当前位置;
步骤104:根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径。
上述实施例中,通过确定移动机器人经过的已行走路径,以及每一条已行走路径两端的端点信息,然后根据移动机器人所处的当前位置以及确定出的端点信息,确定移动机器人的待行进路径。由于一条已行走路径仅对应两个端点信息,相较于现有技术基于网格点的存储方式,减少了已行走路径信息的存储数据量,从而降低了移动机器人在确定待行进路径过程中的数据计算量。
本发明一个实施例中,该方法可以进一步包括:
构建直角坐标系;
根据所述直角坐标系,设置所述移动机器人的行进规则;其中,所述行进规则为:沿y轴的第一方向直线行进,每次在行进过程中遇到障碍物时,沿着x轴正方向行进预设的标准距离之后,转向y轴的第二方向继续行进;
所述移动机器人从所述直接坐标系的原点出发,根据所述行进规则进行行走;
步骤101的具体实施方式,可以包括:
将所述移动机器人行走过程中沿y轴方向形成的每一条线段记录为一条所述已行走路径;
步骤102的具体实施方式,可以包括:
确定行走过程中沿y轴方向的每一条线段的两个端点的x轴和y轴的坐标;
步骤104的具体实施方式,可以包括:
根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点;
以所述待行进目标点为起点,根据所述行进规则形成所述移动机器人的待行进路径。
本实施例提供的行进方法可用于扫地机器人、自动草坪切割机、巡逻机器人、洗地机器人或者洒水机器人等移动机器人的行进过程,以实现移动机器人对移动区域的全面覆盖。以扫地机器人为例,它的已行进路径即为其已清扫路径。在确定扫地机器人的待行径路径的过程中,首先设置扫地机器人的行进规则,即采用直线前进,遇到障碍物再转向侧移然后折回的方式。在直角坐标系中对扫地机器人的行进规则进行描述,即是扫地机器人沿y轴第一方向直线行进,每当遇到障碍物则转向x轴上的未清扫方向,沿着x轴侧移预设的第一距离阈值之后,例如侧移25cm,再转向y轴的第二方向继续行进。当扫地机器人开机时,其起始位置为原点(0,0),开机后即根据行进规则沿y轴方向直线行进,因此从视觉上看扫地机器人的已清扫路径主要由一些沿着y轴方向的平行线构成,扫地机器人根据行进规则行进的已清扫路径如图2所示。
在确定扫地机器人的已清扫路径时,即将扫地机器人在行走过程中沿y轴方向形成的每一条线段记录为一条已清扫路径,然后将每一条线段的两个端点的x轴和y轴的坐标确定为对应已清扫路径的端点信息。如果用(xr1,yr1)和(xr2,yr2)表征扫地机器人的一条已清扫路径的两个端点的x轴和y轴坐标,则其对应的已清扫路径可表示为(xr1,yr1)-(xr2,yr2)。那么一条理想的扫地机器人的已清扫路径在x轴上的坐标应该是相等的,xr1=xr2,例如,(0,200)-(1800,200),若其中坐标点的数值单位为毫米mm,代表扫地机器人在y轴方向上前进了1800mm。
然后可根据当前位置的x轴和y轴坐标以及各个端点的x轴和y轴坐标,确定扫地机器人的待行进目标点,以确定出的待行进目标点位为起点,根据行进规则沿y轴行进,即形成扫地机器人的待行进路径。由此,根据每个端点的x轴y轴坐标确定待行进路径,不仅有利于降低扫地机器人在确定待行进路径过程中的数据计算量,还能提高确定待行进路径的准确性。
本发明一个实施例中,所述根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点,可以包括:
A1:确定各条已行走路径中是否存在所述当前位置对应的相邻路径,如果是,执行A2;其中,所述当前位置对应的x轴和y轴坐标与所述相邻路径的两个端点的x轴和y轴坐标满足以下第一公式;
其中,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,(x0,y0)表征所述当前位置对应的x轴和y轴坐标,r1表征预设的第一距离阈值;
A2:确定所述相邻路径的数量是否为1,如果是,执行A3;
A3:确定所述当前位置对应于所述相邻路径的x轴投影坐标,根据所述x轴投影坐标,确定所述移动机器人的待行进方向;
A4:根据所述当前位置的x轴和y轴坐标,在所述待行进方向上确定所述待行进目标点。
仍以扫地机器人为例,在确定出每条已清扫路径的两个端点的x轴和y轴坐标之后,可将这些端点信息以结点的形式存储到链表中,一个结点代表一条已清扫路径。存储时每个结点包含的信息有:已清扫路径的两个端点的坐标(xr1,yr1)和(xr2,yr2)、以上两个端点是否为碰撞点和指向链表中下一个结点的指针。其中,端点的坐标一般为整数,代表端点在直角坐标系的位置,即与扫地机器人的出发点(0,0)的水平和垂直距离,单位为mm。端点是否为碰撞点可表征对应的端点是否碰撞到障碍物,端点是否为碰撞点可通过两个整形变量进行表示,若是碰撞点则为1,反之为0。存储时线段不设定已清扫路径的方向,以进一步减少存储的数据量,但为了便于数据的查找,存储时可将(xr1,yr1)存储为y轴方向较小的点,(xr2,yr2)存储为y轴方向较大的点,即从视觉上看来,(xr1,yr1)在下方,(xr2,yr2)在上方。
在确定待行进目标点时,首先遍历路径链表中的结点,当一个结点中的两个端点坐标满足其中,(x0,y0)表征当前位置对应的x轴和y轴坐标,r1表征预设的第一距离阈值,则说明(x0,y0)到(x1,y1)和(x2,y2)所处直线的距离小于第一距离阈值(以30cm为例),则可认为(x1,y1)和(x2,y2)对应的已清扫路径为当前位置的相邻路径。
由于当前位置相对于x轴的正负两个方向均可能存在相邻路径,因为在确定出存在相邻路径之后,再确定相邻路径的数量,当相邻路径的数量为1时,说明当前位置仅有一个方向存在相邻路径,例如,当x1和x2均大于x0时,说明相邻路径相对于当前位置在x的正方向,从视觉上看来即相邻路径在当前位置的右边,说明当前位置的右边已有相邻区域已被清扫,同时说明当前位置的x轴负方向,即当前位置的左边存在未清扫区域,则将当前位置的左边,即x负方向确定为待行进方向,然后可在x负方向上确定待行进目标点。同理,当x1和x2均小于x0时,可确定x轴正方向为确定为待行进方向。另外,可以理解的是,当已清扫路径中不存在当前位置对应的相邻路径时,说明当前位置左右两边的相邻区域均未被清扫,则可任意选择一边作为待行进方向。
另外,当确定出相邻路径的数量不为1时,说明当前位置相对于x轴的正负两个方向均存在相邻路径,即当前位置的左右两边均存在相邻路径,此时针对任意一条所述相邻路径,执行:
B1:确定所述相邻路径的两个端点坐标是否满足:y2>y0且y1<y0,其中,y2>y1;如果是,执行A3和B2;否则执行B4;
B2:将所述相邻路径作为当前路径,确定在所述待行进方向上是否存在所述当前路径对应的相邻路径;如果是,执行B3;否则,从所述当前路径的两个端点中选择一个端点作为所述当前位置,并执行A4;
B3:确定所述相邻路径的两个端点坐标是否满足:|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值;如果是,执行B2,否则执行B4;
B4:从所述相邻路径的两个端点中选择一个端点作为所述待行进目标点。
可以理解的是,当前位置左右两边均存在相邻路径时,在左右两边分别确定待行进目标点的过程中,除了待行进方向互为相反方向以外,其他过程均相同,下面以当前位置右边的相邻路径为例,对当前位置的左右两边均存在相邻路径时,确定待行进目标点的过程进行详细说明,以下简称当前位置右边的相邻路径为右相邻路径。
在确定出当前位置对应的右相邻路径之后,并不能说明当前位置右边的相邻区域均被清扫,需要进一步判断右相邻路径的两个端点的y轴坐标是否满足y2>y0且y1<y0,其中,y2>y1,若y2≤y0或y1≥y0,则说明该右相邻路径在当前位置的下方或上方,即表示当前位置的相邻区域中仅有下方或上方被部分清扫。当相邻区域仅有下方被部分清扫时,确定y2对应的端点是否为碰撞点,当y2对应的端点为非碰撞点时,可将y2对应的端点确定为待行进目标点,以使扫地机器人根据行进规则继续沿着y轴正方向前进,对相邻区域的上方进行清扫。同理,当相邻区域中仅有上方被清扫时,确定y1对应的端点是否为碰撞点,当y1对应的端点为非碰撞点时,可将y1对应的端点确定为待行进目标点。
当y1和y2对应的端点均为碰撞点时,将y1或y2对应的端点作为待行进目标点确定待行进路径的过程中,可能会遇到障碍物。遇到障碍物之后可后退一定距离,再继续前进,若该障碍物为临时障碍物,例如用户临时放置的凳子或其他物品等,则后退后继续前进时将不会再遇到障碍物,此时继续前进即形成待行进路径。若后退前进数次后仍能遇到障碍物,则将该待行进目标点作为当前位置,继续查找待行进目标点。
当y2>y0且y1<y0时,说明右相邻路径一定在y轴上穿过当前位置(x0,y0),此时可说明当前位置右边的相邻区域均被清扫(如图3所示)。此时将右相邻路径作为当前路径,确定是否存在当前路径对应的右相邻路径。具体地,可遍历链表中的结点,查找是否存在某个结点的端点坐标,使得当前路径的两个端点所在的直线与查找到的端点坐标所在的直线之间的距离小于预设的第一距离阈值,即同时满足x1>x3,x2>x4,|x3-x1|<r1和|x4-x2|<r1,其中,x1和x2表征相邻路径的两个端点的x轴坐标,x3和x4表征当前路径的两个端点的x轴坐标,x3>x2,x4>x3。如果未查找到满足条件的结点,即说明不存在当前路径对应的右相邻路径,表示当前路径的右边存在未被清扫过的相邻区域,此时选择当前路径的一个端点作为当前位置,在当前位置的右边,即x轴正方向确定待行进目标点。
如果查找到同时满足x1>x3,x2>x4,|x3-x1|<r1和|x4-x2|<r1的结点,则将该节点对应的已清扫路径确定为当前路径对应的右相邻路径。但查找到当前路径对应的右相邻路径不能说明当前路径右边的相邻区域均被清扫过,需进一步判断右相邻路径的端点是否满足|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值。如果|y1-y3|≥r2或|y2-y4|≥r2,以|y1-y3|≥r2为例,如图4所示,其中a为大于0的常数,若y3对应的端点为非碰撞点时,说明当前路径右边的相邻区域的下方存在部分未清扫区域,此时将y3对应的端点作为待行进目标点。同理,当y4对应的端点为非碰撞点时,可将y4对应的端点作为待行进目标点。
当y3和y4对应的端点均为碰撞点时,将y3或y4对应的端点作为待行进目标点确定待行进路径的过程中,可能会遇到障碍物。遇到障碍物之后可后退一定距离,再继续前进,若该障碍物为临时障碍物,例如用户临时放置的凳子或其他物品等,则后退后继续前进时将不会再遇到障碍物,此时继续前进即形成待行进路径。若后退前进数次后仍能遇到障碍物,则将该待行进目标点作为当前位置,继续查找待行进目标点。
若当前路径的右相邻路径的端点满足|y1-y3|<r2且|y2-y4|<r2,说明当前路径的右边相邻区域已被清扫,则继续将右相邻路径作为当前路径,按照上述过程继续查找右边是否存在未清扫区域,直至确定出待行进目标点。若一直查找到右边墙壁,均不存在未清扫区域,此时不存在当前路径对应的相邻路径,将当前路径的一个端点作为待行进目标点行进过程中,也会遇到障碍物(墙壁),此时将该端点作为当前位置,反向(x轴负方向)查找未清扫区域,若反方向上仍不存在未清扫区域,则说明待清扫区域已被全部清扫,扫地机器人已完成清扫任务,此时可结束行进流程。
值得一提的是,虽然设定移动机器人根据行进规则进行清扫,理论来说移动机器人经过的已行走路径如图2所示,但在实际行进过程中,移动机器人经过的已行走路径会与坐标轴形成一定夹角,如图5所示。此时如果直接根据当前位置的x轴坐标和相邻路径两个端点的x轴坐标确定待行进方向,会出现难以判断的情况,即出现x1<x0且x2>x0的情况,如图6所示。
为了准确确定待行进方向,本发明一个实施例中,所述A3的具体实施方式,可以包括:
利用下述第二计算公式,确定所述x轴投影坐标;
其中,x表征所述x轴投影坐标,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,y0表征所述当前位置对应的y轴坐标;
根据所述x轴投影坐标与所述当前坐标的x轴坐标之间的大小关系,确定所述待行进方向。
在这里,根据相邻路径的两个端点的x轴和y轴坐标,确定相邻路径对应的直线方程,然后将当前位置的y轴坐标y0带入确定出的直线方程,得到当前位置的x轴坐标对应于确定出的直线的x轴投影坐标x。当x大于x0时,确定相邻路径相对于当前位置处在x轴的正方向。即当当前位置对应的相邻路径为1时,待行进方向为x轴的负方向,当当前位置对应的相邻路径不为1时,待行进方向为x轴的正方向。反之,当x小于x0时,确定相邻路径相对于当前位置处在x轴的负方向。即当当前位置对应的相邻路径为1时,待行进方向为x轴的正方向,当当前位置对应的相邻路径不为1时,待行进方向为x轴的负方向。另外,可以理解的是,当相邻路径如图2所示与y轴平行时,当前位置对应的x轴投影坐标与相邻路径端点的x轴坐标相同,因此通过x轴投影坐标或直接通过相邻路径端点的x轴坐标确定待行进方向,结果是一致的。
本发明一个实施例中,所述A4的具体实施方式,可以包括:
C1:确定在所述待行进方向上,与所述当前位置的距离不大于所述标准距离的范围内是否存在障碍物,如果是,执行C2,否则执行C4;
C2:确定所述移动机器人根据所述行进规则行进时,碰撞到所述障碍物的碰撞次数,并确定所述碰撞次数是否大于预设的次数阈值,如果否,执行C3;
C3:将在所述待行进方向的反方向上,且距离所述当前位置的距离为第三距离阈值的位置作为当前位置,执行C1;其中,所述第三距离阈值小于所述标准距离;
C4:将在所述待行进方向上与所述当前位置的距离为所述标准距离的位置作为所述待行进目标点。
在确定出待行进方向后,理论上根据行进规则,从当前位置转向待行进方向行进预设的标准距离之后,即可到达待行进目标点。例如,当前位置的坐标为(100,20),若确定出的待行进方向为x轴正方向,预设的标准距离为50,则理论上的待行进目标点为(150,20)。但靠近待行进目标点的位置可能存在障碍物,例如(148,20)处有障碍物A,此时扫地机器人从当前位置行进到待行进目标点的过程中,会碰撞到障碍物A,此时扫地机器人向x轴负方向后退第四距离阈值,并将后退后所处的位置作为当前位置,例如,后退后的位置为(90,20),则从后退后的当前位置(90,20)根据行进规则行进时,可到达待行进目标点(140,20)。另外,当碰撞到障碍物的碰撞次数大于预设的次数阈值时,则根据存储的各个端点信息,重新查找未清扫区域,然后将未清扫区域中与当前位置距离最近的坐标作为待行进目标点。由于扫地机器人本身具有一定的体积,按照行进规则行进时,行进时可能会存在一定的误差,从而难以在x轴方向上完成设定的标准距离,通过上述寻边过程,可提高对障碍物边缘的清扫覆盖率,从而有利于提高扫地机器人的清洁效果。
本发明一个实施例中,在所述形成所述移动机器人的待行进路径之后,可以进一步包括:
确定所述至少一条已行走路径中是否存在至少一条目标已行走路径;其中,目标已行走路径的两个端点的x轴坐标满足:|x5-xp2|<r4且|x6-xp1|<r5,x5和x6表征所述目标已行走路径的两个端点的x轴坐标,x6≥x5,xp1和xp2表征所述待行进路径的两个端点的x轴坐标,xp2≥xp1,r4表征预设的第四距离阈值,r5表征预设的第五距离阈值,r5≥r4;
如果是,将所述目标已行走路径与所述待行进路径合并为同一条行进路径,根据所述目标已行走路径的端点的y轴坐标与所述待行进路径的端点的y轴坐标,分别从所述目标已行走路径的两个端点和所述待行进路径的两个端点中选择一个端点,将选择出的所述端点作为所述行进路径的端点。
当移动机器人寻找到待行进路径之后,就会涉及到原来未清扫的区域后来被清扫,需要对已行走路径的端点信息进行维护的情况,以简化后续的待行进路径确定过程。每确定出待行进路径之后,确定该待行进路径的两个端点,并将两个端点对应的端点信息以新增结点形式插入到链表的表尾,便于区分出链表中预存的已行走路径和新增的待行进路径,可用一个指针指向新增结点,在该指针指向节点之后的各个节点均为新增节点,其对应的路径为新产生的待行进路径。
对待行进路径,将其与已行走路径进行比较,确定是否存在目标已行走路径。以待行进路径(xp1,yp1)-(xp2,yp2)为例,确定是否存在目标已行走路径的两个端点的x轴坐标满足:|x5-xp2|<r4且|x6-xp1|<r5,x5和x6表征所述目标已行走路径的两个端点的x轴坐标,x6≥x5,r4表征预设的第四距离阈值,r5表征预设的第五距离阈值,r5≥r4。例如,|x5-xp2|<10cm且|x6-xp1|<20cm,若存在满足条件的目标已行走路径,则说明两条路径在x轴上的差异很小,则可认为它们是同一条路径。当yp2≤y5或yp1≥y6时,说明(xp1,yp1)-(xp2,yp2)在(x5,y5)-(x6,y6)的下方或上方,两条路径之间的区域可能是障碍物。在这种情况下,将(xp1,yp1)-(xp2,yp2)和(x5,y5)-(x6,y6)合并为同一条行进路径,在后续确定待清扫路径时,将不会视作两条断开的路径重新清扫,而是确定合并后的行进路径为已行走路径。当yp2≤y5时,说明待行进路径在目标已行走路径的下方,如图7所示,此时将(xp1,yp1)和(x6,y6)作为合并后的行进路径的两个端点,同时删除链表中存储的(x5,y5)和(xp2,yp2),即合并后的行进路径为(xp1,yp1)-(x6,y6)。当yp1≥y6时,说明待行进路径在目标已行走路径的上方,此时将(x5,y5)和(xp2,yp2)作为合并后的行进路径的两个端点,同时删除链表中存储的(xp1,yp1)和(x6,y6),由此进一步减少数据存储量,有利于进一步降低移动机器人在确定待行进路径过程中的数据计算量。
可以理解的是,扫地机器人、自动草坪切割机、巡逻机器人、洗地机器人或者洒水机器人等不同种类的移动机器人只是功能不同,即执行的任务不同,但其行进过程是相同的,即各种移动机器人均是通过在对应的处理区域行进,以完成对处理区域的覆盖,从而完成预设的执行任务。例如,扫地机器人通过在处理区域(清洁区域)行进,对清洁区域的覆盖过程即是其对清洁区域的清理过程,即是其完成清洁任务的过程。同理,自动草坪切割机通过在处理区域(切割区域)行进,对切割区域的覆盖过程即是其对切割区域中的草木的切割过程。
下面以扫地机器人为例,对本发明实施例提供的行进方法进行详细说明,其中,扫地机器人的已行进路径即为其已清扫路径。如图8所示,本发明实施例提供了一种扫地机器人的行进方法,该方法可以包括以下步骤:
步骤801:构建直角坐标系,根据构建的直角坐标系,设置扫地机器人的行进规则;其中,所述行进规则为:沿y轴的第一方向直线行进,每次在行进过程中遇到障碍物时,沿着x轴正方向行进预设的标准距离之后,转向y轴的第二方向继续行进。
步骤802:当扫地机器人从直角坐标系的原点出发,根据行进规则进行行走时,将扫地机器人行走过程中沿y轴方向形成的每一条线段记录为一条已清扫路径。
步骤803:确定每一条所述已清扫路径的两个端点的x轴和y轴的坐标,以及扫地机器人所处当前位置的x轴和y轴坐标。
在确定出每条已清扫路径的两个端点的x轴和y轴坐标之后,可将这些端点信息以结点的形式存储到链表中,一个结点代表一条已清扫路径。存储时每个结点包含的信息有:已清扫路径的两个端点的坐标(xr1,yr1)和(xr2,yr2)、以上两个端点是否为碰撞点和指向链表中下一个结点的指针。其中,端点的坐标一般为整数,代表端点在直角坐标系的位置,即与扫地机器人的出发点(0,0)的水平和垂直距离,单位为mm。端点是否为碰撞点可表征对应的端点是否碰撞到障碍物,端点是否为碰撞点可通过两个整形变量进行表示,若是碰撞点则为1,反之为0。存储时线段不设定已清扫路径的方向,以进一步减少存储的数据量,但为了便于数据的查找,存储时可将(xr1,yr1)存储为y轴方向较小的点,(xr2,yr2)存储为y轴方向较大的点,即从视觉上看来,(xr1,yr1)在下方,(xr2,yr2)在上方。
步骤804:判断各条已清扫路径中是否存在当前位置对应的相邻路径,如果是,执行步骤806,否则执行步骤805。
例如,当前位置的坐标为(x0,y0),相邻路径的两个端点坐标为(x1,y1)和(x2,y2)。则当前位置的坐标与相邻路径的两个端点坐标满足其中,r1表征预设的第一距离阈值,说明(x0,y0)到(x1,y1)和(x2,y2)所处直线的距离小于第一距离阈值(以30cm为例)。
步骤805:按照行进规则确定扫地机器人的待行进路径,并结束当前流程。
当已清扫路径中不存在当前位置对应的相邻路径时,说明当前位置左右两边的相邻区域均未被清扫,则可根据行进规则转向x轴正方向,在x轴正方向上移动标准距离之后,到达待行进目标点,再从待行进目标点出发,沿y轴行进,形成待行进路径。
步骤806:确定所述当前位置对应于所述相邻路径的x轴投影坐标,根据所述x轴投影坐标,确定所述扫地机器人的待行进方向。
虽然设定扫地机器人根据行进规则进行清扫,理论来说扫地机器人经过的已清扫路径如图2所示,但在实际行进过程中,扫地机器人经过的已清扫路径会与坐标轴形成一定夹角,如图5所示。此时如果直接根据当前位置的x轴坐标和相邻路径两个端点的x轴坐标确定待行进方向,会出现难以判断的情况,即出现x1<x0且x2>x0的情况,如图6所示。因此根据x轴的投影坐标确定待行进方向,以使待行进方向的判断更准确。
步骤807:判断相邻路径的数量是否为1,如果是,执行步骤813,否则执行步骤808。
当相邻路径的数量为1时,说明当前位置仅有一个方向存在相邻路径,例如,当x1和x2均大于x0时,说明相邻路径相对于当前位置在x的正方向,从视觉上看来即相邻路径在当前位置的右边,说明当前位置的右边已有相邻区域已被清扫,同时说明当前位置的x轴负方向,即当前位置的左边存在未清扫区域,则将当前位置的左边,即x负方向确定为待行进方向,然后可在x负方向上确定待行进目标点。
步骤808:针对任意一条相邻路径:判断相邻路径的两个端点坐标是否满足y2>y0且y1<y0,其中,y2>y1;如果是,执行步骤809,否则执行步骤811。
当前位置左右两边均存在相邻路径时,在左右两边分别确定待行进目标点的过程中,除了待行进方向互为相反方向以外,其他过程均相同,因此下面以当前位置右边的相邻路径为例。
在确定出当前位置对应的右相邻路径之后,并不能说明当前位置右边的相邻区域均被清扫,需要进一步判断右相邻路径的两个端点的y轴坐标是否满足y2>y0且y1<y0,其中,y2>y1,若y2≤y0或y1≥y0,则说明该右相邻路径在当前位置的下方或上方,即表示当前位置的相邻区域中仅有下方或上方被部分清扫。当相邻区域仅有下方被部分清扫时,确定y2对应的端点是否为碰撞点,当y2对应的端点为非碰撞点时,可将y2对应的端点确定为待行进目标点,以使扫地机器人根据行进规则继续沿着y轴正方向前进,对相邻区域的上方进行清扫。
步骤809:将所述相邻路径作为当前路径,判断在所述待行进方向上是否存在所述当前路径对应的相邻路径,如果是,执行步骤810,否则执行步骤812。
当y2>y0且y1<y0时,说明右相邻路径一定在y轴上穿过当前位置(x0,y0),此时可说明当前位置右边的相邻区域均被清扫,此时将右相邻路径作为当前路径,确定是否存在当前路径对应的右相邻路径。如果未查找到满足条件的结点,即说明不存在当前路径对应的右相邻路径,表示当前路径的右边存在未被清扫过的相邻区域,此时选择当前路径的一个端点作为当前位置,在当前位置的右边,即x轴正方向确定待行进目标点。
步骤810:判断相邻路径的两个端点坐标是否满足:|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值;如果是,执行步骤809,否则执行步骤811。
即使查找到当前路径的相邻路径,也不能说明当前路径右边的相邻区域均被清扫过,当相邻路径的两个端点坐标不满足:|y1-y3|<r2且|y2-y4|<r2时,即|y1-y3|≥r2或|y2-y4|≥r2,以|y1-y3|≥r2为例,说明当前路径右边的相邻区域的下方存在部分未清扫区域,此时将y3对应的端点作为待行进目标点。若相邻路径的两个端点满足|y1-y3|<r2且|y2-y4|<r2,则再将确定出的相邻路径作为当前路径,在待行进方向上继续查找未清扫的区域。
步骤811:从相邻路径的两个端点中选择一个端点作为待行进目标点,并执行步骤814。
步骤812:从当前路径的两个端点中选择一个端点作为当前位置。
步骤813:根据所述当前位置的x轴和y轴坐标,待行进方向上确定待行进目标点。
在确定出待行进方向后,根据行进规则,从当前位置转向待行进方向行进预设的标准距离之后,即可到达待行进目标点。例如,当前位置的坐标为(100,20),若确定出的待行进方向为x轴正方向,预设的标准距离为50,则理论上的待行进目标点为(150,20)。但靠近待行进目标点的位置可能存在障碍物,例如(148,20)处有障碍物A,此时扫地机器人从当前位置行进到待行进目标点的过程中,会碰撞到障碍物A,此时扫地机器人可向x轴负方向后退第四距离阈值,并将后退后所处的位置作为当前位置,例如,后退后的位置为(90,20),则从后退后的当前位置(90,20)根据行进规则行进时,可到达待行进目标点(140,20)。另外,当碰撞到障碍物的碰撞次数大于预设的次数阈值时,则根据存储的各个端点信息,重新查找未清扫区域,然后将未清扫区域中与当前位置距离最近的坐标作为待行进目标点。
步骤814:以所述待行进目标点为起点,根据所述行进规则形成所述扫地机器人的待行进路径。
如图9所示,本发明实施例提供了一种移动机器人的行进装置,包括:端点信息确定单元901、当前位置确定单元902和行进路径确定单元903;其中,
所述端点信息确定单元901,用于确定所述移动机器人经过的至少一条已行走路径,以及每一条所述已行走路径对应的路径两端的一对端点信息;
所述当前位置确定单元902,用于确定所述移动机器人所处的当前位置;
所述行进路径确定单元903,用于根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径。
本发明一个实施例中,该装置可以进一步包括:行进规则设置单元;其中,
所述行进规则设置单元,用于构建直角坐标系;根据所述直角坐标系,设置所述移动机器人的行进规则;其中,所述行进规则为:沿y轴的第一方向直线行进,每次在行进过程中遇到障碍物时,沿着x轴正方向行进预设的标准距离之后,转向y轴的第二方向继续行进;
所述端点信息确定单元901,用于当所述移动机器人从所述直接坐标系的原点出发,根据所述行进规则进行行走时,将所述移动机器人行走过程中沿y轴方向形成的每一条线段记录为一条所述已行走路径,并确定行走过程中沿y轴方向的每一条线段的两个端点的x轴和y轴的坐标;
所述行进路径确定单元902,用于根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点;以所述待行进目标点为起点,根据所述行进规则形成所述移动机器人的待行进路径。
本发明一个实施例中,所述行进路径确定单元903包括:相邻路径确定子单元、数量确定子单元、行进方向确定子单元和目标点确定子单元;其中,
所述相邻路径确定子单元,用于确定各条已行走路径中是否存在所述当前位置对应的相邻路径,如果是,触发所述数量确定子单元;其中,所述当前位置对应的x轴和y轴坐标与所述相邻路径的两个端点的x轴和y轴坐标满足以下第一公式;
其中,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,(x0,y0)表征所述当前位置对应的x轴和y轴坐标,r1表征预设的第一距离阈值;
所述数量确定子单元,用于确定所述相邻路径的数量是否为1,如果是,触发所述行进方向确定子单元;
所述行进方向确定子单元,用于确定所述当前位置对应于所述相邻路径的x轴投影坐标,根据所述x轴投影坐标,确定所述移动机器人的待行进方向;
所述目标点确定子单元,用于根据所述当前位置的x轴和y轴坐标,在所述待行进方向上确定所述待行进目标点。
本发明一个实施例中,当所述数量确定子单元确定出所述相邻路径的数量不为1时,进一步包括:第一坐标判定子单元和第二坐标判定子单元;其中,
所述第一坐标判定子单元,用于确定所述相邻路径的两个端点坐标是否满足:y2>y0且y1>y0,其中,y2>y1;如果是,触发所述行进方向确定子单元和所述相邻路径确定子单元;否则触发所述目标点确定子单元;
所述相邻路径确定子单元,进一步用于将所述相邻路径作为当前路径,确定在所述待行进方向上是否存在所述当前路径对应的相邻路径;如果是,触发所述第二坐标判定子单元,否则,从所述当前路径中的两个端点中选择一个端点作为所述当前位置,并触发所述目标点确定子单元;
所述第二坐标判定子单元,用于确定所述相邻路径的两个端点坐标是否满足:|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值;如果是,触发所述相邻路径确定子单元,否则触发所述目标点确定子单元;
所述目标点确定子单元,用于从所述相邻路径的两个端点中选择一个端点作为所述待行进目标点;
本发明一个实施例中,所述行进方向确定子单元,用于利用下述第二计算公式,确定所述x轴投影坐标;根据所述x轴投影坐标与所述当前坐标的x轴坐标之间的大小关系,确定所述待行进方向;
其中,x表征所述x轴投影坐标,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,y0表征所述当前位置对应的y轴坐标;
本发明一个实施例中,该装置可以进一步包括:合并单元;其中,
所述合并单元,用于确定所述至少一条已行走路径中是否存在至少一条目标已行走路径;其中,目标已行走路径的两个端点的x轴坐标满足:|x5-xp2|<r4且|x6-xp1|<r5,x5和x6表征所述目标已行走路径的两个端点的x轴坐标,x6≥x5,xp1和xp2表征所述待行进路径的两个端点的x轴坐标,xp2≥xp1,r4表征预设的第四距离阈值,r5表征预设的第五距离阈值,r5≥r4;如果是,将所述目标已行走路径与所述待行进路径合并为同一条行进路径,根据所述目标已行走路径的端点的y轴坐标与所述待行进路径的端点的y轴坐标,分别从所述目标已行走路径的两个端点和所述待行进路径的两个端点中选择一个端点,将选择出的所述端点作为所述行进路径的端点。
本发明一个实施例中,所述目标点确定子单元,用于执行以下步骤:
C1:确定在所述待行进方向上,与所述当前位置的距离不大于所述标准距离的范围内是否存在障碍物,如果是,执行C2,否则执行C4;
C2:确定所述移动机器人根据所述行进规则行进时,碰撞到所述障碍物的碰撞次数,并确定所述碰撞次数是否大于预设的次数阈值,如果否,执行C3;
C3:将在所述待行进方向的反方向上,且距离所述当前位置的距离为预设的第三距离阈值的位置作为当前位置,执行C1;其中,所述第三距离阈值小于所述标准距离;
C4:将在所述待行进方向上与所述当前位置的距离为所述标准距离的位置作为所述待行进目标点。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明上述任一实施例提供的方法。
本发明实施例还提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明上述任一实施例提供的方法。
综上所述,本发明以上各个实施例至少具有如下有益效果:
1、在本发明实施例中,通过确定移动机器人经过的已行走路径,以及每一条已行走路径两端的端点信息,然后根据移动机器人所处的当前位置以及确定出的端点信息,确定移动机器人的待行进路径。由于一条已行走路径仅对应两个端点信息,相较于现有技术基于网格点的存储方式,减少了已行走路径信息的存储数据量,从而降低了移动机器人在确定待行进路径过程中的数据计算量。
2、在本发明实施例中,通过构建直角坐标系,并根据构建的直角坐标系设置移动机器人的行进规则。当移动机器人从直角坐标系的原点出发,根据行进规则进行行走时,将移动机器人行走过程中沿y轴方向形成的每一条线段记录为已行走路径。然后根据已行走路径的两个端点的x轴和y轴坐标以及当前位置的x轴和y轴坐标,确定移动机器人的待行进目标点,以待行进目标点为起点,根据行进规则即形成移动机器人的待行进路径。由此,根据每个端点的x轴y轴坐标确定待行进路径,不仅有利于降低移动机器人在确定待行进路径过程中的数据计算量,还能提高确定待行进路径的准确性。
3、在本发明实施例中,当存在当前位置对应的相邻路径时,确定当前位置对应于相邻路径的x轴投影坐标,然后根据x轴投影坐标与当前坐标的x轴坐标之间的大小关系,确定待行进方向,以提高待行进方向的准确性,有利于提高移动机器人对处理区域处理的全面性以及处理效率。
4、在本发明实施例中,在确定出移动机器人的待行进路径之后,从各条已行走路径中选择与待行进路径之间的距离小于预设距离阈值的目标已行走路径,并将目标已行走路径与待行进路径合并为同一条行进路径。然后分别从目标已行走路径的两个端点和待行进路径的两个端点中选择一个端点,将选择出的端点作为所述行进路径的端点。由此进一步减少数据存储量,有利于进一步降低移动机器人在确定待行进路径过程中的数据计算量。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种移动机器人的行进方法,其特征在于,包括:
确定所述移动机器人经过的至少一条已行走路径;
确定每一条所述已行走路径对应的路径两端的一对端点信息;
确定所述移动机器人所处的当前位置;
根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径;
进一步包括:
构建直角坐标系;
根据所述直角坐标系,设置所述移动机器人的行进规则;其中,所述行进规则为:沿y轴的第一方向直线行进,每次在行进过程中遇到障碍物时,沿着x轴正方向行进预设的标准距离之后,转向y轴的第二方向继续行进;
所述移动机器人从所述直角坐标系的原点出发,根据所述行进规则进行行走;
所述确定所述移动机器人经过的至少一条已行走路径,包括:
将所述移动机器人行走过程中沿y轴方向形成的每一条线段记录为一条所述已行走路径;
所述确定每一条所述已行走路径对应的路径两端的一对端点信息,包括:
确定行走过程中沿y轴方向的每一条线段的两个端点的x轴和y轴的坐标;
所述根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径,包括:
根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点;
以所述待行进目标点为起点,根据所述行进规则形成所述移动机器人的待行进路径。
2.根据权利要求1所述的方法,其特征在于,
所述根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点,包括:
A1:确定各条已行走路径中是否存在所述当前位置对应的相邻路径,如果是,执行A2;其中,所述当前位置对应的x轴和y轴坐标与所述相邻路径的两个端点的x轴和y轴坐标满足以下第一公式;
其中,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,(x0,y0)表征所述当前位置对应的x轴和y轴坐标,r1表征预设的第一距离阈值;
A2:确定所述相邻路径的数量是否为1,如果是,执行A3;
A3:确定所述当前位置对应于所述相邻路径的x轴投影坐标,根据所述x轴投影坐标,确定所述移动机器人的待行进方向;
A4:根据所述当前位置的x轴和y轴坐标,在所述待行进方向上确定所述待行进目标点。
3.根据权利要求2所述的方法,其特征在于,
进一步包括:当确定出所述相邻路径的数量不为1时,
针对任意一条所述相邻路径,执行:
B1:确定所述相邻路径的两个端点坐标是否满足:y2>y0且y1<y0,其中,y2>y1;如果是,执行A3和B2;否则执行B4;
B2:将所述相邻路径作为当前路径,确定在所述待行进方向上是否存在所述当前路径对应的相邻路径;如果是,执行B3;否则,从所述当前路径中的两个端点中选择一个端点作为所述当前位置,并执行A4;
B3:确定所述相邻路径的两个端点坐标是否满足:|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值;如果是,执行B2,否则执行B4;
B4:从所述相邻路径的两个端点中选择一个端点作为所述待行进目标点。
4.根据权利要求2或3所述的方法,其特征在于,
所述A3中的所述确定所述当前位置对应于所述相邻路径的x轴投影坐标,包括:
利用下述第二计算公式,确定所述x轴投影坐标;
其中,x表征所述x轴投影坐标,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,y0表征所述当前位置对应的y轴坐标;
所述A3中的所述根据所述x轴投影坐标,确定所述移动机器人的待行进方向,包括:
根据所述x轴投影坐标与所述当前坐标的x轴坐标之间的大小关系,确定所述待行进方向;
和/或,
所述A4,包括:
C1:确定在所述待行进方向上,与所述当前位置的距离不大于所述标准距离的范围内是否存在障碍物,如果是,执行C2,否则执行C4;
C2:确定所述移动机器人根据所述行进规则行进时,碰撞到所述障碍物的碰撞次数,并确定所述碰撞次数是否大于预设的次数阈值,如果否,执行C3;
C3:将在所述待行进方向的反方向上,且距离所述当前位置的距离为预设的第三距离阈值的位置作为当前位置,执行C1;其中,所述第三距离阈值小于所述标准距离;
C4:将在所述待行进方向上与所述当前位置的距离为所述标准距离的位置作为所述待行进目标点。
5.根据权利要求2或3所述的方法,其特征在于,
在所述形成所述移动机器人的待行进路径之后,进一步包括:
确定所述至少一条已行走路径中是否存在至少一条目标已行走路径;其中,所述目标已行走路径的两个端点的x轴坐标满足:|x5-xp2|<r4且|x6-xp1|<r5,x5和x6表征所述目标已行走路径的两个端点的x轴坐标,x6≥x5,xp1和xp2表征所述待行进路径的两个端点的x轴坐标,xp2≥xp1,r4表征预设的第四距离阈值,r5表征预设的第五距离阈值,r5≥r4;
如果是,将所述目标已行走路径与所述待行进路径合并为同一条行进路径,根据所述目标已行走路径的端点的y轴坐标与所述待行进路径的端点的y轴坐标,分别从所述目标已行走路径的两个端点和所述待行进路径的两个端点中选择一个端点,将选择出的所述端点作为所述行进路径的端点。
6.一种移动机器人的行进装置,其特征在于,包括:端点信息确定单元、当前位置确定单元和行进路径确定单元;其中,
所述端点信息确定单元,用于确定所述移动机器人经过的至少一条已行走路径,以及每一条所述已行走路径对应的路径两端的一对端点信息;
所述当前位置确定单元,用于确定所述移动机器人所处的当前位置;
所述行进路径确定单元,用于根据所述当前位置以及确定出的所述端点信息,确定所述移动机器人的待行进路径;
进一步包括:行进规则设置单元;其中,
所述行进规则设置单元,用于构建直角坐标系;根据所述直角坐标系,设置所述移动机器人的行进规则;其中,所述行进规则为:沿y轴的第一方向直线行进,每次在行进过程中遇到障碍物时,沿着x轴正方向行进预设的标准距离之后,转向y轴的第二方向继续行进;
所述端点信息确定单元,用于当所述移动机器人从所述直角坐标系的原点出发,根据所述行进规则进行行走时,将所述移动机器人行走过程中沿y轴方向形成的每一条线段记录为一条所述已行走路径,并确定行走过程中沿y轴方向的每一条线段的两个端点的x轴和y轴的坐标;
所述行进路径确定单元,用于根据所述当前位置在所述直角坐标系中对应的x轴和y轴坐标,以及各个所述端点的x轴和y轴坐标,确定所述移动机器人的待行进目标点;以所述待行进目标点为起点,根据所述行进规则沿y轴行进,形成所述移动机器人的待行进路径。
7.根据权利要求6所述的装置,其特征在于,
所述行进路径确定单元包括:相邻路径确定子单元、数量确定子单元、行进方向确定子单元和目标点确定子单元;其中,
所述相邻路径确定子单元,用于确定各条已行走路径中是否存在所述当前位置对应的相邻路径,如果是,触发所述数量确定子单元;其中,所述当前位置对应的x轴和y轴坐标与所述相邻路径的两个端点的x轴和y轴坐标满足以下第一公式;
其中,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,(x0,y0)表征所述当前位置对应的x轴和y轴坐标,r1表征第一距离阈值;
所述数量确定子单元,用于确定所述相邻路径的数量是否为1,如果是,触发所述行进方向确定子单元;
所述行进方向确定子单元,用于确定所述当前位置对应于所述相邻路径的x轴投影坐标,根据所述x轴投影坐标,确定所述移动机器人的待行进方向;
所述目标点确定子单元,用于根据所述当前位置的x轴和y轴坐标,在所述待行进方向上确定所述待行进目标点。
8.根据权利要求7所述的装置,其特征在于,
当所述数量确定子单元确定出所述相邻路径的数量不为1时,进一步包括:第一坐标判定子单元和第二坐标判定子单元;其中,
所述第一坐标判定子单元,用于确定所述相邻路径的两个端点坐标是否满足:y2>y0且y1<y0,其中,y2>y1;如果是,触发所述行进方向确定子单元和所述相邻路径确定子单元;否则触发所述目标点确定子单元;
所述相邻路径确定子单元,进一步用于将所述相邻路径作为当前路径,确定在所述待行进方向上是否存在所述当前路径对应的相邻路径;如果是,触发所述第二坐标判定子单元,否则,从所述当前路径中的两个端点中选择一个端点作为所述当前位置,并触发所述目标点确定子单元;
所述第二坐标判定子单元,用于确定所述相邻路径的两个端点坐标是否满足:|y1-y3|<r2且|y2-y4|<r2,其中,y3和y4表征所述当前路径的两个端点的y轴坐标,y4>y3,r2表征预设的第二距离阈值;如果是,触发所述相邻路径确定子单元,否则触发所述目标点确定子单元;
所述目标点确定子单元,用于从所述相邻路径的两个端点中选择一个端点作为所述待行进目标点;
和/或,
所述行进方向确定子单元,用于利用下述第二计算公式,确定所述x轴投影坐标;根据所述x轴投影坐标与所述当前坐标的横坐标之间的大小关系,确定所述待行进方向;
其中,x表征所述x轴投影坐标,(x1,y1)和(x2,y2)表征所述相邻路径的两个端点的x轴和y轴坐标,y0表征所述当前位置对应的y轴坐标;
和/或,
进一步包括:合并单元;其中,
所述合并单元,用于确定所述至少一条已行走路径中是否存在至少一条目标已行走路径;其中,所述目标已行走路径的两个端点的x轴坐标满足:|x5-xp2|<r4且|x6-xp1|<r5,x5和x6表征所述目标已行走路径的两个端点的x轴坐标,x6≥x5,xp1和xp2表征所述待行进路径的两个端点的x轴坐标,xp2≥xp1,r4表征预设的第四距离阈值,r5表征预设的第五距离阈值,r5≥r4;如果是,将所述目标已行走路径与所述待行进路径合并为同一条行进路径,将x6和xp1对应的两个端点作为合并后的所述行进路径的两个端点,并删除x5对应的端点信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810133017.2A CN108189039B (zh) | 2018-02-09 | 2018-02-09 | 一种移动机器人的行进方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810133017.2A CN108189039B (zh) | 2018-02-09 | 2018-02-09 | 一种移动机器人的行进方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108189039A CN108189039A (zh) | 2018-06-22 |
CN108189039B true CN108189039B (zh) | 2020-05-12 |
Family
ID=62593574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810133017.2A Active CN108189039B (zh) | 2018-02-09 | 2018-02-09 | 一种移动机器人的行进方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108189039B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669446B (zh) * | 2017-10-13 | 2022-04-15 | 苏州宝时得电动工具有限公司 | 回归引导线寻找方法、装置和自动移动设备 |
CN109222771A (zh) * | 2018-11-02 | 2019-01-18 | 珠海市微半导体有限公司 | 一种基于清洁机器人的凸起感应装置及脱困方法 |
CN111185899B (zh) * | 2018-11-14 | 2022-05-13 | 苏州科瓴精密机械科技有限公司 | 机器人控制方法及机器人系统 |
CN110221608B (zh) * | 2019-05-23 | 2021-10-01 | 中国银联股份有限公司 | 一种巡检设备的方法及装置 |
CN112932367B (zh) * | 2021-03-05 | 2022-06-17 | 深圳拓邦股份有限公司 | 一种清洁设备的定点清扫方法与清洁设备 |
CN114115265A (zh) * | 2021-11-23 | 2022-03-01 | 未岚大陆(北京)科技有限公司 | 自移动设备的路径处理方法、及自移动设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106805856A (zh) * | 2016-12-31 | 2017-06-09 | 鸿奇机器人股份有限公司 | 控制清洁机器人的方法 |
CN107390698A (zh) * | 2017-08-31 | 2017-11-24 | 珠海市微半导体有限公司 | 扫地机器人的补扫方法及芯片 |
CN107544517A (zh) * | 2017-10-11 | 2018-01-05 | 珠海市微半导体有限公司 | 智能清洁机器人的控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9599987B2 (en) * | 2012-09-27 | 2017-03-21 | Koninklijke Philips N.V. | Autonomous mobile robot and method for operating the same |
-
2018
- 2018-02-09 CN CN201810133017.2A patent/CN108189039B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106805856A (zh) * | 2016-12-31 | 2017-06-09 | 鸿奇机器人股份有限公司 | 控制清洁机器人的方法 |
CN107390698A (zh) * | 2017-08-31 | 2017-11-24 | 珠海市微半导体有限公司 | 扫地机器人的补扫方法及芯片 |
CN107544517A (zh) * | 2017-10-11 | 2018-01-05 | 珠海市微半导体有限公司 | 智能清洁机器人的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108189039A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108189039B (zh) | 一种移动机器人的行进方法及装置 | |
CN107390698B (zh) | 扫地机器人的补扫方法及芯片 | |
US20230309776A1 (en) | Method for Controlling Cleaning Based on Dense Obstacles | |
CN107544517B (zh) | 智能清洁机器人的控制方法 | |
CN111857127B (zh) | 一种机器人沿边行走的清洁分区规划方法、芯片及机器人 | |
CN109240312B (zh) | 一种机器人的清扫控制方法和芯片以及清洁机器人 | |
CN109984689B (zh) | 一种清洁机器人及清洁机器人的路径优化方法 | |
JP6622215B2 (ja) | 自走式ロボットの障害物回避走行方法 | |
CN109997089B (zh) | 地面处理机和地面处理方法 | |
CN110338715B (zh) | 智能机器人清洁地面的方法和芯片以及清洁机器人 | |
CN112180924B (zh) | 一种导航至密集障碍物的移动控制方法 | |
CN110412619B (zh) | 激光机器人的区域遍历方法和激光主控芯片 | |
CN109298717A (zh) | 智能机器人的清扫方法和芯片以及智能清洁机器人 | |
CN113190010B (zh) | 一种沿边绕障路径规划方法、芯片及机器人 | |
CN113110497B (zh) | 基于导航路径的沿边绕障路径选择方法、芯片及机器人 | |
CN111552290B (zh) | 一种机器人沿墙找直线的方法及清扫方法 | |
CN110477813B (zh) | 一种激光式清洁机器人及其控制方法 | |
CN113110499B (zh) | 一种通行区域的判定方法、路线搜索方法、机器人及芯片 | |
CN113031616A (zh) | 一种清洁机器人返回路径规划方法、系统和清洁机器人 | |
CN114397893B (zh) | 路径规划方法、机器人清扫方法及相关设备 | |
CN113467482A (zh) | 一种自清洁的清洁机器人清扫路径规划方法及清洁机器人 | |
CN114869175B (zh) | 清洁避障方法、装置、电子设备及存储介质 | |
CN115444311B (zh) | 清洁机器人的清洁方法、存储介质及清洁机器人 | |
CN114652217B (zh) | 控制方法、清洁机器人和存储介质 | |
CN116149314A (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 |