CN107368079B - 机器人清扫路径的规划方法及芯片 - Google Patents
机器人清扫路径的规划方法及芯片 Download PDFInfo
- Publication number
- CN107368079B CN107368079B CN201710771459.5A CN201710771459A CN107368079B CN 107368079 B CN107368079 B CN 107368079B CN 201710771459 A CN201710771459 A CN 201710771459A CN 107368079 B CN107368079 B CN 107368079B
- Authority
- CN
- China
- Prior art keywords
- point
- cleaning
- grid
- robot
- entrance
- 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
- 238000004140 cleaning Methods 0.000 title claims abstract description 249
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000010408 sweeping Methods 0.000 claims abstract description 166
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000004888 barrier function Effects 0.000 claims description 133
- 238000005461 lubrication Methods 0.000 claims description 63
- 230000008859 change Effects 0.000 claims description 23
- 238000010926 purge Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 7
- 238000000926 separation method Methods 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 18
- 230000008901 benefit Effects 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 239000000203 mixture Substances 0.000 description 6
- 238000003672 processing method Methods 0.000 description 5
- 241000208340 Araliaceae Species 0.000 description 4
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 4
- 235000003140 Panax quinquefolius Nutrition 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 235000008434 ginseng Nutrition 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 239000011664 nicotinic acid Substances 0.000 description 3
- 201000004569 Blindness Diseases 0.000 description 2
- 238000005452 bending Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000000428 dust Substances 0.000 description 2
- JEIPFZHSYJVQDO-UHFFFAOYSA-N ferric oxide Chemical compound O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001046947 Ectropis obliqua Species 0.000 description 1
- 208000010086 Hypertelorism Diseases 0.000 description 1
- 206010020771 Hypertelorism of orbit Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000881 depressing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- 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/0234—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
- G05D1/0236—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons in combination with a laser
-
- 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
- B25J9/1666—Avoiding collision or forbidden zones
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L1/00—Cleaning windows
-
- 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/0003—Home robots, i.e. small robots for domestic use
-
- 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/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0219—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
-
- 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
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- 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/0255—Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
-
- 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
- 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/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L2201/00—Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
- A47L2201/06—Control of the cleaning action for autonomous devices; Automatic detection of the surface condition before, during or after cleaning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Electromagnetism (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Optics & Photonics (AREA)
- Acoustics & Sound (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Electric Vacuum Cleaner (AREA)
- Manipulator (AREA)
Abstract
本发明涉及一种机器人清扫路径的规划方法和芯片,通过先按照逐个栅格区域清扫方式完成全局区域清扫后,基于清扫过程记录的信息构建全局区域地图,然后再根据全局区域地图查找漏清扫区,并完成所述漏清扫区的清扫,这样可以避免全局区域清扫时所带来的漏扫问题,同时,通过利用全局区域清扫时构建的全局区域地图,可以快速查找到漏清扫区,提高了补扫这些漏清扫区的效率。最后再基于全局区域地图完成全局沿边清扫,可以将一些边边角角的地方全部清扫,提高机器人清扫的覆盖率,保证清扫效果。
Description
技术领域
本发明涉及机器人领域,具体涉及一种机器人清扫路径的规划方法及芯片。
背景技术
随着科技的发展,智能家居也慢慢渗透到每个家庭里,人们也开始越来越依赖智能设备所带来的便捷,比如越来越受人欢迎的智能扫地机器人。智能扫地机器人就是在不需要人工干预的情况下,能自动完成清扫功能的机器人,是智能家用电器的一种。其中,大部分的智能扫地机器人还是基于传统的随机算法实现的,传统的随机清扫技术,因为没有地图的规划,缺乏目标性,给人的感觉是乱扫,效率非常的低下。
现在新一代的slam(simultaneous localization and mapping)技术,也称为CML(Concurrent Mapping and Localization),即时定位与地图构建,或并发建图与定位。与传统的随机清扫技术相比,slam技术是基于地图规划清扫的,有规则的,能够大大提升清扫效率和覆盖率。slam算法有很多种,比如基于激光扫描导航的、基于视觉导航的,这两种方式的成本都比较高。目前市面上大部分低成本的地图导航方案,还是基于陀螺仪的,但是仅仅基于陀螺仪的方案,要做到地图准确,以及各种复杂环境都能在路径规划和导航上实现高效率,技术难度很高。
发明内容
为解决上述问题,本发明提供了一种机器人清扫路径的规划方法,能够提高机器人的清扫效率。本发明的具体技术方案如下:
一种机器人清扫路径的规划方法,包括如下步骤:
基于栅格地图,从原点出发,按照逐个栅格区域清扫方式,完成全局区域清扫,并构建全局区域地图;
搜索所述全局区域地图,查找漏清扫区,并完成所述漏清扫区的清扫;
基于全局区域地图,完成全局沿边清扫;
回到原点;
其中,所述按照逐个栅格区域清扫方式,包括如下步骤:从原点出发并沿第一方向向前直行,清扫位于所述第一方向一侧的第一栅格区域,并依次清扫与所述第一栅格区域并排的栅格区域,然后再回到与所述第一栅格区域并列的第二栅格区域,依次清扫所述第二栅格区域和与所述第二栅格区域并排的栅格区域;依次类推,至沿所述第一方向的与所述第一栅格区域并列的栅格区域,以及与所述并列的栅格区域并排的栅格区域清扫完毕;返回原点;从原点出发并沿第一方向向前直行,清扫位于所述第一方向另一侧的第三栅格区域,并依次清扫与所述第三栅格区域并排的栅格区域,然后再回到与所述第三栅格区域并列的第四栅格区域,依次清扫所述第四栅格区域和与所述第四栅格区域并排的栅格区域;依次类推,至沿所述第一方向的与所述第三栅格区域并列的栅格区域,以及与所述并列的栅格区域并排的栅格区域清扫完毕;
或者,所述按照逐个栅格区域清扫方式,包括如下步骤:从原点出发并沿第一方向向前直行,清扫位于所述第一方向一侧的第一栅格区域,并依次清扫与所述第一栅格区域并排的栅格区域;返回原点;从原点出发并沿与所述第一方向相反的第二方向向前直行,清扫位于所述第一栅格区域同一侧的第三栅格区域,并依次清扫与所述第三栅格区域并排的栅格区域;返回原点;从原点出发并沿第一方向向前直行,清扫位于所述第一方向另一侧的第二栅格区域,并依次清扫与所述第二栅格区域并排的栅格区域;返回原点;从原点出发并沿与所述第一方向相反的第二方向向前直行,清扫位于所述第二栅格区域同一侧的第四栅格区域,并依次清扫与所述第四栅格区域并排的栅格区域;
其中,所述栅格区域为具有预定长度和预定宽度的方形区域。
进一步地,所述从原点出发,包括:
所述原点为充电座所在的位置时,机器人从充电座上下来,转向180°后,向前直行;
所述原点为充电座以外的位置时,机器人直接向前直行。
进一步地,所述并排的栅格区域的数量为N个,所述N为大于1且小于10的自然数。
进一步地,所述机器人清扫栅格区域时,都是以弧角弓字型的轨迹形式进行清扫,所述以弧角弓字型的轨迹形式进行清扫,包括如下步骤:
基于第一方向,按第一直线移动路径行进至第一转弯点;
从所述第一转弯点按弧形轨迹掉头行进至相邻的第二直线移动路径的起点;
基于与所述第一方向相反的第二方向,按所述第二直线移动路径行进至第二转弯点;
再从所述第二转弯点按弧形轨迹掉头行进至相邻的第三直线移动路径的起点;
基于所述第一方向,按所述第三直线移动路径行进至第三转弯点;
从所述第三转弯点按弧形轨迹掉头行进至相邻的第四直线移动路径的起点;
基于与所述第一方向相反的第二方向,按所述第四直线移动路径行进至第四转弯点;
依此类推;
其中,相邻的直线移动路径相互平行且间隔相等的预设宽度。
进一步地,所述按弧形轨迹掉头行进,包括如下步骤:
获取机器人的陀螺仪检测到的当前角度值;
计算所述当前角度值与目标角度值的角度差值;
计算机器人的内轮和外轮在未来时间段内的运动角度预变量;
判断所述运动角度预变量是否小于所述角度差值;
如是,则保持当前的运动角度变化量;
如否,则调整当前的运动角度变化量,使机器人行进至相邻的直线移动路径的起点时,能按所述直线移动路径行进;
其中,所述内轮为按弧形轨迹掉头过程中,行进速度相对较慢的驱动轮;所述外轮为按弧形轨迹掉头过程中,行进速度相对较快的驱动轮。
进一步地,所述目标角度值为机器人行进至所述直线移动路径的起点时的角度值。
进一步地,所述计算机器人的内轮和外轮在未来时间段内的运动角度预变量,包括如下步骤:
获取内轮当前行进的内轮速度;
获取外轮当前行进的外轮速度;
计算所述外轮速度和所述内轮速度的速度差的绝对值;
计算未来时间段内,内轮和外轮的预行进距离差,所述预行进距离差为所述速度差的绝对值与所述未来时间段的乘积;
计算得出所述运动角度预变量,所述运动角度预变量为所述预行进距离差除以所述内轮和所述外轮之间的宽度。
进一步地,所述当前的运动角度变化量为单位时间内,所述内轮和所述外轮的行进距离差与所述内轮和所述外轮之间的宽度的比值,其中,所述内轮和所述外轮的行进距离差为当前行进的内轮速度和当前行进的外轮速度的速度差的绝对值与所述单位时间的乘积。
进一步地,所述调整当前的运动角度变化量,包括如下步骤:
获取当前位置点与所述起点在直线移动路径的宽度方向上的直线距离;
计算所述直线距离与所述预设宽度的距离比值;
根据所述距离比值调整所述内轮速度,使所述内轮速度为当前的内轮速度与所述距离比值的乘积再乘以一个常量;
其中,所述常量通过实验测试结果得出。
进一步地,所述按照逐个栅格区域清扫,在清扫过程中检测到障碍物时,包括如下处理步骤:
基于相互平行且垂直间隔为预设宽度的直线路径作为机器人的直线移动路径,相邻直线移动路径上,机器人的行进方向相反;
基于机器人在当前直线移动路径上检测到障碍物时的位置点作为当前障碍点;
基于当前障碍点所在的当前直线移动路径的上一条直线移动路径的起点作为参考起始点;
判断在当前直线移动路径的行进方向上,所述参考起始点垂直投影在所述当前直线移动路径所在的直线上的投影点是否位于所述当前障碍点的后方;
如是,则掉头,按下一条直线移动路径行进;
如否,则判断所述投影点与所述当前障碍点之间的距离是否小于预设掉头距离;
如是,则掉头,按下一条直线移动路径行进;
如否,则沿障碍物的边缘行进。
进一步地,所述沿障碍物的边缘行进,包括:
沿障碍物的前边缘行进,并在回到当前直线移动路径后继续按当前直线移动路径行进;其中,所述前边缘为障碍物靠近上一条直线移动路径的那一侧的边缘。
进一步地,如果当前障碍点所在的直线移动路径为第一条直线移动路径,则所述第一条直线移动路径的起点作为参考起始点。
进一步地,如果当前直线移动路径的上一条直线移动路径包括多段分直线移动路径,则所述上一条直线移动路径沿当前行进方向的最后一段分直线移动路径的起点作为参考起始点。
进一步地,所述机器人在掉头过程中,检测到障碍物,则直接沿障碍物的边缘行进,当行进的宽度未超过预设宽度且已绕过障碍物的,则继续行进以达到所述预设宽度后,按掉头后的直线移动路径行进;当行进的宽度已达到预设宽度且没有绕过障碍物的,则在达到所述预设宽度时,按掉头后的直线移动路径行进。
进一步地,所述行进的宽度为沿垂直所述直线移动路径的方向,机器人行进的直线距离。
进一步地,所述按照逐个栅格区域清扫方式,包括如下步骤:
从当前栅格区域的区域清扫起点开始,按弧角弓字型的轨迹形式清扫至当前栅格区域的区域清扫终点;
基于当前栅格区域的栅格区域地图,确定已清扫区和漏清扫区的入口边界;
基于每条所述入口边界的两端的端点分别作为两个入口参考点;
根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点;
根据优先清扫条件确定其中一个最佳入口点为优先清扫区域的清扫起始点;
从当前位置点行进至所述清扫起始点,按预设清扫条件清扫所述优先清扫区域;
清扫完毕后,再根据入口选择条件和优先清扫条件确定下一个最佳入口点为下一个优先清扫区域的清扫起始点,以此类推,至所有满足漏清扫区清扫条件的漏清扫区都清扫完毕为止;
行进至下一个栅格区域的区域清扫起点。
进一步地,所述搜索所述全局区域地图,查找漏清扫区,并完成所述漏清扫区的清扫,包括如下步骤:
基于所述全局区域地图,确定已清扫区和漏清扫区的入口边界;
基于每条所述入口边界的两端的端点分别作为两个入口参考点;
根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点;
根据优先清扫条件确定其中一个最佳入口点为优先清扫区域的清扫起始点;
从当前位置点行进至所述清扫起始点,按预设清扫条件清扫所述优先清扫区域;
清扫完毕后,再根据入口选择条件和优先清扫条件确定下一个最佳入口点为下一个优先清扫区域的清扫起始点,以此类推,至所有满足漏清扫区清扫条件的漏清扫区都清扫完毕为止。
进一步地,所述栅格区域地图或者全局区域地图为机器人一边清扫一边记录所行进的路径所形成的平面地图,构建所述平面地图包括如下步骤:
基于栅格单元的形式,把行进过的栅格单元标示为已清扫单元,把检测到障碍物的栅格单元标示为障碍单元;把未行进过的单元标示为未清扫单元;
基于所述已清扫单元、所述障碍单元和所述未清扫单元,构建所述平面地图;
其中,所述全局区域地图为由所有所述栅格区域地图所组成的平面地图。
进一步地,所述根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点,包括如下步骤:
以当前位置点作为坐标原点建立XY轴坐标系;
分析同一条所述入口边界的两个所述入口参考点的坐标位置;
当两个所述入口参考点的X轴值相同,则选择与当前位置点距离最近的所述入口参考点作为最佳入口点;
当两个所述入口参考点的Y轴值相同,则选择与当前位置点距离最近的所述入口参考点作为最佳入口点;
当两个所述入口参考点的X轴值和Y轴值都不相同,则判断漏清扫区与已清扫区的位置关系;如果漏清扫区在已清扫区的左边,则选择X轴值大的所述入口参考点作为最佳入口点;如果漏清扫区在已清扫区的右边,则选择X轴值小的所述入口参考点作为最佳入口点。
进一步地,所述根据优先清扫条件确定其中一个最佳入口点为优先清扫区的清扫起始点,包括如下步骤:
在一个漏清扫区中选择与一个与当前位置点距离最近的所述最佳入口点作为优先清扫参考点;
选择与当前位置点距离最近的两个所述优先清扫参考点;
判断当前位置点分别到两个所述优先清扫参考点的距离差值是否小于预设距离值;
如是,则选择长度较长的所述入口边界所对应的所述优先清扫参考点作为清扫起始点;
如否,则选择与当前位置点的距离最近的那一个所述优先清扫参考点作为清扫起始点。
进一步地,所述按预设清扫条件清扫所述优先清扫区,包括如下步骤:
判断所述清扫起始点所在的所述入口边界的两个端点的位置关系;
当两个端点的X轴值相同时,则从清扫起始点开始,直接朝所述入口边界的另一个端点行进,按弧角弓字型的轨迹形式清扫漏清扫区;
当两个端点的Y轴值相同时;如果漏清扫区位于所述入口边界的上方,则从清扫起始点开始,沿Y轴正方向行进,按弧角弓字型的轨迹形式清扫漏清扫区;如果漏清扫区位于所述入口边界的下方,则从清扫起始点开始,沿Y轴负方向行进,按弧角弓字型的轨迹形式清扫漏清扫区;
当两个端点的X轴值和Y轴值都不相同时,则从清扫起始点开始,沿垂直另一个端点所在的X轴的方向行进,按弧角弓字型的轨迹形式清扫漏清扫区。
进一步地,判断是否满足所述漏清扫区清扫条件,包括如下步骤:
判断一个所述漏清扫区的所有所述入口边界的长度是否都小于预设入口长度;
如果是,则所述入口边界所对应的所述漏清扫区不满足所述漏清扫区清扫条件;
如果否,则所述入口边界所对应的所述漏清扫区满足所述漏清扫区清扫条件。
进一步地,所述从当前位置点行进至所述清扫起始点,包括如下步骤:
搜索栅格地图,确定由预行进位置点连接的从当前位置点到所述清扫起始点的路径为预行进路径;
基于当前位置点所对应的当前栅格单元,确定在预行进路径方向上的下一个栅格单元为路径参考单元;
判断所述路径参考单元在垂直预行进路径方向的任意一侧的预设距离内的栅格单元是否为障碍单元;
如果否,则将所述路径参考单元所对应的所述预行进位置点作为行进位置点;
如果是,则判断另一侧的在预设距离内的栅格单元是否为障碍单元;
如果否,则将与所述路径参考单元所对应的所述预行进位置点在远离障碍单元的方向偏移设定距离的位置点作为行进位置点;
如果是,则将所述路径参考单元所对应的所述预行进位置点作为行进位置点;
接着,以再下一个栅格单元作为路径参考单元进行判断,以此类推,至所判断的栅格单元为所述清扫起始点所在的栅格单元,则结束判断;
确定由行进位置点连接的从当前位置点到清扫起始点的路径为行进路径。
进一步地,所述从当前位置点行进至所述清扫起始点,还包括如下步骤:
如果所述路径参考单元的前方的预设距离内的栅格单元为障碍单元,则判断在垂直预行进路径方向的任意一侧的预设距离内的栅格单元是否为障碍单元;
如果是,则将所述路径参考单元所对应的预行进位置点在第一预设方向偏移设定距离的位置点作为行进位置点,其中,所述第一预设方向为远离侧边障碍单元的方向和远离前方障碍单元的方向的合方向;
如果否,则将当前栅格单元所对应的预行进位置点在第二预设方向偏移设定距离的位置点作为行进位置点,其中,所述第二预设方向为在预行进路径方向上所述路径参考单元到下一个栅格单元的方向与远离前方障碍单元的方向的合方向。
进一步地,所述预行进位置点的坐标值的确定,包括如下步骤:
确定所述行进路径上的栅格单元的坐标值为(X,Y);
确定栅格单元的长度为h,宽度为w;
确定所述预行进位置点的坐标值为(x,y),则x=X*h+h/2,y=Y*w+w/2。
进一步地,所述确定由行进位置点连接的从当前位置点到清扫起始点的路径为行进路径的步骤之后,还包括如下步骤:
基于所述行进路径,确定当前行进位置点、下一个行进位置点和再下一个行进位置点;
确定从所述当前位置点到所述下一个行进位置点的方向作为当前方向;
确定从所述下一个行进位置点到所述再下一个行进位置点的方向作为待变方向;
从所述当前位置点朝所述下一个行进位置点行进预定距离时,判断所述待变方向是否与所述当前方向相同;
如果是,则保持当前方向和当前速度继续行进;
如果否,则调整当前方向和当前速度,使从所述当前位置点行进至预定距离时的位置点到所述再下一个行进位置点之间的行进轨迹为弧形轨迹;
以此类推,至所述再下一个行进位置点为所述清扫起始点;
将调整后的行进路径作为最优行进路径。
进一步地,所述调整当前方向和当前速度,使从所述当前位置点行进至预定距离时的位置点到所述再下一个行进位置点之间的行进轨迹为弧形轨迹,包括如下步骤:
基于当前速度,预估下一时段行进的预计行进距离;
判断所述预计行进距离是否大于从所述当前位置点朝所述下一个行进位置点行进预定距离后距所述下一个行进位置点的剩余距离;
如果否,则继续基于当前速度行进;
如果是,则降低当前速度,并调整内轮和外轮的速度差,使行进方向从所述当前方向逐渐转到与所述待变方向相同的方向。
进一步地,所述调整内轮和外轮的速度差,使行进方向从所述当前方向逐渐转到与所述待变方向相同的方向,包括如下步骤:
判断所述待变方向与所述当前方向之间的角度是否小于或等于45°;
如果是,则使所述内轮速度为所述外轮速度的四分之一;
如果否,则使所述内轮速度为所述外轮速度的六分之一;
计算未来一段时间内,内轮和外轮的预计行进距离差,所述预计行进距离差为所述外轮和所述内轮的速度差的绝对值与所述未来一段时间的乘积;
计算得出所述运动角度预计变量,所述运动角度预计变量为所述预计行进距离差除以所述内轮和所述外轮之间的宽度;
判断所述行进方向与所述待变方向之间的角度是否小于所述运动角度预计变量;
如果否,则保持当前的外轮速度和内轮速度;
如果是,则调整外轮速度或者内轮速度,使外轮速度和内轮速度相同。
进一步地,所述基于全局区域地图,完成全局沿边清扫,包括如下步骤:
基于全局区域地图,确定离当前位置点最近的全局区域地图边界点作为沿边起点;
从所述当前位置点行进至所述沿边起点,并开始沿边清扫;
从所述沿边起点开始,判断机器人所行进的路径长度是否大于全局区域地图的边界周长,以及判断机器人所转动的角度是否大于360°,以及判断所述机器人是否在所述沿边起点的预设范围内;
如果有一个判断结果为否,则继续沿边清扫;
如果全部判断结果为是,则完成并结束全局沿边清扫。
进一步地,在所述沿边清扫的过程中,如果检测到连续M个栅格单元为未清扫单元,则判断有新区域,并以弧角弓字型的轨迹形式对所述新区域进行清扫,在完成所述新区域的清扫后,继续进行全局沿边清扫。
一种芯片,用于存储程序,所述程序用于控制机器人执行上述的机器人清扫路径的规划方法。
本发明所述的机器人清扫路径的规划方法和芯片,通过先按照逐个栅格区域清扫方式完成全局区域清扫后,基于清扫过程记录的信息构建全局区域地图,这样可以避免现有的机器人需要先构图再清扫的低效问题,直接一边清扫一边构图,可以提高机器人的清扫效率。然后再根据全局区域地图查找漏清扫区,并完成所述漏清扫区的清扫,这样可以避免全局区域清扫时所带来的漏扫问题,同时,通过利用全局区域清扫时构建的全局区域地图,可以快速查找到漏清扫区,提高了补扫这些漏清扫区的效率。最后再基于全局区域地图完成全局沿边清扫,这样可以将一些边边角角的地方全部清扫,提高机器人清扫的覆盖率,保证清扫效果。所述规划方法是一种模拟人的思维仿生算法技术,更加智能的完成路径规划和清扫,不仅提高了机器人的清扫效率,还能提高机器人清扫的覆盖率,保证清扫效果。
附图说明
图1为本发明的机器人的结构示意图。
图2为本发明的机器人清扫路径的规划方法的流程图。
图3为本发明的逐个栅格区域清扫的栅格示意地图一。
图4为本发明的逐个栅格区域清扫的栅格示意地图二。
图5为本发明的弧角弓字型清扫方式的清扫路径示意图。
图6为本发明的按弧形轨迹掉头行进的流程图。
图7为本发明的按弧形轨迹掉头行进的路径示意图。
图8为本发明的按弧形轨迹掉头行进的轨迹分析示意图。
图9为本发明的在清扫过程中检测到障碍物的处理方法流程图。
图10为本发明的在清扫过程中检测到障碍物的路径示意图一。
图11为本发明的在清扫过程中检测到障碍物的路径示意图二。
图12为本发明的在清扫过程中检测到障碍物的路径示意图三。
图13为本发明的在清扫过程中检测到障碍物的路径示意图四。
图14为本发明的在清扫过程中检测到障碍物的路径示意图五。
图15为本发明的在清扫过程中检测到障碍物的路径示意图六。
图16为本发明的在清扫过程中检测到障碍物的路径示意图七。
图17为本发明的在清扫过程中检测到障碍物的路径示意图八。
图18为本发明的栅格区域的栅格示意地图。
图19为本发明的最优行进路径的栅格示意图。
图20为本发明的最优行进路径进行弧形优化后的栅格示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
智能扫地机器人,又称自动打扫机、智能吸尘器等,是智能家用电器的一种,能凭借一定的人工智能,自动在房间内完成地板清理工作。一般采用刷扫和真空方式,将地面杂物先吸纳进入自身的垃圾收纳盒,从而完成地面清理的功能。一般来说,将完成清扫、吸尘、擦地工作的机器人,也统一归为扫地机器人。扫地机器人的机身为无线机器,以圆盘型为主。使用充电电池运作,操作方式为遥控或是机身上的操作面板。一般能设定时间预约打扫,自行充电。机身上和机身内部设有各种感应器,比如红外传感器、陀螺仪、加速度传感器和碰撞传感器等,可检测行进距离、行进角度、机身状态和障碍物等,如碰到墙壁或其他障碍物,会自行转弯,并依不同的设定,而走不同的路线,有规划地清扫待清扫区域。
如图1所示的机器人,包括机身101和设于机身101下部的驱动轮102,所述驱动轮102上还设***盘。所述机身101前面设有用于检测碰撞的碰撞传感器103,所述碰撞传感器103可以是物理的碰撞检测或者是超声波、激光等非接触式检测。其中,物理的碰撞检测通过内部硬件的弹簧结构件,弹起和压下时对电路产生不同的IO电平,从而使得机器人能够判断出是否与障碍物发生了碰撞。触碰点的位置离中心点的位置不是固定的,只是每点的直线距离是一样的,角度随着碰撞的位置不同而不同。
如图2所示的机器人清扫路径的规划方法,包括如下步骤:步骤S1、基于栅格地图,从原点出发,按照逐个栅格区域清扫方式,完成全局区域清扫,并构建全局区域地图;步骤S2、搜索所述全局区域地图,查找漏清扫区,并完成所述漏清扫区的清扫;步骤S3、基于全局区域地图,完成全局沿边清扫;步骤S4、回到原点。本发明所述的机器人清扫路径的规划方法,通过先按照逐个栅格区域清扫方式完成全局区域清扫后,基于清扫过程记录的信息构建全局区域地图,这样可以避免现有的机器人需要先构图再清扫的低效问题,直接一边清扫一边构图,可以提高机器人的清扫效率。然后再根据全局区域地图查找漏清扫区,并完成所述漏清扫区的清扫,这样可以避免全局清扫时所带来的漏扫问题,同时,通过利用全局清扫时构建的全局区域地图,可以快速查找到漏清扫区,提高了补扫这些漏清扫区的效率。最后再基于全局区域地图完成全局沿边清扫,这样可以将一些边边角角的地方全部清扫,提高机器人清扫的覆盖率,保证清扫效果。所述规划方法是一种模拟人的思维仿生算法技术,更加智能的完成路径规划和清扫,不仅提高了机器人的清扫效率,还能提高机器人清扫的覆盖率,保证清扫效果。
优选的,所述从原点出发,包括:所述原点为充电座所在的位置时,机器人从充电座上下来,转向180°后,向前直行;所述原点为充电座以外的位置时,机器人直接向前直行。由于机器人需要按照栅格区域的方式进行清扫,所以,需要先确定原点,再基于原点构建坐标系,才能基于坐标系上的栅格单元组成的栅格地图构建栅格区域,其中,相同的栅格区域包含的栅格单元的数量以及栅格单元的排列方式是相同的。根据实际情况,可以设置不同的位置点为原点,主要分为两种情况:一种是机器人在充电座上充电时,接收到开始清扫的指令,机器人从充电座上下来,此时,机器人的前部是面向充电座的,如果直接向前清扫,就会直接回到充电座上,所以,需要先转向180°,以机器人身后的充电座为原点,向前直行,开始清扫。另一种是机器人不在充电器座上,而是停在其它的某个位置,此时,如果机器人接收到开始清扫的指令,则以当前位置点为原点,直接向前直行进行清扫,这样就不需要花时间回到某个特定的原点,如此还可以提高机器人的清扫效率。由于原点不确定,所以基于不确定的原点所构建的栅格地图也是不一样的,如此还能提高机器人的灵活性,使得机器人的行动更智能,从而增强产品的仿生效果。
优选的,在步骤S1中,所述按照逐个栅格区域清扫方式,包括如下步骤:从原点出发并沿第一方向向前直行,清扫位于所述第一方向一侧的第一栅格区域,并依次清扫与所述第一栅格区域并排的栅格区域,然后再回到与所述第一栅格区域并列的第二栅格区域,依次清扫所述第二栅格区域和与所述第二栅格区域并排的栅格区域;依次类推,至沿所述第一方向的与所述第一栅格区域并列的栅格区域,以及与所述并列的栅格区域并排的栅格区域清扫完毕;返回原点;从原点出发并沿第一方向向前直行,清扫位于所述第一方向另一侧的第三栅格区域,并依次清扫与所述第三栅格区域并排的栅格区域,然后再回到与所述第三栅格区域并列的第四栅格区域,依次清扫所述第四栅格区域和与所述第四栅格区域并排的栅格区域;依次类推,至沿所述第一方向的与所述第三栅格区域并列的栅格区域,以及与所述并列的栅格区域并排的栅格区域清扫完毕。
如图3所示,所述栅格区域为预定长度为4m和预定宽度为3m的长方形区域,其中,所述预定长度和所述预定宽度可以根据实际需求进行不同设置,也可以设置为相同的数值。
如图3所示,机器人从原点O开始清扫,沿Y轴正方向(即第一方向)向前直行,并以弧角弓字型的轨迹形式从左至右清扫位于Y轴右侧的1#栅格区域(即第一栅格区域),然后依次清扫与1#栅格区域并排的2#和3#栅格区域。接着,机器人回到与1#栅格区域并列的4#栅格区域(即第二栅格区域),并以同样的方式依次清扫4#、5#和6#栅格区域,假如还有其它栅格区域与1#栅格区域并列,继续按上述方式依次清扫。至此,沿Y轴正方向且位于Y轴右侧的栅格区域已清扫完毕。机器人回到原点O。然后沿Y轴正方向向前直行,并以弧角弓字型的轨迹形式从右至左清扫位于Y轴左侧的7#栅格区域(即第三栅格区域),然后依次清扫与7#栅格区域并排的8#和9#栅格区域。接着,机器人回到与7#栅格区域并列的10#栅格区域(即第四栅格区域),并以同样的方式依次清扫10#、11#和12#栅格区域,假如还有其它栅格区域与7#栅格区域并列,继续按上述方式依次清扫,至沿Y轴方向且位于Y轴左侧的栅格区域全部清扫完毕。
由于机器人在行进过程中,轮子打滑、碰到障碍物等原因,会导致行进路径的误差,如果离原点太远,机器人可能无法准确回到原点位置,从而导致机器人继续清扫时,会导致漏扫或者重复清扫的问题,所以,机器人分两侧清扫,先清扫X轴一侧的栅格区域,然后回到原点进行位置校正之后,再清扫X轴另一侧的栅格区域,这样就不会因为机器人走得太远,行进误差太大而无法准确回到原点,有效避免漏扫或者重复清扫的问题。
优选的,在步骤S1中,所述按照逐个栅格区域清扫方式,包括如下步骤:从原点出发并沿第一方向向前直行,清扫位于所述第一方向一侧的第一栅格区域,并依次清扫与所述第一栅格区域并排的栅格区域;返回原点;从原点出发并沿与所述第一方向相反的第二方向向前直行,清扫位于所述第一栅格区域同一侧的第三栅格区域,并依次清扫与所述第三栅格区域并排的栅格区域;返回原点;从原点出发并沿第一方向向前直行,清扫位于所述第一方向另一侧的第二栅格区域,并依次清扫与所述第二栅格区域并排的栅格区域;返回原点;从原点出发并沿与所述第一方向相反的第二方向向前直行,清扫位于所述第二栅格区域同一侧的第四栅格区域,并依次清扫与所述第四栅格区域并排的栅格区域。
如图4所示,同样的,以4m*3m的栅格区域为例进行说明。机器人从原点O开始清扫,沿Y轴正方向(即第一方向)向前直行,并以弧角弓字型的轨迹形式从左至右清扫位于Y轴右侧的1#栅格区域(即第一栅格区域),然后依次清扫与1#栅格区域并排的2#和3#栅格区域,假如沿Y轴正方向还有其它栅格区域与1#栅格区域并列,则依次清扫该并列的栅格区域以及与该并列的栅格区域相并排的其它栅格区域,至沿Y轴正方向且位于Y轴右侧的栅格区域全部清扫完毕。机器人返回原点O。然后,机器人从原点O开始,沿Y轴负方向(即第二方向)向前直行,并以弧角弓字型的轨迹形式从左至右清扫位于Y轴右侧的4#栅格区域(即第三栅格区域),然后依次清扫与4#栅格区域并排的5#和6#栅格区域,假如沿Y轴负方向还有其它栅格区域与4#栅格区域并列,则依次清扫该并列的栅格区域以及与该并列的栅格区域相并排的其它栅格区域,至沿Y轴负方向且位于Y轴右侧的栅格区域全部清扫完毕。机器人返回原点O。接着,机器人从原点O开始,沿Y轴正方向(即第一方向)向前直行,并以弧角弓字型的轨迹形式从右至左清扫位于Y轴左侧的7#栅格区域(即第二栅格区域),然后依次清扫与7#栅格区域并排的8#和9#栅格区域,假如沿Y轴正方向还有其它栅格区域与7#栅格区域并列,则依次清扫该并列的栅格区域以及与该并列的栅格区域相并排的其它栅格区域,至沿Y轴正方向且位于Y轴左侧的栅格区域全部清扫完毕。机器人返回原点O。最后,机器人从原点O开始,沿Y轴负方向(即第二方向)向前直行,并以弧角弓字型的轨迹形式从右至左清扫位于Y轴左侧的10#栅格区域(即第四栅格区域),然后依次清扫与10#栅格区域并排的11#和12#栅格区域,假如沿Y轴负方向还有其它栅格区域与10#栅格区域并列,则依次清扫该并列的栅格区域以及与该并列的栅格区域相并排的其它栅格区域,至沿Y轴负方向且位于Y轴左侧的栅格区域全部清扫完毕。
由于机器人在行进过程中,轮子打滑、碰到障碍物等原因,会导致行进路径的误差,如果离原点太远,机器人可能无法准确回到原点位置,从而导致机器人继续清扫时,会导致漏扫或者重复清扫的问题,所以,将原点设置在栅格地图的中部,机器人分右上、右下、左上和左下四个方位进行清扫,使得每个方位的栅格区域离原点的距离都比较均匀,不会相隔太远。机器人每清扫完一个方位的栅格区域后,再回到原点进行位置校正,接着再清扫另一个方位的栅格区域,这样就不会因为机器人走得太远,行进误差太大而无法准确回到原点,有效避免漏扫或者重复清扫的问题。
优选的,图3和图4所示的实施例中,所述并排的栅格区域的数量为N个,所述N为大于1且小于10的自然数。由于各种各样的原因,机器人在行进过程中会产生误差,如果行进距离过远,太大的偏差会导致机器人无法准确回到原点,所以,经过优化设计,将并排的栅格区域的数量限制在1至10个之间,可以在保证机器人准确回到原点的同时,实现清扫面积的最大化。
现有的机器人在进行栅格区域清扫时,一般会以弓字型轨迹的形式进行清扫。所谓弓字型清扫就是指机器人沿移动路径直线行进至转弯点时,转向90°后行进一定宽度,然后再转向90°,使当前行进方向与原来的移动路径方向相反,接着继续行进至下一个转弯点。由于机器人按此方式行进的轨迹类似弓字,故称之为弓字形清扫。所述转弯点为机器人达到栅格区域的边界时或者检测到墙壁等符合转弯条件的障碍物时的位置点。由于这种行进方式在一次掉头过程中需要两次停顿和直角转向,存在掉头时卡顿、不顺畅和行进效率降低等问题。
本发明对此做出了改进,提出了一种采用弧角弓字型的轨迹形式进行栅格区域清扫的方式。优选的,所述以弧角弓字型的轨迹形式进行清扫,包括如下步骤:基于第一方向,按第一直线移动路径行进至第一转弯点;从所述第一转弯点按弧形轨迹掉头行进至相邻的第二直线移动路径的起点;基于与所述第一方向相反的第二方向,按所述第二直线移动路径行进至第二转弯点;再从所述第二转弯点按弧形轨迹掉头行进至相邻的第三直线移动路径的起点;基于所述第一方向,按所述第三直线移动路径行进至第三转弯点;从所述第三转弯点按弧形轨迹掉头行进至相邻的第四直线移动路径的起点;基于与所述第一方向相反的第二方向,按所述第四直线移动路径行进至第四转弯点;依此类推;其中,相邻的直线移动路径相互平行且间隔相等的预设宽度。
如图5所示的路径示意图中,带有箭头的线路表示机器人的行进轨迹。最外侧的四条边所组成的一个最大的长方形,则表示栅格区域的边界。起点A为机器人开始行进的点,带有箭头的直线AB为机器人行进的第一直线移动路径,箭头所指的方向为第一方向。当机器人行进至转弯点B时,按弧形轨迹进行掉头,当掉头至位置点C时,机器人行进的方向与所述第一直线移动路径上的行进方向相反(即第二方向),该条行进方向相反的直线CD作为机器人行进的第二直线移动路径,位置点C作为第二直线移动路径的起点,位置点D则作为第二直线移动路径的转弯点。图5中所示,带箭头的竖直线表示的路径都是机器人的直线移动路径,首尾两端连接相邻两条直线移动路径的弧线段则表示机器人掉头的掉头路径。如图,直线EF为第三直线移动路径;相邻所述第三直线移动路径的右侧的直线GH为第四直线移动路径,以此类推。
所述以弧角弓字型的轨迹形式进行清扫,包括如下步骤:基于第一方向,按第一直线移动路径AB行进至第一转弯点B;从所述第一转弯点B按弧形轨迹掉头行进至相邻的第二直线移动路径CD的起点C;基于与所述第一方向相反的第二方向,按所述第二直线移动路径CD行进至第二转弯点D;再从所述第二转弯点D按弧形轨迹掉头行进至相邻的第三直线移动路径EF的起点E;基于所述第一方向,按所述第三直线移动路径EF行进至第三转弯点F;从所述第三转弯点F按弧形轨迹掉头行进至相邻的第四直线移动路径GH的起点G;基于与所述第一方向相反的第二方向,按所述第四直线移动路径GH行进至第四转弯点H;依此类推。其中,相邻的直线移动路径相互平行且间隔相等的预设宽度,所述预设宽度可以根据实际情况进行相应设置,本实施例中,所述预设宽度为机器人的机身的宽度。将所述预设宽度设置为机器人机身的宽度,使机器人在进行弧角弓字型的清扫方式时,恰好可以实现清扫时的无缝连接,即不会存在相邻的直线移动路径之间漏扫或者重复清扫的情况,由此提高清扫效率。
所述以弧角弓字型的轨迹形式进行清扫的方法,通过控制机器人在两直线移动路径之间按弧形轨迹的方式掉头,能实现沿弧形轨迹平滑地转向,从而提高了机器人掉头的顺畅性和平稳性,避免现有的直角掉头方式所带来的卡顿和不顺畅的问题,使得机器人的行进效率大大提高。
优选的,如图6所示,所述按弧形轨迹掉头行进,包括如下步骤:获取机器人的陀螺仪检测到的当前角度值;计算所述当前角度值与目标角度值的角度差值;计算机器人的内轮和外轮在未来时间段内的运动角度预变量;判断所述运动角度预变量是否小于所述角度差值;如是,则保持当前的运动角度变化量;如否,则调整当前的运动角度变化量,使机器人行进至相邻的直线移动路径的起点时,能按所述直线移动路径行进。通过预估机器人未来时间段内的运动角度预变量,可以提前判断机器人是否会转弯过度,如果运动角度预变量大于或等于所述角度差值,则表明机器人会转弯过度,会偏离掉头的弧形轨迹,应该立即调整当前的运动角度变化量,如果运动角度预变量小于所述角度差值,则可以保持当前的运动角度变化量,继续按当前的弧形轨迹平滑行进。
其中,所述内轮为按弧形轨迹掉头过程中,行进速度相对较慢的驱动轮;即向左转弯时,左边的驱动轮103为内轮,向右转弯时,右边的驱动轮102则为内轮。所述外轮为按弧形轨迹掉头过程中,行进速度相对较快的驱动轮;即向左转弯时,右边的驱动轮103为外轮,向右转弯时,左边的驱动轮102则为外轮。
其中,所述目标角度值为机器人行进至所述直线移动路径的起点时的角度值。以图7为例,中间带一黑杠的圆形表示机器人,以直线AB的箭头指示方向为参考方向,则在位置点B时机器人从参考方向转向90°,此时,陀螺仪检测到的当前角度值为90°。而位置点C为目标点,机器人在位置点C的角度值即为目标角度值,目标角度值与参考方向相反,为180°,所以,当前角度值与目标角度值的角度差值为90°。随着机器人从位置点B逐渐靠近位置点C,当前角度值会逐渐增大,所述角度差值也就相应逐渐减小,当机器人到达位置点C时,所述角度差值为0。
优选的,所述计算机器人的内轮和外轮在未来时间段内的运动角度预变量,包括如下步骤:获取内轮当前行进的内轮速度;获取外轮当前行进的外轮速度;计算所述外轮速度和所述内轮速度的速度差的绝对值;计算未来时间段内,内轮和外轮的预行进距离差,所述预行进距离差为所述速度差的绝对值与所述未来时间段的乘积;计算得出所述运动角度预变量,所述运动角度预变量为所述预行进距离差除以所述内轮和所述外轮之间的宽度。
比如,当获取到的当前行进的内轮速度为V1,外轮速度为V2,则速度差的绝对值为△V,△V=|V1-V2|。未来时间段为△T,则△T时间内,内轮和外轮的预行进距离差为△L,△L=△V*△T。内轮和外轮之间的宽度为W,则根据小角度计算方法,运动角度预变量△θ=△L/W。
其中,所述未来时间段△T是一个可以设置的值,根据不同的转弯条件设置不同时间段,优选的,△T可以设置为50毫秒、100毫秒或者200毫秒等,所设置的时间段可以使机器人在得到预估结果需要做出相应调整时,有足够的调整时间。
其中,所述内轮和所述外轮之间的宽度W为图1所示的机器人的两个驱动轮102和103之间的直线距离。
优选的,所述当前的运动角度变化量为单位时间内,所述内轮和所述外轮的行进距离差与所述内轮和所述外轮之间的宽度的比值。其中,所述内轮和所述外轮的行进距离差为当前行进的内轮速度和当前行进的外轮速度的速度差的绝对值与所述单位时间的乘积。
比如,当获取到的当前行进的内轮速度为V1,外轮速度为V2,则速度差的绝对值为△V,△V=|V1-V2|。单位时间为T,则T时间内,内轮和外轮的行进距离差为△L,△L=△V*T。内轮和外轮之间的宽度为W,则根据小角度计算方法,所述当前的运动角度变化量△θ=△L/W。
其中,所述单位时间T也是一个可以设置的值,根据不同的需求进行相应的设置。优选的,T可以设置为10毫秒或者20毫秒。上述未来时间段△T需要设置为所述单位时间T的5倍、10倍或者20倍,以此满足机器人在得到预估结果需要做出相应调整时,有足够的调整时间的需求。
其中,所述内轮和所述外轮之间的宽度W为图1所示的机器人的两个驱动轮102和103之间的直线距离。
优选的,如图8所示,所述调整当前的运动角度变化量,包括如下步骤:获取当前位置点B1与所述起点C在直线移动路径的宽度方向上的直线距离L;计算所述直线距离L与所述预设宽度的距离比值;根据所述距离比值调整所述内轮速度,使所述内轮速度为当前的内轮速度与所述距离比值的乘积再乘以一个常量。由于越靠近位置点C,所述角度差值就越小,所需要的角度变化量就越小,所以,需要通过调整内轮的速度,使内轮的速度逐渐增大,从而减小内轮速度与外轮速度之间的速度差,使得运动角度变化量逐渐减小,并在到达目标点(即位置点C)时,运动角度变化量为0,使得机器人可以按当前直线移动路径进行直线行进。其中,所述根据所述距离比值调整所述内轮速度时,限制所述内轮速度,使所述内轮速度小于或等于所述外轮速度,这样才可以保证机器人进行掉头时,不会偏离弧形轨迹,顺畅地沿弧形轨迹行进。
其中,由于不同结构的机器人和不同的地面环境等因素的影响,在调整运动角度变化量时,即使改变的相关参数相同,最终调整出来的运动角度变化量却不一定相同,所以需要引入一个常量进行补偿。所述常量需要结合具体的机型和测试环境等条件,通过实验测试结果得出,使得在进行运动角度变化量的调整时,能够得到准确的数据,避免机器人控制出现误差。
其中,所述直线移动路径的宽度方向为同时垂直相邻的两条直线移动路径的直线的长度方向,即图8中的Y轴方向。所述预设宽度为同时垂直相邻的两条直线移动路径的直线的长度,即图8中坐标原点到C点的直线距离。
优选的,所述获取内轮当前行进的内轮速度或者所述获取外轮当前行进的外轮速度,包括如下步骤:获取单位时间内码盘接收的脉冲数;获取码盘比;计算所述码盘比与所述内轮或者外轮的周长的比值,得到脉冲距离比;计算单位时间内码盘接收的脉冲数与所述脉冲距离比的比值,得到单位时间内所述内轮或者外轮行进的距离(即所述内轮或者外轮的速度)。其中,所述码盘比为所述内轮或者外轮转一圈的脉冲个数。所述内轮或者外轮的周长为圆周率与驱动轮直径的乘积。所述单位时间也是一个可以设置的值,根据不同的情况设置为不同的值,可设置为1毫秒、10毫秒或者100毫秒等。
本发明所述弧形轨迹的算法原理是基于一个椭圆模型,如图8所示,机器人掉头过程中,模拟椭圆的轨迹,从X轴正方向的B点,走到Y轴负方向的C点。而B点是直线移动路径的转弯点,其离坐标原点的距离是预先设定的,同时到下一条直线移动路径的起点C点(即目标点)的角度也是预先设定的,所以,在机器人转弯过程中,可以控制机器人的两个驱动轮的速度来达到弧形的效果,两个驱动轮的速度可以是一个线性的比例关系。起始的默认值为外轮的外轮速度为内轮的内轮速度的七倍。在机器人行进的过程中会不断检测,当符合调整条件时,就会调整内轮的速度,以改变机器人的角度变化量。
机器人在清扫地面的过程遇到障碍物是很普遍的情况,比如一把风扇、墙壁或者桌脚等。机器人遇到这些障碍物时的处理很重要,因为这个是直接影响清扫效率的。现有的处理方式有两种,要么沿着障碍物的边缘绕过去,要么直接掉头走。如果沿着障碍物的边缘绕过去,可能在绕过去之后,找不到可清扫的区域;如果直接掉头,可能障碍物另一侧又有很大的区域没有及时得到清扫。所以,这两种方式都比较呆板,使得机器人的清扫效率很低,无法满足用户的高效需求。对此,本发明提供了一种在清扫过程中检测到障碍物时的处理方法,可以有效解决机器人清扫效率低的问题。
优选的,如图9所示,所述按照逐个栅格区域清扫,在清扫过程中检测到障碍物时,包括如下处理步骤:基于相互平行且垂直间隔为预设宽度的直线路径作为机器人的直线移动路径,相邻直线移动路径上,机器人的行进方向相反;基于机器人在当前直线移动路径上检测到障碍物时的位置点作为当前障碍点;基于当前障碍点所在的当前直线移动路径的上一条直线移动路径的起点作为参考起始点;判断在当前直线移动路径的行进方向上,所述参考起始点垂直投影在所述当前直线移动路径所在的直线上的投影点是否位于所述当前障碍点的后方;如是,则掉头,按下一条直线移动路径行进;如否,则判断所述投影点与所述当前障碍点之间的距离是否小于预设掉头距离;如是,则掉头,按下一条直线移动路径行进;如否,则沿障碍物的边缘行进。
如图10至图17所示的路径示意图中,小圆圈所表示的是移动路径中的一个位置点。带有箭头的线路则表示机器人的行进轨迹。最外侧的四条边所组成的一个最大的长方形,则表示栅格区域的边界。
如图10所示,出发点A0为机器人开始行进的点,A0所在的带有箭头的直线则为机器人行进的第一条直线移动路径。当机器人行进至转弯点时,按弧形轨迹进行掉头,当掉头至位置点A1时,机器人行进的方向与所述第一条直线移动路径上的行进方向相反,该条行进方向相反的路径作为机器人行进的第二条直线移动路径,位置点A1作为第二条直线移动路径的起点。图10中所示,带箭头的竖直线表示的路径都是机器人的直线移动路径,首尾两端连接相邻两条直线移动路径的弧线段则表示机器人掉头的掉头路径。其中,位置点A21和A22所在的直线路径为第三条直线移动路径;相邻所述第三条直线移动路径的右侧的直线路径为第四条直线移动路径,以此类推。
如图10所示,所述按照逐个栅格区域清扫,在清扫过程中检测到障碍物时,包括如下处理步骤:基于相互平行且垂直间隔为预设宽度的直线路径作为机器人的直线移动路径,相邻直线移动路径上,机器人的行进方向相反;基于机器人在当前直线移动路径(即第三条直线移动路径)上检测到障碍物20时的位置点B1作为当前障碍点;基于当前障碍点所在的当前直线移动路径的上一条直线移动路径(即第二条直线移动路径)的起点A1作为参考起始点;此时,判断在当前直线移动路径的行进方向上,所述参考起始点垂直投影在所述当前直线移动路径(即第三条直线移动路径)所在的直线上的投影点位于所述当前障碍点的前方(如此可以表明,一般情况下障碍点前方是有需要清扫的区域的);接着,进一步判断得出所述投影点与所述当前障碍点之间的距离大于预设掉头距离(如此则表明,一般情况下障碍点前方需要清扫的区域具有足够大的空间,供机器人过去清扫);所以,机器人就沿着障碍物20的边缘行进,并在绕过障碍物20后,回到第三条直线移动路径上并继续沿着第三条直线移动路径行进。
当机器人行进至第七条直线移动路径时,在位置点B3检测到障碍物30,则位置点B3作为当前障碍点;基于当前障碍点所在的当前直线移动路径的上一条直线移动路径(即第六条直线移动路径)的起点A3作为参考起始点;此时,判断在当前直线移动路径(即第七条直线移动路径)的行进方向上,所述参考起始点垂直投影在所述当前直线移动路径所在的直线上的投影点位于所述当前障碍点的前方;接着,进一步判断得出所述投影点与所述当前障碍点之间的距离小于预设掉头距离(如此则表明,一般情况下障碍点前方需要清扫的区域不具有足够大的空间,机器人无法进行清扫);所以,机器人掉头,按下一条直线移动路径(即第八条直线移动路径)行进。
当机器人行进至第九条直线移动路径时,在位置点B4检测到障碍物30,则位置点B4作为当前障碍点;基于当前障碍点所在的当前直线移动路径的上一条直线移动路径(即第八条直线移动路径)的起点A4作为参考起始点;此时,判断在当前直线移动路径(即第九条直线移动路径)的行进方向上,所述参考起始点垂直投影在所述当前直线移动路径所在的直线上的投影点位于所述当前障碍点的后方(如此则表明,障碍点前方不一定具有需要清扫的区域的);所以,为了提高清扫效率,避免行进的盲目性,机器人掉头,按下一条直线移动路径(即第十条直线移动路径)行进。
上述处理方法中,机器人通过判断当前障碍点与参考起始点的投影点的位置和距离关系,来确定下一步的动作,可以使机器人在障碍物后的空间不足时,立即掉头清扫当前较空旷的区域,不用花时间到障碍物后去检测;而在障碍物后的空间充足时,能够绕过障碍物去清扫后面的区域,避免较大区域没有得到及时清扫而降低机器人的清扫效率。采用这种处理方法,可以提高机器人的智能化,使得机器人的清扫效率大大提高。
优选的,所述沿障碍物的边缘行进,包括:沿障碍物的前边缘行进,并在回到当前直线移动路径后继续按当前直线移动路径行进;其中,所述前边缘为障碍物靠近上一条直线移动路径的那一侧的边缘,即图10中障碍物20的左侧。由于障碍物20的左侧已经被机器人清扫过,当机器人能够清扫至障碍物20的位置,一般情况下,表明障碍物20的左侧所占的位置较小,如果此时当前障碍点与参考起始点在行进方向上的距离大于或等于预设掉头距离(即表明障碍物20后面的区域具有足够大的需要清扫的空间),则机器人通过障碍物20的左侧可以快速绕到障碍物20后面,继续进行清扫。由此,可以进一步地提高机器人的清扫效率。
优选的,如果当前障碍点所在的直线移动路径为第一条直线移动路径,则所述第一条直线移动路径的起点作为参考起始点。如图11所示,机器人在第一条直线移动路径的出发点A0上出发,在位置点B0检测到障碍物10,则位置点B0作为当前障碍点,出发点A0作为参考起始点。由于参考起始点在当前直线移动路径上位于当前障碍点的后方,机器人无法判断障碍物10后方的区域的具体情况,所以,为了避免行进的盲目性,机器人直接掉头,清扫已扫过的路径旁边的待扫区域,由此可以提高机器人行进的目的性和高效性。
如图12所示,出发点A0作为第一条直线移动路径的起点,机器人从出发点A0出发。在行进至第二条直线移动路径的位置点B1时,检测到障碍物40,此时位置点B1作为当前障碍点,出发点A0作为参考起始点。在当前行进方向上,所述参考起始点在当前直线移动路径的垂直投影点位于所述当前障碍点的后方,机器人直接掉头,按下一条直线移动路径(即第三条移动路径)行进。由于第一条直线移动路径的参考起始点的投影点位于当前障碍点的后方,障碍物40后方的区域没有被清扫过,无法判断障碍物40后面的具体情况,所以,为了避免机器人盲目地行进,直接控制机器人掉头,清扫已扫过的路径旁边的待扫区域,以此提高机器人行进的目的性和高效性。
如图13所示,出发点A0作为第一条直线移动路径的起点,机器人从出发点A0出发。在行进至第二条直线移动路径的位置点B1时,检测到障碍物20,此时位置点B1作为当前障碍点,出发点A0作为参考起始点。由于在当前行进方向上,所述参考起始点在当前直线移动路径上的投影点位于所述当前障碍点的前方,且所述当前障碍点与所述投影点在行进方向上的距离大于或等于预设掉头距离,一般情形下表明障碍物20后有足够大的需要清扫区域,则机器人沿障碍物20的前边缘行进,并在绕过障碍物20回到第二条直线移动路径上时,继续第二条直线移动路径行进,清扫障碍物20后面的待清扫区域。如图14所示,虽然在当前行进方向上,所述参考起始点在当前直线移动路径上的投影点位于所述当前障碍点的前方,但是,由于所述投影点与所述参考起始点在当前行进方向上的距离小于预设掉头距离,机器人判断障碍物40后面的待清扫空间可能比较小,所以,为了提高清扫效率,直接控制机器人掉头,按第三条直线移动路径行进,清扫已扫过的路径旁边的待清扫区域,以此提高机器人行进的目的性和高效性。
优选的,如果当前直线移动路径的上一条直线移动路径包括多段分直线移动路径,则所述上一条直线移动路径沿当前行进方向的最后一段分直线移动路径的起点作为参考起始点。如图15所示,第三条直线移动路径包括两段分直线移动路径,位置点A21作为第一段分直线移动路径的起点,当机器人行进至第一段分直线移动路径的位置点B21时检测到障碍物20,判断第二条直线移动路径的起点A1作为参考起始点时垂直投影到第三条直线移动路径所在直线上的投影点到位置点B21(即当前障碍点)的距离,由于该距离大于预设掉头距离,所以,机器人从障碍物20左侧边缘绕过障碍物20后,回到第三条直线移动路径的第二段分直线移动路径的位置点A22,所述位置点A22作为第二段分直线移动路径的起点。机器人继续行进并在位置点B22检测到障碍物50,所述位置点B22替代位置点B21成为当前障碍点,机器人判断第二条直线移动路径的起点A1作为参考起始点时垂直投影到第三条直线移动路径所在直线上的投影点到位置点B22(即当前障碍点)的距离,由于该距离小于预设掉头距离,所以,机器人掉头,按第四条直线移动路径行进。当机器人在第四条直线移动路径上行进至位置点B3时检测到障碍物,此时,位置点B3替代位置点B22成为当前障碍点。由于第二段分直线移动路径是第三条直线移动路径的沿当前行进方向的最后一段分直线移动路径,所以,第二段分直线移动路径的起始的位置点A22替代位置点A21成为第三条直线移动路径的参考起始点。机器人判断位置点A22垂直投影到第四条直线移动路径上的投影点与位置点B3的距离,由于该距离小于预设掉头距离,所以,机器人掉头,按第五条直线移动路径行进。上述情况,一般可以表明机器人此时已经进入到了障碍物(20、50)所围成的区域内,所以,最好的方式是,在进入到障碍物所围成的区域内,先对该区域进行清扫,而其它的未扫区域则作为后续的补扫阶段进行处理。如此,才能进一步地提高机器人清扫的智能性和高效性。
上述处理方法中,所述预设掉头距离为一个可设置的值,可以根据用户的需求或者不同的环境进行相应设置。可以设为1.2倍的机器人机身宽度,也可以设为1.3倍的机器人机身宽度,也可以设为1.4倍的机器人机身宽度,也可以设为1.5倍的机器人机身宽度。这些设置值都必须大于1倍的机器人机身宽度,使得机器人可以有效地进入该区域进行清扫作业。
优选的,所述机器人在掉头过程中,检测到障碍物,则直接沿障碍物的边缘行进,当行进的宽度未超过预设宽度且已绕过障碍物的,则继续行进以达到所述预设宽度后,按掉头后的直线移动路径行进;当行进的宽度已达到预设宽度且没有绕过障碍物的,则在达到所述预设宽度时,按掉头后的直线移动路径行进。如图16所示,所述机器人在第八条直线移动路径的掉头过程中,在位置点B41检测到障碍物(图示的三角形),则直接沿障碍物的边缘行进,其行进的宽度未超过预设宽度且已绕过障碍物后,则继续行进以达到所述预设宽度后,按掉头后的直线移动路径(即第九条直线移动路径)行进。由于机器人在掉头,一般表明机器人已经到达了待清扫区域的边界,其最高效的方式是尽快找到下一条直线移动路径,所以,没有必要再判断其检测到障碍物的位置点B41与其它位置点的关系,直接沿着障碍物的边缘行进即可。如图17所示,当机器人沿障碍物(图示的菱形)的边缘行进的宽度已达到预设宽度且没有绕过障碍物的,则在达到所述预设宽度时,按掉头后的直线移动路径(即第九条直线移动路径)行进。如果不判断行进的宽度,则容易沿着较大障碍物的边缘走远,从而产生漏扫的情况。所述的这些处理方法中,所述行进的宽度为沿垂直所述直线移动路径的方向,机器人行进的直线距离。所述机器人掉头过程中行进的轨迹为弧形,采用弧形轨迹的方式进行掉头,可以避免现有的弓字型直角方式掉头所带来的行进卡顿的问题,从而提高了机器人掉头的顺畅性和平稳性。所述预设宽度为机器人机身宽度,即相邻两条直线移动路径之间的宽度为机器人的机身宽度,这样,可以在机器人走完两条相邻的直线移动路径后,刚好把两条直线移动路径之间的区域清扫完,避免了漏扫或者重复清扫的问题。所述预设宽度也可以设置为其它的值,具体可以根据不同的要求进行相应设置。
优选的,在步骤S1中,所述按照逐个栅格区域清扫方式,包括如下步骤:从当前栅格区域的区域清扫起点开始,按弧角弓字型的轨迹形式清扫至当前栅格区域的区域清扫终点;基于当前栅格区域的栅格区域地图,确定已清扫区和漏清扫区的入口边界;基于每条所述入口边界的两端的端点分别作为两个入口参考点;根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点;根据优先清扫条件确定其中一个最佳入口点为优先清扫区域的清扫起始点;从当前位置点行进至所述清扫起始点,按预设清扫条件清扫所述优先清扫区域;清扫完毕后,再根据入口选择条件和优先清扫条件确定下一个最佳入口点为下一个优先清扫区域的清扫起始点,以此类推,至所有满足漏清扫区清扫条件的漏清扫区都清扫完毕为止;行进至下一个栅格区域的区域清扫起点。
优选的,在步骤S2中,所述搜索所述全局区域地图,查找漏清扫区,并完成所述漏清扫区的清扫,包括如下步骤:基于所述全局区域地图,确定已清扫区和漏清扫区的入口边界;基于每条所述入口边界的两端的端点分别作为两个入口参考点;根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点;根据优先清扫条件确定其中一个最佳入口点为优先清扫区域的清扫起始点;从当前位置点行进至所述清扫起始点,按预设清扫条件清扫所述优先清扫区域;清扫完毕后,再根据入口选择条件和优先清扫条件确定下一个最佳入口点为下一个优先清扫区域的清扫起始点,以此类推,至所有满足漏清扫区清扫条件的漏清扫区都清扫完毕为止。
其中,所述栅格区域地图或者全局区域地图为机器人一边清扫一边记录所行进的路径所形成的平面地图,构建所述平面地图包括如下步骤:基于栅格单元的形式,把行进过的栅格单元标示为已清扫单元,把检测到障碍物的栅格单元标示为障碍单元;把未行进过的单元标示为未清扫单元;基于所述已清扫单元、所述障碍单元和所述未清扫单元,构建所述平面地图;其中,所述全局区域地图为由所有所述栅格区域地图所组成的平面地图。
如图18所示,带有箭头的线路表示机器人的行进轨迹。最外侧的四条边所组成的一个最大的长方形,则表示栅格区域的边界,也可以用来表示全局区域的边界。起点A为机器人开始行进的点,带有箭头的直线AB为机器人行进的第一条直线移动路径,箭头所指的方向为第一方向。当机器人行进至转弯点B时,按弧形轨迹进行掉头,当掉头至位置点C时,机器人行进的方向与所述第一条直线移动路径上的行进方向相反(即第二方向),该条行进方向相反的直线CD作为机器人行进的第二条直线移动路径,位置点C作为第二条直线移动路径的起点,位置点D则作为第二条直线移动路径的转弯点。图中所示,带箭头的竖直线表示的路径都是机器人的直线移动路径,首尾两端连接相邻两条直线移动路径的弧线段则表示机器人掉头的掉头路径。如图,直线EF为第三条直线移动路径;相邻所述第三条直线移动路径的右侧的直线GH为第四条直线移动路径,以此类推。
如图18所示的一个栅格区域的示意地图(大部分栅格未画出),机器人从A点出发,以弧角弓字型的方式清扫至B点,此时,已完成栅格区域的常规清扫。在常规清扫过程中,机器人将清扫过的栅格单元标示为已扫单元,将碰到障碍物的栅格单元标示为障碍单元(即图中标示X的方格),将未清扫过的栅格单元标示为未扫单元,最终形成图18所示的示意结构,图中,弧角弓字型路线占据的区域为已清扫区,虚线框内的区域为未清扫区。常规清扫完成后,需要进行漏清扫区的补扫,所以要先确定已清扫区和漏清扫区的入口边界(即图中d1点至d2点之间的线段、c1点至c2点之间的线段、c3点至c4点之间的线段等),把d1点、d2点、c1点、c2点、c3点和c4点等作为入口参考点,再在d1点和d2点中选择一个作为最佳入口点,c1点和c2点选择一个作为最佳入口点、c3点和c4点选择一个作为最佳入口点等。最后在所选的最佳入口点中确定一个作为优先清扫区的优先清扫点,机器人从B点行进至该优先清扫点,开始对该区域进行清扫。清扫完该区域后,再以该区域的清扫结束点作为当前位置点,继续判断下一个优先清扫区,至所有漏清扫区清扫完毕。所述补扫方法,通过对已清扫区和漏清扫区的每条入口边界的入口参考点进行择优选取,确定最佳入口点,再通过入口选择条件从最佳入口点中选取一个作为清扫起始点,并依照预设清扫条件进行区域清扫。这种补扫方法不需要做任何标记位置点,只需要将栅格地图中已清扫区和漏清扫区的每条入口边界的端点作为入口参考点进行择优选取,即使漏清扫区的形状很复杂,只要对其每条边界都进行分析判断,从中选取最佳入口点,就可以更客观、更灵活、更准确地确定漏清扫区的清扫起始点,从而选择最适合的漏清扫区优选进行清扫。同时,按照所述预设清扫条件对该区域进行清扫,还能避免现有的简单从标记位置点开始以弓字型清扫方式所带来的漏扫问题,保证清扫的全面性和完整性。
优选的,所述根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点,包括如下步骤:以当前位置点作为坐标原点建立XY轴坐标系;分析同一条所述入口边界的两个所述入口参考点的坐标位置;当两个所述入口参考点的X轴值相同,则选择与当前位置点距离最近的所述入口参考点作为最佳入口点;当两个所述入口参考点的Y轴值相同,则选择与当前位置点距离最近的所述入口参考点作为最佳入口点;当两个所述入口参考点的X轴值和Y轴值都不相同,则判断漏清扫区与已清扫区的位置关系;如果漏清扫区在已清扫区的左边,则选择X轴值大的所述入口参考点作为最佳入口点;如果漏清扫区在已清扫区的右边,则选择X轴值小的所述入口参考点作为最佳入口点。如图18所示,机器人行进至B点时,B点作为当前位置点,以B点为原点建立一个XY轴坐标系,分析未清扫区中的a区的两条入口边界a1-a3边界和a4-a5边界(由于a1-a2边界和a2-a3边界互相连接,可以作为一条入口边界)的a1点和a3点、a4点和a5点的坐标位置,由于a1点和a3点相对于坐标原点(B点)的X轴值和Y轴值都不同,且a区在已清扫区的左侧,所以选择X轴值大的a1点作为最佳入口点(由于a1点和a3点的X轴值都为负值,所以,在X轴方向距离原点越近的点,X轴值越大)。由于a4点和a5点的Y轴值相同,所以,选择与当前位置点距离最近的a5点作为a区的另一个最佳入口点。同理,选择b2点、b4点和b8点作为b区的最佳入口点;选择c1点、c5点和c4点作为c区的最佳入口点;选择d1点作为d区的最佳入口点。通过所述入口选择条件,可以对每个未清扫区的每条入口边界都进行分析,从中选取最佳入口点作为后续的优先清扫参考点的选择对象,如此,即使未清扫区的形状很复杂,也可以全面有效地分析哪个位置点更合适作为最佳入口点,从而为优先清扫参考点的选取提供更客观、更准确的对象。
优选的,所述根据优先清扫条件确定其中一个最佳入口点为优先清扫区的清扫起始点,包括如下步骤:在一个漏清扫区中选择与一个与当前位置点距离最近的所述最佳入口点作为优先清扫参考点;选择与当前位置点距离最近的两个所述优先清扫参考点;判断当前位置点分别到两个所述优先清扫参考点的距离差值是否小于预设距离值;如是,则选择长度较长的所述入口边界所对应的所述优先清扫参考点作为清扫起始点;如否,则选择与当前位置点的距离最近的那一个所述优先清扫参考点作为清扫起始点。通过对两个与当前位置点距离最近的优先清扫参考点进行分析,同时结合所述入口边界的长度,可以更全面更准确地确定更适合优先清扫的区域,避免现有的仅仅依靠距离的远近来确定优先清扫区域所导致清扫效率不高的问题,由此提高机器人清扫的高效性。比如,有两个与当前位置点都比较接近的区域,其中距离最近的一个区域的入口边界的长度很短,一般情况下表明该区域的面积也较小,而另外一个区域的入口边界很长,一般情况下表明该区域的面积也较大。如果机器人只考虑距离的话,就会先去入口边界的长度很短的区域,如此,不仅会导致大面积的区域未得到及时清扫而导致清扫效率低,影响用户的产品使用体验,还会导致机器人先去长度较短的入口边界时,由于地图误差或行进误差等原因,需要花费较长时间来找到清扫起始点。所以,最高效的方式是,在确定两个距离都比较接近的区域时,优先清扫入口边界较长的区域,只有当这两个区域与当前位置点的距离相差较大的情况下,才清扫距离最近的区域。如果机器人不先清扫身边比较近的区域,跑很远的距离去清扫虽然面积比较大的区域,也会由于花费太多的时间在行进路程上而降低机器人的清扫效率,同时让用户觉得机器人比较笨,不够智能,而降低了产品的使用体验。
如图18所示,在确定了每个未清扫区的最佳入口点后,在a区的最佳入口点(a1点和a5点)中选择与B点距离最近的a1点作为优先清扫参考点;在b区中选择b4点作为优先清扫参考点;在c区中选择c1点作为优先清扫参考点;在d区中选择d1点作为优先清扫参考点。然后再选择与B点距离最近的两个优先清扫参考点a1点和b4点,由于a1点到B点的距离与b4点到B点的距离的差值大于预设距离值,所以,选择距离最近的a1点作为清扫起始点。所述预设距离值为一个可设置的值,可以根据具体的需求设置不同的参数值,本实施例中选择两个机器人的机身宽度作为该预设距离值。
优选的,所述按预设清扫条件清扫所述优先清扫区,包括如下步骤:判断所述清扫起始点所在的所述入口边界的两个端点的位置关系;当两个端点的X轴值相同时,则从清扫起始点开始,直接朝所述入口边界的另一个端点行进,按弧角弓字型的轨迹形式清扫漏清扫区;当两个端点的Y轴值相同时;如果漏清扫区位于所述入口边界的上方,则从清扫起始点开始,沿Y轴正方向行进,按弧角弓字型的轨迹形式清扫漏清扫区;如果漏清扫区位于所述入口边界的下方,则从清扫起始点开始,沿Y轴负方向行进,按弧角弓字型的轨迹形式清扫漏清扫区;当两个端点的X轴值和Y轴值都不相同时,则从清扫起始点开始,沿垂直另一个端点所在的X轴的方向行进,按弧角弓字型的轨迹形式清扫漏清扫区。
如图18所示,清扫a区时,判断a1点和a3点的位置关系,由于a1点和a3点的X轴值和Y轴值都不相同,所以,从a1点开始沿垂直a3点所在的X轴方向(即a2点)行进,按弧角弓字型的轨迹形式,从右到左清扫a区。其中,所述弧角弓字型与弓字型的区别在于,在转向掉头时,弓字型采用的是两次直角转弯掉头,弧角弓字型采用的是弧形轨迹的形式进行转弯掉头。通过判断入口边界两点的位置关系,对应采用不同的清扫方式,可以有效避免复杂形状的未清扫区域的一些边角的地方被漏扫的问题,从而提高机器人清扫的全面性和完整性。在清扫完a区时,机器人行进至清扫结束点(即a5点),此时,a5点作为当前位置点,根据上述的入口选择条件,选择d1点、c1点、c4点、c5点、b1点、b3点和b8点作为最佳入口点,再根据优先清扫条件确定d1点作为清扫起始点。机器人从a5点行进至d1点后,朝d2点的方向,以弧角弓字型的轨迹形式,从右至左清扫d区,至清扫结束点(d4点)时,对该区的清扫结束。又以d4点为当前位置点,继续根据入口选择条件和优先清扫条件确定c4点作为清扫起始点,机器人从d4点行进至c4点后,朝c3点的方向,以弧角弓字型的轨迹形式,从左至右清扫c区,至清扫结束点(c1点)时,对该区的清扫结束。最后,再以c1点为当前位置点,继续根据入口选择条件和优先清扫条件确定b8点作为清扫起始点,机器人从c1点行进至b8点后,沿垂直b6所在的X轴的方向行进,以弧角弓字型的轨迹形式,从左至右清扫b区,至清扫结束点(b4点)时,对该区的清扫结束。
优选的,判断是否满足所述漏清扫区清扫条件,包括如下步骤:判断一个所述漏清扫区的所有所述入口边界的长度是否都小于预设入口长度;如果是,则所述入口边界所对应的所述漏清扫区不满足所述漏清扫区清扫条件;如果否,则所述入口边界所对应的所述漏清扫区满足所述漏清扫区清扫条件。其中,所述预设入口长度也是一个可设置的值,可以根据具体的需求进行相应设置,本实施例中设置为1.2倍的机器人机身宽度,只要有一个入口边界的长度大于或等于1.2倍的机器人机身宽度,即可以通过该入口边界对该区域进行清扫。如果所有的入口边界都小于1.2倍的机器人机身宽度,则机器人无法或者很难进入该区进行清扫,不需要将其列为补扫对象,可以在后续的其它清扫阶段中处理。通过入口边界的长度来判断机器人是否能够进入该未扫区域,以此提高补扫效率,避免机器人花费较长时间行进至该区又无法进入清扫的情况。
优选的,所述从当前位置点行进至所述清扫起始点,包括如下步骤:搜索栅格地图,确定由预行进位置点连接的从当前位置点到所述清扫起始点的路径为预行进路径;基于当前位置点所对应的当前栅格单元,确定在预行进路径方向上的下一个栅格单元为路径参考单元;判断所述路径参考单元在垂直预行进路径方向的任意一侧的预设距离内的栅格单元是否为障碍单元;如果否,则将所述路径参考单元所对应的所述预行进位置点作为行进位置点;如果是,则判断另一侧的在预设距离内的栅格单元是否为障碍单元;如果否,则将与所述路径参考单元所对应的所述预行进位置点在远离障碍单元的方向偏移设定距离的位置点作为行进位置点;如果是,则将所述路径参考单元所对应的所述预行进位置点作为行进位置点;接着,以再下一个栅格单元作为路径参考单元进行判断,以此类推,至所判断的栅格单元为所述清扫起始点所在的栅格单元,则结束判断;确定由行进位置点连接的从当前位置点到清扫起始点的路径为行进路径。所述方法通过对现有路径搜索算法所搜索出来的预行进路径进行优化,将所述预行进路径上与障碍单元靠近的栅格单元所对应的预行进位置点进行偏移,最终形成与障碍单元相隔一定距离的行进路径,机器人按所述行进路径行进,不容易碰到障碍物,提高了行进效率,同时,不影响从当前位置点到清扫起始点的导航,导航更准确,效率更高。
其中,如果所述路径参考单元的前方的预设距离内的栅格单元为障碍单元,则判断在垂直预行进路径方向的任意一侧的预设距离内的栅格单元是否为障碍单元;如果是,则将所述路径参考单元所对应的预行进位置点在第一预设方向偏移设定距离的位置点作为行进位置点,其中,所述第一预设方向为远离侧边障碍单元的方向和远离前方障碍单元的方向的合方向;如果否,则将当前栅格单元所对应的预行进位置点在第二预设方向偏移设定距离的位置点作为行进位置点,其中,所述第二预设方向为在预行进路径方向上所述路径参考单元到下一个栅格单元的方向与远离前方障碍单元的方向的合方向。由于现有的路径搜索算法得出预行进路径,不会将机器人导航进入一个三面都是障碍单元的位置,所以,只要考虑在垂直预行进路径方向的一侧是否有障碍单元即可,不需要考虑另一侧是否有障碍单元,以此简化机器人的数据处理资源,提高控制效率。同时,控制机器人按第一预设方向或者第二预设方向偏移行进,可以避免转弯时容易碰到障碍物的问题,提高行进效率。
其中,所述预设距离为可设置的值,可以根据具体的需求进行相应地设置,优选的,可以设置为两个栅格单元的长度。所述设定距离也是一个可以设置的值,可以根据具体的需求进行相应地设置,优选的,可以设置为一个栅格单元的四分之一长度或者一半的长度。
如图19所示,图中的一个方格表示一个栅格单元,一个小圆圈则表示一个位置点,由于本实施例中,机器人的机身宽度为两个栅格单元的长度之和,所以,机器人按预行进路径(即虚线所示路线)从A点开始行进时,其占据虚线当中的栅格和虚线两侧的栅格的各一半,即机器人与右侧的障碍单元只有半个栅格单元的距离。当前位置点为A点,清扫起始点为B点,从A点至B点的虚线所连接的栅格单元所对应的预行进位置点1至26所构成的路径为根据路径搜索算法(A*算法)所搜索出来的预行进路径。由于该预行进路径比较接近障碍单元(图中标有X的栅格单元),所以,如果机器人按照此路径行进,容易碰到障碍物,从而影响行进效率。图中带箭头的线路表示按本发明所述的方法所确定的行进路径。具体如下:将A点所在的栅格单元作为当前栅格单元,确定在预行进路径方向上A点所在的栅格单元的下一个栅格单元(即位于当前栅格单元上方且与当前栅格单元相邻的栅格单元,后续简称为第1栅格)为路径参考单元,由于第1栅格的右侧第二个栅格单元为障碍单元,且左侧的预设距离(即两个栅格单元距离的长度)内没有障碍单元,所以,将第1栅格对应的预行进位置点在远离障碍单元的方向偏移设定距离的位置点作为行进位置点(即将第1栅格对应的预行进位置点向第1栅格左侧偏移半个栅格单元的距离的位置点作为行进位置点)。接着将第1栅格作为当前栅格单元,由于第2栅格(即位于第1栅格上方且与第1栅格相邻的栅格单元)的右侧的第二个栅格单元为障碍单元,且左侧的两个栅格单元距离的长度内没有障碍单元,所以,将第2栅格对应的预行进位置点在远离障碍单元的方向偏移设定距离的位置点作为行进位置点(即将第2栅格对应的预行进位置点向第2栅格左侧偏移半个栅格单元的距离的位置点作为行进位置点)。同理,第3至8栅格所对应的预行进位置点向左侧偏移半个栅格单元的长度。到第9栅格时,由于第9栅格的左右两侧的预设距离内都没有障碍单元,所以,将第9栅格所对应的所述预行进位置点作为行进位置点。紧接着,由于第10栅格的前方的第二个栅格单元为障碍单元,左侧的第二个栅格单元也是障碍单元,所以,将第10栅格所对应的预行进位置点在远离侧边障碍单元的方向(即水平向右的方向)和远离前方障碍单元的方向(即竖直向下的方向)的合方向(即斜向右下角的方向)偏移半个栅格单元的距离的位置点作为行进位置点。继续按预行进路径的方向,由于第11栅格的左侧的第二个栅格单元为障碍单元,右侧没有障碍单元,所以将第11栅格对应的预行进位置点向第11栅格右侧偏移半个栅格单元的距离的位置点作为行进位置点。由于第12栅格左右两侧的第二个栅格单元都为障碍单元,所以,将第12栅格对应的预行进位置点作为行进位置点,同理,将第13至15栅格对应的预行进位置点作为行进位置点。到第16栅格时,由于第16栅格左右两侧的预设距离内都没有障碍单元,所以,将第16栅格对应的预行进位置点作为行进位置点,同理,第17和18栅格对应的预行进位置点作为行进位置点。到第19栅格时,由于第19栅格的左侧第二个栅格单元为障碍单元,右侧没有障碍单元,所以将第19栅格对应的预行进位置点向第19栅格右侧偏移半个栅格单元的距离的位置点作为行进位置点,同理,将第20至23栅格对应的预行进位置点向右侧偏移半个栅格单元的距离的位置点作为行进位置点。由于第24至26栅格左右两侧的预设距离内都没有障碍单元,所以,将第24至26栅格对应的预行进位置点作为行进位置点。由于B点所在的栅格单元为目标栅格单元,所以,结束判断。将从A点至B点的由行进位置点所构成的线路作为行进路径,即图中带箭头所指示的线路。所述行进路径是在原搜索路径的基础上,根据不同的路径情况进行相应的调整,能够有效地避免碰撞到障碍物,从而保证了机器人行进的高效性,同时,避免机器人经常碰撞到障碍物所带来的行进误差,提高导航效率。
优选的,所述预行进位置点的坐标值的确定,包括如下步骤:确定所述行进路径上的栅格单元的坐标值为(X,Y);确定栅格单元的长度为h,宽度为w;确定所述预行进位置点的坐标值为(x,y),则x=X*h+h/2,y=Y*w+w/2。由于机器人在搜索栅格地图时,判断障碍物是以栅格单元的形式进行,而实际行进时是按照位置点的形式行进,所以,搜索栅格地图得出的栅格路径需要换算成具体的预行进位置点,才能最终得出机器人的预行进路径。假设以A点所在栅格单元的左侧相邻的栅格单元的坐标值为(0,0),即(0,0)栅格单元的左下角的点为原点建立的坐标系中,A点所在的栅格单元的坐标值为(1,0),第1栅格的坐标值为(1,1),栅格单元的长度和宽度相等且都为0.2m,则第1栅格的坐标值为(0.3m,0.3m),即第1栅格的预行进位置点的位置为X轴正方向0.3m和Y轴正方向0.3m的交点处,即第1栅格的中心点。第2栅格的坐标为(1,2),则第2栅格的坐标值为(0.3,0.5),即第2栅格的预行进位置点的位置为X轴正方向0.3m和Y轴正方向0.5m的交点处,即第2栅格的中心点。通过把搜索出来的栅格路径转换成具体的预行进位置点所构成的预行进路径,使机器人可以按照具有具体坐标的位置点行进,提高机器人行进的准确性。同时,把预行进位置点设置在栅格单元的中心,更有利于后续规划机器人的行进路径。其中,搜索栅格单元的长度和宽度可以根据不同的情况设置为不同的值,也可以设置为不相等的两个值。
优选的,所述确定由行进位置点连接的从当前位置点到清扫起始点的路径为行进路径的步骤之后,还包括如下步骤:基于所述行进路径,确定当前行进位置点、下一个行进位置点和再下一个行进位置点;确定从所述当前位置点到所述下一个行进位置点的方向作为当前方向;确定从所述下一个行进位置点到所述再下一个行进位置点的方向作为待变方向;从所述当前位置点朝所述下一个行进位置点行进预定距离时,判断所述待变方向是否与所述当前方向相同;如果是,则保持当前方向和当前速度继续行进;如果否,则调整当前方向和当前速度,使从所述当前位置点行进至预定距离时的位置点到所述再下一个行进位置点之间的行进轨迹为弧形轨迹;以此类推,至所述再下一个行进位置点为所述清扫起始点;将调整后的行进路径作为最优行进路径。
其中,所述调整当前方向和当前速度,使从所述当前位置点行进至预定距离时的位置点到所述再下一个行进位置点之间的行进轨迹为弧形轨迹,包括如下步骤:基于当前速度,预估下一时段行进的预计行进距离;判断所述预计行进距离是否大于从所述当前位置点朝所述下一个行进位置点行进预定距离后距所述下一个行进位置点的剩余距离;如果否,则继续基于当前速度行进;如果是,则降低当前速度,并调整内轮和外轮的速度差,使行进方向从所述当前方向逐渐转到与所述待变方向相同的方向。
其中,所述调整内轮和外轮的速度差,使行进方向从所述当前方向逐渐转到与所述待变方向相同的方向,包括如下步骤:判断所述待变方向与所述当前方向之间的角度是否小于或等于45°;如果是,则使所述内轮速度为所述外轮速度的四分之一;如果否,则使所述内轮速度为所述外轮速度的六分之一;计算未来一段时间内,内轮和外轮的预计行进距离差,所述预计行进距离差为所述外轮和所述内轮的速度差的绝对值与所述未来一段时间的乘积;计算得出所述运动角度预计变量,所述运动角度预计变量为所述预计行进距离差除以所述内轮和所述外轮之间的宽度;判断所述行进方向与所述待变方向之间的角度是否小于所述运动角度预计变量;如果否,则保持当前的外轮速度和内轮速度;如果是,则调整外轮速度或者内轮速度,使外轮速度和内轮速度相同。
如图19所示,从A点开始沿箭头指示路线方向开始算,A点的圆圈不算,以第一个圆圈表示的位置点为第1行进位置点,第二个圆圈表示的位置点为第2行进位置点,以此类推,至B点下方的圆圈表示的位置点为第26行进位置点。从当前位置点A点到第1行进位置点的方向(即当前方向)为112.5°(在进行角度的计算时,是以当前位置点为原点,水平向右的方向为X轴正方向,竖直向上的方向为Y轴正方向,A点到第1行进位置点方向的线段与X轴正方向的夹角即为112.5°,同理,可进行其它方向角度的计算)。从第1行进位置点到第2行进位置点的方向(即待变方向)为90°。从A点朝第1行进位置点行进半个栅格单元的距离时,判断待变方向和当前方向不同,则计算下一个时段T1内机器人的预计行进距离为V*T1且该距离大于从A点到第1行进位置点的距离的一半,所以,机器人降低当前速度V的一半。然后判断得出待变方向与当前方向之间的角度小于45°,故需要调整内轮和外轮的速度差,使所述内轮速度V1为所述外轮速度V2的四分之一,此时,机器人开始按弧形轨迹转弯。在转弯的过程中,计算未来时间段T2内,机器人的运动角度预变量为△θ=(|V1-V2|*T2)/W,其中W为机器人的内轮和外轮之间的宽度。由于转弯过程中,行进方向和待变方向之间的角度越来越小,当所述行进方向与所述待变方向之间的角度小于所述运动角度预变量△θ时,调整外轮速度或者内轮速度,使外轮速度和内轮速度相同,由于调整的过程中,机器人还是会有微小的角度变化,刚好能够补偿所述行进方向与所述待变方向之间的角度,所以,最终机器人在到达第2行进位置点时,将按照待变方向向前直行。
由于第2至7行进位置点的当前方向和待变方向一致,所以,一直保持直行。当准备到达第8行进位置点时,由于第7行进位置点到第8行进位置点的方向(即当前方向)为90°,第8行进位置点到第9行进位置点(即待变方向)为67.5°,从第7行进位置点朝第8行进位置点行进半个栅格单元的距离时,判断待变方向和当前方向不同,则计算下一个时段T1内机器人的预计行进距离为V*T1且该距离大于从第7行进位置点到第8行进位置点的距离的一半,所以,机器人降低当前速度V的一半。然后判断得出待变方向与当前方向之间的角度等于22.5°,小于45°,故需要调整内轮和外轮的速度差,使所述内轮速度V1为所述外轮速度V2的四分之一,如果待变方向与当前方向之间的角度大于45°,则需要使所述内轮速度V1为所述外轮速度V2的六分之一,这样可以更快的调整角度变化量,直到之间的角度小于或等于45°,才使所述内轮速度V1为所述外轮速度V2的四分之一,以此减缓角度变化量,为后续的精细调整作准备。此时,机器人已经开始按弧形轨迹转弯。在转弯的过程中,计算未来时间段T2内,机器人的运动角度预变量为△θ=(|V1-V2|*T2)/W,其中W为所述内轮和所述外轮之间的宽度。由于转弯过程中,行进方向和待变方向之间的角度越来越小,当所述行进方向与所述待变方向之间的角度小于所述运动角度预变量△θ时,调整外轮速度或者内轮速度,使外轮速度和内轮速度相同,由于调整的过程中,机器人还是会有微小的角度变化,刚好能够补偿所述行进方向与所述待变方向之间的角度,所以,最终机器人将按照待变方向(即第8行进位置点到第9行进位置点的方向)向前直行。
同理,在第9行进位置点到第10行进位置点,第11行进位置点到第12位置点,第16行进位置点到第17行进位置点到第18行进位置点等这些当前方向与待变方向不同的需要转弯的路径时,按上述方法,通过调整内轮速度和外轮速度,使机器人在这些转弯的路径都以弧形轨迹的形式行进。最后,将按弧形轨迹调整后的行进路径作为最优行进路径。
如图20所示,机器人在图20中带箭头的路径中的每个转弯处都采用弧形轨迹的形式,可以使得机器人的行进路径更平滑、更顺畅,避免产生卡顿的现象,提高了机器人的行进效率。
其中,上述时间段T1和T2为可设置的值,本实施例中设置为10ms的倍数,具体为30ms。
如图18所示为一个栅格区域的地图,所示栅格区域的预定长度为4m,预定宽度为3m,当然,所述预定长度和预定宽度也可以根据实际情况设置为其它值。机器人对该栅格区域进行常规清扫后,确定已清扫区和漏清扫区的入口边界,再对漏清扫区进行补扫。该栅格区域的补扫结束后,机器人又行进至下一个栅格区域,进行常规清扫和补扫,至所有的栅格区域的常规清扫和补扫结束后,形成全局区域所对应的地图。同样的,由各个栅格区域所组成的全局区域,也存在已清扫区和漏清扫区,机器人按照本发明所述的补扫方法,对全局区域中的漏清扫区进行补扫。
优选的,在步骤S3中,所述基于全局区域地图,完成全局沿边清扫,包括如下步骤:基于全局区域地图,确定离当前位置点最近的全局区域地图边界点作为沿边起点;从所述当前位置点行进至所述沿边起点,并开始沿边清扫;从所述沿边起点开始,判断机器人所行进的路径长度是否大于全局区域地图的边界周长,以及判断机器人所转动的角度是否大于360°,以及判断所述机器人是否在所述沿边起点的预设范围内;如果有一个判断结果为否,则继续沿边清扫;如果全部判断结果为是,则完成并结束全局沿边清扫。
经过上述的常规清扫和补扫后,一般情况下只剩下一些边边角角的地方没有扫到,此时,采用全局沿边清扫,就可以有效地对这些地方进行清扫。但是,在全局沿边清扫的过程中,由于地图的复杂性以及机器人行进误差等原因,会导致机器人无法准确地判断是否已经完成了全局沿边。所以,本发明通过机器人行进的路径长度、转动的角度和与沿边起点的位置三个条件来判断是否完成了全局沿边,可以准确地判断全局沿边是否已经完成,避免机器人无休止地沿边所带来的重复浪费和沿边不全所带来的清扫不全面等问题。
优选的,在所述沿边清扫的过程中,如果检测到连续M个栅格单元为未清扫单元,则判断有新区域,并以弧角弓字型的轨迹形式对所述新区域进行清扫,在完成所述新区域的清扫后,继续进行全局沿边清扫。其中,所述M取大于或等于4的自然数。机器人在清扫过程中,由于地图误差或行进误差等原因,会导致一些入口边界比较短的区域没有被发现,所以,在全局沿边过程中,机器人一边沿边清扫一边检测,当检测到有未清扫单元,且这些未清扫单元的数量达到4个时,则判断有一个新区域没有清扫,接着,机器人就以弧角弓字型的轨迹形式对所述新区域进行清扫,同样的,按上述常规清扫和补扫方式清扫完新区域后,继续进行全局沿边清扫,在满足上述三个完成全局沿边的判断条件后,全局沿边结束。机器人按步骤S4返回原点进行充电或者待机。
本发明所述芯片,用于存储程序,所述程序用于控制机器人执行上述的机器人清扫路径的规划方法。通过先按照逐个栅格区域清扫方式完成全局区域清扫后,基于清扫过程记录的信息构建全局区域地图,这样可以避免现有的机器人需要先构图再清扫的低效问题,直接一边清扫一边构图,可以提高机器人的清扫效率。然后再根据全局区域地图查找漏清扫区,并完成所述漏清扫区的清扫,这样可以避免全局区域清扫时所带来的漏扫问题,同时,通过利用全局区域清扫时构建的全局区域地图,可以快速查找到漏清扫区,提高了补扫这些漏清扫区的效率。最后再基于全局区域地图完成全局沿边清扫,这样可以将一些边边角角的地方全部清扫,提高机器人清扫的覆盖率,保证清扫效果。所述规划方法是一种模拟人的思维仿生算法技术,更加智能的完成路径规划和清扫,不仅提高了机器人的清扫效率,还能提高机器人清扫的覆盖率,保证清扫效果。
以上实施例仅为充分公开而非限制本发明,凡基于本发明的创作主旨、未经创造性劳动的等效技术特征的替换,应当视为本申请揭露的范围。
Claims (31)
1.一种机器人清扫路径的规划方法,其特征在于,包括如下步骤:
基于栅格地图,从原点出发,按照逐个栅格区域清扫方式,完成全局区域清扫,并构建全局区域地图;
搜索所述全局区域地图,查找漏清扫区,并完成所述漏清扫区的清扫;
基于全局区域地图,完成全局沿边清扫;
回到原点;
其中,所述按照逐个栅格区域清扫方式,包括如下步骤:从原点出发并沿第一方向向前直行,清扫位于所述第一方向一侧的第一栅格区域,并依次清扫与所述第一栅格区域并排的栅格区域,然后再回到与所述第一栅格区域并列的第二栅格区域,依次清扫所述第二栅格区域和与所述第二栅格区域并排的栅格区域;依次类推,至沿所述第一方向的与所述第一栅格区域并列的栅格区域,以及与所述并列的栅格区域并排的栅格区域清扫完毕;返回原点;从原点出发并沿第一方向向前直行,清扫位于所述第一方向另一侧的第三栅格区域,并依次清扫与所述第三栅格区域并排的栅格区域,然后再回到与所述第三栅格区域并列的第四栅格区域,依次清扫所述第四栅格区域和与所述第四栅格区域并排的栅格区域;依次类推,至沿所述第一方向的与所述第三栅格区域并列的栅格区域,以及与所述并列的栅格区域并排的栅格区域清扫完毕;
或者,所述按照逐个栅格区域清扫方式,包括如下步骤:从原点出发并沿第一方向向前直行,清扫位于所述第一方向一侧的第一栅格区域,并依次清扫与所述第一栅格区域并排的栅格区域;返回原点;从原点出发并沿与所述第一方向相反的第二方向向前直行,清扫位于所述第一栅格区域同一侧的第三栅格区域,并依次清扫与所述第三栅格区域并排的栅格区域;返回原点;从原点出发并沿第一方向向前直行,清扫位于所述第一方向另一侧的第二栅格区域,并依次清扫与所述第二栅格区域并排的栅格区域;返回原点;从原点出发并沿与所述第一方向相反的第二方向向前直行,清扫位于所述第二栅格区域同一侧的第四栅格区域,并依次清扫与所述第四栅格区域并排的栅格区域;
其中,所述栅格区域为具有预定长度和预定宽度的方形区域。
2.根据权利要求1所述的规划方法,其特征在于,所述从原点出发,包括:
所述原点为充电座所在的位置时,机器人从充电座上下来,转向180°后,向前直行;
所述原点为充电座以外的位置时,机器人直接向前直行。
3.根据权利要求1所述的规划方法,其特征在于,所述并排的栅格区域的数量为N个,所述N为大于1且小于10的自然数。
4.根据权利要求1所述的规划方法,其特征在于,所述机器人清扫栅格区域时,都是以弧角弓字型的轨迹形式进行清扫,所述以弧角弓字型的轨迹形式进行清扫,包括如下步骤:
基于第一方向,按第一直线移动路径行进至第一转弯点;
从所述第一转弯点按弧形轨迹掉头行进至相邻的第二直线移动路径的起点;
基于与所述第一方向相反的第二方向,按所述第二直线移动路径行进至第二转弯点;
再从所述第二转弯点按弧形轨迹掉头行进至相邻的第三直线移动路径的起点;
基于所述第一方向,按所述第三直线移动路径行进至第三转弯点;
从所述第三转弯点按弧形轨迹掉头行进至相邻的第四直线移动路径的起点;
基于与所述第一方向相反的第二方向,按所述第四直线移动路径行进至第四转弯点;
依此类推;
其中,相邻的直线移动路径相互平行且间隔相等的预设宽度。
5.根据权利要求4所述的规划方法,其特征在于,所述按弧形轨迹掉头行进,包括如下步骤:
获取机器人的陀螺仪检测到的当前角度值;
计算所述当前角度值与目标角度值的角度差值;
计算机器人的内轮和外轮在未来时间段内的运动角度预变量;
判断所述运动角度预变量是否小于所述角度差值;
如是,则保持当前的运动角度变化量;
如否,则调整当前的运动角度变化量,使机器人行进至相邻的直线移动路径的起点时,能按所述直线移动路径行进;
其中,所述内轮为按弧形轨迹掉头过程中,行进速度相对较慢的驱动轮;所述外轮为按弧形轨迹掉头过程中,行进速度相对较快的驱动轮。
6.根据权利要求5所述的规划方法,其特征在于,所述目标角度值为机器人行进至所述直线移动路径的起点时的角度值。
7.根据权利要求5所述的规划方法,其特征在于,所述计算机器人的内轮和外轮在未来时间段内的运动角度预变量,包括如下步骤:
获取内轮当前行进的内轮速度;
获取外轮当前行进的外轮速度;
计算所述外轮速度和所述内轮速度的速度差的绝对值;
计算未来时间段内,内轮和外轮的预行进距离差,所述预行进距离差为所述速度差的绝对值与所述未来时间段的乘积;
计算得出所述运动角度预变量,所述运动角度预变量为所述预行进距离差除以所述内轮和所述外轮之间的宽度。
8.根据权利要求5所述的规划方法,其特征在于,所述当前的运动角度变化量为单位时间内,所述内轮和所述外轮的行进距离差与所述内轮和所述外轮之间的宽度的比值,其中,所述内轮和所述外轮的行进距离差为当前行进的内轮速度和当前行进的外轮速度的速度差的绝对值与所述单位时间的乘积。
9.根据权利要求5所述的规划方法,其特征在于,所述调整当前的运动角度变化量,包括如下步骤:
获取当前位置点与所述起点在直线移动路径的宽度方向上的直线距离;
计算所述直线距离与所述预设宽度的距离比值;
根据所述距离比值调整所述内轮速度,使所述内轮速度为当前的内轮速度与所述距离比值的乘积再乘以一个常量;
其中,所述常量通过实验测试结果得出。
10.根据权利要求1所述的规划方法,其特征在于,所述按照逐个栅格区域清扫,在清扫过程中检测到障碍物时,包括如下处理步骤:
基于相互平行且垂直间隔为预设宽度的直线路径作为机器人的直线移动路径,相邻直线移动路径上,机器人的行进方向相反;
基于机器人在当前直线移动路径上检测到障碍物时的位置点作为当前障碍点;
基于当前障碍点所在的当前直线移动路径的上一条直线移动路径的起点作为参考起始点;
判断在当前直线移动路径的行进方向上,所述参考起始点垂直投影在所述当前直线移动路径所在的直线上的投影点是否位于所述当前障碍点的后方;
如是,则掉头,按下一条直线移动路径行进;
如否,则判断所述投影点与所述当前障碍点之间的距离是否小于预设掉头距离;
如是,则掉头,按下一条直线移动路径行进;
如否,则沿障碍物的边缘行进。
11.根据权利要求10所述的规划方法,其特征在于,所述沿障碍物的边缘行进,包括:
沿障碍物的前边缘行进,并在回到当前直线移动路径后继续按当前直线移动路径行进;其中,所述前边缘为障碍物靠近上一条直线移动路径的那一侧的边缘。
12.根据权利要求10所述的规划方法,其特征在于:
如果当前障碍点所在的直线移动路径为第一条直线移动路径,则所述第一条直线移动路径的起点作为参考起始点。
13.根据权利要求10所述的规划方法,其特征在于:
如果当前直线移动路径的上一条直线移动路径包括多段分直线移动路径,则所述上一条直线移动路径沿当前行进方向的最后一段分直线移动路径的起点作为参考起始点。
14.根据权利要求10至13任一项所述的规划方法,其特征在于:
所述机器人在掉头过程中,检测到障碍物,则直接沿障碍物的边缘行进,当行进的宽度未超过预设宽度且已绕过障碍物的,则继续行进以达到所述预设宽度后,按掉头后的直线移动路径行进;当行进的宽度已达到预设宽度且没有绕过障碍物的,则在达到所述预设宽度时,按掉头后的直线移动路径行进。
15.根据权利要求14所述的规划方法,其特征在于:
所述行进的宽度为沿垂直所述直线移动路径的方向,机器人行进的直线距离。
16.根据权利要求1所述的规划方法,其特征在于,所述按照逐个栅格区域清扫方式,包括如下步骤:
从当前栅格区域的区域清扫起点开始,按弧角弓字型的轨迹形式清扫至当前栅格区域的区域清扫终点;
基于当前栅格区域的栅格区域地图,确定已清扫区和漏清扫区的入口边界;
基于每条所述入口边界的两端的端点分别作为两个入口参考点;
根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点;
根据优先清扫条件确定其中一个最佳入口点为优先清扫区域的清扫起始点;
从当前位置点行进至所述清扫起始点,按预设清扫条件清扫所述优先清扫区域;
清扫完毕后,再根据入口选择条件和优先清扫条件确定下一个最佳入口点为下一个优先清扫区域的清扫起始点,以此类推,至所有满足漏清扫区清扫条件的漏清扫区都清扫完毕为止;
行进至下一个栅格区域的区域清扫起点。
17.根据权利要求1所述的规划方法,其特征在于,所述搜索所述全局区域地图,查找漏清扫区,并完成所述漏清扫区的清扫,包括如下步骤:
基于所述全局区域地图,确定已清扫区和漏清扫区的入口边界;
基于每条所述入口边界的两端的端点分别作为两个入口参考点;
根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点;
根据优先清扫条件确定其中一个最佳入口点为优先清扫区域的清扫起始点;
从当前位置点行进至所述清扫起始点,按预设清扫条件清扫所述优先清扫区域;
清扫完毕后,再根据入口选择条件和优先清扫条件确定下一个最佳入口点为下一个优先清扫区域的清扫起始点,以此类推,至所有满足漏清扫区清扫条件的漏清扫区都清扫完毕为止。
18.根据权利要求16或17所述的规划方法,其特征在于,
所述栅格区域地图或者全局区域地图为机器人一边清扫一边记录所行进的路径所形成的平面地图,构建所述平面地图包括如下步骤:
基于栅格单元的形式,把行进过的栅格单元标示为已清扫单元,把检测到障碍物的栅格单元标示为障碍单元;把未行进过的单元标示为未清扫单元;
基于所述已清扫单元、所述障碍单元和所述未清扫单元,构建所述平面地图;
其中,所述全局区域地图为由所有所述栅格区域地图所组成的平面地图。
19.根据权利要求18所述的规划方法,其特征在于,所述根据入口选择条件在每条所述入口边界的两个所述入口参考点中确定一个最佳入口点,包括如下步骤:
以当前位置点作为坐标原点建立XY轴坐标系;
分析同一条所述入口边界的两个所述入口参考点的坐标位置;
当两个所述入口参考点的X轴值相同,则选择与当前位置点距离最近的所述入口参考点作为最佳入口点;
当两个所述入口参考点的Y轴值相同,则选择与当前位置点距离最近的所述入口参考点作为最佳入口点;
当两个所述入口参考点的X轴值和Y轴值都不相同,则判断漏清扫区与已清扫区的位置关系;如果漏清扫区在已清扫区的左边,则选择X轴值大的所述入口参考点作为最佳入口点;如果漏清扫区在已清扫区的右边,则选择X轴值小的所述入口参考点作为最佳入口点。
20.根据权利要求18所述的方法,其特征在于,所述根据优先清扫条件确定其中一个最佳入口点为优先清扫区的清扫起始点,包括如下步骤:
在一个漏清扫区中选择与一个与当前位置点距离最近的所述最佳入口点作为优先清扫参考点;
选择与当前位置点距离最近的两个所述优先清扫参考点;
判断当前位置点分别到两个所述优先清扫参考点的距离差值是否小于预设距离值;
如是,则选择长度较长的所述入口边界所对应的所述优先清扫参考点作为清扫起始点;
如否,则选择与当前位置点的距离最近的那一个所述优先清扫参考点作为清扫起始点。
21.根据权利要求18所述的方法,其特征在于,所述按预设清扫条件清扫所述优先清扫区,包括如下步骤:
判断所述清扫起始点所在的所述入口边界的两个端点的位置关系;
当两个端点的X轴值相同时,则从清扫起始点开始,直接朝所述入口边界的另一个端点行进,按弧角弓字型的轨迹形式清扫漏清扫区;
当两个端点的Y轴值相同时;如果漏清扫区位于所述入口边界的上方,则从清扫起始点开始,沿Y轴正方向行进,按弧角弓字型的轨迹形式清扫漏清扫区;如果漏清扫区位于所述入口边界的下方,则从清扫起始点开始,沿Y轴负方向行进,按弧角弓字型的轨迹形式清扫漏清扫区;
当两个端点的X轴值和Y轴值都不相同时,则从清扫起始点开始,沿垂直另一个端点所在的X轴的方向行进,按弧角弓字型的轨迹形式清扫漏清扫区。
22.根据权利要求18所述的方法,其特征在于,判断是否满足所述漏清扫区清扫条件,包括如下步骤:
判断一个所述漏清扫区的所有所述入口边界的长度是否都小于预设入口长度;
如果是,则所述入口边界所对应的所述漏清扫区不满足所述漏清扫区清扫条件;
如果否,则所述入口边界所对应的所述漏清扫区满足所述漏清扫区清扫条件。
23.根据权利要求18所述的方法,其特征在于,所述从当前位置点行进至所述清扫起始点,包括如下步骤:
搜索栅格地图,确定由预行进位置点连接的从当前位置点到所述清扫起始点的路径为预行进路径;
基于当前位置点所对应的当前栅格单元,确定在预行进路径方向上的下一个栅格单元为路径参考单元;
判断所述路径参考单元在垂直预行进路径方向的任意一侧的预设距离内的栅格单元是否为障碍单元;
如果否,则将所述路径参考单元所对应的所述预行进位置点作为行进位置点;
如果是,则判断另一侧的在预设距离内的栅格单元是否为障碍单元;
如果否,则将与所述路径参考单元所对应的所述预行进位置点在远离障碍单元的方向偏移设定距离的位置点作为行进位置点;
如果是,则将所述路径参考单元所对应的所述预行进位置点作为行进位置点;
接着,以再下一个栅格单元作为路径参考单元进行判断,以此类推,至所判断的栅格单元为所述清扫起始点所在的栅格单元,则结束判断;
确定由行进位置点连接的从当前位置点到清扫起始点的路径为行进路径。
24.根据权利要求23所述的方法,其特征在于,所述从当前位置点行进至所述清扫起始点,还包括如下步骤:
如果所述路径参考单元的前方的预设距离内的栅格单元为障碍单元,则判断在垂直预行进路径方向的任意一侧的预设距离内的栅格单元是否为障碍单元;
如果是,则将所述路径参考单元所对应的预行进位置点在第一预设方向偏移设定距离的位置点作为行进位置点,其中,所述第一预设方向为远离侧边障碍单元的方向和远离前方障碍单元的方向的合方向;
如果否,则将当前栅格单元所对应的预行进位置点在第二预设方向偏移设定距离的位置点作为行进位置点,其中,所述第二预设方向为在预行进路径方向上所述路径参考单元到下一个栅格单元的方向与远离前方障碍单元的方向的合方向。
25.根据权利要求23所述的方法,其特征在于,所述预行进位置点的坐标值的确定,包括如下步骤:
确定所述行进路径上的栅格单元的坐标值为(X,Y);
确定栅格单元的长度为h,宽度为w;
确定所述预行进位置点的坐标值为(x,y),则x=X*h+h/2,y=Y*w+w/2。
26.根据权利要求25所述的方法,其特征在于,所述确定由行进位置点连接的从当前位置点到清扫起始点的路径为行进路径的步骤之后,还包括如下步骤:
基于所述行进路径,确定当前行进位置点、下一个行进位置点和再下一个行进位置点;
确定从所述当前位置点到所述下一个行进位置点的方向作为当前方向;
确定从所述下一个行进位置点到所述再下一个行进位置点的方向作为待变方向;
从所述当前位置点朝所述下一个行进位置点行进预定距离时,判断所述待变方向是否与所述当前方向相同;
如果是,则保持当前方向和当前速度继续行进;
如果否,则调整当前方向和当前速度,使从所述当前位置点行进至预定距离时的位置点到所述再下一个行进位置点之间的行进轨迹为弧形轨迹;
以此类推,至所述再下一个行进位置点为所述清扫起始点;
将调整后的行进路径作为最优行进路径。
27.根据权利要求26所述的方法,其特征在于,所述调整当前方向和当前速度,使从所述当前位置点行进至预定距离时的位置点到所述再下一个行进位置点之间的行进轨迹为弧形轨迹,包括如下步骤:
基于当前速度,预估下一时段行进的预计行进距离;
判断所述预计行进距离是否大于从所述当前位置点朝所述下一个行进位置点行进预定距离后距所述下一个行进位置点的剩余距离;
如果否,则继续基于当前速度行进;
如果是,则降低当前速度,并调整内轮和外轮的速度差,使行进方向从所述当前方向逐渐转到与所述待变方向相同的方向。
28.根据权利要求27所述的方法,其特征在于,所述调整内轮和外轮的速度差,使行进方向从所述当前方向逐渐转到与所述待变方向相同的方向,包括如下步骤:
判断所述待变方向与所述当前方向之间的角度是否小于或等于45°;
如果是,则使所述内轮速度为所述外轮速度的四分之一;
如果否,则使所述内轮速度为所述外轮速度的六分之一;
计算未来一段时间内,内轮和外轮的预计行进距离差,所述预计行进距离差为所述外轮和所述内轮的速度差的绝对值与所述未来一段时间的乘积;
计算得出运动角度预计变量,所述运动角度预计变量为所述预计行进距离差除以所述内轮和所述外轮之间的宽度;
判断所述行进方向与所述待变方向之间的角度是否小于所述运动角度预计变量;
如果否,则保持当前的外轮速度和内轮速度;
如果是,则调整外轮速度或者内轮速度,使外轮速度和内轮速度相同。
29.根据权利要求1所述的规划方法,其特征在于,所述基于全局区域地图,完成全局沿边清扫,包括如下步骤:
基于全局区域地图,确定离当前位置点最近的全局区域地图边界点作为沿边起点;
从所述当前位置点行进至所述沿边起点,并开始沿边清扫;
从所述沿边起点开始,判断机器人所行进的路径长度是否大于全局区域地图的边界周长,以及判断机器人所转动的角度是否大于360°,以及判断所述机器人是否在所述沿边起点的预设范围内;
如果有一个判断结果为否,则继续沿边清扫;
如果全部判断结果为是,则完成并结束全局沿边清扫。
30.根据权利要求29所述的规划方法,其特征在于,在所述沿边清扫的过程中,如果检测到连续M个栅格单元为未清扫单元,则判断有新区域,并以弧角弓字型的轨迹形式对所述新区域进行清扫,在完成所述新区域的清扫后,继续进行全局沿边清扫。
31.一种芯片,用于存储程序,其特征在于,所述程序用于控制机器人执行权利要求1至30任一项所述的机器人清扫路径的规划方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710771459.5A CN107368079B (zh) | 2017-08-31 | 2017-08-31 | 机器人清扫路径的规划方法及芯片 |
US15/979,456 US10882187B2 (en) | 2017-08-31 | 2018-05-14 | Method of planning a cleaning route for a cleaning robot and a chip for achieving the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710771459.5A CN107368079B (zh) | 2017-08-31 | 2017-08-31 | 机器人清扫路径的规划方法及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368079A CN107368079A (zh) | 2017-11-21 |
CN107368079B true CN107368079B (zh) | 2019-09-06 |
Family
ID=60310734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710771459.5A Active CN107368079B (zh) | 2017-08-31 | 2017-08-31 | 机器人清扫路径的规划方法及芯片 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10882187B2 (zh) |
CN (1) | CN107368079B (zh) |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11274929B1 (en) * | 2017-10-17 | 2022-03-15 | AI Incorporated | Method for constructing a map while performing work |
CN107885213A (zh) * | 2017-11-22 | 2018-04-06 | 广东艾可里宁机器人智能装备有限公司 | 一种扫地机器人室内导航***及方法 |
CN107943036B (zh) * | 2017-11-28 | 2019-03-19 | 深圳市杉川机器人有限公司 | 清扫区域选择方法及装置 |
CN107807650A (zh) * | 2017-11-29 | 2018-03-16 | 莱克电气股份有限公司 | 一种机器人的运动控制方法、装置及设备 |
CN107831773A (zh) * | 2017-11-30 | 2018-03-23 | 深圳市沃特沃德股份有限公司 | 扫地机器人全覆盖清扫的方法及扫地机器人 |
CN108012326B (zh) | 2017-12-07 | 2019-06-11 | 珠海市一微半导体有限公司 | 基于栅格地图的机器人监视宠物的方法及芯片 |
CN107943058A (zh) * | 2017-12-26 | 2018-04-20 | 北京面面俱到软件有限公司 | 扫地机器人及其清扫路径规划方法 |
CN109984678B (zh) * | 2017-12-29 | 2021-08-06 | 速感科技(北京)有限公司 | 一种清洁机器人及清洁机器人的清洁方法 |
CN110065062A (zh) * | 2018-01-24 | 2019-07-30 | 南京机器人研究院有限公司 | 一种多关节机器人的运动控制方法 |
CN108508449B (zh) * | 2018-02-09 | 2020-05-26 | 意诺科技有限公司 | 一种定位的方法及装置 |
CN110362099B (zh) * | 2018-03-26 | 2022-08-09 | 科沃斯机器人股份有限公司 | 机器人清扫方法、装置、机器人及存储介质 |
CN110338135B (zh) * | 2018-04-02 | 2021-09-17 | 青岛森科特智能仪器有限公司 | 鱼缸清洁机器人的避障行走方法 |
CN108356031B (zh) * | 2018-04-09 | 2023-08-04 | 朱明恺 | 图书用悬挂式自动吸尘装置 |
CN108415037B (zh) * | 2018-05-14 | 2023-06-13 | 珠海一微半导体股份有限公司 | 一种红外和视觉特征的避障装置及控制方法 |
CN108664031B (zh) * | 2018-05-31 | 2021-07-23 | 北京智行者科技有限公司 | 一种轨迹处理方法 |
CN108625324B (zh) * | 2018-06-22 | 2023-09-29 | 济南东之林智能软件有限公司 | 积尘收集装置和道路积尘采集*** |
JP7262076B2 (ja) * | 2018-06-28 | 2023-04-21 | パナソニックIpマネジメント株式会社 | 移動ロボット、及び、制御方法 |
CN108931980B (zh) * | 2018-07-26 | 2021-07-06 | 珠海市一微半导体有限公司 | 机器人内建地图的标记方法和芯片及室内清洁机器人 |
CN109358058B (zh) * | 2018-10-10 | 2021-11-19 | 中石化(洛阳)科技有限公司 | 管道状态检测***和方法 |
CN111123904B (zh) * | 2018-10-31 | 2023-07-18 | 深圳市优必选科技有限公司 | 路径跟踪方法及终端设备 |
CN109116858B (zh) * | 2018-11-07 | 2021-09-07 | 诺亚机器人科技(上海)有限公司 | 一种在指定路径上的绕障路径规划方法及*** |
CN109582015B (zh) * | 2018-11-07 | 2020-11-20 | 深圳乐动机器人有限公司 | 一种室内清扫规划的方法、装置及机器人 |
CN109298716B (zh) * | 2018-11-23 | 2022-10-14 | 珠海一微半导体股份有限公司 | 一种机器人的规划清扫方法和芯片 |
CN109240312B (zh) * | 2018-11-23 | 2020-09-15 | 珠海市一微半导体有限公司 | 一种机器人的清扫控制方法和芯片以及清洁机器人 |
CN109298718A (zh) * | 2018-11-24 | 2019-02-01 | 珠海市微半导体有限公司 | 智能机器人的补扫方法和芯片以及智能机器人 |
CN109528090A (zh) * | 2018-11-24 | 2019-03-29 | 珠海市微半导体有限公司 | 一种机器人的区域遍历方法和芯片以及清洁机器人 |
CN109363585B (zh) * | 2018-12-17 | 2021-07-02 | 深圳市银星智能科技股份有限公司 | 分区遍历方法、清扫方法及其扫地机器人 |
CN109571482B (zh) | 2019-01-02 | 2021-08-27 | 京东方科技集团股份有限公司 | 清扫机器人路径规划方法及相关***、可读存储介质 |
CN111459153B (zh) * | 2019-01-03 | 2022-09-06 | 科沃斯机器人股份有限公司 | 动态区域划分与区域通道识别方法及清洁机器人 |
EP3907575B1 (en) | 2019-01-03 | 2023-09-06 | Ecovacs Robotics Co., Ltd. | Dynamic region division and region channel identification method, and cleaning robot |
CN109871012B (zh) * | 2019-01-29 | 2022-04-12 | 宁波大叶园林设备股份有限公司 | 一种智能割草机在边界处的转向方法 |
CN111693045A (zh) * | 2019-03-13 | 2020-09-22 | 北京奇虎科技有限公司 | 扫地机的清扫路线生成方法及装置 |
CN111714031B (zh) * | 2019-03-20 | 2023-10-03 | 北京奇虎科技有限公司 | 扫地设备执行清扫的方法、装置及电子设备 |
CN109984685B (zh) * | 2019-04-11 | 2021-08-06 | 云鲸智能科技(东莞)有限公司 | 清洁控制方法、装置、清洁机器人和存储介质 |
CN110000792B (zh) * | 2019-04-26 | 2020-08-21 | 西湖大学 | 船壁清洗机器人的路径调整方法、装置、设备及存储介质 |
CN110109467B (zh) * | 2019-05-31 | 2022-11-15 | 北京极智嘉科技股份有限公司 | 机器人的转弯路径控制方法、装置、存储介质及机器人 |
CN112214011B (zh) * | 2019-07-11 | 2022-05-10 | 珠海一微半导体股份有限公司 | 自移动机器人定位充电座的***和方法 |
CN110361017B (zh) * | 2019-07-19 | 2022-02-11 | 西南科技大学 | 一种基于栅格法的扫地机器人全遍历路径规划方法 |
CN110456789A (zh) * | 2019-07-23 | 2019-11-15 | 中国矿业大学 | 一种清洁机器人的全覆盖路径规划方法 |
CN112363491B (zh) * | 2019-07-24 | 2024-04-26 | 杭州萤石软件有限公司 | 机器人掉头控制方法及装置 |
KR102281346B1 (ko) * | 2019-07-25 | 2021-07-23 | 엘지전자 주식회사 | 로봇 청소기 및 그 제어방법 |
CN110412619B (zh) * | 2019-08-12 | 2021-03-19 | 珠海市一微半导体有限公司 | 激光机器人的区域遍历方法和激光主控芯片 |
CN112395376A (zh) * | 2019-08-15 | 2021-02-23 | 纳恩博(北京)科技有限公司 | 地图的构建方法和装置、存储介质及电子装置 |
KR20190109338A (ko) * | 2019-09-06 | 2019-09-25 | 엘지전자 주식회사 | 로봇 제어 방법 및 로봇 |
CN112549072A (zh) * | 2019-09-10 | 2021-03-26 | 苏州科瓴精密机械科技有限公司 | 机器人的打滑检测方法 |
CN112568831A (zh) * | 2019-09-29 | 2021-03-30 | 深圳赤马人工智能有限公司 | 智能机器人的补扫方法、芯片以及扫地机 |
CN112817269A (zh) * | 2019-11-15 | 2021-05-18 | 深圳拓邦股份有限公司 | 一种遍历作业方法、***及机器人设备 |
CN111061263B (zh) * | 2019-11-27 | 2023-11-28 | 小狗电器互联网科技(北京)股份有限公司 | 机器人清扫绕障的方法和扫地机器人 |
CN113031509B (zh) * | 2019-12-24 | 2022-07-29 | 苏州科瓴精密机械科技有限公司 | 遍历方法、***,机器人及可读存储介质 |
CN111123932A (zh) * | 2019-12-24 | 2020-05-08 | 深圳乐动机器人有限公司 | 一种机器人清洁的方法及机器人 |
CN111150331A (zh) * | 2019-12-31 | 2020-05-15 | 江苏美的清洁电器股份有限公司 | 信息处理方法、装置、移动清洁设备及计算机可读存储介质 |
CN111603100B (zh) * | 2020-05-08 | 2022-04-22 | 美智纵横科技有限责任公司 | 扫地机清扫地图的存储和复用方法、及存储和复用装置 |
CN111543908B (zh) * | 2020-05-15 | 2021-09-07 | 汇智机器人科技(深圳)有限公司 | 一种行进路径、智能设备行进路径规划方法和装置 |
CN111638713B (zh) * | 2020-05-26 | 2023-06-09 | 珠海一微半导体股份有限公司 | 可通行区域的框定方法、面积计算方法、芯片及机器人 |
CN113729572B (zh) * | 2020-05-29 | 2022-12-06 | 宝时得科技(中国)有限公司 | 清洁机器人及其控制方法 |
CN111493756B (zh) * | 2020-05-29 | 2021-12-28 | 深圳拓邦股份有限公司 | 一种扫地机补扫方法、存储介质及扫地机 |
CN111693421B (zh) * | 2020-06-24 | 2023-02-24 | 新乡市食品药品检验所 | 一种无菌室环境检测机器人及检测方法 |
CN111949017B (zh) * | 2020-06-30 | 2024-05-07 | 珠海一微半导体股份有限公司 | 一种机器人越障的沿边路径规划方法、芯片及机器人 |
CN111897336B (zh) * | 2020-08-02 | 2024-06-18 | 珠海一微半导体股份有限公司 | 一种机器人沿边行为结束的判断方法、芯片及机器人 |
CN112155477B (zh) * | 2020-09-28 | 2021-08-24 | 珠海市一微半导体有限公司 | 一种基于栅格地图的密集障碍物点标记方法 |
CN112198876B (zh) * | 2020-09-28 | 2023-10-03 | 湖南格兰博智能科技有限责任公司 | 一种适用于扫地机器人的带地图全覆盖清扫模块化控制方法 |
CN112327841A (zh) * | 2020-10-29 | 2021-02-05 | 广东杜尼智能机器人工程技术研究中心有限公司 | 扫地机器人的最优沿边路径规划及排序方法 |
CN112504273B (zh) * | 2020-10-29 | 2022-05-24 | 广东杜尼智能机器人工程技术研究中心有限公司 | 弓形路径无缝衔接规划方法 |
DE102020129026A1 (de) * | 2020-11-04 | 2022-05-05 | Vorwerk & Co. Interholding Gesellschaft mit beschränkter Haftung | Sich selbsttätig fortbewegendes Reinigungsgerät |
CN112525198B (zh) * | 2020-11-23 | 2021-12-03 | 广州极飞科技股份有限公司 | 作业路线规划方法及相关装置 |
CN112656307B (zh) * | 2020-12-21 | 2022-09-16 | 杭州萤石软件有限公司 | 一种清洁方法及清洁机器人 |
CN112799398B (zh) * | 2020-12-25 | 2021-12-03 | 珠海一微半导体股份有限公司 | 基于寻径代价的清洁路径规划方法、芯片及清洁机器人 |
US20220282991A1 (en) * | 2021-03-02 | 2022-09-08 | Yujin Robot Co., Ltd. | Region segmentation apparatus and method for map decomposition of robot |
CN113050633B (zh) * | 2021-03-12 | 2024-05-31 | 苏州挚途科技有限公司 | 清扫轨迹的确定方法、装置和自动清扫设备 |
WO2022223023A1 (zh) * | 2021-04-22 | 2022-10-27 | 苏州宝时得电动工具有限公司 | 自移动设备、移动轨迹调整方法及计算机可读存储介质 |
CN115509215A (zh) * | 2021-06-08 | 2022-12-23 | 广东博智林机器人有限公司 | 一种基于机器人的地坪研磨路径生成方法及装置 |
CN113693503A (zh) * | 2021-06-11 | 2021-11-26 | 北京石头世纪科技股份有限公司 | 一种清扫方法、装置、扫地机及计算机可读介质 |
JP7447060B2 (ja) * | 2021-07-29 | 2024-03-11 | キヤノン株式会社 | 情報処理装置、情報処理方法、自律走行ロボット装置、及びコンピュータプログラム |
CN113741428B (zh) * | 2021-08-13 | 2024-05-07 | 长沙中联重科环境产业有限公司 | 作业装置自适应控制方法、装置、设备及专用车 |
CN113749572B (zh) * | 2021-09-23 | 2022-06-14 | 珠海一微半导体股份有限公司 | 一种机器人拖地方法和芯片及智能拖地机 |
CN113878577B (zh) * | 2021-09-28 | 2023-05-30 | 深圳市海柔创新科技有限公司 | 机器人的控制方法、机器人、控制终端和控制*** |
CN113985886B (zh) * | 2021-11-02 | 2024-01-19 | 珠海格力电器股份有限公司 | 设备作业路径规划方法、装置、计算机设备和存储介质 |
CN116098518A (zh) * | 2021-11-09 | 2023-05-12 | 美智纵横科技有限责任公司 | 清洁机器人的控制方法、装置、清洁机器人及存储介质 |
CN114137964B (zh) * | 2021-11-09 | 2024-05-31 | 长沙中联重科环境产业有限公司 | 车辆姿态及扫盘与路沿跟随控制方法、装置、设备及专用车 |
CN113934218B (zh) * | 2021-11-16 | 2022-03-25 | 杭州云象商用机器有限公司 | 一种清扫机器人路径规划方法、装置、设备及存储介质 |
CN114233063B (zh) * | 2021-12-07 | 2023-05-05 | 深圳市思傲拓科技有限公司 | 一种泳池清洁机器人及转向方法 |
CN114237242B (zh) * | 2021-12-14 | 2024-02-23 | 北京云迹科技股份有限公司 | 基于光学编码器对机器人进行控制的方法及装置 |
CN114431771B (zh) * | 2021-12-31 | 2023-03-31 | 浙江大华技术股份有限公司 | 一种扫地机器人清扫方法及相关装置 |
CN114353801B (zh) * | 2021-12-31 | 2024-02-27 | 未岚大陆(北京)科技有限公司 | 自移动设备及其导航方法 |
WO2023168707A1 (en) | 2022-03-11 | 2023-09-14 | Intelligent Cleaning Equipment Holdings Co. Ltd. | Systems and methods for tracking and scoring cleaning |
CN114847809B (zh) * | 2022-07-07 | 2022-09-20 | 深圳市云鼠科技开发有限公司 | 清洁机器人的环境探索方法、装置、清洁机器人及介质 |
CN115290068B (zh) * | 2022-07-20 | 2023-04-07 | 尚科宁家(中国)科技有限公司 | 基于地磁方向的地图摆正方法和清洁机器人 |
CN117652916A (zh) * | 2022-08-18 | 2024-03-08 | 科沃斯家用机器人有限公司 | 清洁设备的控制方法、清洁设备及存储介质 |
CN115268470B (zh) * | 2022-09-27 | 2023-08-18 | 深圳市云鼠科技开发有限公司 | 清洁机器人的障碍物位置标记方法、装置以及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101077578A (zh) * | 2007-07-03 | 2007-11-28 | 北京控制工程研究所 | 一种基于二元环境信息的移动机器人局部路径规划方法 |
CN102854878A (zh) * | 2012-09-14 | 2013-01-02 | 苏州工业园区永动工业设备有限公司 | 红外光电导向agv装置及其控制方法 |
CN103054519A (zh) * | 2011-10-18 | 2013-04-24 | 三星电子株式会社 | 机器人吸尘器以及用于控制该机器人吸尘器的方法 |
CN106054882A (zh) * | 2016-06-15 | 2016-10-26 | 深圳市金佰科创发展有限公司 | 一种机器人避障方法 |
CN106647755A (zh) * | 2016-12-21 | 2017-05-10 | 上海芮魅智能科技有限公司 | 一种智能化实时构建清扫地图的扫地机器人 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2366689T3 (es) | 2001-06-12 | 2011-10-24 | Irobot Corporation | Procedimiento y sistema para una cobertura multimodo para un robot autónomo. |
JP3841220B2 (ja) * | 2004-01-30 | 2006-11-01 | 船井電機株式会社 | 自律走行ロボットクリーナー |
KR100571834B1 (ko) * | 2004-02-27 | 2006-04-17 | 삼성전자주식회사 | 청소 로봇의 바닥 먼지 검출 방법 및 장치 |
KR100748245B1 (ko) * | 2005-12-09 | 2007-08-10 | 한국전자통신연구원 | 인공표식과 지역좌표계를 이용한 이동로봇의 환경지도 작성방법 및 이동 방법 |
KR100843085B1 (ko) * | 2006-06-20 | 2008-07-02 | 삼성전자주식회사 | 이동 로봇의 격자지도 작성 방법 및 장치와 이를 이용한영역 분리 방법 및 장치 |
JP6263970B2 (ja) * | 2013-11-11 | 2018-01-24 | 村田機械株式会社 | 自律走行台車、及び、予定走行経路データのデータ構造 |
US11576543B2 (en) * | 2014-07-18 | 2023-02-14 | Ali Ebrahimi Afrouzi | Robotic vacuum with rotating cleaning apparatus |
US9420741B2 (en) * | 2014-12-15 | 2016-08-23 | Irobot Corporation | Robot lawnmower mapping |
US10488865B2 (en) * | 2014-12-16 | 2019-11-26 | Al Incorporated | Methods and systems for robotic surface coverage |
US10788836B2 (en) * | 2016-02-29 | 2020-09-29 | AI Incorporated | Obstacle recognition method for autonomous robots |
-
2017
- 2017-08-31 CN CN201710771459.5A patent/CN107368079B/zh active Active
-
2018
- 2018-05-14 US US15/979,456 patent/US10882187B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101077578A (zh) * | 2007-07-03 | 2007-11-28 | 北京控制工程研究所 | 一种基于二元环境信息的移动机器人局部路径规划方法 |
CN103054519A (zh) * | 2011-10-18 | 2013-04-24 | 三星电子株式会社 | 机器人吸尘器以及用于控制该机器人吸尘器的方法 |
CN102854878A (zh) * | 2012-09-14 | 2013-01-02 | 苏州工业园区永动工业设备有限公司 | 红外光电导向agv装置及其控制方法 |
CN106054882A (zh) * | 2016-06-15 | 2016-10-26 | 深圳市金佰科创发展有限公司 | 一种机器人避障方法 |
CN106647755A (zh) * | 2016-12-21 | 2017-05-10 | 上海芮魅智能科技有限公司 | 一种智能化实时构建清扫地图的扫地机器人 |
Also Published As
Publication number | Publication date |
---|---|
US20190061156A1 (en) | 2019-02-28 |
US10882187B2 (en) | 2021-01-05 |
CN107368079A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368079B (zh) | 机器人清扫路径的规划方法及芯片 | |
CN108507578B (zh) | 一种机器人的导航方法 | |
CN111938519B (zh) | 一种扫拖一体机器人清洁路径规划方法 | |
CN107544517B (zh) | 智能清洁机器人的控制方法 | |
CN107390698B (zh) | 扫地机器人的补扫方法及芯片 | |
CN109363585B (zh) | 分区遍历方法、清扫方法及其扫地机器人 | |
CN106970623B (zh) | 智能清洁装置及其网格路径作业方法 | |
CN113110457B (zh) | 在室内复杂动态环境中智能机器人的自主覆盖巡检方法 | |
US11914391B2 (en) | Cleaning partition planning method for robot walking along boundry, chip and robot | |
KR101372482B1 (ko) | 이동 로봇의 경로 계획 방법 및 장치 | |
US20200174485A1 (en) | Area Partitioning Method, Partition Cleaning Method and Robot Thereof | |
CN105425801B (zh) | 基于先进路径规划技术的智能清洁机器人及其清洁方法 | |
CN109144067A (zh) | 一种智能清洁机器人及其路径规划方法 | |
WO2017088811A1 (zh) | 自移动机器人及其行走模式转换方法和行走方法 | |
CN107340768A (zh) | 一种智能机器人的路径规划方法 | |
CN107703930A (zh) | 机器人的续扫控制方法 | |
CN113189977B (zh) | 一种用于机器人的智能导航路径规划***及方法 | |
CN103431812A (zh) | 一种基于超声雷达探测的清洁机器人及其行走控制方法 | |
JP2007149088A (ja) | 移動ロボットの自己位置認識方法及び装置 | |
CN107678429B (zh) | 一种机器人的控制方法及芯片 | |
Gao et al. | Multi-mobile robot autonomous navigation system for intelligent logistics | |
CN112656307A (zh) | 一种清洁方法及清洁机器人 | |
CN112857370A (zh) | 一种基于时序信息建模的机器人无地图导航方法 | |
CN109085836A (zh) | 一种扫地机器人回指定位置最短路线的方法 | |
CN112486182B (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 | ||
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. Address before: Room 105-514, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee before: AMICRO SEMICONDUCTOR Co.,Ltd. |