CN112087573B - 环境的绘制 - Google Patents
环境的绘制 Download PDFInfo
- Publication number
- CN112087573B CN112087573B CN202010528248.0A CN202010528248A CN112087573B CN 112087573 B CN112087573 B CN 112087573B CN 202010528248 A CN202010528248 A CN 202010528248A CN 112087573 B CN112087573 B CN 112087573B
- Authority
- CN
- China
- Prior art keywords
- room
- environment
- doorway
- endpoint
- map
- 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 claims abstract description 108
- 238000013507 mapping Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 30
- 230000007613 environmental effect Effects 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 18
- 230000003993 interaction Effects 0.000 claims description 10
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 7
- 230000033001 locomotion Effects 0.000 description 54
- 238000010586 diagram Methods 0.000 description 30
- 238000004140 cleaning Methods 0.000 description 28
- 238000009877 rendering Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 230000003071 parasitic effect Effects 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003628 erosive effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 125000006850 spacer group Chemical group 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- -1 at some point Substances 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008719 thickening Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/383—Indoor data
-
- 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
- A47L11/00—Machines for cleaning floors, carpets, furniture, walls, or wall coverings
- A47L11/40—Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
- A47L11/4061—Steering means; Means for avoiding obstacles; Details related to the place where the driver is accommodated
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C15/00—Surveying instruments or accessories not provided for in groups G01C1/00 - G01C13/00
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3833—Creation or updating of map data characterised by the source of data
- G01C21/3837—Data obtained from a single source
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/02—Systems using the reflection of electromagnetic waves other than radio waves
- G01S17/06—Systems determining position data of a target
- G01S17/46—Indirect determination of position data
- G01S17/48—Active triangulation systems, i.e. using the transmission and reflection of electromagnetic waves other than radio waves
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of 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/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/0044—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
-
- 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/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/162—Segmentation; Edge detection involving graph-based methods
-
- 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/04—Automatic control of the travelling movement; Automatic obstacle detection
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S15/00—Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
- G01S15/88—Sonar systems specially adapted for specific applications
- G01S15/89—Sonar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S15/00—Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
- G01S15/88—Sonar systems specially adapted for specific applications
- G01S15/93—Sonar systems specially adapted for specific applications for anti-collision purposes
- G01S15/931—Sonar systems specially adapted for specific applications for anti-collision purposes of land vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Electromagnetism (AREA)
- Aviation & Aerospace Engineering (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Optics & Photonics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本文描述的某些例子涉及绘制环境地图的方法。该方法包括从自主机器人装置获得导航数据,且使用导航数据来识别环境中的第一房间和第二房间。第一房间邻近于第二房间。第一房间和第二房间的识别包括确定与第一房间和第二房间之间的门道相关联的至少一个端点的,以及使用该至少一个端点识别在第一房间和第二房间之间的内部壁。
Description
技术领域
本发明涉及一种环境的绘制。本发明与使用从自主机器人装置获得的导航数据绘制环境地图具有特殊的但并非唯一的相关性。
背景技术
低成本的机器人装置,比如地板清洁机器人,通常依靠有限的感知力和简单的算法来绘制三维空间的地图,并在某些情况下在三维空间内导航,比如房子或其他建筑的内部。例如,机器人装置可包括红外或超声波传感器,其可探测站点线内的物体,然后可避开物体。虽然在同步定位和绘图(SLAM)等技术方面取得了重大进展,但许多解决方案依赖于研究实验室可用的大量计算资源。这使得将这些方案转化为控制现实世界商业机器人装置的嵌入式计算装置非常困难。此外,某些方案需要一套专门的传感器装置,比如激光探测和测距(LADAR)传感器、结构光传感器或飞行时间深度相机。这些专门的传感器装置增加了成本和复杂性,使得它们不太适合现实世界的机器人应用。
本文“解决房间分别覆盖自动清洁机器人”由Kleiner et al.,发表在《IEEE国际会议上智能机器人和***(2017年),其描述了一种分段占用网格地图的方法为代表现实世界中的房间和走廊地区的区域。
考虑到现有的技术,人们仍然希望精确有效地绘制环境地图,例如通过改进导航或环境清洁的机器人装置。
发明内容
根据本发明的第一方面,提供了一种绘制环境地图的方法。该方法包括从自主机器人装置获得导航数据。该方法还包括使用导航数据来识别环境中的第一房间和第二房间,其中第一房间邻近于第二房间,包括与第一房间和第二房间之间的门道相关联的至少一个端点的确定,以及使用该至少一个端点对在第一房间和第二房间之间的内部壁的识别。
使用第一方面的方法,内部壁可为更有效地被识别。例如,该至少一个端点可用于约束内部壁的位置,允许内部壁被识别比其他方法更快速。这也可提高内部壁被识别的精确度。在这种方式中,环境地图可被精确的绘制,其可改善机器人装置和环境之间的后续交互。
在某些实施例中,导航数据用于识别与环境的边界相关联的外部壁。在这种实施例中,识别内部壁包括确定从该至少一个端点到外部壁的路径,且识别该路径对应于内部壁。
在某些实施例中,门道是第一门道,内部壁是第一内部壁,且该方法包括确定从该至少一个端点的第一端点到与环境中的第一房间和第三间房间之间的第二门道相关联的第二端点的路径,且识别该路径对应于第二内部壁。
在某些实施例中,识别内部壁包括优化成本函数以识别从该至少一个端点的端点到环境中的目标位置的路径,且将该路径与内部壁关联。在这种实施例中,该成本函数包括下列至少一个:第一成本项(以对延伸到至少一个预定的方向的外部的输入路径罚分),或第二成本项(对输入路径的方向中的改变罚分)。在这种实施例中,表示环境内的某一特征的位置的特征数据可被获得,其中该特征指示该环境中的空间占用情况。在这些实施例中,该成本函数可包括第三成本项,其用于奖励与特征的位置一致的输入路径。特征数据可从同时定位和绘制***中获得。该方法可包括确定该特征被放置在满足高度条件的高度处。
在某些实施例中,门道是第一门道,内部壁是第一内部壁,且该方法包括识别包含第一门道的一组候选门道,根据门道特征排序该组候选门道进入处理顺序,且按照处理顺序对该组候选门道进行处理,以识别环境中的一组候选内部壁,该组候选后部壁包含第一内部壁。在这种实施例中,门道特征可包括下列至少一个:门道与另一门道之间的距离、门道与与环境的边界相关联的外部壁之间的距离,或与门道相关联的房间的尺寸。
在某些实施例中,确定该至少一个端点包括确定与第一房间相关联的第一区域与与第二房间相关联的第二区域之间的重叠区域,以及基于重叠区域确定门道的位置。
在某些实施例中,该方法包括确定与门道相关联的多个端点,该多个端点包括该至少一个端点,确定与门道相关联的该多个端点的每个连接到下列的至少一个:与环境的外部壁相关联的外部壁或与环境中的另一门道相关联的端点,且随后将内部壁添加到环境地图。
在某些实施例中,该方法包括确定与内部壁相关联的壁区域至少与与第一房间相关联的第一区域和与第二房间相关联的第二区域重叠。
在某些实施例中,该方法包括在确定该至少一个端点之前识别第一房间和第二房间之间。
在某些实施例中,使用导航数据包括使用导航数据来识别与环境相关联的预测壁区域,以及使用预测壁区域来识别第一房间和第二房间之间的门道。
在某些实施例中,使用导航数据包括使用导航数据来确定该至少一个端点,以及使用该至少一个端点来识别第一房间和第二房间。在这种实施例中,该至少一个端点可包括第一端点和第二端点,该第一端点对应于与环境相关联的第一预测壁区域的端部,该第二端点对应于与环境相关联的第二预测壁区域的端部。在这样的实施例中,使用该至少一个端点来识别第一房间和第二房间可包括使用第一端点和第二端点来确定门道的位置且基于门道的位置识别第一房间和第二房间。
在某些实施例中,导航数据表示导航地图,且识别第一房间和第二房间包括使用该至少一个端点识别门道的位置,且基于门道的位置对导航地图应用聚集过程。
在某些实施例中,该方法包括确定门道的第一侧部上的第一位置和与第一侧部相对的门道的第二侧部上的第二位置之间的距离度量。在这个实施例中,距离度量的值可大于第一位置和第二位置之间的距离。这个实施例可包括使用的导航数据来生成表示环境的图表,其中第一位置对应于图表中的第一节点且第二位置对应于图表中的第二节点,使用距离度量权重第一节点和第二节点之间的边缘,且将图表分为至少第一部分和第二部分,该第一部分对应于第一房间和第二部分对应于第二房间。
在某些实施例中,该方法包括使用第一房间和第二房间,该房间使用该至少一个端点来识别内部壁而被识别。在这样的实施例中,使用第一房间和第二房间(该房间使用该至少一个端点来识别内部壁)可包括生成第一房间的第一直线表示,生成第二房间的第二直线表示,且使用第一直线表示,第二直线表示和门道识别内部壁。
在某些实施例中,该方法包括在识别内部壁之前确定门道的宽度满足宽度条件。
在某些实施例中,使用导航数据来识别环境中的第一房间和第二房间包括识别与第一房间相关联的第一区域内的多个房间,确定该多个房间的至少一个不能满足面积条件,且合并该多个房间以在确定该至少一个端点之前限定第一房间。
在某些实施例中,第一房间或第二房间中的至少一个包括走廊或接入室。
在某些实施例中,导航数据表示环境的导航地图,且该方法包括从导航地图中移除物体的表示,其中该物体从环境的边界断开。在这样的实施例中,移除物体的表示可使用洪水填充。
根据本发明的第二方面,这里提供了一种***,该***北部至为处理来自自主机器人装置的导航数据以绘制环境地图。该***包括房间识别引擎(其用于识别环境中的第一房间和第二房间,其中第一房间邻近于第二房间),门道识别引擎(其用于确定与第一房间和第二房间之间的门道相关联的至少一个端点),和壁识别引擎(其使用该至少一个端点来识别第一房间和第二房间之间的内部壁)。正如参考第一方面所解释的,第二方面中的***可提高识别内部壁的精确度和/或效率,其可进而改进环境地图的绘制以及机器人装置与环境之间的后续交互。
在某些实施例中,***被布置为生成表示环境地图的地图数据,且该***包含接口,其用于接收环境中用户定义的壁、门道或物体的用户定义的环境数据表示。在这样的实施例中,***被布置为基于用户定义的环境数据更新环境的地图。
在某些实施例中,导航数据表示环境的导航地图,且该***包含方向引擎,其用于处理导航数据以定向环境的导航地图以使与导航地图相关联的轴线沿预定的方向对齐。
在某些实施例中,导航数据表示二维二进制地图。在这样的实施例中,二维二进制地图的像素可表示环境的相应区域的占用情况或可访问性中的至少一个。该至少一个端点的端点可对应于二维二进制地图中的至少一个像素。
根据本发明的第三方面,这里提供了一种计算***,其包根据第三方面的***,其中该***被布置为生成包括门道和内部壁的环境地图,和用于通过自主机器人装置获得表示环境观察的图像数据的捕捉装置。
在某些实施例中,该计算***包括同步定位和绘制***,以提供表示环境的观测特征的特征数据,其中该***被布置为使用特征数据来识别内部壁。
根据本发明的第四方面,这里提供了一种机器人装置,其包括根据第四方面的计算***,一个或多个促动器(以使机器人装置能够与环境进行交互),和交互引擎(其包括至少一个处理器,该处理器用于控制一个或多个促动器),其中交互引擎被配置为使用环境的地图与环境进行交互。
根据本发明的第五方面,这里提供了一种用户设备,其包根据第二方面的***,其中该***被布置为生成包括门道和内部壁的环境地图,被布置为从自主机器人装置接收表示环境观察的图像数据的图像数据接口,和被布置为显示环境地图的显示设备。
根据本发明的第六方面,这里提供了一种包括计算机可执行指令的非暂时性计算机可读存储介质,当处理器执行该指令时,导致计算装置执行上述任一个方法。
其他特征将从下面的描述中将为显而易见的,其是参照附图做出的。
附图说明
图1是流程图,示出了根据实施例绘制环境地图的方法;
图2A和图2B是示意图,示出了机器人装置的两个实施例;
图3A和图3B是示意图,示出了根据实施例的机器人装置的运动;
图4是流程图,示出了根据第一实施例绘制环境地图的方法;
图5是示意图,示出了根据实施例的导航地图;
图6是示意图,示出了在根据实施例的再定位之后图5中的导航地图;
图7是示意图,示出了在根据实施例对环境的边界的识别之后图6中的导航地图;
图8是示意图,示出了从环境地图移除表示的物体之后图7中的导航地图;
图9是示意图,示出了根据实施例的房间识别;
图10是示意图,示出了根据实施例的门道检测;
图11是示意图,示出了根据实施例的环境内的被检测到的门道;
图12是示意图,显示了图11的门道的端点;
图13是流程图,示出了根据实施例识别内部壁的方法;
图14是流程图,示出了根据另一实施例识别内部壁的方法;
图15是流程图,示出了根据又一另一实施例识别内部壁的方法;
图16是示意图,示出了根据实施例被检测到的内部壁;
图17是示意图,示出了根据实施例的环境内的特征;
图18是流程图,示出了根据又一另一实施例识别内部壁的方法;
图19是示意图,示出了根据实施例绘制环境地图中使用的***的某些部件;
图20是示意图,示出了根据另一实施例绘制环境地图中使用的***的部件;
图21是示意图,示出了根据实施例的表示的环境内的添加的门道;
图22是示意图,示出了在添加了图21所示的门道之后在表示的环境中生成的内部壁;
图23是流程图,示出了根据第二实施例绘制环境地图的方法;
图24是示意图,示出了根据另一实施例的房间识别;
图25是示意图,示出了根据另一实施例的门道识别;
图26是示意图,示出了根据实施例的环境的直线地图;
图27A-27D是示意图,示出了根据实施例绘制环境地图中使用的各种***;
图28A是示意图,示出了用于根据又一另一实施例绘制环境地图的计算***的部件;
图28B是示意图,示出了根据实施例的机器人装置的部件;
图29是示意图,示出了根据实施例的用户设备的部件;以及
图30是示意图,示出了根据实施例的非暂时性计算机可读介质。
具体实施方式
这里描述的某些实施例使环境地图能够被绘制。使用本文中的实施例生成的环境地图可由机器人装置(比如自主机器人装置)使用,例如用来导航或与环境进行交互。
图1是示出根据实施例绘制环境地图的方法100的流程图。
在图1的块102处,导航数据是从自主机器人装置获得。例如,导航数据表明机器人装置已经观察到或行进过的环境内的空间区域。例如,自主机器人装置是不需要人工干预,或只需要有限的人工干预或指令就能完成任务的机器人。例如,自主机器人装置可被预先编程或以其他方式被配置来执行特定的任务或其他例程。然后,机器人装置可执行这项任务,而不需要来自人类或其他来源的进一步输入。这种机器人装置可具有学习能力,因此能够基于一段时间内接收到的反馈或输入来调整其执行任务的性能。例如,当机器人装置绕环境导航时,它可继续获取导航数据。这个导航数据可用于更新或生成环境地图,其可由机器人装置使用用于后续导航(相比于原有导航,其被改进,例如通过覆盖更大比例的环境,或者更精确地避免与环境内的诸如内部壁碰撞)。下面将进一步讨论导航数据的示例。
在图1的块104处,导航数据用于识别环境内的第一房间和第二房间,第一房间和第二房间彼此相邻。第一房间和第二房间的识别包括确定与第一房间和第二房间之间的门道相关联的至少一个端点,以及使用该至少一个端点识别在第一房间和第二房间之间的内部壁。
使用与门道相关联的至少一个端点允许更有效地识别内部壁。例如,这种方法利用环境的可能结构(在该环境中,壁的一端往往对应于与门道相关联的端点)比不受这种方法约束的其他方法更有效地识别内部壁。
通过识别环境内的内部壁,本文中的示例允许生成环境的更精确的地图。例如,导航数据可以不代表整个环境。机器人装置可以不探测或观察房间的某些部分,例如,由于房间内的障碍物(比如物体),机器人装置无法接近这些部分。然而,通过使用与房间的门道相关联的至少一个端点来识别房间的内部壁,可以更精确地确定房间的形状,且房间的形状包括导航数据没有表示的房间区域。这可允许机器人装置在未来更有效地在房间内导航。例如,如果房间的角落之前由于物体(后来被移除)而无法被机器人装置接近,那么房间的这个角落可能不在导航数据表示的导航地图中。然而,房间的角落可被包含在由本文的方法生成的环境地图中,且由此在未来机器人装置可使用该地图导航。
示例机器人装置
图2A示出了机器人装置205的第一示例200,该机器人装置可用于获取导航数据、获取环境地图或使用环境地图在该环境中导航,如本文中所述。为了便于理解,该机器人装置被提供以下示例,但不应该被视为限制性的;其他不同配置的机器人装置也同样适用于以下段落中描述的操作。虽然上下文中描述的某些方法和***由机器人装置使用,但是相同的方法和***可使用从手持式或其他移动装置获得的数据被替代地应用,例如具有内置相机装置的设备,其通过人类或其它机器人装置而移动。
图2A中的机器人装置205包括相机装置210,用来捕获环境图像。该相机装置210可包括广角镜头和/或包括单目多向相机以从多个角度位置捕捉图像数据。在使用中,可以一个接一个地捕获多个图像。在某些情况下,该多个角度位置覆盖宽视场。在一种情况下,相机装置210可包括全向相机,例如,装置被布置为捕获大致360度的视场。在这种情况下,全向相机可包括具有全景环形镜头的装置,例如,该镜头可相对于电荷耦合阵列安装。在图2A的示例中,相机装置210安装在机器人装置上方的可配置臂上;在其他情况下,该相机装置210可静态地安装在机器人装置205的体部内。在一种情况下,该相机装置可包括被配置为捕获一系列图像的静态图像装置;在另一种情况下,该相机装置可包括用于捕获视频数据的视频装置,该视频数据包括视频帧形式的一系列图像。
图2A中的机器人装置205还包括至少一个运动促动器215,在这种情况下其包括相对于机器人装置205的体部布置的一组从动轮。该至少一个运动促动器215(包括耦合到一个或多个轮、轨道和/或滚轮的至少一个电动机)布置为在环境内移动机器人装置。这种环境的示例稍后将参照图3A和图3B描述。机器人装置205还包括控制器220。这可包括如图2A中虚线所示的嵌入式计算装置。例如,控制器220可使用至少一个处理器和存储器和/或一个或多个片上***控制器来实施。在某些情况下,控制器220可通过机械可读指令的方式被实施,例如从只读或可编程存储器(比如可擦可编程只读存储器(EPROM))获得的固件。控制器220控制机器人装置205在环境内的运动。例如,控制器220可指示该至少一个运动促动器推动机器人装置205向前或向后,或区别地驱动机器人装置205的轮子,以转动或旋转该装置。在图2A中,机器人装置205还具有可旋转的自由轮225,其允许机器人装置205旋转。在操作中,控制器220可被配置为绘制环境地图,例如其是封闭的环境。例如,控制器220可包括存储表示环境地图的数据的存储器或其他机械可读介质。控制器220可附加地或替代地配置为当机器人装置205在环境中导航时获取导航数据。导航数据可被存储在存储器或机器可读介质中,并用于生成环境的地图。
图2B示出了机器人装置255的另一示例250。图2B的机器人装置255包括家用清洁机器人。与图2A中的机器人装置205类似,清扫机器人装置255包括相机装置260。该相机装置260可又包括单目多向相机装置或一个或多个红绿蓝(RGB)相机装置。在图2B的示例中,相机装置260安装在清扫机器人装置255的顶部上。在一种实施方式中,清扫机器人装置255可具有在约10-15cm的高度;然而,其他尺寸是可能的。清扫机器人装置255还包括至少一个运动促动器265;在这种情况下,包括至少一个电动机,该电动机被布置为驱动安装在装置两侧的两组轨道,以向前和向后推动该装置。这些轨道可进一步被区别地驱动来操纵清扫机器人装置255。在其他示例中,可以提供不同的驱动和/或操纵部件和技术。如图2A中所示,清扫机器人装置255包括控制器270和可旋转的自由轮275。
除了图2A中所示的机器人装置205的部件外,清洁机器人装置包括清洁元件280。这个清洁元件280可包括用来清洁房间地面的元件。它可包括滚筒或刷子285和/或湿的或干的元件。在一种情况下,清洁元件280可包括真空装置,例如布置为捕获脏物和灰尘颗粒。在这种情况下,控制器270可被配置为直接或间接地使用环境地图来确定环境的清洁模式,且根据清洁模式指示激活清洁元件280。例如,真空装置可被激活来清洁由地图限定的环境区域。除其他外,机器人装置可使用环境地图来确定一个或多个:所需的清洗流体水平;清洁环境所需的电池电量(如果确定该电量不可用,会发出警报);用于特定房间使用的清洁装置或***(例如,厨房可使用湿的元件(其不适用于不同尺寸的地毯房间));和环境的清洁模式(例如建议的覆盖环境范围的路线)。
机器人装置的示例运动
图3A和图3B示意性地示出了根据两个示例机器人装置305在环境310内的运动300,350。在一些示例中,机器人装置305可包括如图2A或图2B中所示的装置。在图3A和图3B中,环境310包括内部房间形式的三维环境。不过,这仅仅是示例性的。一般来说,在本文的方法中,机器人装置在至少包括两个房间的环境中导航。例如,一房间是至少部分封闭的物理空间,它被一个或多个表面包围。典型的房间被四个表面包围(不包括地板和天花板),每个表面对应于壁。但在其他情况下,房间可被更多或更少的壁包围。例如,房间在平面图上可为六边形的,且因此被六面壁包围。在某些情况下,房间可为封闭的或由两侧上的表面包围,其中其他侧是通过假设规则的多边形(比如正方形或长方形)截面来估计的。例如,房间可包括走廊或接入室。走廊(有时被称为过道)通常是长通道,两侧有一扇或多扇门,通向相邻的房间。例如,接入室(有时称为入口通道、大厅或前厅)是小房间,通常位于建筑物的入口,它通向建筑物的其他房间,比如走廊或其他房间。本文描述的房间可能没有天花板,且由此可能没有在机器人装置上方的表面。同样地,如果机器人装置是空中装置,例如(多旋翼)直升机,地板(例如机器人装置下方的表面)也可能不被需要来应用本文描述的实施例。
图3A和图3B中的环境310包括一些物理物体320(在图3A中标记为物体320-A,320-B,320-C和320-D),它们位于环境中。并非所有的封闭环境都需要包括物理物体(比如320);然而,许多实际环境将包括这样的物体。物体320可包括以下中的一个或多个:家具、建筑部分、设备、升高的地面部分、内部壁部分、人、电子装置、动物等。虽然图3A和图3B中的环境310从上面显示为具有较低表面的平面,这在所有实施方式中不一定都是这样,例如,环境可能是在空中的或在地球外的环境中。环境的较低表面也不需要是一个水平的地面,例如,它可包括斜面和/或多级的系列平面。
在图3A中的示例中,机器人装置305可适用于在环境中绕点330运动。例如,图2A或2B中所示的控制器220或270可被配置为使用至少一个运动促动器(例如215或265)来指示运动340。在一个示例中,在运动340期间,机器人装置305被配置为使用装备的相机装置(例如图2A或2B中的210或260)来获取多个不同角度位置的一系列图像。例如,运动340可包括在环境的一部分内的大体圆周运动。在某些情况下,运动340可包括一个完整的循环,例如绕点330旋转360度;在其他情况下,运动可包括循环的一部分,例如绕点330旋转小于360度。运动340不需要是圆的,它可以是围绕任何形状的周界的至少一部分的圆周运动,例如任何多边形,包括那些相等和不等的侧边的多边形。在约4或5平方米的相对较小的房间(例如普通的住宅房间)中,运动340可包括约0.5米的范围,例如可包括具有0.5米直径的大致圆周运动。这可能需要10-20秒。在某些示例中,对于小型房间,一系列图像可包括大约100或200帧。在其他示例中,不同运动340可根据机器人装置305和/或已安装的相机装置的配置指示,例如,具有小角度视场的相机装置可导致与具有广角视场的相机装置不同的运动。
一般来说,在图3A中的示例中,机器人装置305被控制以便执行至少一个动作,使相机装置能够捕获在多个方向上存在差异的环境的至少一个图像序列(比如视频帧)。例如,在具有大约水平地板的环境中,即为机器人装置305形成运动平面,图像序列可在多个水平方向上存在差异。相比较而言,在具有用于运动的倾斜平面的环境中,或在空中或地球外环境中,差异可在与运动平面平行的多个方向上。这个运动340可被看作是简短的解释运动,例如,类似于(潜意识的)人类或动物扫视房间以确定自己在房间内的方位的能力。运动340允许机器人装置305获得表示环境形状的导航数据。于是这为机器人装置305提供了绘制能力,从而随后“理解”房间内的全局环境,且促进智能高级规划和对环境的语义理解。
在某些情况下,图3A中的运动340可被执行用于多房间环境中的多个房间。例如,机器人装置305可运动到第一房间,并执行运动340来获取第一房间的导航数据。然后,机器人装置305可导航到环境中的第二房间,并执行相同的运动340(或类似或不同的运动)来获取第二房间的导航数据。
图3B示出了另一示例运动350,它可用于更大的环境,例如多区段内部环境。例如,图3B中的环境355可包括具有10-20米的至少一个壁的房间。在某些示例中,如图3B中所示,环境可包括多个由视觉屏障分隔的环境部分,例如,隔离物360可包括部分或整个壁、书桌单元或家具。在图3B中,运动350包括多个运动370,380和390,例如,关于图3A中所述的多个运动。在图3B中,三个运动被示出;然而,这并不是限制性的。在这种情况下,运动可包括一组相似或不相似的运动,例如,从围绕一点或形状的周界的至少一部分的一组圆形或周向运动中选择。对于较大的房间,其运动幅度可比较小房间的运动幅度要大,例如,圆形运动可为约1米的直径。多个运动可被控制,以使至少部分地绕过视觉阻挡,比如隔离物360。例如,从第一运动370获得的数据可被使用来检测隔离物360并例如通过控制器指示发生在隔离物之外的第二运动380。运动的数量和/或不同运动之间的间隔可取决于环境的大小和/或物体在环境中的位置。在具有10-20米的至少一个壁的房间中,该间隔可为约1-3米。在某些情况下,可以执行额外的运动,直到绘制环境的预定部分。在图3B的示例中,机器人装置305被配置为依次进行几个较小的圆形扫描,运动到中间的新视点,从而显示环境的其他部分,因为环绕了阻挡的障碍物。从所有这些扫描中获得的信息可用于绘制环境地图,如下面部分将进行更详细的描述。
参考图3A所述,图3B的运动350可由机器人装置对机器人装置所进入或观察的多房间环境的每个房间执行。在一些情况下,由机器人装置执行的运动可因环境中的不同房间而不同。例如,在第一房间(其可为相对较小的)内,机器人装置可执行图3A中的运动340。然而,机器人装置可在第二房间内执行图3B中的运动350,该第二房间比第一房间大。
在图3A和图3B的示例中,机器人装置在穿过环境时获得环境的图像。于是这些图像可被处理,来获得代表环境的导航数据。不过,在其他情况下,机器人装置不需要获得环境的图像来生成导航数据。相反,导航数据可基于机器人装置在环境中的运动来生成。例如,导航数据可表示机器人装置所经过的环境区域,或者机器人装置与之交互的环境区域(例如,在机器人装置是清洁机器人装置的情况下,通过清洁而交互)。在某些示例中,机器人装置可不包括相机装置,且可处理基于不受障碍物约束的运动路径而获得的数据,例如在碰撞和/或距离感测装置(比如红外或超声波传感器)期间测量的数据。
用于绘制环境地图的第一示例方法
图4是流程图,示出了根据本文的第一示例绘制环境地图的方法400。
在图4的项目402处,导航数据从自主机器人装置获得。导航数据通常提供由机器人装置探测环境期间获得的环境的表示。例如,导航数据表示导航地图,例如导航地图表示机器人已经观察到或与之交互的环境中的空间位置。例如,导航地图可与占位地图(该占位地图指示环境中被占用的区域(例如被家具或壁等物体占用))或清洁地图(表示机器人装置所经过的环境中的路径,例如在清洁期间)相对应。导航数据可以以各种不同的方式生成,这是技术人员所理解的。例如,当机器人装置绕环境运动时,由机器人装置的相机装置捕获的图像可使用SLAM技术进行处理,以获得环境的可视化表示。替代地或附加地,由机器人装置获得的进一步的信息(例如,从传感器,例如布置为检测机器人装置与物体之间碰撞的碰撞传感器,或布置为获取深度数据的深度传感器)可用于生成或限定导航地图。在一种情况下,导航数据可通过类似于图3A和图3B所示那些的运动来获得。
导航数据可以表示二维二进制地图,其可被存储为图像(例如,作为位图)。例如,二维二进制地图的像素表示环境的相应区域的占用或可访问性中的至少一个。二进制地图的每个像素可具有两个值中的一个。例如,值1(例如对应于暗像素强度比如黑色)可表明该空间区域对应被占据的像素,值0可表明该空间区域是空闲的(例如对应于亮像素强度,比如白色)。在这种情况下,机器人装置未探测或未观察到的环境区域可被认为已被占用,因此在二进制地图中以1表示。不过,这仅仅是示例。在其他情况下,导航数据可表示非二进制地图,其中像素值表示环境的相应区域可导航和/或被占用的可能性和/或概率(例如,其可取0和1之间的非整数值)。
导航地图500的示例示意性地示出在图5中。导航地图500包括可导航区域502、在图5中由斜条纹填充的不可导航区域504a,504b(统一用参考编号504表示)。可导航区域502可表示环境中没有被物体占据的区域,例如,可由机器人装置导航的区域。不可导航区域504可以是被视为被物体占据的区域,例如,不能够被机器人装置接近的区域。在某些情况下,区域502是由机器人装置观察到和/或测量到的区域,而区域504是机器人装置没有观察到和/或测量到的区域。在某些情况下,测量可包括空间的一部分是否有表面边界,例如具有体积的物体。在图5中,外部不可导航区域504b的边界是任意的:在这种情况下,假设没有被机器人装置识别为可导航502的任何区域都被认为是不可导航的。然而,在其他情况下,环境的边界可被确定,例如,参考图7在下面进一步讨论。
为了获得导航地图500(比如图5中的导航地图),可对机器人装置获得的导航数据进行初始处理,例如去除图像噪声、图像伪影、模糊或其他图像缺陷。在一种情况下,低通过滤器可被应用于初始导航地图(二维图像的形式),以移除错误识别的占据区域。由于机器人装置的特殊形状(其可影响它在环境中的导航)或机器人装置的清洁行为(如果它是预先编程以执行特定清洁程序的清洁机器人),可能会发生错误识别。例如,高斯模糊过滤器可被应用于初始导航地图,新的二进制地图可通过向大于或等于阈值(例如0.5)的像素强度值分配数值1(例如其可被认为对应于环境的占据区域),否则分配数值0(例如其可被认为对应于未被占据区域)。
在其他示例中,图像打开和关闭可被使用来降低导航地图500中的噪声。例如,图像打开涉及通过将较小物体放置在背景中(例如,其对应于暗像素)将较小物体从图像(例如,其对应于亮像素)中移除。这可涉及将这些像素的像素值从与不可导航值(例如1)对应的像素值更改为与可导航值(例如0)对应的像素值。例如,图像关闭通过将背景中的较小孔转换到前景中而移除背景中的较小洞。这可涉及将这些像素的像素值从与可导航值(例如0)对应的像素值更改为与不可导航值(例如1)对应的像素值。
在图5的示例中,导航地图500关于垂直方向成角度。换句话说,导航地图500的不可导航区域504b(其可对应于壁)相对于垂直或水平方向成非零角度。为了帮助处理导航地图500以识别环境内的内部壁,导航地图500可被旋转以将不可导航区域与水平和垂直方向更紧密地对齐。
为了以这种方式旋转导航地图500,可确定导航地图500的方位,其中通常地,可导航区域502的周界506的相应部分的纵向轴线最接近水平或垂直方向。例如,导航地图500的导航数据表示可被处理以将导航地图500取向成与导航地图500(例如,对应于周界506的一部分的方向)相关联的轴线沿预定方向(例如水平或垂直方向)对齐。
图5示出了与导航地图500相关联的轴线508的示例。在图5中,轴线508包括沿周界506的最接近垂直方向的那部分(例如,周界506的最左侧部分,如图5中所示)对齐的第一轴线510。轴线508还包括沿周界506的最接近水平方向的那部分(例如,周界506的底部部分,如图5中所示)对齐的第二轴线512。
各种不同的方法可用于取向图5的导航地图500,使得可导航区域502的纵向轴线与预定方向更紧密地(在这种情况下为垂直和水平方向)对齐,如技术人员所理解的。
例如,导航地图500可被处理以估计导航地图500内的每个点(或点的子集)处的局部图像梯度。在进行这种处理之前,可使用例如低通过滤器处理导航地图500,以进一步增强导航地图500中的边缘(其可对应于壁)的锐度。这可稳定导航地图500的旋转。梯度幅度达到梯度阈值(例如大于0.5的幅度)的像素可被认为接近图像的边界,例如对应于可导航区域502的周界506。可对这些像素应用平滑处理,例如核平滑估计。于是,这些像素可被定向,以与预定方向(在这种情况下为水平或垂直方向)对齐。
在其他示例中,导航地图500可使用霍夫线变换进行定向。边缘检测器可用于检测导航地图500中的边缘像素。例如,不可导航区域504的像素(其邻近于可导航区域502的一个或多个像素)可被标记为边缘像素。基于这些边缘像素,霍夫线变换于是可用于寻找导航地图500中的直线。例如,每条直线具有在-90度和90度之间的倾斜角。根据直线的倾斜角,导航地图500的主导角度可被确定,且将其作为导航地图500的纵向轴线,比如轴线508中的一个。导航地图500可被旋转或以其他方式重新定向,使主导角度与预定方向(比如水平或垂直方向)更紧密地对齐。
图6示出了图5中的导航地图在旋转以使可导航区域502的周界506的纵向轴线与水平和垂直方向更紧密地对齐之后的导航地图。
本文的示例包括确定由导航地图表示的环境边界。各种不同方法可用于识别这样的边界,例如其可被认为与环境的外部壁相对应。例如,可以获得围绕可导航区域502的边界框或在可导航区域502的两侧具有若干像素的缓冲器的可导航区域502(以说明在导航地图500中旋转或弯曲期间的任何不准确。于是,边界框内的导航地图的一部分可被处理以识别将适合在边界框内(但在可导航区域502之外)的最大矩形。环境的边界于是可被认为是矩形的外部周界。然而,这仅仅是示例,在其他情况中其他确定环境边界的方法也可被使用。此外,环境的边界可在本文所述方法的其他阶段被识别。边界的示例被示意性地示出在图7中,其示出了图6的导航地图500所表示的环境的边界514。
图5-7所示的导航地图500包括不可导航区域504a,该区域与围绕可导航区域502的不可导航区域504b断开。这个区域504a可被称为断开的不可导航区域504a。这样的不可导航区域可对应于由可移动物体(比如家具而不是壁)占据的环境区域,壁通常是固定的或位置不变。在一些情况下,该方法包括移除这样的物体表示,该物体从环境的边界514断开。这被示出在图8中,它示出了图7中的导航地图500在物体的表示(对应于断开的不可导航区域504a,其从环境的边界514断开,且由此与围绕可导航区域502的不可导航区域504b断开)删除之后的导航地图。如此,内部物体,比如椅子、脚凳、洗衣篮或其他家具或通过在环境中改变位置的物体(包括人或动物)可从导航地图500中移除。因此,导航地图500更精确地表示环境的潜在布局。但在其他情况下,这种物体的表示可被保留在导航地图500中。在这种情况下,物体的表示可被加上标签或以其他方式被识别为家具。
在这种情况下,被连接到环境的边界514的物体(例如通过被连接到围绕可导航区域502的断开的不可导航区域504b)不从导航地图500中移除。这些物体可与诸如床或橱柜等大型家具相对应,这些家具通常与房间的壁相接触。这些项目的位置通常不会经常改变。因此,保留这些物体的表示允许导航地图500精确地反映环境的可能配置。
各种不同方法可用于从导航地图500中移除物体的表示。在一种情况下,可以使用漫溢填充。漫溢填充在这种情况下可用于以0值来填充导航地图500的连接到断开的不可导航区域504的像素且其具有相同像素值(在这种情况下,值为1,表示环境的对应于那些像素是不可导航的区域)的像素。通过将这些像素的像素值更改为可导航像素值,该断开的不可导航区域504a从导航地图500中移除,如图8中所示。
返回参考图4,项目404涉及使用导航数据(在这种情况下是导航地图500的表示)来识别环境内的第一房间和第二房间,其中第一房间与第二房间相邻。各种不同方法可用于识别第一间和第二房间,包括图像侵蚀和分水岭分割。
图像侵蚀涉及缩小可导航区域502,例如通过将可导航区域502周围的不可导航区域504的大小增加预定量,比如与标准门道的宽度相对应的像素数。通过以这种方式侵蚀导航地图500,导航地图500例如被划分为一组断开的区域,每个区域可作为一房间。每个房间之间的区域可被认为与环境内的门道相对应。
分水岭分割可附加地或替代地用于将环境划分为房间。例如,分水岭分割将导航地图500视为地形图,每个像素的亮度表示它的高度。如理解的,图5-8的导航地图500的像素指示环境的相应区域是否已被占据或已被探索,而不是高度。因此,在分水岭分割被使用的情况下,距离变换可以计算为导航地图500中像素的“高度”。在一种情况下,对于每个像素,距离变换表示该像素与最接近像素(其是不可导航的或被占据的(例如,像素值为1))之间的距离。然而,这仅仅是示例,其他的距离变换也可被使用在其他的示例中,如技术人员将理解的。
在以这种方式生成地形图后,基于用于导航地图500的像素的距离变换,地形图中沿脊顶延伸的线于是可被确定。例如,如果想象用水充满地形图,那么在一些点处,一个盆地的水会溢出到邻近的盆地。这个点可被认为与地图中的脊顶相对应(其可被称为相邻盆地区域之间的分水岭或过渡区域)。每个盆地区域可被认为对应于环境中的房间,而过渡区域可被认为对应于两个相邻或邻近房间之间的门道。在一些情况下,在确定过渡区域之前,高斯低通过滤器可被应用到地形图,但这并不一定需要。
图9示出了在识别房间(在这种情况下是五间房间:516a,516b,516c,516d,516e,其可共同使用参考编号516)之后的导航地图500。房间516之间的过渡区域使用虚线示意性地示出在图9中。例如,识别房间涉及输出导航地图500的哪个像素属于给定房间516的指示。哪些房间被连接到彼此(例如,哪些房间相邻或邻近彼此)的指示也可被输出。
在识别环境内的房间516之后,进一步处理可被应用到导航地图500以进一步提高导航地图的精度且移除或合并已识别为“房间”的区域,但却不太可能对应于环境内的物理房间。例如,没有被连接到任何其他房间的房间可从导航地图500中移除。
在一些情况下,小得不切实际的房间可与其他房间合并。例如,如果多个房间被识别,则可确定多个房间中的至少一个不满足面积条件。面积条件可对应于预定的阈值面积,比如平均最小房间面积,其是某一类型或某一地点或国家的房屋或建筑物中最小房间的平均面积的表示。例如,如果房间的面积(由导航地图500确定)是在预定的面积阈值之下,则房间可能无法满足面积条件。在其他情况下,面积条件可为相对阈值面积,用来移除与其他相邻的房间相比相对较小的房间。例如,如果房间的面积小于邻近房间面积的预定比例(例如30%,20%或10%),则房间可能无法满足面积条件。在又一情况下,面积条件是否满足可基于房间的半径被确定,而不是它的总面积。例如,房间内最大可能内切圆的半径可被计算出,且以此作为房间的半径。如果这个半径小于预定阈值(其可为相邻房间的绝对或相对半径),那么这个房间可能无法满足面积条件。如果该多个房间中的至少一个不满足面积条件,该多个房间可被合并。
这在图9中示出,其中房间516e不满足面积条件。在这种情况下,房间516e与房间516a合并,以限定第一房间516f,如图10中所示(将在下面进一步讨论)。在一些情况下,在合并至少两个房间之前,可确定每个房间在房间合并之前都单独不能满足各自的面积条件。这种方法可用于合并较小的面积,它们一起对应于走廊。事实上,应理解的是,本文中的房间可包括各种房间类型,包括走廊、过道或接入室。
回到图4,项目406涉及确定与第一房间和第二房间之间的门道相关联的至少一个端点。在一些情况下,确定该至少一个端点涉及在确定与门道相关联的至少一个端点之前识别第一房间和第二房间。门道识别的示例示意性地示出在图10中。
在如图10的示例中,可确定与第一房间516f相关联的第一区域和与第二房间516b相关联的第二区域之间的重叠区域,且门道的位置可基于重叠区域而确定。确定这样的重叠区域(可被称为交集)可以以各种方法被执行。在一种情况下,每个房间的边界被扩大,与房间516f,516b相关联的扩大的边界之间的重叠区域518a被识别。这个重叠区域518a可对应于比典型的门道更大的环境区域,因此可被缩小尺寸,例如使用图像细化操作将这个重叠区域518a降低到更合适的尺寸。重叠区域518a、518b、518c(统一用参考数字518表示)可在环境中的每组邻近房间之间找到,然后可被降低尺寸以获得门道。使用这种方法找到的门道520a、520b、520c(统一由参考数字520表示)被示意性地示出在图11中。从图11中可以看到,门道例如是房间或建筑物的入口或出口地入口或其他点。门道可为开口,其可被门关闭(尽管门不需要位于门道内,因为一些门道可反而对应于房间之间或外部和内部环境之间的空间、通道或开口)。
在一些情况下,与门道520相关联的端点是在识别门道520之后被确定的。例如,端点对应于围绕门道的门框的边缘。例如,典型的门道是矩形的,且具有两个相对的垂直框架部分。端点可与每个门框重合,因此门道与门道的左右两侧的两个端点相关联。在其他示例中,端点可对应于环境中的壁的端部,其中该壁的端部限定了门道的起点。换句话说,门道可为壁中的间隙或开口,其中该端点对应于间隙的位置。门道的端点可以以各种方法找到。在一种情况下,门道520的端点可通过识别门道520的端部来确定(例如导航地图500的对应于表示门道520的线的端部的像素)。例如,标准函数bwmorph(…,“thin”)和bwmorph(…,“endpoint”)可用于细化重叠区域518,以分别识别门道520和识别门道520的端点。因此,在一些情况下,端点可对应于导航地图500的至少一个像素,在这种情况下导航地图是二维二进制地图。
在一些情况下,门道520(以及与门道520相关联的端点)可被旋转到预定方向(比如水平或垂直方向),例如,如果门道520的方向在旋转之前足够接近水平或垂直方向。这可简化未来导航地图500的进一步处理。
然而,以这种方式识别的门道可能并不一定对应于环境中的实际门道,例如,由于特定的环境配置,由于导航数据缺失或错误,或者由于导航地图500中的噪声等图像缺陷。为了识别和移除被错误识别的门道,导航地图500可能经受进一步处理。例如,一些情况可涉及在保留门道520之前确定门道的宽度满足宽度条件。门道的宽度被作为与门道相关联的两个端点之间的距离。当门道的宽度满足或小于预定宽度阈值(例如标准的双门道的宽度,例如1.5米)时,宽度条件可被满足。因此,当相邻房间之间存在先前识别的大间隙时,宽度条件可能无法被满足。这可能是这样的情况,房间实际上不是单独的房间,而是相同的、较大的房间的不同区域,其可具有非矩形形状。这种情况可能发生在开放式建筑中,其中大房间可包括多个独立的区域,比如具有厨房区和餐厅区的组合厨房餐厅。像这样的宽门道可被移除。在一些情况下,由宽门道隔开的房间也可彼此合并(尽管不一定是这样)。在其他情况下,当门道的宽度小于房间到门道的任一侧的面积或半径的一定比例时,宽度条件可被满足。例如,如果门道的宽度大于任一房间的直径的90%,门道可被认为不够明显缩小,且由此可被抛弃。
一些情况涉及确定与门道相关联的端点数量满足端点条件。典型的门道具有两个端点(尽管在一些情况下,门道可具有比这更多的端点,例如,如果存在三通房间连接)。因此,在一些情况下,如果门道与两个以上端点相关联,则端点中的一些可为寄生的。在这种情况下,在识别与门道相关联的两个以上端点时,每对端点之间的距离可被确定。如果两个端点是相对接近的(例如,距离小于特定距离阈值,例如在导航地图500中彼此相距在5个像素内),则端点中的一个可能会被抛弃,因为它是寄生的。
图12示意性地示出了图11中的第一房间516f和第二房间516b之间的门道520a的两个端点522a、522b。为了便于可视化,图12示出了导航地图500的包括端点522a、522b的一部分;导航地图500的其他部分被省略。
回来参考图4,图4中的项目408涉及使用与第一房间和第二房间之间的门道相关联的至少一个端点来识别第一房间和第二房间之间的内部壁。
识别内部壁可包括确定从该至少一个端点的端点到环境中的目标位置的路径,且将该路径与内部壁关联。图13是流程图,示出了识别内部壁的示例方法600,其中各种路径被确定以识别内部壁。
在图13中的项目602处,与环境的边界相关联的外部壁使用导航数据来识别。例如,外部壁对应于图11中所示的不可导航区域504。例如,外部壁的内周界对应于不可导航区域504的最内部像素。
在图13中的项目604处,从该至少一个端点的端点(比如图12中所示的端点522a)到外部壁的路径被确定。如果这样的路径被确定,则在项目606处,图13中的方法涉及识别该路径对应于内部壁。例如,外部壁对应于形成建筑物外部围墙的壁且可包括屋顶。相反,内部壁对应于位于建筑物内部的壁(尽管建筑物可能没有屋顶和/或地面)。内部壁不必是全高的;相反,它可从房间的下边界(比如地板)到房间的上边界(比如天花板)不完全地延伸。因此,内部壁可对应于环境的房间或区域之间的分隔元件。
路径可基于各种环境约束条件确定,以寻找从端点到外部壁的合适路径。作为示例,这样的约束条件可会限制路径进入可导航区域502(因为这与机器人装置获得的导航数据相反,表示该区域没有被物体占据,比如壁)。这些约束条件可约束路径以直线或具有有限数量的曲线段行进,因为这对应于典型的内部壁结构。这种直线可被约束为优先沿着与导航地图500相关联的纵向轴线508(其在参考图5和图6描述的导航地图500的再定位之后可以是水平或垂直方向),或相对于这些轴线508在预定的角度(比如45度角度处)处。应注意的是,这里提到的“水平”和“垂直”可同样适用于二维中的任意两个正交轴线。路径可被限制为尽可能短,且受到其他约束。通过确定从端点(例如其对应于导航地图500内的一个像素或相对较少数量的像素)到外部壁(其通常对应于比端点大许多数量的像素)的路径,反之亦然,要探索或其他方式调查的路径的数量可被减少。这允许更有效地确定路径。
在一些情况下,内部壁的识别包括优化成本函数,以识别从该至少一个端点的端点到环境中的目标位置的路径。例如,目标位置对应于与环境的边界相对应的外部壁。例如,成本函数可用于约束上面描述的路径。成本函数可包括第一成本项(以对延伸到至少一个预定方向外部的输入路径(比如延伸到水平或垂直方向外部的路径)进行惩罚),或第二成本项(对输入路径的方向中的改变进行惩罚)中的至少一个。
从门道520a的端点522a开始的跨过导航地图500的各种不同路径可被研究。在沿路径的每个点处,可有预定数量的允许步骤。例如,在每个点处,路径可向上移动一个像素,向下移动一个像素,向左移动一个像素,向右移动一个像素,或向4个对角线方向移动,从而在每个点处总共给出8个允许步骤。此外,该允许步骤可被限制在被占据区域504内。对于每个允许步骤,下列费用可被分配:
·水平/垂直步骤,成本=1
·对角线步骤,成本=2
·改变方向到水平或垂直方向,成本=5
·改变方向到对角线方向,成本=8
通过组合成本项(比如对于路径的每一步骤,添加每步骤成本),任何路径的总成本可被获得。优化成本函数的路径(例如其对应于成本项的总和或其他组合)可被选择作为内部壁。例如,该内部壁可被作为具有最小总成本的路径。
在一些情况下,不可导航区域504可在大小上进行扩展(例如增加少量像素),以解决不可导航区域504的任何不均匀边缘的问题,例如由于不完整或不准确的导航数据。在获得该路径对应于内部壁之后,该路径的尺寸可被增加,例如通过对应于导航地图500的路径增厚一线,这可使用地图(其包括内部壁)通过减少碰撞的可能性(如果内部壁的位置在地图上稍微不同于环境中的内部壁的实际位置,该碰撞可能以其他方式发生)改善机器人装置在环境内的导航。
在一些情况下,成本函数优化(或对从端点到外部壁的可能路径的其他研究)可在满足预定标准(比如总成本满足或低于成本阈值)时被停止。这可减少研究路径的数量,提高该方法的效率。
在一些情况下,可能无法确定从端点522a到外部壁的路径。如果端点522a位于可导航区域502内,可能会出现这种情况。在这种情况下,图13中的方法600涉及试图识别两个门道之间的内部壁,而不是从门道到外部壁。图13中的项目608包括确定从端点(例如,其是第一门道的第一端点)到与环境的第一房间和第三间房间之间的第二门道相关联的第二端点的路径。如果这样的路径被确定,则项目610涉及识别该路径对应于第二内部壁(其从第一门道延伸到第二门道),而不是第一房间和第二房间之间的第一内部壁。
路径的确定在这种情况下可类似于从端点到外部壁的路径的确定但研究从第一端点到第二端点(或到环境中的其他门道的端点)的路径而不是从第一端点到外部壁的路径而被执行。
如果没有路径从端点到外部壁或到另一门道的端点被确定,则该端点在图13中的项目612处被抛弃。通过这种方式,寄生端点可被移除,比如与环境中实际门道的端点不对应的额外端点。
应理解为,图13中的项目602-606项可在没有项目608-612的情况下被执行,反之亦然。
在一些情况下,不必要的内部壁可在图13中的方法600已被执行后仍然存在,例如,两个房间之间具有不止一个门道,但这些门道中的一个太宽,且由此已被抛弃。为了移除这种寄生的内部壁,图14中的方法700可被执行。
在图14中的项目702处,确定与内部壁相关联的壁区域是否至少与和第一房间相关联的第一区域和与第二房间相关联的第二区域重叠。如果是,则在项目704处,内部壁将被保留在环境地图中。否则,在项目706处,内部壁被抛弃。
移除寄生的内部壁的另一示例被示出在图15中的方法800中。在图15中的项目802处,门道的多个端点被识别。在项目804处,确定与门道相关联的多个端点中的每一个是否连接到与该环境的边界相关联的外部壁或与该环境中的另一门道相关联的端点的至少一个。如果是,那么与门道和外部壁之间的相应路径相对应的内部壁或与另一门道相关联的端点被保留在环境地图中。否则,在图15中的项目806处,内部壁被抛弃。门道本身也可被移除,或指示为不再与环境中的门道相对应。这可用于从导航地图500中移除寄生的内部壁和/或门道。在其他情况下,在确定内部壁连接到外部壁或与另一门道相关联的端点(在项目804处)后,内部壁可被添加到环境地图中。
在内部壁524的识别后导航地图500的例证被示意性地示出在图16中。图11中的门道520从图16中被省略,以增强内部壁524的可见性。导航地图500在经过识别内部壁524的处理后,可被认为对应于环境地图(其可被机器人装置使用用于与环境的进一步交互)。
在一些情况下,内部壁的识别可基于环境内的特征被改进。图17中的示例示意性地示出了导航地图900,其包含表示环境中空间占用率的特征924的表示。图17的元件与图8的相应元件类似,标签上的参考数字相同,但以9而不是5作为前缀;图17表示与图8的导航地图500处于同一处理阶段的导航地图900,但对于导航地图900包含特征924。例如,特性924对应于家具或沿或接近环境的壁的其他物体。通过使用特征924的位置,内部壁的位置可被进一步约束。例如,优化为识别从与门道相关联的端点到环境中的目标位置的路径的成本函数可包括成本项,用于奖励与特征924的位置一致的输入路径。这个成本项可为除了上面讨论的第一和第二成本项之外的第三成本项。
特征924可由特征数据表示,例如其是从同步定位和绘制(SLAM)***中获得。在这种情况下,例如,该特性部是SLAM特征,表示由SLAM***识别的环境特征。这些特征可对应于机器人装置不一定探测到的环境中的位置,例如清洁期间。例如,特征924可位于房间的壁上的一定高度处。例如,特征924可对应于架子或架子上的物体。架子不一定能被运动跨过房间地面的相对较小的机器人装置观察到或碰撞到,但可使用SLAM***检测到。因此,通过使用特征924,内部壁识别可被改善。为了明确地识别与位于环境的壁上至少一半上的物体相对应的特征,可确定该特征被放置在满足高度条件的高度上。例如,高度条件是最小高度,例如1米。例如,位于最小高度以上的高度处的特征可被保留,且在内部壁识别期间被使用。其他特征可被抛弃。
在一些情况下,特征924是SLAM特征,低通过滤器可被应用到SLAM点的图像,消极成本(或积极奖励)可在输入路径的每个像素处被积累,其与低通过滤的SLAM特征地图的值成比例,使得行进通过更多特征点的壁接收更大的奖励。在这种情况下,低通过滤的SLAM特征的像素和导航地图的像素之间的通信可被确定,以便确定给定路径的总成本,例如其包括通过穿过导航地图获得的第一和第二成本项和通过穿过SLAM特征地图获得的第三成本项。
在一些情况下,门道的端点被处理以识别门道的顺序来识别内部壁,其通常取决于门道所在的两个房间之间的重叠区域的尺寸。然而,由于内部壁可连接到其他内部壁,因此,识别内部壁的顺序可影响环境的输出地图。图18中的方法1000是流程图,示出了识别内部壁的示例顺序。
在项目1002处,一组候选门道被识别。例如,该组候选门道是如图11中所示的门道520。在项目1004处,根据门道特征,该组候选门道被拣选入处理顺序。例如,门道特征可包括门道与另一门道之间的距离、门道与外部壁之间的距离或与门道相关联的房间的尺寸中的至少一个。在项目1006处,该组候选门道按处理顺序被处理,以识别环境中的一组候选内部壁。例如,一组候选内部壁包括第一房间516f和第二房间516b之间的内部壁。
用于绘制环境地图的示例***
图19是示意图,示出了根据示例用于绘制环境地图的***1100的某些部件。***1100被布置为处理来自自主机器人装置的导航数据1102,以绘制环境地图。***1100包括绘制引擎1104,以绘制环境地图。***1100可形成图2A和2B中所示的机器人装置200,250的一部分,和/或远离自主机器人装置的控制***的一部分,例如服务器计算装置。
绘制引擎1104包括定向引擎1106,以处理导航数据1102以定向由导航地图1102表示的导航地图,使得与导航地图相关联的轴线沿预定的方向对齐,如上述参考图5和图6所述的。定向引擎1106在一些情况下(例如导航地图在被绘制引擎1104接收之前就已经定向了)或导航地图的再定位被省略了的情况下可被省略。
绘制引擎1104还包括房间识别引擎1108,以识别环境中的第一房间和第二房间,其中第一房间邻近于第二房间。此外,绘制引擎1104包括门道识别引擎1110,用于确定与第一房间和第二房间之间的门道相关联的至少一个端点。绘制引擎1104还包括壁识别引擎1112,以使用该至少一个端点来识别第一房间和第二房间之间的内部壁。因此,绘制引擎1104包括执行本文描述的绘制环境地图的任一方法的部件。
图19的***1100被布置为生成表示环境地图的地图数据1114。例如,地图数据1114可表示经过处理以识别内部壁之后的导航地图。
图20示意性地示出了***1200的另一示例,该***用于处理来自自主机器人装置的导航数据以绘制环境地图。***1200被布置为接收用户定义的环境数据1202,该环境数据表示环境中用户定义的壁,门道或物体。该用户定义的环境数据1202通过***1200的接口1204被接收。例如,接口1204是计算***或***(如图19中的***1100)的接口。这将参考图28进一步讨论。图20中的***1200被布置为基于用户定义的环境数据1202更新环境的地图,以生成更新的地图1208。
这被示意性地示出在图21中。图21示出了图16中的导航地图500,其可通过图形用户接口(GUI)呈现给用户。例如,导航地图500可使用与用户设备相关联的GUI被显示在用户设备(比如计算机或移动设备)的显示屏上。在这个实施例中,用户向导航地图500添加了额外的、用户定义的门道526的表示。例如,这可使用GUI通过绘制或以其他方式指示导航地图500上的门道526的位置被执行。
在接收到用户定义的环境数据1202后,该内部壁识别过程可被至少部分重新执行,以识别环境中的新的内部壁。在这种情况下,在接收到用户定义的环境数据1202(在这种情况下,该数据表示用户定义的门道)之后,与用户定义的门道相关联的端点可如本文中描述的被识别。于是,环境中的内部壁可使用这些端点被识别。在这种方式中,两个新的内部壁528a,528b可被识别,且添加到导航地图500中,如图22中示意性地所示。在这种方式中,导航地图500可被更新。
如果用户定义的壁(其可为内部壁或外部壁)或特征被***1200获得,类似的方法也可被采用。如果用户定义的内部壁被接收,则用户定义的内部壁可被添加到导航地图500中。这可在没有重新识别环境中的其他内部壁的情况下,或在尝试重新识别其他额外的内部壁之后(因为添加新的内部壁可会影响是否其他内部壁被识别或没有)被执行。同样地,如果用户定义的外部壁或特征(例如SLAM特征)被添加,则环境中的内部壁可被重新识别。
用于绘制环境地图的第二示例方法
图23是流程图,示出了根据本文的第二实施例绘制环境地图的方法1300。
在图23的项目1302处,导航数据是从自主机器人装置获得。导航数据及其获取方式可类似于参考图4中的项目402所述。
在图23的项目1304中,导航数据用于识别环境中预测的壁区域。在这个实施例中,预测的壁区域可被视为环境中被占据的、不可导航的或未被探索的区域,比如图24中所示的导航地图1400中的不可导航区域1404。图24中的导航地图1400类似于图8中的导航地图500,在这个实施例中,它经历了与图8中的导航地图500的相同的处理。与图8中的对应元件相同的图24中的元件被标记为具有相同的引用,但是以14作为前缀,而不是5。
在图23中的项目1306处,预测的壁区域用于识别环境中的第一房间和第二房间之间的门道。根据第二示例的门道的识别的示例被示意性地示出在图24中。在这个实施例中,门道识别涉及到预测壁区域(在这种情况下对应于不可导航区域1404)之间相对较小的开口或其他间隙的识别。这可涉及识别在预定方向上的壁开口,例如沿与导航地图1400相关联的纵向轴线。在这种情况下,在水平或垂直方向上的壁开口是被识别,尽管这仅仅是示例的。
为了识别门道,壁开口的宽度可根据壁开口条件被评估。这可对应于绝对宽度值或相对宽度值(宽度可与其相比被比较)。因此,这可为类似于确定门道是否满足宽度条件。例如,如果壁开口的宽度超过标准的双门道的宽度,则壁开口可被抛弃。此外,壁部分到壁开口的任一侧的长度(沿壁开口的纵向方向)可被确定,以评估壁开口是否与门道相对应。例如,如果这样的壁部分是相对较小的(或如果壁部分到壁开口的任一侧都是相对较小的),例如小于预定的绝对或相对阈值,则壁开口可被认为不与门道相对应。
图24示出了使用此方法识别的门道(1430a-1430f,统称为1430)。这种方法可识别出的假定门道的数量比环境中实际存在的门道的数量要多。通过对导航地图的进一步处理,门道的数量可被减少,如下文进一步讨论的。在一些情况下,识别出的门道可与相应的可能性相关联,指示壁开口实际对应于环境中的实际门道的估计可能性。这种可能性可为基于门道的尺寸或位置,或其他特征,比如壁部分到门道的一侧或两侧的长度。
通过识别环境中的门道,门道的端点也可被识别。例如,壁开口的端部可被认为对应于与门道相关联的端点。在这种方式中,导航数据可用于确定与门道相关联的至少一个端点。
于是,与环境中在第一房间和第二房间之间的门道相关联的该至少一个端点可用于识别第一房间和第二房间,如图25中示意性地所示。图25以简化的形式示出了导航地图1600的一部分,以方便说明。在图25中,门道1602被识别出,例如使用参考图23和图24所描述的方法。例如,门道1602可通过识别与门道1602相关联的至少一个端点被识别。在这种情况下,该至少一个端点包括第一端点1604a和第二端点1604b,该第一端点对应于与环境相关联的第一预测壁区域1606a的端部,该第二端点1604b对应于与环境相关联的第二预测壁区域1606b的端部。该端点用于确定门道1602的位置(例如,通过确定第一和第二端点1604a,1604b之间的宽度满足壁开口条件)。环境中的第一房间1608a和第二房间1608b在这种情况下是基于门道1602的位置被识别的。例如,在找到门道1602之后,房间分割过程可被应用到导航地图1600。
在图25中的实施例中,聚集过程基于门道1602的位置被应用到导航地图1600。例如,这种聚集过程是空间聚集,因为二维空间的单元(例如对应于导航地图1600的像素,表示环境的相应区域)被聚集到房间中。这种聚集可包括光谱聚集,例如被应用于空间部分的光谱聚集,如由导航地图1600的相应部分表示。
一般来说,光谱聚集过程将每个可导航的或未占占据的像素作为双向图上的节点,且使用像素之间距离度量(比如欧氏距离)作为与不同节点之间的边缘相关联的权重。于是,图表可被划分为群集,基于距离度量,彼此相对接近的节点被分组到相同的群集中。
在这种情况下,门道1602的第一侧部上的第一位置(例如导航地图1600中对应于第一房间1608a的区域内)和在门道1602的第二侧部上的第二位置1610b(例如导航地图1600中对应于第二房间1608b的区域内)之间的距离度量被确定。而不是距离度量表示环境中的第一和第二位置1610a,1610b之间的实际距离1612,在这种情况下,距离度量的值可不同于这个距离1612以便鼓励该位置分组到对应于不同房间的不同的群集。例如,距离度量的值可大于第一和第二位置1610a,1610b之间的距离1612。这可为普遍在导航地图1600的像素,以使如果导航地图1600的两个像素由门道1602分离,它们的两两距离大于它们的实际距离(例如由对应于像素的环境内的位置之间的两两欧式距离捕获)。
两个位置之间的距离度量可与这些位置之间的至少有一个门道的可能性成正比。例如,第一位置和第二位置1610a,1610b之间的两两距离可被认为是这些位置之间的几何距离(比如欧氏距离)和环境中门道1602对应于实际门道的可能性的加权和。如果门道1602很有可能对应于实际门道,那么对应于第一和第二位置1610a,1610b的导航地图1600的像素将通常在聚集之后会位于两个不同的群集中。相反地,如果门道1602较小可能对应于实际门道,则相对于几何距离的贡献,可能性对两两距离的贡献被减小。因此,在这种情况下,第一和第二位置1610a,1610b主要基于它们的几何距离进行聚集。
这个距离度量可通过使用导航数据被使用在聚集过程中以产生环境图表表示。在图表表示中,第一位置1610a可被采取为对应于图表表示的第一节点,第二位置1610b可被采取为对应于图表表示的第二节点。图表的第一节点和第二节点之间的表示的边缘可使用距离度量来加权。于是图表表示可被分为至少与第一房间1608a相对应的第一部分和与第二房间1608b相对应的第二部分。于是,与图表表示的第一部分中的位置相对应的像素(由相应的节点表示)可与第一房间1608a相关联。同样地,于是,与图表表示的第二部分中的位置相对应的像素(由相应的节点表示)可与第二房间1608b相关联。
通过使用这种距离度量(与其他表示像素之间实际距离的距离度量相比,其可被认为是一种改进的距离度量),导航地图1600到房间的分割可被改善。例如,导航地图1600可被划分为比其他距离度量更合适的房间数量,其可将导航地图1600划分为比环境中现有的更大数量的房间。
在识别环境中的房间之后,较小或寄生的房间可被移除,例如使用关于第一实施例的上面描述的方法,如图9中示意性地所示。
使用该至少一个端点识别的第一间和第二房间可用于识别环境中的内部壁。例如,虽然预测的壁区域可具有锯齿状或不均匀的边缘,其对应于已占据、不可航行或已探索区域的边缘,但内部壁可具有更接近或更能表示可能或实际壁形状的形状。在一些情况下,内部壁在形状上可为直的或直线形的,或具有有限数量的弯曲段。内部壁的方向可与与导航地图1600相关联的轴线的方向对齐,比如水平或垂直方向。通过以这种方式识别内部壁,更准确的环境表征可被获得,改善未来机器人装置对环境的导航或与环境的交互。
在一些情况下,内部壁的识别包括生成第一房间1608a的第一直线表示和生成第二房间1608b的第二直线表示。例如,房间的直线表示是由一系列直线组成的,这些直线可沿着一组预定的方向(比如水平或垂直方向)中的一个排列。直线表示可对应于直线多边形,其中多边形的所有边缘以直角相交。在这种情况下,房间可被表示为矩形或其他直线多边形形状。
例如,内部壁可使用第一直线表示,第二直线表示和门道1602被识别,以便内部壁具有对应于门道1602的适当的间隙或开口,因此内部壁也是直线形状的。进一步的限制还可被应用。例如,第一和第二直线表示可被限制为特定的形状。如果两个房间彼此相邻的,两个房间之间的内部壁的宽度可被确定,且与壁的宽度条件进行比较。如果宽度不能满足壁宽度条件(例如太宽或两个房间被两个单独的壁隔开),房间和/或内部壁的形状可被适当调整,直到壁宽度条件被满足。同样地,两个相邻的房间(每个房间邻接相同的其他房间(例如其对应于环境中的走廊))之间的对齐可被检查。如果与房间相关联的内部壁没有对齐,房间的形状或大小可被改变,或内部壁的位置可被改变,以便内部壁沿走廊房间的侧部行进是直的。图23的导航地图1400所表示的环境的直线表示1700被示意性地示出在图26中,图26示出了壁被识别,其包括内部壁1702和外部壁1704。图26的直线表示1700可被认为对应于环境的直线地图。
用于与本文中的方法一起使用的***和设备的实施例
图27A-27D是示意图,示出了根据实施例绘制环境地图中使用的各种***。图27A中的***1800包括机器人装置1802、用于绘制环境地图的***1804(比如图19和图20中的***1100,1200)和用户设备1806。例如,机器人装置1802是自主机器人装置,如参考图2A和2B中所述的。例如,***1804是计算***,其包括任何具有数据处理能力的适当的电子设备。计算***1000可为单一的计算装置(例如台式电脑、笔记本电脑、移动和/或嵌入式计算装置)或可为分布式计算***,其被分布在多个独立的计算装置(例如某些组件可基于来自一个或多个客户端计算装置的请求有一个或多个服务器计算装置通过网络被执行)。用户设备1806可为任何适当的用户计算***,且可为移动设备,比如手机,例如智能手机、平板电脑、笔记本电脑或个人电脑。
这些部件的每个通过网络1808被通讯地耦合到彼此。网络1808可为无线网络1808。例如,通过网络在这些部件之间的数据的通讯可包括通过无线网络或连接的无线传输。在其他情况下,这些部件的一些或所有可被直接地耦合到彼此,例如通过通用串行总线(USB)连接,而不是通过网络1808(其可包括一个或多个计算机网络)被间接地耦合。
在这种情况下,***1804可位于远离机器人装置1802的服务器***上,其本身可为分布式服务器***。这样的服务器***可具有比机器人装置1802更多的计算资源,因此能够比机器人装置1802更快地识别内部壁。例如,机器人装置1802可获得导航数据,且可通过网络1808将导航数据传输到***1804。***1804可处理导航数据以绘制环境地图,从而生成环境地图的地图数据表示,其包括环境内的内部壁的表示。地图可通过网络1808被传输到机器人装置1802和/或用户设备1806。在一些情况下,该地图可被传输到用户设备1806,以获得用户输入,比如上面讨论的用户定义的环境数据。用户定义的环境数据可被传输到***1804,然后***可更新环境的地图。更新后的环境地图可返回给用户设备1806和/或机器人装置1802以供进一步使用或处理。
图27B,27C和27D示出了用于绘制环境地图的***的另一实施例。图27B,27C及27D类似于图27A中的相应特征,其以相同的参考数字标示,但以19,20及21为前缀,而非18。
图27B中的***1900包括机器人装置1902和用户设备1906,它们通过网络1908被连接(然而,在其他情况下,机器人装置1902和用户设备1906可被直接连接)。在这种情况下,机器人装置1902可生成环境地图,其通过网络1908被传输到用户设备1906。替代地,机器人装置1902可生成或以其他方式获得导航数据。导航数据可通过网络1908被传输到用户设备1906。用户设备1906可对导航数据进行处理,生成环境地图,其可被传输回到机器人装置1902,以便对环境进行进一步的探索或导航。
图27C中的***2000包括机器人装置2002和***2004,例如其是远侧服务器***。机器人装置2002和***2004通过网络2008被连接。图27C中的***2000与图27B中的***相同,不同之处是用户设备1906被***2004所取代。
在图27D的***2100中,环境地图的绘制在机器人装置的局部被执行。在这个实施例中,例如***2100对应于包括***2104的计算***,该***被布置为生成包括门道和内部壁的环境地图。该***2100还包括捕捉装置,在这个实施例为相机2110,其被布置为用于通过自主机器人装置获取表示对环境的观察的图像数据。图像数据可对应于导航数据,或可通过其他方式被处理以获得导航数据(例如,确定机器人装置观察到的环境占用情况)。
图28A示意性地示出了用于根据另一实施例绘制环境地图的计算***2200的部件。计算***2200可为单一的计算装置,也可为分布式计算***。
计算***2200包括相机2202,在这种情况下是摄影机,其被布置为提供视频的框架,例如其包括对场景的观察。该计算***2200包括图像处理***2204,其被布置为实施按照本文所述的方法。在图28A中,图像处理***2204被布置为对相机2202所获得的图像数据进行处理,以获得导航数据。
计算***2200还包括跟踪***2206,其被布置为确定相机2202在观察场景期间的姿势。计算***2200包括绘制***2208,其被布置为使用导航数据生成环境地图。在其他实施例中,绘制***2208可被布置为生成至少一个其他的环境地图,比如环境的深度或语义地图。
跟踪和绘制***2206,2208可形成同步定位和绘制(SLAM)***的一部分。在机器人绘制和导航领域中的SLAM***作用于构建和更新未知环境的地图,同时同步定位与该环境中的地图相关的机器人装置。例如,机器人装置可为构造、更新和/或使用地图的设备。如图17所示,这种SLAM***可用于提供表示环境观测特征的特征数据。这些特征可用于识别环境中的内部壁,这些内部壁可用于生成或更新环境的地图。
图28B是示意图,示出了根据实施例的机器人装置2300的部件。机器人装置2300包括图28A中的计算***2200。机器人装置2300还包括一个或多个促动器2302,以使机器人装置2300能够与周围的三维环境进行交互。至少一部分周围的三维环境可被显示在由计算***2200的相机2202捕获的场景中。在图28B的情况下,机器人装置2300可被配置为在机器人装置2300导航特定环境时捕获图像数据。不过,在另一种情况下,机器人装置2300可扫描环境,或对从第三方接收的图像数据进行操作,比如使用移动设备或另一机器人装置的用户。当机器人装置2300处理图像数据时,它可被布置为获取导航数据,环境地图可从该导航数据获得。
机器人装置2300还包括交互引擎2304,其包括控制一个或多个促动器2302的至少一个处理器。图28B中的交互引擎2304可被配置为使用由机器人装置2300获得的地图来控制机器人装置2300与周围三维环境进行交互。例如,该地图可用于识别机器人装置2300执行的特定清理例程,例如,该例程比其他例程更有效率,其中机器人装置2300与环境中的壁或物体之间的碰撞更少。
参考图28A和图28B所描述的功能部件的实施例可包括专用的处理电子设备和/或可通过由至少一个计算装置的处理器执行的计算机程序代码的方式被执行。在某些情况下,一个或多个嵌入式计算装置可被使用。这里所述的部件可包括至少一个处理器,其与存储器联合操作,以执行被加载到计算机可读介质上的计算机程序代码。这种介质可包括固态存储器,比如可擦可编程只读存储器,且计算机程序代码可包括固件。在其他情况下,该部件可包括适当被配置的***芯片、专用集成电路和/或一个或多个适当编程的现场可编程门阵列。在一种情况下,部件可通过计算机程序代码和/或专用处理电子设备在移动计算装置和/或桌面计算装置中被执行。在一种情况下,部件可通过执行计算机程序代码的一个或多个图形化处理单元被执行,可附加地或替代地先前地实施例。在某些情况下,部件可通过一个或多个并行执行的函数被执行,例如在多个处理器和/或图形化处理单元的核心上。
图29是示意图,示出了根据实施例的用户设备2400的部件。用户设备2400包括存储器2402。该存储器2402可包括至少一种易失性存储器,比如随机存取存储器(RAM)和非易失性存储器,比如只读存储器(ROM)或固态驱动器(SSD),比如快闪存储器。至少一个处理器2404通讯地被耦合到存储器2402。
图29中的存储器2402包括计算机程序指令,其被配置为当由至少一个处理器2404处理时,如本文的实施例中所述的绘制环境地图。计算机程序指令可被存储在可访问的非暂时性计算机可读介质中,且被加载入存储器(例如存储器2402)以执行这些方法。这些指令示意性地被示出在图中,与执行本文方法的***2406相对应。在这个实施例中,通过***2406获得的地图2408也被存储在存储器2402中。其他数据也可附加地被存储在***2406中,比如要处理以生成地图2408的导航数据,或从用户接收的用户定义的环境数据。
在这个实施例中,用户设备2400包括图像数据接口2410,其用来接收来自自主机器人装置的图像数据,用户设备2400可处理(或可发送到远程设备进行处理)以获得导航数据。图像数据接口2410可为任何适当的接口,以允许用户设备2400和机器人装置之间的数据通讯。
图29中的实施例中的用户设备2400的部件使用***总线2412进行互连。这允许数据在各种部件之间传输。例如,该方法根据实施例生成的环境地图可被存储在存储器2402中,且随后通过***总线2412从存储器2402传输到显示设备接口2414,用于传输到显示设备2416进行显示。显示设备接口2414可包括显示端口和/或内部电子接口,例如,其中显示设备2416是用户设备2400的一部分,比如智能手机的显示屏。因此,当通过显示设备接口2416由至少一个处理器2404发出指令时,显示设备2416将显示环境的地图。
图30是示意图,示出了处理器2502和非暂时性计算机可读存储介质2504(其包含计算机可执行指令2506)的实施例2500。当处理器2504执行计算机可执行指令2504时,会导致计算***(比如包含处理器2504的计算***)执行上面描述的任何示例方法。例如,计算机可读存储介质2504可被布置为存储从自主机器人装置获得的导航数据2508。当处理器2502执行计算机可执行指令2406时,该计算机可执行指令可被配置为使计算***处理导航数据2508以获得环境的地图2510,该地图2510可被存储在计算机可读存储介质2504中。虽然在图30中,导航数据2508和地图2510被示出为被存储在计算机可读存储介质上,在其他实施例中,导航数据2508和地图2510中的至少一个可被存储在存储器(其在计算机可读存储介质2504的外部但可以访问)中。
上述实施例可理解为作为说明性的。其他实施例被设想。
应理解为关于任何一个实施例描述的任何特征可被单独使用,或与描述的其他特征组合使用,且也可与任何其他实施例中的一个或多个特征组合使用,或任何其他的实施例的任意组合。此外,在不背离所附权利要求的范围的情况下,上述未描述的当量和修改也可被使用。
Claims (25)
1.一种绘制环境地图的方法,所述方法包括:
从自主机器人装置获得导航数据;
使用导航数据识别环境内的第一房间和第二房间,其中第一房间邻近第二房间,包括:
确定第一房间和第二房间之间的门道的至少一个端点;以及
使用所述至少一个端点识别第一房间和第二房间之间的内部壁。
2.根据权利要求1所述的方法,包括使用导航数据以识别与所述环境的边界相关联的外部壁,其中识别内部壁包括:
确定从所述至少一个端点的端点到所述外部壁的路径;以及
识别所述路径对应于所述内部壁。
3.根据权利要求1所述的方法,其中所述门道是第一门道,所述内部壁是第一内部壁,所述方法包括:
确定从所述至少一个端点的第一端点到与所述环境的第一房间和第三间房间之间的第二门道相关联的第二端点的路径;以及
识别所述路径对应于第二内部壁。
4.根据权利要求1-3中任一项所述的方法,其中识别内部壁包括:
优化成本函数,以识别从所述至少一个端点的端点到所述环境内的目标位置的路径;以及
使所述路径对应于内部壁。
5.根据权利要求4所述的方法,其中所述成本函数包括以下至少一项:
第一成本项,用于惩罚延伸到至少一个预定方向的外部的输入路径;或
第二成本项,用于惩罚输入路径的方向中的改变。
6.根据权利要求4所述的方法,包括获得表示所述环境内的一特征的位置的特征数据,其中该特征指示该环境内的空间占用率,
其中,所述成本函数包括:
第三成本项,用于奖励与所述特征的位置一致的输入路径。
7.根据权利要求1-3中任一项所述的方法,其中所述门道是第一门道,所述内部壁是第一内部壁,所述方法包括:
识别包含第一门道的一组候选门道;
根据门道特征,拣选所述一组候选门道进入处理顺序;以及
以处理顺序处理所述一组候选门道,以识别出所述环境内的一组候选内部壁,所述一组候选内部壁包含第一内部壁。
8.根据权利要求7所述的方法,其中,所述门道特征包括以下至少一项:
门道和另一门道之间的距离;
门道和与环境的边界相关联的外部壁之间的距离;
与门道相关联的房间的尺寸。
9.根据权利要求1-3中任一项所述的方法,其中识别所述至少一个端点包括:
确定与第一房间相关联的第一区域和与第二房间相关联的第二区域之间的重叠区域;以及
基于重叠区域确定门道的位置。
10.根据权利要求1-3中任一项所述的方法,包括:
确定与所述门道相关联的多个端点,所述多个端点包括所述至少一个端点;
确定与门道相关联的多个端点中的每一个连接到以下之一:与该环境的边界相关联的外部壁或与所述环境内的另一门道相关联的端点;并且随后将内部壁添加到环境地图中。
11.根据权利要求1-3中任一项所述的方法,包括确定与内部壁相关联的壁区域至少与和第一房间相关联的第一区域及和第二房间相关联的第二区域重叠。
12.根据权利要求1-3中任一项所述的方法,包括在确定所述至少一个端点之前识别第一房间和第二房间。
13.根据权利要求1所述的方法,其中使用导航数据包括:
使用导航数据识别与环境相关联的预测壁区域;以及
使用预测壁区域来识别第一房间和第二房间之间的门道。
14.根据权利要求1或权利要求13所述的方法,其中使用导航数据包括:
使用导航数据来确定所述至少一个端点;以及
使用所述至少一个端点来识别第一房间和第二房间。
15.根据权利要求14所述的方法,其中:
所述至少一个端点包括:
与和环境相关联的第一预测壁区域的端部相对应的第一端点;以及
与和环境相关联的第二预测壁区域的端部相对应的第二端点;以及
使用所述至少一个端点来识别第一房间和第二房间包括:
使用第一端点和第二端点来确定门道的位置;以及
基于门道的位置识别第一房间和第二房间。
16.根据权利要求1或权利要求13任一项所述的方法,其中所述导航数据表示导航地图,且识别第一房间和第二房间包括:
使用所述至少一个端点识别所述门道的位置;以及
基于门道的位置对导航地图应用聚集过程。
17.根据权利要求1或权利要求13任一项所述的方法,包括确定门道的第一侧上的第一位置和与门道的第一侧相对的第二侧上的第二位置之间的距离度量。
18.根据权利要求1或权利要求13任一项所述的方法,包括使用由所述至少一个端点识别的第一房间和第二房间来识别内部壁。
19.根据权利要求1-3中任一项所述的方法,包括在识别内部壁之前确定门道的宽度满足宽度条件。
20.根据权利要求1-3中任一项所述的方法,其中使用导航数据来识别环境内的第一房间和第二房间包括:
识别与第一房间相关联的第一区域内的多个房间;
确定所述多个房间中的至少一个不满足面积条件;以及
合并所述多个房间以在确定所述至少一个端点之前限定第一房间。
21.根据权利要求1-3中任一项所述的方法,其中所述导航数据表示环境的导航地图,所述方法包括从导航地图中移除物体的表示,其中所述物体从环境的边界断开。
22.一种***,其被布置为处理来自自主机器人装置的导航数据,以绘制环境地图,所述***包括:
房间识别引擎,其用于识别环境内的第一房间和第二房间,其中第一房间邻近于第二房间;
门道识别引擎,其用于确定第一房间和第二房间之间的门道的至少一个端点;以及
壁识别引擎,其用于使用所述至少一个端点识别第一房间和第二房间之间的内部壁。
23.一种计算***,包括:
根据权利要求22所述的***,其中所述***被安布置为生成包括门道和内部壁的环境地图;以及
捕获装置,其用于通过自主机器人装置获取表示环境观察的图像数据。
24.一种机器人装置,包括:
根据权利要求23所述的计算***;
一个或多个促动器,其使机器人装置能够与环境交互;以及
交互引擎,其包括至少一个处理器,用于控制一个或多个促动器,
其中,所述交互引擎被配置为使用环境地图与环境进行交互。
25.一种包括计算机可执行指令的非暂时性计算机可读存储介质,当处理器执行该计算机可执行指令时,导致计算装置执行根据权利要求1-21中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1908432.6 | 2019-06-12 | ||
GB1908432.6A GB2584839B (en) | 2019-06-12 | 2019-06-12 | Mapping of an environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112087573A CN112087573A (zh) | 2020-12-15 |
CN112087573B true CN112087573B (zh) | 2022-04-19 |
Family
ID=67386319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010528248.0A Active CN112087573B (zh) | 2019-06-12 | 2020-06-11 | 环境的绘制 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112087573B (zh) |
GB (1) | GB2584839B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115393234A (zh) * | 2021-05-25 | 2022-11-25 | 速感科技(北京)有限公司 | 地图区域融合方法、装置、自主移动设备和存储介质 |
CN113359766B (zh) * | 2021-07-05 | 2023-06-23 | 杭州萤石软件有限公司 | 一种移动机器人的移动控制方法、以及移动机器人 |
GB2621371A (en) * | 2022-08-10 | 2024-02-14 | Dyson Technology Ltd | A method and system for exploring a real-world environment |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010164434A (ja) * | 2009-01-15 | 2010-07-29 | Hitachi Ltd | 空間情報管理システム、及び地図情報サーバ装置、並びに、プログラム |
CN104813365A (zh) * | 2012-11-30 | 2015-07-29 | 高通股份有限公司 | 基于图像的室内位置确定 |
CN104825101A (zh) * | 2014-02-12 | 2015-08-12 | Lg电子株式会社 | 机器人清洁器及其控制方法 |
CN107072457A (zh) * | 2014-08-20 | 2017-08-18 | 三星电子株式会社 | 清洁机器人及其控制方法 |
CN108885453A (zh) * | 2015-11-11 | 2018-11-23 | 罗伯特有限责任公司 | 用于机器人导航的地图的划分 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2398394B (en) * | 2003-02-14 | 2006-05-17 | Dyson Ltd | An autonomous machine |
US20050010331A1 (en) * | 2003-03-14 | 2005-01-13 | Taylor Charles E. | Robot vacuum with floor type modes |
US9140559B2 (en) * | 2009-10-01 | 2015-09-22 | Qualcomm Incorporated | Routing graphs for buildings using schematics |
US8698671B2 (en) * | 2009-10-16 | 2014-04-15 | Qualcomm Incorporated | Binning venues into categories based on propagation characteristics |
US10488865B2 (en) * | 2014-12-16 | 2019-11-26 | Al Incorporated | Methods and systems for robotic surface coverage |
CN104898660B (zh) * | 2015-03-27 | 2017-10-03 | 中国科学技术大学 | 一种提高机器人路径规划效率的室内地图构建方法 |
CN106325266A (zh) * | 2015-06-15 | 2017-01-11 | 联想(北京)有限公司 | 一种空间分布图的构建方法及电子设备 |
WO2017152390A1 (zh) * | 2016-03-09 | 2017-09-14 | 广州艾若博机器人科技有限公司 | 地图构建方法、纠正方法及装置 |
JP7073336B2 (ja) * | 2016-08-05 | 2022-05-23 | ロブアート ゲーエムベーハー | 自律移動ロボットを制御する方法 |
DE112017006018T5 (de) * | 2016-12-30 | 2019-09-12 | Robert Bosch Gmbh | Mobile robotische vorrichtung, die unstrukturierte daten von innenumgebungen verarbeitet, um räume in einer einrichtung zu segmentieren, um die bewegung der vorrichtung durch die einrichtung zu verbessern |
CN109308838A (zh) * | 2018-09-11 | 2019-02-05 | 中国人民解放军战略支援部队信息工程大学 | 一种基于室内地图的室内空间拓扑路网生成方法及装置 |
-
2019
- 2019-06-12 GB GB1908432.6A patent/GB2584839B/en active Active
-
2020
- 2020-06-11 CN CN202010528248.0A patent/CN112087573B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010164434A (ja) * | 2009-01-15 | 2010-07-29 | Hitachi Ltd | 空間情報管理システム、及び地図情報サーバ装置、並びに、プログラム |
CN104813365A (zh) * | 2012-11-30 | 2015-07-29 | 高通股份有限公司 | 基于图像的室内位置确定 |
CN104825101A (zh) * | 2014-02-12 | 2015-08-12 | Lg电子株式会社 | 机器人清洁器及其控制方法 |
CN107072457A (zh) * | 2014-08-20 | 2017-08-18 | 三星电子株式会社 | 清洁机器人及其控制方法 |
CN108885453A (zh) * | 2015-11-11 | 2018-11-23 | 罗伯特有限责任公司 | 用于机器人导航的地图的划分 |
Non-Patent Citations (1)
Title |
---|
《一种基于海马认知机理的仿生机器人认知地图构建方法》;于乃功 等;《自动化学报》;20180131;第52-70页 * |
Also Published As
Publication number | Publication date |
---|---|
GB201908432D0 (en) | 2019-07-24 |
GB2584839A (en) | 2020-12-23 |
CN112087573A (zh) | 2020-12-15 |
GB2584839B (en) | 2022-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112087573B (zh) | 环境的绘制 | |
Borrmann et al. | A mobile robot based system for fully automated thermal 3D mapping | |
US10852729B2 (en) | Moving robot and control method thereof | |
US10717193B2 (en) | Artificial intelligence moving robot and control method thereof | |
US9933264B2 (en) | System and method for achieving fast and reliable time-to-contact estimation using vision and range sensor data for autonomous navigation | |
CN104536445B (zh) | 移动导航方法和*** | |
Adán et al. | An autonomous robotic platform for automatic extraction of detailed semantic models of buildings | |
US11054839B2 (en) | Mobile robotic device that processes unstructured data of indoor environments to segment rooms in a facility to improve movement of the device through the facility | |
Turner et al. | Floor plan generation and room labeling of indoor environments from laser range data | |
CN110801180B (zh) | 清洁机器人的运行方法及装置 | |
CN110874100A (zh) | 用于使用视觉稀疏地图进行自主导航的***和方法 | |
Peasley et al. | Real-time obstacle detection and avoidance in the presence of specular surfaces using an active 3D sensor | |
Yue et al. | Fast 3D modeling in complex environments using a single Kinect sensor | |
Fiala et al. | Robot navigation using panoramic tracking | |
Gao et al. | A vision-based irregular obstacle avoidance framework via deep reinforcement learning | |
Li et al. | Indoor layout estimation by 2d lidar and camera fusion | |
Zheng et al. | Vision-based autonomous navigation in indoor environments | |
Delgado-Galvan et al. | Vision-based humanoid robot navigation in a featureless environment | |
Gao et al. | FP-Loc: Lightweight and Drift-free Floor Plan-assisted LiDAR Localization | |
CN115855086A (zh) | 基于自旋转的室内场景自主重建方法、***及介质 | |
Sun et al. | Research on path planning algorithm of indoor mobile robot | |
Holz et al. | Chapter Fast 3D Perception for Collision Avoidance and SLAM in Domestic Environments | |
Jamdagni et al. | Obstacle avoidance for mobile robot navigation in unknown environment using geometrical information of mobile camera images | |
Kadiofsky et al. | Off-road terrain mapping based on dense hierarchical real-time stereo vision | |
Manfredi et al. | Autonomous apartment exploration, modelling and segmentation for service robotics |
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 |