CN107065872B - 智能机器人的栅格地图创建方法 - Google Patents
智能机器人的栅格地图创建方法 Download PDFInfo
- Publication number
- CN107065872B CN107065872B CN201710234045.9A CN201710234045A CN107065872B CN 107065872 B CN107065872 B CN 107065872B CN 201710234045 A CN201710234045 A CN 201710234045A CN 107065872 B CN107065872 B CN 107065872B
- Authority
- CN
- China
- Prior art keywords
- grid
- map
- offset
- entering
- obstacle
- 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 94
- 238000013519 translation Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 12
- 241001417527 Pempheridae Species 0.000 claims description 7
- 230000033001 locomotion Effects 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000004888 barrier function Effects 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 description 16
- 238000004140 cleaning Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000010408 sweeping Methods 0.000 description 3
- 239000000428 dust Substances 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005381 potential energy Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0242—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/027—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/005—Map projections or methods associated specifically therewith
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Electromagnetism (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Data Mining & Analysis (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
一种智能机器人的栅格地图创建方法,包括:(1)控制机器人运动;(2)检测机器人当前位置是否为沿边行为及是否检测到障碍物,沿边行为但没有障碍物进入(3a),沿边行为且有障碍物进入(3b),不为沿边行为但有障碍物则入(3c),不为沿边行为且没有障碍物进入(3d);(3a)将地图上当前位置的栅格标记为沿边行为点并返回(1);(3b)将地图上当前位置的栅格标记为沿边行为点,计算障碍物所处的栅格坐标并将地图上对应的栅格标记为障碍物点,返回(1);(3c)将地图上当前位置的栅格标记为正常通过点,计算障碍物所处的栅格坐标并将对应的栅格标记为障碍物点,返回(1);(3d)将地图上当前位置的栅格标记为正常通过点并返回(1)。
Description
〖技术领域〗
本发明涉及智能控制技术领域,具体涉及一种智能机器人的栅格地图创建方法。
〖背景技术〗
智能机器人作为世界经济与产业增长方式转变过程中的关键因素,正在进入新的发展阶段。智能机器人是具有感知、决策、执行的制造装备、设备工具、服务消费品,用于生产过程与环境中的制造装备智能机器称为工业机器人,用于个人或家政服务的消费品智能机器称为家用服务机器人,用于特殊环境下作业与维护的设备工具智能机器称为特种服务机器人。
以家用的扫地机器人为例,其又称自动打扫机、智能吸尘、机器人吸尘器等,是智能家用电器的一种,能凭借一定的人工智能,自动在房间内完成地板清理工作。
扫地机器人需要按照一定的路径规划来覆盖整个房间区域,完成遍历的目的。路径规划,有随机遍历和规划遍历两种。
随机遍历,是指机器人根据一定的移动算法,如三角形、五边形轨迹尝试性的覆盖作业区,如果遇到障碍,则执行对应的转向函数。这种方法是一种以时间换空间的低成本策略,如不计时间可以达到100%覆盖率。随机覆盖法不用定位、也没有环境地图,也无法对路径进行规划。当前iRobot的大多数扫地机器人采用的就是这种方法。
规划遍历,是指机器人行走过程中建立起环境地图,实时分析地图并完成新的路径规划,将房间全部进行清扫。这种方法效率高,在保证覆盖率的前提下,能够以最快的速度完成清扫。
其中规划清扫需要解决三个问题:
1、建立地图,并能够定位(确定机器人的位置)。
2、导航,从启始位置导航到目标位置,且在导航过程中能够实现自动避开障碍物。
3遍历整个房间的方法。
关于问题1有多种解决方法,栅格法,人工势场法,模板模型法,人工智能法等。
人工势场法,将机器人在周围环境中的运动设计成在一种势场中的运动,势能源有两种:斥力极和引力极。不希望进入的区域和障碍物属于斥力极,建议通过的区域为引力极。引力和斥力的合力作为机器人的加速力,来控制机器人的运动方向和计算机器人的位置。但此方法通常存在局部极小点和计算量过大的问题。
模板模型法,是基于先验知识和先前的环境地图遍历机器人让得到的环境信息来匹配事先定义的模板。它要求事先定义环境模型和模板的记忆,因此对于变化着的环境就不好处理了,比如在遍历机器人的工作过程中突然出现一个障碍等。
人工智能法,包括模糊控制算法,神经网络路径规划,遗传算法等。这些算法计算量大,且大都还在实验室研究阶段,实际运用的较少。
栅格法,使用大小相同的栅格划分机器人的工作空间,并用栅格数组来表示环境,每个栅格是两种状态之一,或者在自由空间中,或者在障碍物空间中。这种方法的特点是简单,易于实现,从而为路径规划的实现带来了很多方便,具有表示不规则障碍物的能力;其缺点是表示效率不高,存在着时空开销与精度之间的矛盾。栅格划分大了,环境信息存储量就小了,规划时间短,分辨率下降,在密集环境下发现路径的能力减弱;栅格划分小了,环境分辨率高,在密集环境下发现路径的能力强,但环境的存储量大。所以栅格的大小直接影响着控制算法的性能。
〖发明内容〗
本发明旨在提供一种将栅格地图最大效率的利用起来的方法,使其即可以满足智能机器人的精度要求,又可以满足智能机器人的清扫范围需求。本发明的目的由以下技术方案实现:
一种智能机器人的栅格地图创建方法,其基于的智能机器人包括行动机体、主控模块、传感器集合、电源模块及区域操作组件;所述栅格地图创建方法包括:
(1)控制机器人运动;
(2)检测机器人当前位置的行动是否为沿边行为及当前位置是否检测到障碍物,如果当前位置的行动为沿边行为但未检测到障碍物则进入步骤(3a),如果当前位置的行动为沿边行为且同时检测到障碍物则进入步骤(3b),如果当前位置的行动不为沿边行为但检测到障碍物则进入步骤(3c),如果当前位置的行动不为沿边行为且未检测到障碍物则进入步骤(3d);
(3a)将地图上当前位置的栅格标记为沿边行为点并返回步骤(1);
(3b)将地图上当前位置的栅格标记为沿边行为点,同时计算障碍物所处的栅格坐标并将栅格地图上障碍物对应的栅格标记为障碍物点,然后返回步骤(1);
(3c)将地图上当前位置的栅格标记为正常通过点,同时计算障碍物所处的栅格坐标并将栅格地图上障碍物对应的栅格标记为障碍物点,然后返回步骤(1);
(3d)将地图上当前位置的栅格标记为正常通过点并返回步骤(1)。
作为具体的技术方案,所述栅格地图创建时,将机器人运动的起始点在地图上的栅格直接标记为正常通过点。
作为具体的技术方案,所述栅格地图中每个栅格用一个数码序列表示,其中包括:表示此栅格位于哪个区域的数码段、表示智能机器人是否到达过此栅格的数码段、表示此栅格是否存在障碍物的数码段、表示智能机器人沿边时经过此栅格的数码段。
作为具体的技术方案,所述障碍物所处栅格坐标的计算方法具体包括:
A、计算障碍物距离机器人中心点的距离;
B、计算障碍物与机器人中心的实际角度;
C、调用三角函数,计算障碍物点相对于机器人中心点的坐标;
D、将计算出的坐标加上机器人中心点坐标,即为障碍物坐标。
作为具体的技术方案,所述步骤(1)中,每次控制机器人运动时,首先执行一个地图平移子流程,该子流程包括:
a、检测是否需要平移整个栅格地图,具体为:当栅格地图的x轴或y轴的一个方向上实际使用的栅格已经达到整个栅格地图的边界,而其反方向还存在剩余栅格未使用的情况下,进入步骤b,否则跳出该子流程;
b、根据上次的x轴、y轴的偏移栅格数,与本次的x轴、y轴的偏移栅格数的差值,确定本次实际要平移的栅格数;
c、根据本次实际要平移的栅格数平移整个栅格地图。
作为具体的技术方案,当启动平移功能时,开辟一小段内存作为缓冲,存储已经越界的栅格地图数据,当整个栅格地图平移后,再将缓冲的栅格数据写入栅格地图。
本发明提供的智能机器人的栅格地图创建方法,能够将栅格地图最大效率的利用起来,使其即可以满足智能机器人的精度要求,又可以满足智能机器人的清扫范围需求。
〖附图说明〗
图1为本发明实施例提供的栅格地图创建方法所基于的智能机器人的模块构成图。
图2为本发明实施例提供的栅格地图创建方法的主流程图。
图3为本发明实施例提供的栅格地图创建方法中障碍物栅格坐标计算方法的流程图。
图4为本发明实施例提供的栅格地图创建方法中启动地图平移的流程图。
图5为本发明实施例提供的栅格地图创建方法中确定地图平移栅格数的流程图。
图6为本发明实施例提供的栅格地图创建方法中实现地图平移操作的流程图。
图7为本发明实施例提供的栅格地图创建方法中实现地图平移过程中缓冲操作的数据读取流程图。
图8为本发明实施例提供的栅格地图创建方法中实现地图平移过程中缓冲操作的数据写入流程图。
〖具体实施方式〗
下面结合附图对本发明的具体实施方式作进一步说明:
如图1所示,本实施例提供的智能机器人的栅格地图创建方法,其基于的智能机器人包括行动机体1、主控模块4、传感器集合5、电源模块及区域操作组件。其中,行动机体1包括机壳、行动轮2、3。传感器集合5包括碰撞检测传感器、障碍物检测传感器、距离信息传感器、角度信息传感器,均与主控模块电连接。
具体地,碰撞检测传感器用于智能机器人前面碰到障碍物时,做出当前与障碍物发生了碰撞的判断并通知主控模块4。防跌路检测传感器用于当智能机器人下方为悬空状态时,做出当前处于危险状态的判断并通知主控模块4。障碍物检测传感器用于检测机器人周围是否出现障碍物并通知主控模块4,包括防跌落检测传感器及周边检测传感器,周边检测传感器由前,前左,前右,左,右,五个红外测距传感器组成。距离信息传感器为轮子编码器,角度信息传感器为陀螺仪。区域操作组件是指对机器人所处区域进行某些功能操作的组件,可以为清洁组件、摄像组件、加湿组件、除湿组件、灭虫组件中的一个或多个,本实施例以清洁组件为例进行说明,即本实施例所述的机器人为扫地机器人。
本实施例提供的智能机器人的栅格地图创建方法中,构建地图时采用栅格地图。距离信息传感器所获取的距离信息、角度信息传感器所获得的角度信息、碰撞检测传感器获取的碰撞信息及障碍物检测传感器获取的障碍信息构建栅格地图,并记录正常通过点、障碍物点、沿边点。智能机器人边行动边更新地图,只要是机器人走过的地方都会把状态更新到栅格地图上。可以理解的是,栅格越小精度越高,但受内存及运算速度的限制,我们选择栅格的边长为智能机器人直径的三分之一的正方形。
结合图2所示,本实施例提供的智能机器人的栅格地图创建方法,包括:
(1)控制机器人运动;
(2)检测机器人当前位置的行动是否为沿边行为及当前位置是否检测到障碍物,如果当前位置的行动为沿边行为但未检测到障碍物则进入步骤(3a),如果当前位置的行动为沿边行为且同时检测到障碍物则进入步骤(3b),如果当前位置的行动不为沿边行为但检测到障碍物则进入步骤(3c),如果当前位置的行动不为沿边行为且未检测到障碍物则进入步骤(3d);
(3a)将地图上当前位置的栅格标记为沿边行为点并返回步骤(1);
(3b)将地图上当前位置的栅格标记为沿边行为点,同时计算障碍物所处的栅格坐标并将栅格地图上障碍物对应的栅格标记为障碍物点,然后返回步骤(1);
(3c)将地图上当前位置的栅格标记为正常通过点,同时计算障碍物所处的栅格坐标并将栅格地图上障碍物对应的栅格标记为障碍物点,然后返回步骤(1);
(3d)将地图上当前位置的栅格标记为正常通过点并返回步骤(1)。
图2的流程图中为了更好表现,只表现了上述方法中的部分内容,且将沿边行为判断和障碍物判断先后表现,实际上,这两个判断是部分先后的。
建立的栅格地图保存于主控模块4中并由主控模块4进行管理。栅格地图的表现形式可以为:黑色栅格表示智能机器人未标记此栅格,绿色栅格代表智能机器人正常通过点,红色栅格代表障碍物检测传感器感测到的障碍物点,蓝色栅格代表碰撞检测传感器检测到的发生碰撞的障碍物点,白色栅格代表此点进行了沿边行为点。
其中每个栅格用一个8bit的数来表示。其高四位记录区域信息,表示此栅格位于哪个区域内,因此最多支持16个区域。其低四位用来表示地图的实际信息:第0位表示智能机器人是否到达过此栅格,为0表示未到达过,为1表示到达过;第1位表示此栅格是否存在障碍物,为0表示不存在,为1表示存在;第2位,表示机器人沿边时,为1表示经过此栅格,为0表示未经过;第3位,预留。
如图3所示,本实施例提供的智能机器人的栅格地图创建方法中,障碍物所处栅格坐标的计算方法具体包括:
A、计算障碍物距离机器人中心点的距离;
B、计算障碍物与机器人中心的实际角度;
C、调用三角函数,计算障碍物点相对于机器人中心点的坐标;
D、将计算出的坐标加上机器人中心点坐标,即为障碍物坐标。
其中,碰撞检测传感器检测到的障碍物点及障碍物检测传感器感测到的障碍物点在地图中是区别对待(区别标注的);如上文所述,红色栅格代表障碍物检测传感器感测到的障碍物点,蓝色栅格代表碰撞检测传感器检测到的发生碰撞的障碍物点,当然也可以统一标注(例如都标注成红色)。不过,不论哪种传感器感测到的障碍物,都可以按以下公式计算所述距离和角度:
障碍物离扫地机中心点的距离=传感器探测的距离+机器人的半径;
障碍物与扫地机中心的角度=扫地机正前方的角度+传感器的位置偏离机器人正前方的角度差。
本实施例提供的智能机器人的栅格地图创建方法中,机器人的启动点一般位于栅格地图的中心点。栅格地图大小固定,假如样机一直朝着一个方向清扫,则地图很容易越界。使得地图的一个方向上出现越界,而这个方向的反方向上的地图却空着没有使用。
下面介绍一种方法,根据实际使用地图越界情况,实时平移整个栅格地图,使得实际使用的地图永远位于整个栅格地图的中心位置,直到实际使用的地图长或宽正真达到了整个栅格地图的极限。
上文所述的智能机器人的栅格地图创建方法的步骤(1)中,每次控制机器人运动以更新栅格地图时,首先执行一个地图平移子流程,该子流程包括:
a、检测是否需要平移整个栅格地图,具体为:当栅格地图的x轴或y轴的一个方向上实际使用的栅格已经达到整个栅格地图的边界,而其反方向还存在剩余栅格未使用的情况下,进入步骤b启动平移整个栅格地图,否则跳出该子流程;
b、根据上次的x轴、y轴的偏移栅格数,与本次的x轴、y轴的偏移栅格数的差值,确定本次实际要平移的栅格数;
c、根据本次实际要平移的栅格数平移整个栅格地图。
如图4所示,其中x-min,x-max为x轴方向上已使用栅格的最小与最大值;y-min,y-max为y轴方向上已使用栅格的最小与最大值;x-offset,y-offset记录当前栅格地图x轴,y轴方向上实际栅格偏移。
地图平移子流程中步骤a的具体方法包括:
a1、分别更新地图x轴、y轴、已使用栅格的最大最小值x-min、x-max、y-min、y-max;
a2、判断是否(x-max+x-offset)接近边界,但(x-min+x-offset)没有接近边界,是则x-offset减一并进入步骤a4,否则进入步骤a3;
a3、判断是否(x-min+x-offset)接近边界,但(x-max+x-offset)没有接近边界,是则x-offset加一并进入步骤a4,否则直接进入步骤a4;
a4、判断是否(y-max+y-offset)接近边界,但(y-min+y-offset)没有接近边界,是则y-offset减一并进入步骤a6,否则进入步骤a5;
a5、判断是否(y-min+y-offset)接近边界,但(y-max+y-offset)没有接近边界,是则y-offset加一并进入步骤a6,否则直接进入步骤a6;
a6、判断x-offset或y-offset是否发生了变化是则启动平移整个栅格地图,否则跳出所述子流程。
如图5所示,其中x-offset、y-offset记录当前栅格地图x轴、y轴方向上实际栅格偏移;old-x-offset、old-y-offset记录上次栅格地图平移时x轴、y轴方向上栅格偏移;abs表示取这个数的绝对值;actul-x-offset、actul-y-offset为本次实际要平移的栅格数。
地图平移子流程中步骤b的具体方法包括:
b1、设定actul-x-offset=x-offset-old-x-offset,actul-y-offset=y-offset-old-y-offset;
b2、判断是否actul-x-offset<0,是则确定整个栅格地图往x轴负方向移动abs(actul-x-offset)个栅格并进入步骤b4,否则进入步骤b3;
b3、判断是否actul-x-offset>0,是则确定整个栅格地图往x轴正方向移动abs(actul-x-offset)个栅格并进入步骤b4,否则直接进入步骤b4;
b4、判断是否actul-y-offset<0;是则确定整个栅格地图往y轴负方向移动abs(actul-y-offset)个栅格并进入步骤b6,否则进入步骤b5;
b5、判断是否actul-y-offset>0;整个栅格地图,往y轴正方向移动abs(actul-y-offset)个栅格并进入步骤b6,否则直接进入步骤b6;
b6、用当前栅格地图x轴、y轴方向上实际栅格偏移x-offset、y-offset更新上次栅格地图平移时x轴、y轴方向上的栅格偏移old-x-offset、old-y-offset录。
如图6所示,其中global-map为栅格地图数组;Height、Width代表global-map栅格数组的高度和宽度;start-x代表第一行有数据不为零的行号,也就是从这一行开始后的数据需要进行平移;count记录一行数据有多少个栅格为零(没有使用的栅格)。如果整行栅格数据都为零,则平移工作结束。
本实施例以x轴往负方向平移为例进行说明,也就是actul-x-offset小于零时。在平移整个栅格地图时,没有使用过的栅格(数据为零)是不需要进行操作的。
地图平移子流程中步骤c的具体方法包括:
c1、开始时x=0、y=0、start-x=0;
c2、判断是否x<Height,是则进入步骤c3,否则结束;
c3、设定count=0进入步骤c4;
c4、判断是否y<Width,是则进入步骤c5,否则x++并返回步骤c2;
c5、判断是否start-x!=0,是则进入步骤c51,否则进入步骤c6;
c51、判断是否global-map[x][y]!=0;是则设定global-map[x+actul-x-offset][y]=global-map[x][y],global-map[x][y]=0并进入步骤步骤c8,否则count++并进入步骤步骤c8;
c6、判断是否global-map[x][y]!=0,是则进入步骤c7,否则进入步骤c8;
c7、设定start-x=x,global-map[x+actul-x-offset][y]=global-map[x][y],global-map[x][y]=0,进入步骤c8;
c8、判断是否count==Width,是则结束,否则y++并返回步骤c4。
当actul-x-offset大于零时,在上面的流程图中,只需要把x的初始值设为Height-1,每次循环后,执行x--,直到x<0结束。
y轴的平移原理与x轴相同。
此外,当启动平移功能时,并不适合马上平移整个栅格地图,最好能等待样机停止时,来进行平移。因为平移整个栅格地图,非常耗CPU资源,会影响扫地机运动的平滑性。
为了防止在这个等待的过程中,栅格地图越界,必须开辟一小段内存作为缓冲,存储已经越界的栅格地图数据。当整个栅格地图平移后,再将缓冲的栅格数据,写入栅格地图。因此在读取或写入栅格地图数据时,必须考虑是否存在缓冲的情况。
如图7所示,本实施例提供相应的缓冲方法中读取数据的流程如下:
S1、设定x-index=x+x-offset,y-index=y+y-offset;
S2、判断是否(x-index,y-index)在栅格地图内且地图平移功能并没有启动,是则进入步骤S3,否则进入步骤S2a;
S2a、从缓冲中读取并进入步骤S2b;
S2b、判断是否读取成功,是则进入步骤S4,否则进入步骤S2c;
S2c、判断是否(x-index,y-index)在栅格地图内,是则进入步骤S2d,否则返回零并结束;
S2d、直接读取对应的栅格地图数据并进入步骤S4;
S3、直接读取对应的栅格地图数据并进入步骤S4;
S4、返回读取的值并结束。
如图8所示,本实施例提供相应的缓冲方法中写入数据的流程如下:
T1、读取(x,y)值并进入步骤T2;
T2、判断写入值与读取值是否相等,是则结束,否则设定x-index=x+x-offset,y-index=y+y-offset并进入步骤T3;
T3、判断是否(x-index,y-index)在栅格地图内且地图平移功能并没有启动,是则直接将数据写入对应的栅格地图数据并结束,否则将数据写入缓冲中并结束。
其中,x、y为机器人当前所处栅格坐标;x-index,y-index为对应栅格地图的实际坐标。
以上实施例仅为充分公开而非限制本发明,凡基于本发明的创作主旨、未经创造性劳动的等效技术特征的替换,应当视为本申请揭露的范围。
Claims (11)
1.一种智能机器人的栅格地图创建方法,其基于的智能机器人包括行动机体、主控模块、传感器集合、电源模块及区域操作组件;所述栅格地图创建方法包括:
(1)控制机器人运动;
(2)检测机器人当前位置的行动是否为沿边行为及当前位置是否检测到障碍物,如果当前位置的行动为沿边行为但未检测到障碍物则进入步骤(3a),如果当前位置的行动为沿边行为且同时检测到障碍物则进入步骤(3b),如果当前位置的行动不为沿边行为但检测到障碍物则进入步骤(3c),如果当前位置的行动不为沿边行为且未检测到障碍物则进入步骤(3d);
(3a)将地图上当前位置的栅格标记为沿边行为点并返回步骤(1);
(3b)将地图上当前位置的栅格标记为沿边行为点,同时计算障碍物所处的栅格坐标并将地图上障碍物对应的栅格标记为障碍物点,然后返回步骤(1);
(3c)将地图上当前位置的栅格标记为正常通过点,同时计算障碍物所处的栅格坐标并将地图上障碍物对应的栅格标记为障碍物点,然后返回步骤(1);
(3d)将地图上当前位置的栅格标记为正常通过点并返回步骤(1);
其特征在于,所述步骤(1)中,每次控制机器人运动时,首先执行一个地图平移子流程,该子流程包括:
a、检测是否需要平移整个栅格地图,具体为:当栅格地图的x轴或y轴的一个方向上实际使用的栅格已经达到整个栅格地图的边界,而其反方向还存在剩余栅格未使用的情况下,进入步骤b,否则跳出该子流程;
b、根据上次的x轴、y轴的偏移栅格数,与本次的x轴、y轴的偏移栅格数的差值,确定本次实际要平移的栅格数;
c、根据本次实际要平移的栅格数平移整个栅格地图。
2.根据权利要求1所述的智能机器人的栅格地图创建方法,其特征在于,所述栅格地图创建时,将机器人运动的起始点在地图上的栅格标记为正常通过点。
3.根据权利要求1所述的智能机器人的栅格地图创建方法,其特征在于,所述栅格地图中每个栅格用一个数码序列表示,其中包括:表示此栅格位于哪个区域的数码段、表示智能机器人是否到达过此栅格的数码段、表示此栅格是否存在障碍物的数码段、表示智能机器人沿边时经过此栅格的数码段。
4.根据权利要求3所述的智能机器人的栅格地图创建方法,其特征在于,所述每个栅格用一个8bit的数来表示,其高四位记录区域信息,表示此栅格位于哪个区域内,其低四位用来表示地图的实际信息:第0位表示智能机器人是否到达过此栅格,为0表示未到达过,为1表示到达过;第1位表示此栅格是否存在障碍物,为0表示不存在,为1表示存在;第2位,表示机器人沿边时,为1表示经过此栅格,为0表示未经过;第3位,预留。
5.根据权利要求1所述的智能机器人的栅格地图创建方法,其特征在于,所述障碍物所处栅格坐标的计算方法具体包括:
A、计算障碍物距离机器人中心点的距离;
B、计算障碍物与机器人中心的实际角度;
C、调用三角函数,计算障碍物点相对于机器人中心点的坐标;
D、将计算出的坐标加上机器人中心点坐标,即为障碍物坐标。
6.根据权利要求5所述的智能机器人的栅格地图创建方法,其特征在于,按以下公式计算所述障碍物距离机器人中心点的距离和障碍物与机器人中心的实际角度:
障碍物离扫地机中心点的距离=传感器探测的距离+机器人的半径;
障碍物与扫地机中心的角度=扫地机正前方的角度+传感器的位置偏离机器人正前方的角度差。
7.根据权利要求1所述的智能机器人的栅格地图创建方法,其特征在于,所述地图平移子流程中步骤a的具体方法包括:
a1、分别更新地图x轴、y轴、已使用栅格的最大最小值x-min、x-max、y-min、y-max;
a2、判断是否(x-max+x-offset)接近边界,但(x-min+x-offset)没有接近边界,是则x-offset减一并进入步骤a4,否则进入步骤a3;
a3、判断是否(x-min+x-offset)接近边界,但(x-max+x-offset)没有接近边界,是则x-offset加一并进入步骤a4,否则直接进入步骤a4;
a4、判断是否(y-max+y-offset)接近边界,但(y-min+y-offset)没有接近边界,是则y-offset减一并进入步骤a6,否则进入步骤a5;
a5、判断是否(y-min+y-offset)接近边界,但(y-max+y-offset)没有接近边界,是则y-offset加一并进入步骤a6,否则直接进入步骤a6;
a6、判断x-offset或y-offset是否发生了变化是则启动平移整个栅格地图,否则跳出所述子流程;
其中x-min,x-max为x轴方向上已使用栅格的最小与最大值;y-min,y-max为y轴方向上已使用栅格的最小与最大值;x-offset,y-offset记录当前栅格地图x轴,y轴方向上实际栅格偏移。
8.根据权利要求7所述的智能机器人的栅格地图创建方法,其特征在于,所述地图平移子流程中步骤b的具体方法包括:
b1、设定actul-x-offset=x-offset-old-x-offset,actul-y-offset=y-offset-old-y-offset;
b2、判断是否actul-x-offset<0,是则确定整个栅格地图往x轴负方向移动abs(actul-x-offset)个栅格并进入步骤b4,否则进入步骤b3;
b3、判断是否actul-x-offset>0,是则确定整个栅格地图往x轴正方向移动abs(actul-x-offset)个栅格并进入步骤b4,否则直接进入步骤b4;
b4、判断是否actul-y-offset<0;是则确定整个栅格地图往y轴负方向移动abs(actul-y-offset)个栅格并进入步骤b6,否则进入步骤b5;
b5、判断是否actul-y-offset>0;整个栅格地图,往y轴正方向移动abs(actul-y-offset)个栅格并进入步骤b6,否则直接进入步骤b6;
b6、用当前栅格地图x轴、y轴方向上实际栅格偏移x-offset、y-offset更新上次栅格地图平移时x轴、y轴方向上的栅格偏移old-x-offset、old-y-offset录;
其中x-offset、y-offset记录当前栅格地图x轴、y轴方向上实际栅格偏移;old-x-offset、old-y-offset记录上次栅格地图平移时x轴、y轴方向上栅格偏移;abs表示取这个数的绝对值;actul-x-offset、actul-y-offset为本次实际要平移的栅格数。
9.根据权利要求8所述的智能机器人的栅格地图创建方法,其特征在于,所述地图平移子流程中步骤c中,当actul-x-offset小于零时,x轴往负方向平移的具体方法包括:
c1、开始时x=0、y=0、start-x=0;
c2、判断是否x<Height,是则进入步骤c3,否则结束;
c3、设定count=0进入步骤c4;
c4、判断是否y<Width,是则进入步骤c5,否则x++并返回步骤c2;
c5、判断是否start-x!=0,是则进入步骤c51,否则进入步骤c6;
c51、判断是否global-map[x][y]!=0;是则设定global-map[x+actul-x-offset][y]=global-map[x][y],global-map[x][y]=0并进入步骤步骤c8,否则count++并进入步骤步骤c8;
c6、判断是否global-map[x][y]!=0,是则进入步骤c7,否则进入步骤c8;
c7、设定start-x=x,global-map[x+actul-x-offset][y]=global-map[x][y],global-map[x][y]=0,进入步骤c8;
c8、判断是否count==Width,是则结束,否则y++并返回步骤c4;
其中global-map为栅格地图数组;Height、Width代表global-map栅格数组的高度和宽度;start-x代表第一行有数据不为零的行号,也就是从这一行开始后的数据需要进行平移;count记录一行数据有多少个栅格为零;
当actul-x-offset大于零时,在上面的流程图中,把x的初始值设为Height-1,每次循环后,执行x--,直到x<0结束;y轴的平移原理与x轴相同。
10.根据权利要求9所述的智能机器人的栅格地图创建方法,其特征在于,当启动平移功能时,开辟一小段内存作为缓冲,存储已经越界的栅格地图数据,当整个栅格地图平移后,再将缓冲的栅格数据写入栅格地图。
11.根据权利要求10所述的智能机器人的栅格地图创建方法,其特征在于,缓冲过程中读取数据的流程如下:
S1、设定x-index=x+x-offset,y-index=y+y-offset;
S2、判断是否(x-index,y-index)在栅格地图内且地图平移功能并没有启动,是则进入步骤S3,否则进入步骤S2a;
S2a、从缓冲中读取并进入步骤S2b;
S2b、判断是否读取成功,是则进入步骤S4,否则进入步骤S2c;
S2c、判断是否(x-index,y-index)在栅格地图内,是则进入步骤S2d,否则返回零并结束;
S2d、直接读取对应的栅格地图数据并进入步骤S4;
S3、直接读取对应的栅格地图数据并进入步骤S4;
S4、返回读取的值并结束;
所述缓冲过程中写入数据的流程如下:
T1、读取(x,y)值并进入步骤T2;
T2、判断写入值与读取值是否相等,是则结束,否则设定x-index=x+x-offset,y-index=y+y-offset并进入步骤T3;
T3、判断是否(x-index,y-index)在栅格地图内且地图平移功能并没有启动,是则直接将数据写入对应的栅格地图数据并结束,否则将数据写入缓冲中并结束;
其中,x、y为机器人当前所处栅格坐标;x-index,y-index为对应栅格地图的实际坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710234045.9A CN107065872B (zh) | 2017-04-11 | 2017-04-11 | 智能机器人的栅格地图创建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710234045.9A CN107065872B (zh) | 2017-04-11 | 2017-04-11 | 智能机器人的栅格地图创建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107065872A CN107065872A (zh) | 2017-08-18 |
CN107065872B true CN107065872B (zh) | 2020-06-05 |
Family
ID=59603085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710234045.9A Active CN107065872B (zh) | 2017-04-11 | 2017-04-11 | 智能机器人的栅格地图创建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107065872B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200125105A1 (en) * | 2017-04-11 | 2020-04-23 | Amicro Semiconductor Co., Ltd. | Method for Creating Grid Map of Intelligent Robot |
CN107450557A (zh) * | 2017-09-10 | 2017-12-08 | 南京中高知识产权股份有限公司 | 一种基于云端记忆的扫地机器人寻路方法 |
CN107831773A (zh) * | 2017-11-30 | 2018-03-23 | 深圳市沃特沃德股份有限公司 | 扫地机器人全覆盖清扫的方法及扫地机器人 |
CN108334080B (zh) * | 2018-01-18 | 2021-01-05 | 大连理工大学 | 一种针对机器人导航的虚拟墙自动生成方法 |
CN108427411A (zh) * | 2018-02-28 | 2018-08-21 | 北京奇虎科技有限公司 | 一种机器人的脱困处理方法和装置 |
CN108553041B (zh) * | 2018-03-19 | 2021-03-23 | 珠海市一微半导体有限公司 | 一种机器人被困的判断方法 |
CN108469264B (zh) * | 2018-03-20 | 2020-04-24 | 杭州晶一智能科技有限公司 | 一种基于角度分析的自动吸尘机器人最优路径规划方法 |
CN108803602B (zh) * | 2018-06-01 | 2021-07-13 | 浙江亚特电器有限公司 | 障碍物自学习方法及新障碍物自学习方法 |
CN112214560A (zh) * | 2019-07-09 | 2021-01-12 | 苏州科瓴精密机械科技有限公司 | 栅格地图的更新方法及更新*** |
CN112393737B (zh) * | 2019-08-16 | 2024-03-08 | 苏州科瓴精密机械科技有限公司 | 障碍地图的创建方法、***,机器人及可读存储介质 |
WO2021031441A1 (zh) * | 2019-08-16 | 2021-02-25 | 苏州科瓴精密机械科技有限公司 | 路径规划方法、***,机器人及可读存储介质 |
CN110543174A (zh) * | 2019-09-10 | 2019-12-06 | 速感科技(北京)有限公司 | 可通行区域图的建立方法、处理方法、装置和可移动设备 |
CN110908378B (zh) * | 2019-11-28 | 2022-06-21 | 深圳乐动机器人有限公司 | 一种机器人沿边的方法及机器人 |
CN111221337B (zh) * | 2020-01-19 | 2023-05-16 | 弗徕威智能机器人科技(上海)有限公司 | 机器人栅格地图的构建方法及*** |
CN111906779B (zh) * | 2020-06-30 | 2022-05-10 | 珠海一微半导体股份有限公司 | 一种越障结束判断方法、越障控制方法、芯片及机器人 |
CN112083722B (zh) * | 2020-08-27 | 2023-08-04 | 广州赛特智能科技有限公司 | 一种移动机器人多机多楼层调度***及调度方法 |
CN113225090B (zh) * | 2021-05-19 | 2024-03-22 | 上海高仙自动化科技发展有限公司 | 一种压缩方法、装置、电子设备和存储介质 |
CN113317733B (zh) * | 2021-06-04 | 2023-01-31 | 深圳飞鼠动力科技有限公司 | 一种路径规划方法及清洁机器人 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5798947A (en) * | 1996-09-25 | 1998-08-25 | The Board Of Trustees Of The Leland Stanford, Jr. University | Methods, apparatus and computer program products for self-calibrating two-dimensional metrology stages |
WO1999056082A1 (en) * | 1998-04-23 | 1999-11-04 | Yeoman Marine Limited | Referencing maps with respect to digitising apparatuses |
CN101000507A (zh) * | 2006-09-29 | 2007-07-18 | 浙江大学 | 移动机器人在未知环境中同时定位与地图构建的方法 |
CN101957987A (zh) * | 2009-07-17 | 2011-01-26 | 同济大学 | 一种栅格影像与矢量电子地图的自动配准方法 |
CN102138769A (zh) * | 2010-01-28 | 2011-08-03 | 深圳先进技术研究院 | 清洁机器人及其清扫方法 |
CN103472823A (zh) * | 2013-08-20 | 2013-12-25 | 苏州两江科技有限公司 | 一种智能机器人用的栅格地图创建方法 |
CN104808671A (zh) * | 2015-05-19 | 2015-07-29 | 东南大学 | 一种家居环境下的机器人路径规划方法 |
CN105652876A (zh) * | 2016-03-29 | 2016-06-08 | 北京工业大学 | 基于数组地图的移动机器人室内路径规划方法 |
CN105806344A (zh) * | 2016-05-17 | 2016-07-27 | 杭州申昊科技股份有限公司 | 一种基于局部地图拼接的栅格地图创建方法 |
-
2017
- 2017-04-11 CN CN201710234045.9A patent/CN107065872B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5798947A (en) * | 1996-09-25 | 1998-08-25 | The Board Of Trustees Of The Leland Stanford, Jr. University | Methods, apparatus and computer program products for self-calibrating two-dimensional metrology stages |
WO1999056082A1 (en) * | 1998-04-23 | 1999-11-04 | Yeoman Marine Limited | Referencing maps with respect to digitising apparatuses |
CN101000507A (zh) * | 2006-09-29 | 2007-07-18 | 浙江大学 | 移动机器人在未知环境中同时定位与地图构建的方法 |
CN101957987A (zh) * | 2009-07-17 | 2011-01-26 | 同济大学 | 一种栅格影像与矢量电子地图的自动配准方法 |
CN102138769A (zh) * | 2010-01-28 | 2011-08-03 | 深圳先进技术研究院 | 清洁机器人及其清扫方法 |
CN103472823A (zh) * | 2013-08-20 | 2013-12-25 | 苏州两江科技有限公司 | 一种智能机器人用的栅格地图创建方法 |
CN104808671A (zh) * | 2015-05-19 | 2015-07-29 | 东南大学 | 一种家居环境下的机器人路径规划方法 |
CN105652876A (zh) * | 2016-03-29 | 2016-06-08 | 北京工业大学 | 基于数组地图的移动机器人室内路径规划方法 |
CN105806344A (zh) * | 2016-05-17 | 2016-07-27 | 杭州申昊科技股份有限公司 | 一种基于局部地图拼接的栅格地图创建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107065872A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107065872B (zh) | 智能机器人的栅格地图创建方法 | |
EP3611590B1 (en) | Method for creating grid map of intelligent robot | |
CN107340768B (zh) | 一种智能机器人的路径规划方法 | |
CN109839935B (zh) | 多agv的路径规划方法及设备 | |
CN109363585B (zh) | 分区遍历方法、清扫方法及其扫地机器人 | |
CN109945873B (zh) | 一种用于室内移动机器人运动控制的混合路径规划方法 | |
CN104914865B (zh) | 变电站巡检机器人定位导航***及方法 | |
CN113110457B (zh) | 在室内复杂动态环境中智能机器人的自主覆盖巡检方法 | |
CN106873601B (zh) | 栅格地图构建中的地图平移控制方法 | |
US20080294338A1 (en) | Method of Mapping and Navigating Mobile Robot by Artificial Landmark and Local Coordinate | |
CN111103887B (zh) | 一种基于多传感器的多移动机器人调度***设计方法 | |
CN108444484B (zh) | 一种构建栅格地图的控制方法和芯片及机器人 | |
CN105702151A (zh) | 一种室内地图构建方法及装置 | |
CN110488818B (zh) | 一种基于激光雷达的机器人定位方法、装置和机器人 | |
Tully et al. | A unified Bayesian framework for global localization and SLAM in hybrid metric/topological maps | |
CN112698657A (zh) | 一种扫地机器人路径规划方法 | |
CN112633590B (zh) | 一种用于四向穿梭车的智能入库方法及*** | |
CN116300876A (zh) | 一种多智能体未知环境自主协同探索方法、***、装置及存储介质 | |
CN115540852A (zh) | 电子栅格地图构建方法、装置、电子设备及存储介质 | |
KR20140086245A (ko) | 제한된 시간 내에서의 로봇 커버리지 방법 및 시스템 | |
Abi-Char et al. | A collision-free path planning algorithm for non-complex ASRS using heuristic functions | |
Košnar et al. | Visual topological mapping | |
Araujo et al. | Map building using fuzzy ART, and learning to navigate a mobile robot on an unknown world | |
Khanal et al. | Guided sampling-based motion planning with dynamics in unknown environments | |
Yu et al. | Path planning method of a humanoid robot based on a home network |
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 |