CN116745580A - 用于确定物理空间中的非静止对象的系统 - Google Patents

用于确定物理空间中的非静止对象的系统 Download PDF

Info

Publication number
CN116745580A
CN116745580A CN202280008821.2A CN202280008821A CN116745580A CN 116745580 A CN116745580 A CN 116745580A CN 202280008821 A CN202280008821 A CN 202280008821A CN 116745580 A CN116745580 A CN 116745580A
Authority
CN
China
Prior art keywords
data
determining
stationary
threshold
module
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.)
Pending
Application number
CN202280008821.2A
Other languages
English (en)
Inventor
S·格亚卡
B·牛
S·爱德华兹-帕顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN116745580A publication Critical patent/CN116745580A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control 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
    • G05D1/0251Control 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 extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/383Indoor data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0255Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0257Control of position or course in two dimensions specially adapted to land vehicles using a radar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/22Command input arrangements
    • G05D1/228Command input arrangements located on-board unmanned vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • G05D1/622Obstacle avoidance
    • G05D1/628Obstacle avoidance following the obstacle profile, e.g. a wall or undulated terrain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R1/00Details of transducers, loudspeakers or microphones
    • H04R1/20Arrangements for obtaining desired frequency or directional characteristics
    • H04R1/32Arrangements for obtaining desired frequency or directional characteristics for obtaining desired directional characteristic only
    • H04R1/326Arrangements for obtaining desired frequency or directional characteristics for obtaining desired directional characteristic only for microphones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R3/00Circuits for transducers, loudspeakers or microphones
    • H04R3/005Circuits for transducers, loudspeakers or microphones for combining the signals of two or more microphones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Otolaryngology (AREA)
  • Signal Processing (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Business, Economics & Management (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

物理空间包含不随时间移动的静止对象(例如,长沙发),并且可能具有随时间移动的非静止对象(例如,人和宠物)。自主移动装置(AMD)确定并使用静止对象的占用地图来找到物理空间中从一个点到另一点的路线。检测非静止对象并防止将所述非静止对象错误地添加到所述占用地图。处理点云数据以确定第一候选对象。处理图像数据以确定第二候选对象。这些候选对象彼此关联,并且评估它们的特性以确定所述候选对象是静止的还是非静止的。用静止障碍物更新所述占用地图。在导航期间,所述占用地图可用于路线规划,而所述非静止对象用于局部避让。

Description

用于确定物理空间中的非静止对象的系统
优先权
本申请要求于2021年3月19日提交的名称为“System to Determine Non-Stationary Objects in A Physical Space”的美国专利申请序列号17/207,039的优先权,所述美国专利申请的内容以引用的方式并入本公开。
背景技术
自主移动装置(AMD)在物理空间中移动。为了促进这种移动,AMD搜集有关物理空间的信息以确定用于导航的地图。
附图说明
参考附图陈述详细描述。在图中,参考数字的最左边数字识别了所述参考数字第一次出现的图。在不同的图中使用相同的参考数字会指示类似或相同的项目或特征。附图不一定按比例绘制,并且在一些图中,比例或其他方面可能被夸大以促进理解特定方面。
图1绘示了根据一些实现方式的用于利用自主移动装置(AMD)穿过物理空间并使用传感器数据来确定非静止对象的系统。
图2是根据一些实现方式的AMD的部件的框图。
图3是根据一些实现方式的AMD的诸如网络接口、传感器和输出装置的一些部件的框图。
图4是根据一些实现方式的非静止对象模块的框图。
图5绘示了根据一些实现方式的将使用不同传感器确定的候选对象对准的对准模块。
图6绘示了根据一些实现方式的用于将静止对象与相邻的非静止对象区分开来的系统。
图7绘示了根据一些实现方式的用于确定候选对象的点云处理模块和聚类模块。
图8绘示了根据一些实现方式的用于确定候选对象的视觉处理模块。
图9绘示了根据一些实现方式的用于确定候选对象是否为已对准对象的对准模块和分类模块。
图10是根据一些实现方式的用于将已对准对象或被跟踪对象分类为静止对象或非静止对象的过程的流程图。
虽然在本文中举例描述了实现方式,但本领域技术人员将认识到,所述实现方式不限于所描述的示例或图。应理解,图和对图的详细描述无意将实现方式限制于所公开的特定形式,而是相反,希望涵盖落在由所附权利要求书限定的本发明的精神和范围内的所有修改、等效物和替代方案。在本文中仅出于组织目的而使用标题,并且不打算用于限制描述或权利要求的范围。如在整个本申请中所使用,词语“可”是在许可意义(即,意味着具有可能性)而不是强制意义(即,意味着必须)上使用。类似地,词语“包括(include)”、“包括(including)”和“包括(includes)”是指“包括但不限于”。
具体实施方式
自主移动装置(AMD),诸如机器人,能够自主移动,这允许AMD在不受用户驱动或控制的情况下在物理空间中的位置之间移动。在自主移动期间,AMD确定物理空间中的对象是静止对象还是非静止对象。使用物理空间中的哪些对象是静止对象或非静止对象的确定,AMD确定不包括非静止对象的静止对象占用地图。AMD使用所述占用地图来确定物理空间中的位置之间的路径规划。包括非静止对象的占用地图会变得混乱,显示实际上并不存在的障碍物,并且干扰规划供AMD自主移动的路径的能力。
构建物理空间地图的传统方法可能无法准确区分静止对象和移动对象。这种传统方法可能会将移动对象错误分类为静止对象,导致地图无法包括通过被错误分类的静止对象的位置的路径规划。随着时间的推移,对移动对象的连续错误分类可能会导致描绘不存在的对象的物理空间的不正确的占用地图。在路径规划时,障碍物越多,规划路径就越困难。因此,混乱的占用地图可能会减慢或完全阻止自主移动。“地图”用于提供可访问的视觉,然而,可以使用提供数据存储和修改的任何数据结构来实施地图。例如,可以通过数组、数据库记录、列表、数据对象、图形等管理由地图指示的数据。
在本公开中描述的是用于确定是非静止对象的那些对象的技术,从而允许将那些非静止对象从可用于路径规划或其他目的的占用地图中排除。获取并分析传感器数据以确定物理空间中的对象的各种特性。基于这些特性,可将对象分类为静止对象或非静止对象。静止对象可用于更新占用地图,而非静止对象则不能。当AMD沿着一条路径移动时,AMD可以使用关于非静止对象的信息来做出避免干扰非静止对象的导航决策。这允许AMD避免碰撞非静止对象或干扰非静止对象的移动。
为了提高计算效率,在AMD将对象分类为非静止或静止之前,AMD可以使用关于对象的特性来滤除或减少所考虑的对象。例如,AMD可以随时间使用传感器数据来确定关于对象的一个或多个特性,包括长度、宽度、纵横比、速度等等。使用所述一个或多个特性,由于一些对象与预期不会移动的对象相关联,诸如家具、墙壁或植物,AMD可以滤除所述对象。通过在分类过程之前滤除一些对象,AMD避免了耗费计算资源来对具有较低的被分类为动态的概率的对象进行分类。
多个传感器可以包括深度传感器和图像传感器。深度传感器可用于获取点云数据。点云数据中的单独的点是表示深度传感器在物理空间中检测到对象的一部分的位置的三维坐标。点云数据可用于确定物理空间中的对象的位置和尺寸。由深度传感器确定的点云数据指示是否存在障碍物,并且在检测到障碍物的情况下,还包括关于传感器与对象之间的距离以及关于传感器和对象的相对方向的信息。图像传感器可用于获取表示物理空间的图像数据,其中图像数据可用于确定物理空间中的对象的位置和特性。AMD可以使用来自深度传感器和图像传感器的传感器数据来增加物理空间内的对象被准确地表征为静止对象或非静止对象的置信度。在传感器数据不可用的情况下,诸如当图像传感器的视场(FOV)指向别处时,可以使用点云数据对对象进行分类。
使用考虑到非静止对象的占用地图允许AMD更有效地执行涉及物理空间内的移动的任务。这些任务可包括巡逻物理空间、与用户交互、运输货物等。例如,AMD可以执行涉及在物理空间中穿过房间的哨兵任务。
AMD可以使用非静止对象模块来确定传感器数据是否表示非静止对象。在一些示例中,可以使用来自图像传感器的图像数据而不使用深度传感器数据来确定非静止对象。在其他示例中,可以使用来自深度传感器的点云数据而不使用图像数据来确定非静止对象。在其他示例中,图像数据和点云数据都可用于确定非静止对象。
非静止对象模块可以基于对象不移动或以不干扰在物理空间中导航的AMD的速度移动来确定所述对象是静止对象。AMD可以基于对象移动得比第一阈值速度快来确定所述对象是非静止对象。例如,在一段时间的过程中,AMD可以基于对象以大于第一阈值速度的第一速度移动来确定对象是非静止的。在所述时间段的过程中,如果对象减慢到低于第二阈值速度,则可确定对象不再是动态的。
非静止对象模块可包括聚类模块,以确定深度传感器数据是否表示可被确定为动态的候选对象。聚类模块可基于确定一个或多个单元格是否以与预期移动的对象相关联的形状或大小排列来滤除检测到的对象作为候选对象。聚类模块可以基于候选对象具有小于阈值纵横比值的纵横比来确定对象是所述候选对象。例如,沙发的长度可以是P厘米,宽度可以是Q厘米,且纵横比可以是P:Q。可以基于具有大于或等于阈值纵横比值的纵横比将沙发滤除作为候选对象。类似地,墙壁或其他大对象可以被滤除作为候选对象。在一些示例中,可基于一个或多个单元格的纵横比大于或等于阈值纵横比值来使用所述纵横比滤除候选对象。例如,如果候选对象具有大于或等于X:Y的单元格纵横比,则可以将所述候选对象滤除为候选。单个单元格或多个单元格可以与位置相关联。例如,传感器数据可用于确定物理区域内的一个或多个对象,并且给定位置处的单独对象可由与给定位置相关联的一个或多个单元格指示。
非静止对象模块可以包括视觉处理模块,所述视觉处理模块使用特征检测算法来识别物理空间内的一个或多个对象。例如,面部辨识算法可以确定用户存在于物理空间内。视觉处理模块还可以确定用户在物理空间内的相对位置。视觉处理模块可以使用此信息来确定候选对象。
非静止对象模块可以包括分类模块,所述分类模块使用候选对象的一个或多个特性来确定候选对象是非静止对象还是静止对象。所述一个或多个特性可包括以下各项中的一者或多者:来自聚类模块的候选对象与来自视觉处理模块的候选对象的对准、候选对象的速度、速度随时间的变化、候选对象的大小,候选对象的纵横比等。将被确定为静止对象的候选对象添加到占用地图。不将被确定为非静止对象的候选对象添加到占用地图。而是,当AMD穿过物理空间时,保存和参考关于非静止对象的特性。
通过使用本公开中描述的系统和技术,AMD能够使用没有非静止对象的准确占用地图可靠地导航通过物理空间。因为占用地图没有非静止对象,所以占用地图不会因为在占用地图内包括非静止对象而消除通过物理空间的可能的路径规划。使用关于非静止对象的信息来调整路径规划,以避免干扰物理空间内的人或宠物或其他移动实体。
说明性系统
图1绘示了根据一些实现方式的用于利用AMD 104穿过物理空间102并且使用传感器数据确定非静止对象的系统100。
在包括用户108和家具106的物理空间102中示出AMD 104。AMD 104可以包括一个或多个处理器130、一个或多个马达132、传感器134和存储器140。一个或多个传感器134可具有不同的视场(FoV),包括示例性FoV 110。例如,深度传感器136可以具有第一视场,并且图像传感器138可以具有第二视场。FoV 110是由使用一个或多个传感器134获取的传感器数据146表示的物理空间102的范围。AMD 104可以被配置为对接或连接到对接站182。对接站182可以提供外部电力,AMD 104可以使用所述外部电力来给AMD 104的电池充电。
当AMD 104穿过物理空间102时,地图绘制模块142可以使用传感器数据146来确定物理空间102的占用地图144。传感器数据146可以包括点云数据148和图像数据150。占用地图144可以表示物理空间102的尺寸和物理空间102内的静止对象。例如,占用地图144可以包括指示一个或多个静止对象的位置的数据。非静止地图层可用于确定一个或多个非静止对象的位置和特性。在一些实现方式中,占用地图144可以包括多个单元格,所述多个单元格中的每个单元格表示物理空间102中的特定区域。可以存储诸如占用值的数据,所述数据指示与单元格相关联的物理空间102的区域是未被观察到的、被对象占用的,还是未被占用的。对象可以包括阻止或妨碍AMD 104穿越的物理障碍物或特征。例如,对象可以包括墙壁、楼梯井等。在本公开中,“地图”用于提供可访问的视觉,然而,可以使用提供数据存储和修改的任何数据结构来实施地图。例如,可以通过一个或多个数组、一个或多个数据库记录、一个或多个列表、一个或多个数据对象、一个或多个图表等管理由地图指示的数据。
自主导航模块152向AMD 104提供在没有实时人类交互的情况下在物理空间102内导航的能力。自主导航模块152可以实施地图绘制模块142或结合地图绘制模块操作以确定占用地图144。自主导航模块152可以生成指示从当前位置到目的地位置通过物理空间102的路径的路径规划数据。AMD 104然后可以开始沿着所述路径移动。
AMD 104可以包括深度传感器136,所述深度传感器可以确定关于物理空间102中对象的存在或不存在的深度数据等。例如,深度传感器136可以包括飞行时间(TOF)深度相机、超声、雷达、LIDAR、立体相机等。深度数据指示是否检测到对象,并且还包括关于深度传感器136与对象之间的距离以及对象(如果检测到)相对于深度传感器136的相对方向的信息。深度数据可以包括点云数据148。点云数据148中的单独的点是表示深度传感器136检测到物理空间102中的对象的一部分的位置的三维坐标。点云数据148可以包括指示物理空间102内的一个或多个对象的多个坐标点。多个坐标点中的每个单独的坐标点可以指示单独的三维坐标。点云数据148可用于确定物理空间102中的对象的位置和尺寸。由深度传感器确定的点云数据148指示是否存在物理对象,并且在检测到物理对象的情况下,所述点云数据还包括关于传感器与对象之间的距离以及关于传感器和对象的相对方向的信息。
图像传感器138可以获取图像数据150。例如,图像传感器138可以包括单眼视觉相机、立体视觉相机或其他成像装置。图像数据150表示物理空间102的至少一部分。图像数据150可用于确定物理空间102中的对象的位置和特性。
AMD 104可以使用非静止对象模块154来确定传感器数据146是否表示非静止对象。非静止对象模块154将在物理空间内检测到的对象分类为静止的或非静止的。AMD 104可以基于对象不移动或以小于或等于阈值的速度移动来确定对象是静止对象。AMD 104可以基于对象移动得比第一阈值速度快来确定所述对象是非静止对象。例如,在一段时间的过程中,AMD 104可以基于对象以大于第一阈值速度的第一速度移动来确定对象是非静止的。在所述时间段的过程中,如果对象减慢到低于第二阈值速度,则可确定对象不是动态的。静止对象数据和非静止对象数据可以存储在对象数据170内。
AMD 104可以更新占用地图144以包括尚未包括或可能已经重新定位的静止对象。例如,物理空间102可以包括可能已经在第一时间被确定为静止的对象,诸如家具106。在第一时间,第一占用地图144可以准确地表示家具106的大小和位置。然而,在第二时间,如果将椅子引入物理空间102,则第一占用地图144变得不准确。当AMD 104穿过物理空间102并且确定表示椅子的对象的存在时,AMD 104确定所述对象是静止对象。AMD 104还可以确定静止对象的位置和尺寸,并且确定包括静止对象(椅子)的表示的第二占用地图144。
非静止对象模块154可以包括用于处理传感器数据146以进行以下操作的模块:确定用于分类的候选对象;确定是否将候选对象分类为非静止对象;以及维持占用地图144的准确性以表示静止对象而不是非静止对象。如图1中描绘,非静止对象模块154包括点云处理模块156、视觉处理模块158、对准模块160、对象分层模块162、跟踪器模块164、聚类模块166和分类模块168。在一些示例中,在不使用诸如点云数据148的深度传感器数据的情况下,来自图像传感器138的图像数据150可用于确定非静止对象。在其他示例中,在不使用图像数据150的情况下,来自深度传感器136的点云数据148可用于确定非静止对象。在其他示例中,图像数据150和点云数据148都可用于确定非静止对象。
点云处理模块156可以获取由深度传感器136确定的点云数据148。点云处理模块156可以使用三维点云数据148来确定物理空间102的二维占用地图144。二维占用地图144可以包括以下各项中的一者或多者的表示:墙壁、家具、非静止对象等。二维占用地图144可以由单元格网格表示,其中单独的单元格可以表示物理空间102的物理尺寸,诸如M×N厘米。如果传感器数据146指示物理对象的至少一部分位于与单独的单元格相关联的物理空间102的一部分处,则可以认为所述单元格“被占用”。
聚类模块166接收由点云处理模块156确定的二维占用地图144。聚类模块166可以使用二维占用地图144来确定一个或多个被占用的单元格是否表示可以被确定为动态的候选对象114。聚类模块166可基于确定一个或多个单元格是否以与预期移动的对象相关联的形状或大小排列来滤除检测到的对象作为候选对象。聚类模块166可以基于候选对象具有小于阈值纵横比值的纵横比来确定对象是所述候选对象。例如,沙发的长度可以是P厘米,宽度可以是Q厘米,且纵横比可以是P:Q。可以基于具有大于或等于阈值纵横比值的纵横比将沙发滤除作为候选对象。类似地,墙壁或其他大对象可以被滤除作为候选对象。还可以基于高度值滤除对象。点云数据148可包括可用于确定对象的高度值的簇的坐标点。相对于AMD 104,高度值可以指示在与物理空间的地板相关联的平面上方的距离。高度值可以是与对象相关联的一个或多个特性中的一者。例如,如果对象低于第一高度或高于第二高度,则可以滤除所述对象。第一高度可以是AMD 104可进行让路的最高高度,诸如平放在地板上的杂志的高度。第二高度可以是在AMD 104在对象(诸如悬挂的植物)下方移动的情况下AMD104可能不会碰撞的最低高度。继续此示例,由聚类模块166确定的候选对象114被描绘在第一地图112内。第一地图112可以存储在地图数据172内。由聚类模块166确定的候选对象然后可以由跟踪器模块164使用以确定候选对象是否为被跟踪的对象。
跟踪器模块164接收由聚类模块166确定的候选对象数据。跟踪器模块164可以确定候选对象是否为被跟踪的对象。被跟踪的对象可以由分类模块168评估,以确定被跟踪的对象是非静止对象还是静止对象。在一些实现方式中,可以绕过或消除跟踪器模块164,并且分类模块168可以使用由聚类模块166确定的候选对象来确定候选对象是非静止对象还是静止对象。在此示例中,跟踪器模块164可以基于以下各项中的一者或多者来确定候选对象是否为被跟踪的对象:物理位置、速度、大小(例如,边界半径)、特定候选对象与先前跟踪的候选对象之间的关联。跟踪器模块164可以提高由聚类模块166确定的候选对象被确定为非静止对象的可能性,因为跟踪器模块164可以确定候选对象是否具有在非静止对象将移动时指示候选对象正在移动的特性。
例如,在第一时间,跟踪器模块164可以接收由聚类模块166确定的第一候选对象数据。第一候选对象数据可以指示物理空间102内的第一大小和第一位置。在第二时间,跟踪器模块164可以接收由聚类模块166确定的第二候选对象数据。第二候选对象数据可以指示物理空间102内的第二大小和第二位置。跟踪器模块164可以基于第二大小等于或等同于第一大小以及第二候选对象的估计速度在非静止对象的阈值内来确定第二候选对象数据表示位于第二位置的第一候选对象。
在一些示例中,跟踪器模块164可以接收与第一点云数据簇相关联的对象数据,所述第一点云数据簇与指示物理空间102内的第一位置的第一组坐标相关联。为了确定第一簇是否可能是要跟踪的对象,跟踪器模块164可以基于先前被跟踪的对象的路径和速度来确定先前被跟踪的对象是否可能预期处于第一位置。例如,先前被跟踪的对象可能已经在第一时间被最后更新,并且第一簇可能已经在第二时间确定。第二位置指示在第二时间在物理空间内先前被跟踪的对象的投影位置。可以基于第一时间与第二时间之间的差异,并且基于与先前被跟踪的对象相关联的位置、方向和速度来确定第二位置。
阈值可包括指示慢走速度的第一阈值速度和指示快走速度的第二阈值速度。跟踪器模块164可以使用诸如Konig-Egervary Hungarian数据关联算法或LAPJV(Jonker-Volgenant Algori thm for a Linear Assignment Problem)算法的线性分配算法来确定第一候选对象数据与第二候选对象数据之间的数据关联。基于第一候选对象数据与第二候选对象数据之间的关联,跟踪器模块164可以确定第一候选对象数据和第二候选对象数据指示由跟踪数据表示的被跟踪的对象。分类模块168然后可以使用跟踪数据来确定被跟踪的对象是非静止对象还是静止对象。
视觉处理模块158可以使用图像数据150来确定候选对象。例如,视觉处理模块158可以使用特征检测算法来识别物理空间102内的一个或多个对象。例如,面部辨识算法可以确定用户108存在于物理空间102内。类似地,视觉处理模块158可以确定图像数据150是表示宠物、另一生物还是另一自主移动装置。视觉处理模块158还可以确定与第一数据相关联的置信值。在一个示例中,置信值可以指示由第一数据指示的对象是非静止对象或对象能够移动(诸如宠物、人或另一自主移动装置)的可能性。在另一示例中,置信值可以指示第一数据正确的可能性。例如,如果置信值大于第一阈值,则对象可被确定为候选对象118。视觉处理模块158还可以确定候选对象118在物理空间102内的相对位置。在此示例中,由视觉处理模块158确定的候选对象118被描绘在第二地图116内。第二地图116可以存储在地图数据172内。在一些实现方式中,由视觉处理模块158确定的候选对象118然后可以由分类模块168使用以确定候选对象118是否为非静止对象。在其他实现方式中,由视觉处理模块158确定的候选对象118可以由对准模块160使用以确定候选对象118是否与被跟踪的对象对准。
对准模块160可以使用由视觉处理模块158确定的候选对象118和由跟踪器模块164确定的被跟踪的对象或由聚类模块168确定的候选对象118。第一对象可以是由视觉处理模块158确定的候选对象118。第二对象可以是由跟踪器模块164确定的被跟踪的对象或者可以是由聚类模块166确定的候选对象118。对准模块160可以确定第一对象的第一位置距第二对象的第二位置小于或等于阈值距离。第一位置可以与相对于物理空间102的第一组坐标相关联,并且第二位置可以与相对于物理空间102的第二组坐标相关联。在此示例中,对准模块160可以基于第一对象的第一位置距第二对象的第二位置小于或等于阈值距离来确定第一对象和第二对象指示同一对象。对准模块160还可以确定第一对象的第一大小在第二对象的第二大小的阈值百分比内。
对准模块160可以基于第一对象的第一位置距第二对象的第二位置小于或等于阈值距离以及基于第一对象的第一大小在第二对象的第二大小的阈值百分比内来确定第一对象与第二对象对准。对准模块160可以基于第一对象和第二对象两者来确定已对准对象。例如,对准模块160可以基于以下各项中的一者或多者来确定已对准对象的一个或多个特性:第一对象的第一宽度和第二对象的第二宽度的平均值、第一对象的第一长度和第二对象的第二长度的平均值、第二对象的速度,或指示第一对象和第二对象在物理空间102内的位置的对应坐标值的平均值。
分类模块168可以确定特定对象是非静止对象还是静止对象。特定对象可以是已对准对象、被跟踪的对象或候选对象。由对准模块160确定已对准对象。可以由跟踪器模块164确定被跟踪的对象。可由视觉处理模块158或聚类模块166确定候选对象。分类模块168可以使用已对准对象、候选对象或被跟踪的对象的一个或多个特性来确定特定对象是非静止对象还是静止对象。所述一个或多个特性可包括以下各项中的一者或多者:特定对象的速度、速度随时间的变化、特定对象的大小、特定对象的纵横比等。将被确定为静止对象的特定对象添加到占用地图144的第一层。将被确定为非静止对象的特定对象添加到占用地图144的第二层。对象分层模块162可以使用由分类模块168确定的非静止对象和静止对象来更新占用地图144的一个或多个层。
对象分层模块162可以使用静止对象和非静止对象来更新占用地图144。占用地图144可以包括指示静止对象的第一层和指示非静止对象的第二层。占用地图144的第一层可以指示静止对象的位置、大小和其他特性。占用地图144的第一层可用于路线规划以及确定物理空间102中的位置之间的路径。占用地图144的第二层可以指示非静止对象122的位置、大小、速度和其他特性。占用地图144的第二层可用于局部导航确定,以避免在AMD 104沿着路径规划移动时碰撞非静止对象122或中断所述非静止对象的移动。例如,AMD 104可以基于路径规划确定导航路径,并且使用由与非静止对象相关联的非静止对象数据指示的特性来避免与非静止对象的交叉或碰撞。第二层被描绘为非静止地图层120。因为第二层中的非静止对象不排除在第一层中可用的路径规划,所以AMD 104能够使用物理空间102中的静止对象的准确表示来确定路径规划。
一个或多个对象可以存在于物理空间102内。例如,对象可以包括墙壁、室内陈设、楼梯井、人等等。当从一个位置移动到另一位置时,AMD 104可以确定它在给定时间的位置,确定对象的位置,并且在避免与任何对象碰撞的同时进行移动。移动命令可以是来自用户108的输入的结果、先前安排的任务、对来自一个或多个传感器134的输入的响应、来自外部计算装置或另一来源的命令。
AMD 104可以穿过物理空间102。可以将AMD 104的运动描述为轨迹。在一些实现方式中,轨迹可以包括一系列姿势。每个姿势可以指示相对于多条正交轴线的特定位置和相对于所述轴线中的单条轴线的旋转。例如,姿势可以包括指示三维空间中相对于指定原点的坐标的六维(6D)信息,以及相对于三条轴线中的每一轴线的旋转。
一个或多个马达132或其他致动器使AMD 104能够从物理空间102中的一个位置移动到另一位置。例如,马达132可用于驱动附接到AMD 104的底盘的轮子,这致使AMD 104移动。AMD 104可以转弯、向前移动、向后移动等等。在另一示例中,致动器可以移动腿,从而允许AMD 104行走。
AMD 104可以包括一个或多个硬件处理器130(处理器),所述一个或多个硬件处理器被配置为执行一个或多个存储的指令。处理器130可以包括一个或多个核。处理器130可以包括微控制器、系统芯片、现场可编程门阵列、数字信号处理器、图形处理单元、通用处理单元等。
地图绘制模块142确定物理空间102的表示,所述表示包括静止对象以及它们在物理空间102中的位置。在操作期间,地图绘制模块142使用来自各种传感器134的传感器数据146来确定信息,诸如AMD 104在哪里、AMD 104移动了多远、静止对象的存在、非静止对象的存在、静止对象和非静止对象的特性等等。
地图绘制模块142使用同时定位与地图创建(SLAM)模块。定位是确定AMD 104在物理空间102中的位置,并且可以利用一些外部参考。例如,相机可以获取图像。处理这些图像以确定图像中的特征的存在,诸如门的边缘、墙壁上的阴影、墙壁上的纹理等等。
描述符是描述特定特征或特征集的信息。诸如尺度不变特征变换(SIFT)、加速鲁棒特征(SURF)、训练过的卷积神经网络等各种技术可用于表征所述特征并生成描述符。例如,所述描述符可以包括指示关于256个不同维度的特征的数据。
本文描述的模块,诸如地图绘制模块142,可以提供各种处理功能,诸如去噪、过滤等。对传感器数据146(诸如来自相机的图像数据150)的处理可由至少部分地实施以下工具或技术中的一者或多者的模块来执行。在一种实现方式中,对图像数据150的处理可以至少部分地使用OpenCV库中可用的一种或多种工具来执行,所述OpenCV库由以下公司开发:美国加利福尼亚州圣克拉拉市的英特尔公司(Intel Corporation of Santa Clara,California,USA);美国加利福尼亚州门洛帕克市的柳树车库(Willow Garage of MenloPark,California,USA);以及俄罗斯下诺夫哥罗德市的Itseez(Itseez of NizhnyNovgorod,Russia)。在另一种实现方式中,可使用由日本京都市欧姆龙公司(OmronCorporation of Kyoto,Japan)发布的OKAO机器视觉库中可用的功能来处理传感器数据146。在又一实现方式中,可以利用诸如使用由美国马萨诸塞州内蒂克市的MathWorks公司(MathWorks,Inc.of Natick,Massachusetts,USA)开发的MATLAB获得的机器视觉工具箱(MVTB)中的功能的功能。
还可使用诸如人工神经网络(ANN)、卷积神经网络(CNN)、深度CNN(DCNN)、主动外观模型(AAM)、主动形状模型(ASM)、主成分分析(PCA)、级联分类器等技术来处理传感器数据146或其他数据。例如,可以使用监督学习算法来训练ANN,使得对象标识符与提供给ANN的训练图像内的特定对象的图像相关联。一旦经过训练,就可以向ANN提供传感器数据146并产生指示对象标识符的输出。
自主导航模块152向AMD 104提供在没有实时人类交互的情况下在物理空间102内导航的能力。自主导航模块152可实施地图绘制模块142或结合地图绘制模块142操作,以确定占用地图144、图表、导航地图或物理空间102的其他表示中的一者或多者。关于图2更详细地讨论自主导航模块152。
AMD 104可以使用网络接口来连接到网络178。例如,网络178可以包括无线局域网,所述无线局域网又连接到诸如互联网的广域网。
对接站182也可以连接到网络178。例如,对接站182可以被配置为连接到无线局域网178,使得对接站182和AMD 104可以进行通信。
AMD 104可以经由网络178访问一个或多个服务器180。例如,AMD 104可以利用唤醒词检测模块来确定用户108是否正在向AMD104发出请求。唤醒词检测模块可以听指定的词或短语并且将AMD 104或其部分转变为唤醒操作模式。一旦处于唤醒操作模式,AMD 104然后可以将用户108所说的音频的至少一部分传递到一个或多个服务器180以供进一步处理。服务器180可以处理说出的音频并向AMD 104返回数据,随后可使用所述数据来操作AMD104。
AMD 104还可以与其他装置176通信。其他装置176可以包括在诸如家的物理空间102内或与物理空间102中的一个或多个装置的操作相关联的一个或多个装置。例如,其他装置176可以包括门铃摄像头、车库门开启器、冰箱、洗衣机等。在一些实现方式中,其他装置176可以包括其他AMD 104、车辆等。
在其他实现方式中,其他类型的自主移动装置(AMD)可以使用本文描述的系统和技术。例如,AMD 104可以包括在街道上移动的自主地面交通工具、空中自主飞行器、自主海上交通工具等。
图2是根据一些实现方式的AMD 104的框图200。AMD 104可以包括一个或多个电池246以提供适合于操作AMD 104中的部件的电力。在一些实现方式中,可以使用其他装置来向AMD 104提供电力。例如,可以通过无线电力传输、电容器、燃料电池、存储飞轮等来提供电力。
占用地图144是使用来自一个或多个传感器134的传感器数据146而确定,并且提供关于对象在物理空间102中的位置的信息。占用地图144包括处于指定排列的单元格,单元格网格。每个单元格可以由指示网格内的那个单元格的索引值来表示。每个单元格与物理空间102中的特定位置相关联。例如,每个单元格可表示物理空间102中的5厘米(cm)×5cm的区域。每个单元格还可以与占用值相关联,所述占用值指示与那个单元格相关联的物理空间102中的特定区域是否被对象占用、未被占用,或者是否没有与未被观察到的那个单元格相关联的数据。例如,为-1的占用值可指示没有对象的未占用单元格,为0的占用值指示单元格尚未被观察到,而+1指示单元格被对象占用。为了便于讨论,但不一定作为限制,关于单元格的描述可以指代与单元格相关联的数据,或者在适当时指代与单元格相关联的物理空间。例如,诸如移动到单元格的动作可以包括将AMD 104移动到与单元格相关联的物理空间102。
AMD 104上或物理空间102中的传感器134获取传感器数据146。处理传感器数据146以确定诸如物理空间102中的AMD 104的当前位置的信息,并且提供用于确定占用地图144的信息。传感器134表现出各种限制,包括特定视场(FOV)110、工作范围、可能需要视线来操作、表现出盲点等等。除了很不寻常的情况,诸如非常简单的物理空间,传感器134不能同时看到物理空间102中的所有区域。因此,AMD 104通过在不同方向上移动和引导传感器134的FOV 110来搜集关于物理空间102的信息。
当AMD 104穿过物理空间102时,它使用同时定位与地图创建(SLAM)来确定它在哪里以及它移动了多远。定位是确定AMD 104在物理空间102中的位置的过程。例如,相机可以获取图像。这些图像经过处理以确定图像中存在特征,诸如门的边缘、墙壁上的相框等。描述符是描述特定特征或特征集的信息。可以使用诸如尺度不变特征变换(SIFT)的各种技术来表征特征并生成描述符。SLAM可以使用来自其他传感器的数据,所述其他传感器诸如马达编码器、带有一个或多个加速度计和陀螺仪的惯性测量单元格(IMU)等。
当AMD 104正在移动并且SLAM正在操作时,SLAM提供一系列姿势作为输出,每个姿势描述空间中的至少部分地基于图像中观察到的特征的表观运动的位置和旋转。例如,姿势可以包括关于六个维度(6D)的信息,三条正交轴线以及围绕那些轴线的对应旋转的信息。可以组合这些姿势以提供AMD的轨迹。
当AMD正在移动时,其他传感器134正在获取关于物理空间102的信息。一个或多个深度传感器可以获取关于物理空间102中的对象的存在或不存在的深度数据。例如,深度传感器可包括飞行时间(TOF)深度相机、超声、雷达等。由深度传感器提供的深度数据指示是否检测到对象,并且在检测到对象的情况下,还包括关于传感器134与对象之间的距离以及关于传感器134和对象的相对方向的信息。
诸如超声传感器的深度传感器、诸如TOF深度相机、LIDAR、雷达等的光学传感器可以提供指示在深度传感器的FOV 110内在物理空间102中的对象的存在或不存在的深度数据。例如,诸如TOF深度相机的传感器134可以发射红外光脉冲,并且使用所反射光的检测到的返回时间来确定传感器与曾反射光的对象之间的距离。深度数据可以表达为点云数据、体积数据、方位和距离数据等。深度数据可用于确定占用地图144。
AMD 104可以包括一个或多个网络接口208。网络接口208可以包括连接到个域网(PAN)、局域网(LAN)、无线局域网(WLANS)、广域网(WAN)等的装置。例如,网络接口208可以包括与以太网、Wi-Fi、蓝牙、蓝牙低功耗、ZigBee等兼容的装置。
AMD 104可以包括电池246以为AMD 104的操作提供电力。电池246可以是可充电的,允许它存储从外部源获得的电能。在其他实现方式中,无线电力接收器可用于为AMD104的操作提供电力、给电池246充电等。
AMD 104包括一个或多个存储器140。存储器140可以包括一个或多个非暂时性计算机可读存储介质(CRSM)。
AMD 104可以包括一个或多个传感器134。例如,传感器134可以包括麦克风、麦克风阵列、飞行时间(TOF)传感器、相机、LIDAR等等。传感器134可以生成传感器数据146。关于图3更详细地讨论传感器134。
在操作期间,AMD 104可以确定输入数据240。输入数据240可包括或至少部分地基于来自AMD 104机载的传感器134的传感器数据146。在一种实现方式中,语音处理模块222可以处理由AMD 104上的麦克风获得的原始音频数据238并产生输入数据240。例如,用户可以说“机器人,过来”,这可以产生输入数据240“过来”。在另一实现方式中,输入数据240可以包括诸如由诸如智能手机或平板计算机的另一计算装置提供的命令的信息。
当AMD 104正在移动时,SLAM模块232可以提供一系列姿势作为输出,每个姿势描述物理空间102中的位置和旋转。每个姿势至少部分地基于在AMD 104获取的图像中观察到的特征的表观运动。例如,在图像之间通过描述符所描述的至少一些特征将是共同的。通过确定由两个不同相机同时观察到的相同特征在图像中的表观位置的相对差异,可以确定相机相对于物理空间102中的特征的位置。在连续时间期间,在AMD 104移动并且从物理空间102中的位置获取附加的图像时,相同特征跨附加图像的明显位置变化可用于确定后续姿势。在一些实现方式中,姿势可以包括关于六个维度(6D)的信息,三条正交轴线以及围绕那些轴线的对应旋转的信息。
SLAM模块232还可以使用来自其他传感器134的数据,所述其他传感器诸如马达编码器、带有一个或多个加速度计和陀螺仪的惯性测量单元格(IMU)等。例如,可以整合从IMU获得的指示旋转的惯性数据、沿着特定轴线的加速度等,以提供关于AMD 104的移动的信息。
由SLAM模块232随时间生成的一组姿势描述了轨迹。例如,轨迹数据可以包括来自SLAM模块232的姿势数据的时间序列。
在操作期间,地图绘制模块142可以使用SLAM模块232来确定姿势数据。姿势数据可以包括指示姿势的信息。例如,姿势数据可以包括指示物理空间102中的位置和AMD 104相对于物理空间102的取向的信息。SLAM模块232可以使用以下各项中的一者或多者:点云数据148、图像数据150或来自其他传感器134的数据。其他模块可以使用所述姿势数据。例如,可以基于姿势数据确定候选对象114或118的位置。继续所述示例,基于指定物理空间102中的位置和AMD 104的取向的姿势数据,所获取的点云数据148可以与物理空间102中的特定位置相关联。
导航地图模块220使用占用地图144作为输入来生成导航地图242。例如,导航地图模块220可以通过膨胀或放大由占用地图144指示的对象的表观大小来产生导航地图242。
AMD 104可以利用一个或多个任务模块230。任务模块230包括在被执行时提供一种或多种功能的指令。任务模块230可以执行功能,诸如寻找用户108、跟随用户108、在AMD104的输出装置212上呈现输出、通过使AMD 104穿过物理空间102来执行哨兵任务以确定未授权人员的存在,等等。
AMD 104包括一个或多个输出装置212,诸如马达132、灯、扬声器、显示器、投影仪、打印机等中的一者或多者。一个或多个输出装置212可用于在AMD 104的操作期间提供输出。关于图3更详细地讨论输出装置212。
一个或多个时钟202可以提供指示日期、时间、滴答等的信息。例如,处理器130可以使用来自时钟202的数据来将特定时间与动作、传感器数据146等相关联。
AMD 104可以包括一个或多个硬件处理器130(处理器),所述一个或多个硬件处理器被配置为执行一个或多个存储的指令。处理器130可以包括一个或多个核。处理器130可以包括微控制器、系统芯片、现场可编程门阵列、数字信号处理器、图形处理单元、通用处理单元等。
AMD 104可以包括一个或多个通信接口204,诸如输入/输出(I/O)接口206、网络接口208等等。通信接口204使AMD 104或其部件能够与其他装置176或部件通信。通信接口204可以包括一个或多个I/O接口206。I/O接口206可以包括内部集成电路(I2C)、串行外围接口总线(SPI)、由USB实施者论坛发布的通用串行总线(USB)、RS-232等。
I/O接口206可以耦合到一个或多个I/O装置210。I/O装置210可以包括输入装置,诸如传感器134、键盘、鼠标、扫描仪等中的一者或多者。I/O装置210还可以包括输出装置212,诸如马达132、灯、扬声器、显示器、投影仪、打印机等中的一者或多者。在一些实施方案中,I/O装置210可以与AMD 104物理合并或者可以放置在外部。
网络接口208可以被配置为提供AMD 104与其他装置176之间的通信,诸如其他AMD104、对接站182、路由器、接入点等等。网络接口208可以包括被配置为耦合到个域网(PAN)、局域网(LAN)、无线局域网(WLANS)、广域网(WAN)等的装置。例如,网络接口208可以包括与以太网、Wi-Fi、蓝牙、蓝牙低功耗、ZigBee等兼容的装置。AMD 104还可以包括允许在AMD104的各种模块与部件之间传输数据的一个或多个总线或其他内部通信硬件或软件。
如图2中所示,AMD 104包括一个或多个存储器140。存储器140可以包括一个或多个非暂时性计算机可读存储介质(CRSM)。CRSM可以是电子存储介质、磁存储介质、光存储介质、量子存储介质、机械计算机存储介质等中的任何一者或多者。存储器140为AMD 104的操作提供计算机可读指令、数据结构、程序模块和其他数据的存储。数个示例性功能模块被示出为存储在存储器140中,但相同的功能性可以可替代地在硬件、固件中实施或实施为系统芯片(SoC)。
存储器140可以包括至少一个操作系统(OS)模块214。OS模块214被配置为管理诸如I/O接口206、I/O装置210、通信接口204的硬件资源装置,并且向在处理器130上执行的应用程序或模块提供各种服务。OS模块214可以实施由FreeBSD项目发布的FreeBSD操作系统的变体;其他UNIX或类UNIX变体;由Linus Torvalds发布的Linux操作系统的变化形式;来自美国华盛顿州雷德蒙市的微软公司的Windows操作系统;机器人操作系统(ROS)等。
存储在存储器140中的还可以是数据存储280和一个或多个以下模块。可以将这些模块执行为前台应用程序、后台任务、守护进程等。数据存储280可以使用平面文件、数据库、链接表、树、可执行代码、脚本或其他数据结构来存储信息。在一些实现方式中,数据存储280或存储器140的一部分可以分布在一个或多个其他装置176上,包括其他AMD 104、服务器180、网络附接存储装置等等。
通信模块216可以被配置为与其他装置176建立通信,诸如其他AMD 104、外部服务器180、对接站182等。通信可以被认证、加密等等。
存储器140内的其他模块可以包括安全模块218、地图绘制模块142、导航地图模块220、自主导航模块152、一个或多个任务模块230、语音处理模块222或其他模块234。模块可以访问数据存储280内的存储器,包括安全公差数据236、传感器数据146、其他数据250等。
安全模块218可以访问安全公差数据236以确定AMD 104可以在什么公差内在物理空间102内安全操作。例如,安全模块218可以被配置为当AMD 104的可延伸桅杆延伸时使AMD 104停止移动。在另一示例中,安全公差数据236可以指定最小声音阈值,当超过所述最小声音阈值时,停止AMD 104的所有移动。继续此示例,检测到诸如人类喊叫的声音将使AMD104停止。在另一示例中,安全模块218可以访问指定AMD 104要维持的距对象的最小距离的安全公差数据236。继续此示例,当传感器134检测到对象已经接近小于或等于最小距离时,可以停止AMD 104的所有移动。可以通过禁止一个或多个马达132的操作、发出停止马达操作的命令、断开一个或多个马达132的电源等中的一者或多者来停止AMD 104的移动。可以在硬件、软件或其组合中实施安全模块218。
安全模块218可以控制其他因素,诸如基于由传感器134获得的信息的AMD 104的最大速度、传感器数据146的精度和准确度等。例如,光学传感器对对象的检测可包括一些误差,诸如当到对象的距离包括对象与背景之间的加权平均值时。因此,安全模块218所准许的最大速度可以基于一个或多个因素,诸如AMD 104的重量、地板的性质、到对象的距离等等。在最大可允许速度不同于安全模块218所准许的最大速度的情况下,可以利用较小的速度。
导航地图模块220使用占用地图144作为输入以生成导航地图242。导航地图模块220可以产生导航地图242以膨胀或放大由占用地图144指示的对象。可在操作期间使用一个或多个膨胀参数。膨胀参数提供诸如膨胀距离、膨胀调整值等信息。在一些实现方式中,膨胀参数可以至少部分地基于传感器FOV 110、传感器盲点、AMD 104的物理尺寸等。
语音处理模块222可用于处理用户108的话语。麦克风可以在存在AMD 104的情况下获取音频,并且可以将原始音频数据238发送到声学前端(AFE)。AFE可以将由麦克风捕获的原始音频数据238(例如,以16kHz采样的单通道16位音频流)变换为音频特征向量224,所述音频特征向量最终可用于诸如唤醒词检测模块226、语音辨识引擎或其他部件的各种部件的处理。AFE可以减少原始音频数据238中的噪声。AFE还可以执行声学回声消除(AEC)或其他操作,以考虑可以被发送到AMD 104的扬声器进行输出的输出音频数据。例如,AMD 104可能正在播放以输出音频数据的形式从网络178接收的音乐或其他音频。为了避免输出音频干扰装置检测和处理输入音频的能力,AFE或其他部件可以执行回声消除以从输入原始音频数据238移除输出音频数据,或其他操作。
AFE可以将原始音频数据238划分成表示AFE在其内确定表示原始音频数据238的质量的多个值(即,特征)的时间间隔的帧,以及表示每个帧内的原始音频数据238的特征/质量的一组那些值(即,特征向量或音频特征向量224)。帧可以是某个时间段,例如每10ms取得的25ms的音频数据228的滑动窗口等。可以确定许多不同的特征,如本领域已知的,并且每个特征表示可以对自动语音辨识(ASR)处理、唤醒词检测、存在检测或其他操作有用的音频的某种质量。AFE可以使用多种方法来处理原始音频数据238,诸如梅尔频率倒谱系数(MFCC)、对数滤波器组能量(LFBE)、感知线性预测(PLP)技术、神经网络特征向量技术、线性判别分析、半结协方差矩阵或本领域技术人员已知的其他方法。
音频特征向量224(或原始音频数据238)可以被输入到唤醒词检测模块226中,所述唤醒词检测模块被配置为检测音频中说出的关键词。唤醒词检测模块226可使用各种技术来确定音频数据228是否包括语音。一些实施方案可应用话音活动检测(VAD)技术。此类技术可基于音频输入的各个定量方面来确定在音频输入中是否存在话音,所述定量方面诸如音频输入的一个或多个帧之间的频谱斜面;一个或多个频谱带中的音频输入的能量水平;一个或多个频谱带中的音频输入的信噪比;或其他定量方面。在其他实施方案中,AMD104可实施被配置为将语音与背景噪声区分开的有限分类器。可通过诸如线性分类器、支持向量机和决策树的技术来实施所述分类器。在其他实施方案中,可应用隐马尔可夫模型(HMM)或高斯混合模型(GMM)技术以将音频输入与语音存储中的一个或多个声学模型进行比较,所述声学模型可包括与语音、噪声(例如,环境噪声或背景噪声)或静默相对应的模型。可使用其他技术来确定在音频输入中是否存在语音。
一旦在由AMD 104接收的音频中检测到语音(或与语音检测分开地),AMD 104便可使用唤醒词检测模块226来执行唤醒词检测,以确定用户何时想要向AMD 104说出命令。此过程还可称为关键词检测,其中唤醒词是关键词的特定示例。具体地,通常在不执行语言分析、文本分析或语义分析的情况下执行关键词检测。而是,分析传入音频以确定音频数据的具体特性是否与预先配置的声学波形、音频签名或其他数据相匹配,从而确定传入音频与对应于关键词的所存储的音频数据是否“匹配”。
因此,唤醒词检测模块226可将音频数据228与所存储的模型或数据进行比较以检测唤醒词。一种用于检测唤醒词的方法应用了通用大词汇量连续语音辨识(LVCSR)系统来解码音频信号,其中在所得的点阵或模糊网络中执行唤醒词搜索。LVCSR解码可能要求相对高的计算资源。另一种用于发现唤醒词的方法分别针对每个关键唤醒词词语和非唤醒词语音信号建立HMM。非唤醒词语音包括其他说出的词语、背景噪声等。可构建一个或多个HMM来对非唤醒词语音特性进行建模,其被称为填充模型。使用维特比解码来搜索解码图中的最佳路径,并且进一步处理解码输出以作出关键词存在的决策。通过结合混合深度神经网络(DNN)隐马尔可夫模型(HMM)解码框架,可以扩展此方法以包括判别信息。在另一实施方案中,可在DNN/递归神经网络(RNN)结构上直接建立唤醒词发现系统,而不涉及HMM。此类系统可通过在DNN的背景窗口内堆叠帧或使用RNN来估计具有背景信息的唤醒词的后段。应用后继的后段阈值调谐或平滑来作出决策。还可使用用于检测唤醒词的其他技术,例如在本领域中已知的技术。
一旦检测到唤醒词,本地AMD 104的电路或应用程序就可以“苏醒”并且开始将音频数据228(其可以包括原始音频数据238或音频特征向量224中的一者或多者)传输到一个或多个服务器180用于语音处理。对应于由麦克风获得的音频的音频数据228可以在处理器130中的一者或多者上在本地受到处理,被发送到服务器180用于路由到接收方装置,或者可以被发送到服务器180用于语音处理,以解译所包括的语音(为了启用话音通信和/或为了执行语音中的命令)。音频数据228可包括对应于唤醒词的数据,或者对应于唤醒词的音频数据228的部分可在由导航地图模块220处理之前被AMD 104移除,之后发送到服务器180等。
语音处理模块222可以包括或访问自动语音辨识(ASR)模块。ASR模块可以接受原始音频数据238、音频特征向量224或其他传感器数据146等作为输入,并且可以产生包括文本串或其他数据表示的输入数据240作为输出。包括文本串或其他数据表示的输入数据240可以由导航地图模块220处理以确定要执行的命令。例如,命令“机器人,来这里”的话语可能导致包括文本串“来这里”的输入数据240。可以从输入数据240中省略唤醒词“机器人”。
地图绘制模块142可以使用一种或多种同时定位与地图创建(“SLAM”)技术。SLAM算法可以利用地图、算法、信标或其他技术中的一者或多者来导航。自主导航模块152可以使用导航地图242来确定AMD 104可以沿着其移动的一组可能路径。其中之一可以被选择并用于确定指示路径的路径规划数据248。例如,可以选择并使用最短或具有最少转弯的可能路径来确定路径。所述路径随后用于确定驱动连接到轮子的马达132的一组命令。例如,自主导航模块152可以确定物理空间102内的当前位置,并且确定描述到诸如对接站182的目的地位置的路径的路径规划数据248。
自主导航模块152可以在处理传感器数据146期间利用各种技术。例如,可以处理从AMD 104上的相机获得的图像数据150以确定角、边缘、平面等中的一者或多者。在一些实现方式中,可以检测角,并且可以使用那些角的坐标来产生点云数据。此点云数据随后可用于SLAM或与地图绘制、导航等相关的其他目的。
AMD 104可以响应于机载处理器130做出的确定、响应于从一个或多个通信接口204接收的根据传感器数据146确定的命令等而移动。例如,外部服务器180可以发送使用网络接口208接收的命令。此命令可以引导AMD 104继续寻找特定用户108、跟随特定用户108等。AMD 104然后可以处理此命令,并且使用自主导航模块152来确定与执行所述命令相关联的方向和距离。例如,“来这里”的命令可以导致任务模块230向自主导航模块152发送命令以将AMD 104移动到用户108附近的特定位置,并且将AMD 104定向在特定方向上。
AMD 104可以使用网络接口208中的一者或多者连接到网络178。在一些实现方式中,这里描述的模块或其他功能中的一者或多者可以在AMD 104的处理器130上、服务器180上或其组合上执行。例如,一个或多个服务器180可以提供各种功能,诸如ASR、自然语言理解(NLU),向AMD 104提供诸如音频或视频的内容,等等。
其他模块234可以提供其他功能性,诸如对象辨识、语音合成、用户识别等。其他模块234可以包括能够将文本数据转换成人类语音的语音合成模块。例如,AMD 104可以使用语音合成模块来提供用户108能够理解的语音。
数据存储280还可以存储其他数据250。例如,定位设置可以指示诸如语言的本地偏好,可以存储允许识别特定用户的用户标识符数据等。
图3是根据一些实现方式的AMD 104的诸如网络接口208、传感器134和输出装置212的一些部件的框图300。在这里说明的部件是以说明的方式提供,而不一定作为限制。例如,AMD 104可以利用在这里描述的特定网络接口208、输出装置212或传感器134的子集,或者可以利用未图示的部件。传感器134、输出装置212或其组合中的一者或多者可包括在可移动部件上,所述可移动部件可相对于AMD 104的底盘摇摄、倾斜、旋转或其任何组合。
网络接口208可以包括WLAN接口302、PAN接口304、辅助射频(RF)链路接口306或其他接口308中的一者或多者。WLAN接口302可以符合Wi-Fi规范的至少一部分。例如,WLAN接口302可以符合由电气和电子工程师协会(IEEE)颁布的IEEE 802.11规范的至少一部分。PAN接口304可以符合蓝牙、无线USB、Z-Wave、ZigBee或其他标准中的一者或多者的至少一部分。例如,PAN接口304可以符合蓝牙低功耗(BLE)规范。
辅助RF链路接口306可以包括以不同于其他接口的频率或使用不同于其他接口的调制进行操作的无线电发射器和接收器。例如,WLAN接口302可以利用2.4GHz和5GHz工业科学和医学(ISM)频带中的频率,而PAN接口304可以利用2.4GHz ISM频带。辅助RF链路接口306可以包括在900MHz ISM频带中、在另一频率的许可频带内等操作的无线电发射器。在使用WLAN接口302或PAN接口304中的一者或多者的通信失败的情况下,辅助RF链路接口306可用于提供AMD 104与其他装置176之间的备用通信。例如,在AMD 104行进到物理空间102内没有Wi-Fi覆盖的区域的情况下,AMD 104可以使用辅助RF链路接口306与诸如专用接入点、对接站182或其他AMD 104的另一装置进行通信。
其他网络接口308可以包括使用其他波长或现象发送或接收数据的其他设备。例如,另一网络接口308可以包括用于将数据作为超声发送的超声收发器、通过调制诸如发光二极管的可见光源进行通信的可见光系统,等等。在另一示例中,另一网络接口308可以包括无线广域网(WWAN)接口或无线蜂窝数据网络接口。继续所述示例,另一网络接口308可以符合4G、LTE、5G或其他标准的至少一部分。
AMD 104可以包括以下传感器134中的一者或多者。在这里描绘的传感器134是通过说明的方式提供,而不一定作为限制。应当理解,AMD 104可以包括或利用其他传感器134,而在一些配置中可以省略一些传感器134。
马达编码器310提供指示马达132的旋转或线性延伸的信息。马达132可包括旋转马达或线性致动器。在一些实现方式中,马达编码器310可以包括单独的组件,诸如附着到马达132的光电二极管和编码器轮。在其他实现方式中,马达编码器310可以包括被配置为驱动马达132的电路。例如,自主导航模块152可以利用来自马达编码器310的数据来估计行进的距离。
悬架重量传感器312提供指示AMD 104在用于一个或多个轮子或脚轮的悬架系统上的重量的信息。例如,悬架重量传感器312可包括开关、应变仪、载荷传感器、光检测器342或用于确定重量是否施加到特定轮子或是否已从轮子移除重量的其他感测元件。在一些实现方式中,悬架重量传感器312可以提供二进制数据,诸如指示有重量施加到轮子的“1”值,而“0”值指示没有重量施加到轮子。在其他实现方式中,悬架重量传感器312可以提供诸如多少千克力或多少牛顿力的指示。悬架重量传感器312可以附着到轮子或脚轮中的一者或多者。在一些情形中,安全模块218可以使用来自悬架重量传感器312的数据来确定是否禁止一个或多个马达132的操作。例如,如果悬架重量传感器312指示悬架上没有重量,则暗示AMD 104不再搁置在它的轮子上,且因此可以禁止马达132的操作。在另一示例中,如果悬架重量传感器312指示超过阈值的重量,则暗示有重物搁置在AMD 104上,且因此可以禁止马达132的操作。例如,所述阈值可以包括将悬架系统压缩到最小高度的负载的重量,或者导致超过马达132的用以维持最小加速度的扭矩输出的质量。
一个或多个减震器开关314提供减震器或与减震器开关314机械接触的其他构件之间的物理接触的指示。安全模块218利用由减震器开关314获得的传感器数据146来修改AMD 104的操作。例如,如果与AMD 104的前面相关联的减震器开关314被触发,则安全模块218可以向后驱动AMD 104。
地板光学运动传感器(FOMS)316提供指示AMD 104相对于地板或AMD 104下方的其他表面的运动的信息。在一种实现方式中,FOMS 316可以包括诸如发光二极管(LED)、光电二极管阵列等光源。在一些实现方式中,FOMS 316可以利用光电传感器,诸如低分辨率二维光电二极管阵列。可以使用数种技术来确定由光电二极管获得的数据的变化并将所述变化转变为指示移动方向、速度、加速度等的数据。在一些实现方式中,FOMS 316可以提供其他信息,诸如指示地板上存在的图案、地板的组成、地板的颜色等的数据。例如,FOMS 316可利用可检测不同颜色或灰阶的光电传感器,并且此数据可用于生成地板表征数据。地板表征数据可用于导航。
超声传感器318利用超过20Hz的声音来确定从传感器134到对象的距离。超声传感器318可以包括诸如压电换能器的发射器和诸如超声麦克风的检测器。发射器可以生成特定定时的超声脉冲,而检测器监听从视场内的对象反射的那个声音的回声。超声传感器318可以提供指示对象的存在、到对象的距离等的信息。两个或更多个超声传感器318可以彼此结合利用以确定对象在二维平面内的位置。
在一些实现方式中,超声传感器318或其一部分可用于提供其他功能性。例如,超声传感器318的发射器可用于传输数据,而检测器可用于接收作为超声的所传输的数据。在另一示例中,超声传感器318的发射器可以被设置为特定频率并且用于生成特定波形,诸如锯齿图案,以提供诸如狗或猫的动物可听见的信号。
光学传感器320可提供指示对象存在或不存在、到对象的距离或对象的特性中的一者或多者的传感器数据146。光学传感器320可以使用飞行时间(ToF)、结构光、干涉测量或其他技术来生成距离数据。例如,ToF确定从光学发射器或照明器反射或以其他方式返回到光学检测器的发射光脉冲的传播时间(或“往返”时间)。通过将传播时间除以一半并将结果乘以空气中的光速,可以确定到对象的距离。光学传感器320可利用一个或多个感测元件。例如,光学传感器320可以包括4×4的光传感元件阵列。每个单独的感测元件可以与以不同方式指向的视场(FOV)110相关联。例如,光学传感器320可具有四个光感测元件,每个光感测元件与不同的10°的FOV 110相关联,从而允许传感器具有40°的整体FOV 110。
在另一实现方式中,结构光图案可以由光发射器提供。然后可以使用诸如图像传感器或相机344的传感器134在对象上检测结构光图案的一部分。基于结构光图案的特征之间的表观距离,可以计算到对象的距离。还可以使用其他技术来确定到对象的距离。在另一示例中,反射光的颜色可用于表征对象,诸如对象是否为皮肤、衣服、地板、饰面材料等等。在一些实现方式中,光学传感器320可以作为深度相机操作,提供场景的二维图像,以及指示到每个像素的距离的数据。
来自光学传感器320的数据可用于避免碰撞。例如,安全模块218和自主导航模块152可以利用指示到对象的距离的传感器数据146以便防止与那个对象碰撞。
可以操作多个光学传感器320,使得它们的FOV 110至少部分地重叠。为了最小化或消除干扰,光学传感器320可以选择性地控制所发射的光的定时、调制或频率中的一者或多者。例如,第一光学传感器320可以发射以30kHz调制的光,而第二光学传感器320发射以33kHz调制的光。
激光雷达322传感器通过利用激光提供指示到对象或其部分的距离的信息。跨场景在各个点处扫描激光,发射脉冲,所述脉冲可能会被所述场景内的对象反射。基于到那个特定点的飞行时间距离,可以生成指示对象的存在以及激光雷达322可见的相对位置、形状等的传感器数据146。来自激光雷达322的数据可由各种模块使用。例如,自主导航模块152可以利用由激光雷达322生成的点云数据来定位物理空间102内的AMD 104。
AMD 104可以包括桅杆。桅杆位置传感器324提供指示AMD 104的桅杆位置的信息。例如,桅杆位置传感器324可包括与桅杆延伸机构相关联的限位开关,所述限位开关指示桅杆是处于延伸位置还是缩回位置。在其他实现方式中,桅杆位置传感器324可以包括在桅杆的至少一部分上的光学代码,光学发射器和光电检测器342然后询问所述光学代码以确定桅杆延伸的距离。在另一实现方式中,桅杆位置传感器324可以包括附接到用于升高或降低桅杆的桅杆马达的编码器轮。桅杆位置传感器324可以向安全模块218提供数据。例如,如果AMD 104正准备移动,则可以检查来自桅杆位置传感器324的数据以确定桅杆是否缩回,且如果没有,则可以在开始移动之前缩回桅杆。
桅杆应变传感器326提供指示桅杆上相对于AMD 104的其余部分的应变的信息。例如,桅杆应变传感器326可以包括应变仪或载荷传感器,所述应变仪或载荷传感器测量施加到桅杆的侧向负载或桅杆上的重量或桅杆上的向下压力。安全模块218可以利用由桅杆应变传感器326获得的传感器数据146。例如,如果施加到桅杆的应变超过阈值量,则安全模块218可以引导将由AMD 104呈现的听觉和可见警报。
AMD 104可包括模块化有效载荷舱。有效载荷重量传感器328提供指示与模块化有效载荷舱相关联的重量的信息。有效载荷重量传感器328可以包括一个或多个感测机构以确定负载的重量。这些感测机制可以包括压阻装置、压电装置、电容装置、电磁装置、光学装置、电位计装置、微机电装置等。感测机构可作为换能器操作,其基于施加的力(诸如由于重力引起的负载的力)生成一个或多个信号。例如,有效载荷重量传感器328可以包括具有应变仪的载荷传感器和在施加重量时轻微变形的结构构件。通过测量应变仪的诸如电容或电阻的电气特性的变化,可以确定重量。在另一示例中,有效载荷重量传感器328可以包括力感测电阻器(FSR)。FSR可包括弹性材料,所述弹性材料在被压缩时改变一个或多个电气特性。例如,FSR的特定部分的电阻可随着特定部分被压缩而减小。在一些实现方式中,安全模块218可以利用有效载荷重量传感器328来确定模块化有效载荷舱是否已经过载。如果是,则可以发出警告或通知。
AMD 104可以利用一个或多个装置温度传感器330。装置温度传感器330提供AMD104内的一个或多个部件的温度数据。例如,装置温度传感器330可以指示一个或多个电池246、一个或多个马达132等的温度。在温度超过阈值的情况下,可以关闭与装置温度传感器330相关联的部件。例如,阈值可以基于部件规格来确定,诸如电池246的最大可允许温度。
一个或多个互锁传感器332可以向安全模块218或防止AMD 104在不安全条件下操作的其他电路提供数据。例如,互锁传感器332可以包括指示访问面板是否打开的开关。互锁传感器332可以被配置为禁止AMD 104的操作,直到互锁开关指示存在安全条件。
陀螺仪334可以提供指示附着到其上的对象的旋转的信息。例如,陀螺仪334可以生成指示AMD 104或其一部分的取向变化的传感器数据146。
加速度计336提供指示施加的加速度的方向和量值的信息。可以使用加速计336来确定诸如变化率、方向变化的确定、速度等数据。加速度计336可包括机械、光学、微机电或其他装置。例如,加速度计336中的陀螺仪334可以包括提供多轴陀螺仪334和加速度计336的预封装固态惯性测量单元(IMU)。
磁力计338可用于通过测量环境磁场(诸如地磁场)来确定取向。例如,磁力计338可以包括提供指示磁航向的输出罗盘数据的霍尔效应晶体管。
AMD 104可以包括一个或多个位置传感器340。位置传感器340可包括光学、无线电或其他导航系统,诸如全球定位系统(GPS)接收器。对于室内操作,位置传感器340可以包括室内位置系统,诸如使用Wi-Fi定位系统(WPS)。位置传感器340可以提供指示以下各项的信息:诸如“起居室”的相对位置,或诸如指示纬度和经度的特定坐标的绝对位置,或相对于预定义原点的位移。
光电检测器342提供指示入射光的传感器数据146。例如,光电检测器342可以提供指示颜色、强度、持续时间等的数据。
相机344生成指示一个或多个图像的传感器数据146。相机344可以被配置为检测一种或多种波长的光,包括但不限于太赫兹、红外线、可见光、紫外线等。例如,红外相机344可能对大约700纳米与1毫米之间的波长敏感。相机344可以包括电荷耦合装置(CCD)、互补金属氧化物半导体(CMOS)装置、微测热辐射计等。AMD 104可以将由相机344获取的图像数据用于对象辨识、导航、避免碰撞、用户通信等。例如,对红外光敏感的一对相机344可以安装在AMD 104的前面以提供双目立体视觉,其中传感器数据146包括被发送到自主导航模块152的图像。在另一示例中,相机344可以包括用于视频会议或用于为用户获取图片的10兆像素或更大的相机。
相机344可以包括全局快门或滚动快门。快门可以是机械的或电子的。机械快门使用物理装置(诸如快门叶片或液晶)来防止光线到达光传感器。相比之下,电子快门包括如何读出光传感器的特定技术,诸如逐行、隔行等。在滚动快门的情况下,并非所有像素都同时曝光。例如,在电子滚动快门的情况下,可以逐步读取光传感器的行,使得在第一时间取得传感器上的第一行,而在稍后时间取得最后一行。因此,滚动快门可能会产生各种图像伪影,尤其是对于对象正在移动的图像。相比之下,在全局快门的情况下,光传感器一次全曝光,且然后读出。在一些实现方式中,相机344,特别是与导航或自主操作相关联的相机,可以利用全局快门。在其他实现方式中,提供图像以供自主导航模块152使用的相机344可以使用卷帘快门来获取并且随后可以被处理以减轻图像伪影。
一个或多个麦克风346可以被配置为获取指示物理空间102中存在的声音的信息。在一些实现方式中,可以使用麦克风阵列346。这些阵列可以实施波束形成技术以提供增益的方向性。AMD 104可以使用一个或多个麦克风346从声学标签获取信息、接受来自用户的语音输入、确定话语的方向、确定环境噪声水平、用于与另一用户或系统的话音通信等等。
气压传感器348可以提供指示环境大气压或环境大气压的变化的信息。例如,气压传感器348可以提供指示由于门的打开和关闭、天气事件等引起的气压变化的信息。
空气质量传感器350可以提供指示环境大气的一个或多个属性的信息。例如,空气质量传感器350可包括一个或多个化学感测元件以检测一氧化碳、二氧化碳、臭氧等的存在。在另一示例中,空气质量传感器350可以包括用于检测空气中的微粒物质的一个或多个元件,诸如光电检测器、电离室等。在另一示例中,空气质量传感器350可以包括提供指示相对湿度的信息的湿度计。
环境光传感器352可以包括一个或多个光检测器342或其他光敏元件,其用于确定AMD 104周围的环境照明的颜色、强度或持续时间中的一者或多者。
环境温度传感器354提供指示接近AMD 104的环境物理空间102的温度的信息。在一些实现方式中,可以利用红外温度传感器来确定远处的另一对象的温度。
地板分析传感器356可包括用于生成地板表征数据的至少一部分的一个或多个部件。在一种实现方式中,地板分析传感器356可以包括可以用于确定地板的电阻、电感或电容中的一者或多者的电路。例如,与地板接触的两个或更多个轮子可包括电路与地板之间据称的导电通路。通过使用这些轮子中的两者或更多者,电路可以测量地板的电气性质中的一者或多者。地板分析传感器356所获得的信息可以由安全模块218、自主导航模块152、任务模块230等中的一者或多者使用。例如,如果地板分析传感器356确定地板是湿的,则安全模块218可以减小AMD 104的速度并生成警告用户108的通知。
地板分析传感器356还可以包括其他部件。例如,摩擦系数传感器可包括探针,所述探针与表面接触并确定探针与地板之间的摩擦系数。
脚轮旋转传感器358提供指示脚轮的取向、角速度、线速度等中的一者或多者的数据。例如,脚轮旋转传感器358可以包括光学编码器和对应目标,所述光学编码器和对应目标能够确定脚轮从第一时间的0°角度转变为第二时间的49°。
传感器134可以包括雷达360。雷达360可用于向对象提供关于距离、横向位置等的信息。
传感器134可以包括被动红外(PIR)传感器362。PIR 362传感器可用于检测用户、宠物、热点等的存在。例如,PIR传感器362可以被配置为检测波长在8微米与14微米之间的红外辐射。
AMD 104还可以包括其他传感器364。例如,电容性接近传感器可用于向相邻对象提供接近数据。其他传感器364可以包括射频识别(RFID)读取器、近场通信(NFC)系统、编码孔径相机等。例如,NFC标签可以放置在物理空间102内的各个点,以为自主导航模块152提供地标。可利用一个或多个触摸传感器来确定与用户108或其他对象的接触。
AMD 104可以包括一个或多个输出装置212。马达132可用于提供线性或旋转运动。灯382可用于发射光子。扬声器384可用于发出声音。显示器386可以包括液晶显示器、发光二极管显示器、电泳显示器、胆甾相液晶显示器、干涉显示器等中的一者或多者。显示器386可用于呈现可见信息,诸如图形、图片、文本等。在一些实现方式中,显示器386可以包括组合了触摸传感器和显示器386的触摸屏。
在一些实现方式中,AMD 104可以配备投影仪388。投影仪388能够将图像投射在诸如地板、墙壁、天花板等表面上。
气味分配器390可用于散发一种或多种气味。例如,气味分配器390可以包括多种不同的有气味的液体,所述液体可以以受控的方式蒸发或气化以释放预定量的每种液体。
一个或多个可移动部件致动器392可包括电操作机构,诸如马达、螺线管、压电材料、电活性聚合物、形状记忆合金等中的一者或多者。致动器控制器可用于提供操作一个或多个可移动部件致动器392以产生可移动部件的移动的信号或其他输入。
在其他实现方式中,可以利用其他394输出装置。例如,AMD 104可以包括向用户108提供产生特定触摸感觉的输出的触觉输出装置。继续所述示例,可以使用具有偏心重量的马达132来产生嗡嗡声或振动以允许AMD 104模拟猫的咕噜声。
图4在400处绘示了根据一些实现方式的非静止对象模块154的框图。
非静止对象模块154使用传感器数据146来更新占用地图144。占用地图144可以包括指示静止对象的第一层和指示非静止对象的第二层。第一层可以指示静止对象,诸如沙发、椅子、桌子、墙壁等。第二层可以指示非静止对象,诸如用户108、宠物或其他自主移动装置。AMD 104可以使用第一层来确定物理空间102的不同位置之间的路径规划。当AMD 104沿着路径规划移动时,AMD 104可以使用第二层作出导航调整,其中作出导航调整以避免打断一个或多个非静止对象的路径或移动到一个或多个非静止对象的路径中。
深度传感器136可以获取点云数据148。图像传感器138可以获取图像数据150。非静止对象模块154使用传感器数据148、150将表示物理空间102内的物理对象的对象分类为静止的或非静止的。非静止对象模块154可以基于对象的一个或多个特性来确定对象是静止对象,所述特性诸如以下各项中的一者或多者:宽度值、长度值、纵横比、速度、对象的物理特征等等。
非静止对象模块154可以更新占用地图144的第二层以包括被确定为静止对象的对象。非静止对象模块154还可以通过从第二层移除基于传感器数据146而被确定为未被占用的一个或多个对象来更新占用地图144。
非静止对象模块154可包括:点云处理模块156、视觉处理模块158、对准模块160、对象分层模块162、跟踪器模块164、聚类模块166和分类模块168。在一种实现方式中,在不使用诸如点云数据148的深度传感器数据的情况下,来自图像传感器138的图像数据150可用于确定非静止对象。例如,视觉处理模块158可以使用图像数据150来确定由候选对象数据408表示的第一候选对象。对准模块160可以使用候选对象数据408来确定已对准对象数据410。分类模块168可以使用跟踪数据406来确定静止对象数据412和非静止对象数据414。
在另一实现方式中,在不使用图像数据150的情况下,来自深度传感器136的点云数据148可用于确定非静止对象。这可能发生在以下情形中:图像传感器138不可操作;已关闭;由于过度曝光或曝光不足而未产生可用数据;具有指向别处的FOV 110等。例如,点云处理模块156可以确定2D占用地图402。聚类模块166可以使用2D占用地图402来确定由候选对象数据404表示的第一候选对象。跟踪器模块164可以使用候选对象数据404来确定跟踪数据406。分类模块168可使用由跟踪数据406跟踪和指示的对象来确定静止对象数据412和非静止对象数据414。在此实施方式中,可以减小分类模块168的输出的置信度。例如,可将对象确定为具有0.70的置信值的非静止对象。
在关于在图4中描绘的系统流程描述的另一实现方式中,图像数据150和点云数据148都可用于确定非静止对象。例如,点云处理模块156可以接收由深度传感器136获取的点云数据148。点云处理模块156可以使用三维点云数据148来确定物理空间102的二维(2D)占用地图402。2D占用地图402可包括以下各项中的一者或多者的表示:墙壁、家具、植物、稍后可被确定为非静止对象的对象等。2D占用地图402可以由单元格网格表示,其中单独的单元格可以表示物理空间102的物理尺寸,诸如M×N厘米。如果传感器数据146指示物理对象的至少一部分位于与单独的单元格相关联的物理空间102的一部分处,则可以认为所述单元格“被占用”。
聚类模块166可以使用由点云处理模块156确定的2D占用地图402来确定候选对象数据404。聚类模块166可以使用2D占用地图402来确定一个或多个被占用的单元格是否表示可以被确定为非静止对象的候选对象。聚类模块166可基于确定一个或多个单元格是否以与未预期移动的对象相关联的形状或大小排列来滤除检测到的对象作为候选对象。例如,沙发的长度可以是P厘米,宽度可以是Q厘米,且纵横比可以是P:Q。可以基于具有大于第一阈值纵横比的纵横比将沙发滤除作为候选对象。例如,沙发可具有相对于长度:宽度的5:1的纵横比,所述纵横比是对于用户108来说是不太可能的纵横比。类似地,可以基于宽度值、长度值、高度值或纵横比中的一者或多者将墙壁或其他大对象滤除作为候选对象。在此示例中,由聚类模块166确定的候选对象被描绘在第一地图112内。由聚类模块166确定的候选对象数据404可以由跟踪器模块164使用以确定候选对象是否可能是被跟踪的对象。
跟踪器模块164可以使用由聚类模块166确定的候选对象数据404来确定跟踪数据406。分类模块168可以使用跟踪数据406来确定被跟踪的对象是非静止对象还是静止对象。在一些实现方式中,可以绕过或消除跟踪器模块164,并且分类模块168可以使用由聚类模块166确定的候选对象来确定候选对象是非静止对象还是静止对象。
在此示例中,跟踪器模块164可以基于以下各项中的一者或多者来确定候选对象是否为被跟踪的对象:物理位置、速度、大小(例如,边界半径)、特定候选对象与先前跟踪的候选对象之间的关联。跟踪器模块164可以提高由聚类模块166确定的候选对象被确定为非静止对象的可能性,因为跟踪器模块164可以确定候选对象是否具有在非静止对象将移动时指示候选对象正在移动的特性。
作为第一示例,在第一时间,跟踪器模块164可以接收由聚类模块166确定的第一候选对象数据。第一候选对象数据可以指示物理空间102内的第一大小和第一位置。在第二时间,跟踪器模块164可以接收由聚类模块166确定的第二候选对象数据。第二候选对象数据可以指示物理空间102内的第二大小和第二位置。跟踪器模块164可以基于第二大小等于或等同于第一大小以及第二候选对象的估计速度在非静止对象的阈值内来确定第二候选对象数据表示位于第二位置的第一候选对象。
所述阈值可包括指示慢走速度的第一阈值速度和指示快走速度的第二阈值速度。跟踪器模块164可以使用诸如Konig-Egervary Hungarian数据关联算法或LAPJV(Jonker-Volgenant Algorithm for a Linear Assignment Problem)算法的线性分配算法来确定第一候选对象数据与第二候选对象数据之间的数据关联。基于第一候选对象数据与第二候选对象数据之间的关联,跟踪器模块164可以确定第一候选对象数据和第二候选对象数据表示同一物理对象。基于表示同一物理对象的第一候选对象数据和第二候选对象数据,跟踪器模块164可以确定第二候选对象是由跟踪数据406表示的被跟踪的对象。
作为第一示例,在第一时间,跟踪器模块164可以接收由聚类模块166确定的第一候选对象数据。第一候选对象数据可以在第一位置。在第二时间,聚类模块166可以确定第二候选对象数据。第二候选对象数据可以在第二位置处。依据确定点云数据148的频率,第一位置和第二位置可足够近,使得由第一候选对象数据指示的一个或多个维度与由第二候选对象数据指示的一个或多个维度重叠。如果由第一候选对象数据指示的位置与由第二候选对象数据指示的位置重叠,则可以在第二候选对象移动到第二位置后将第二候选对象确定为第一候选对象。在其他示例中,由第一位置处的第一候选对象数据指示的一个或多个维度与由第二位置处的第二候选对象数据指示的一个或多个维度之间可以存在一个或多个单元格。在此示例中,第一候选对象数据可基于以下各项中的一者或多者与第二候选对象数据相关联:由第一候选对象数据指示的第一长度在由第二候选对象数据指示的第二长度的第一阈值内;由第一候选对象数据指示的第一宽度在由第二候选对象指示的第二宽度的第二阈值内;由第一候选对象数据指示的第一纵横比等于由第二候选对象数据指示的第二纵横比;或第一对象的一个或多个维度之间的单元格的数目小于或等于第二对象的一个或多个维度的单元格的第三阈值数目。基于所述关联,可将第二候选对象确定为由跟踪数据406表示的被跟踪的对象。
分类模块168然后可以使用跟踪数据406来确定跟踪数据406是表示非静止对象还是静止对象。分类模块168的另一输入可以是由对准模块160确定的已对准对象数据410。对准模块160可以使用由视觉处理模块158确定的候选对象数据408。
视觉处理模块158可以使用图像数据150来确定候选对象数据408。例如,视觉处理模块158可以使用特征检测算法来识别物理空间102内的一个或多个对象。例如,面部辨识算法可以确定用户108存在于物理空间102内。类似地,视觉处理模块158可以确定图像数据150是否表示宠物或其他生物。视觉处理模块158还可以确定候选对象在物理空间102内的相对位置。在此示例中,由视觉处理模块158确定的候选对象被描绘在第二地图116内。在一些实现方式中,由视觉处理模块158确定的候选对象数据408然后可以由分类模块168使用,以确定候选对象数据408是非静止对象数据414还是静止对象数据412。在其他实现方式中,由视觉处理模块158确定的候选对象数据408可以由对准模块160使用,以确定候选对象数据408是否与跟踪数据406对准。
对准模块160可以使用由视觉处理模块158确定的候选对象数据408和由跟踪器模块164确定的跟踪数据406或由聚类模块166确定的候选对象数据404。第一对象可以表示由视觉处理模块158确定的候选对象数据408。第二对象可以表示由跟踪器模块164确定的跟踪数据406或者可以表示由聚类模块166确定的候选对象数据404。对准模块160可以确定第一对象的第一位置距第二对象的第二位置小于或等于阈值距离。对准模块160还可以确定第一对象的第一大小在第二对象的第二大小的阈值百分比内。
对准模块160可以基于第一对象的第一位置距第二对象的第二位置小于或等于阈值距离以及基于第一对象的第一大小在第二对象的第二大小的阈值百分比内来确定第一对象与第二对象对准。对准模块160可以基于第一对象和第二对象两者来确定已对准对象。第一位置可以与相对于物理空间102的第一组坐标相关联,并且第二位置可以与相对于物理空间102的第二组坐标相关联。在此示例中,对准模块160可以基于第一对象的第一位置距第二对象的第二位置小于或等于阈值距离来确定第一对象和第二对象指示同一对象。例如,对准模块160可以基于以下各项中的一者或多者来确定已对准对象的一个或多个特性:第一对象的第一宽度和第二对象的第二宽度的平均值、第一对象的第一长度和第二对象的第二长度的平均值、第二对象的速度,或指示第一对象和第二对象在物理空间102内的位置的对应坐标值的平均值。
分类模块168可以确定特定对象是非静止对象还是静止对象。第一对象可以表示已对准对象数据410、跟踪数据406或候选对象数据408。已对准对象数据410由对准模块160确定,并且可以指示对准的置信值、跟踪数据406或候选对象数据408中的一者或多者。例如,已对准对象数据410可以指示候选对象数据408和跟踪数据406具有0.95的对准置信值,从而指示高置信度。分类模块168可以使用已对准对象数据410、候选对象数据408或跟踪数据406的一个或多个特性来确定第一对象是非静止对象还是静止对象。所述一个或多个特性可包括以下各项中的一者或多者:第一对象的速度、速度随时间的变化、第一对象的大小、第一对象的纵横比等。如果第一对象被确定为静止对象,则将第一对象添加到占用地图144的第一层。如果第一对象被确定为非静止对象,则将所述非静止对象添加到占用地图144的第二层。对象分层模块162可以使用由分类模块168确定的非静止对象和静止对象来更新占用地图144的一个或多个层。
对象分层模块162可以使用静止对象数据412或非静止对象数据414来更新占用地图144的一层或多层。占用地图144的第一层可以指示静止对象的位置、大小和其他特性。占用地图144的第一层可用于路线规划以及确定物理空间102中的位置之间的路径。占用地图144的第二层可以指示非静止对象的位置、大小、速度和其他特性。占用地图144的第二层可用于局部导航确定,以避免在AMD 104沿着路径规划移动时碰撞非静止对象或中断所述非静止对象的移动。因为第二层中的非静止对象不排除在第一层中可用的路径规划,所以AMD104能够使用物理空间102中的静止对象的准确表示来确定路径规划。
例如,在第一时间,AMD 104可以确定第一路径规划,所述第一路径规划包括用于将AMD 104从物理空间中的第一位置导航到物理空间中的第二位置的指令。AMD 104可以基于与非静止对象相关联的速度和与非静止对象相关联的方向来确定非静止对象的预期路径。AMD 104可以基于第一路径规划和预期路径来确定根据第一路径规划移动的AMD 104与根据预期路径移动的非静止对象之间的潜在碰撞。AMD 104可以基于潜在碰撞来确定第二路径规划,所述第二路径规划包括用于将AMD 104导航远离非静止对象的指令。AMD 104可以基于所述第二路径规划移动以避免潜在的碰撞。
图5在500处绘示了根据一些实现方式的将使用不同传感器134确定的候选对象114、118对准的对准模块160。
对准模块160在上文关于图4进行了描述。如图5中描绘,传感器数据146可以包括点云数据502和图像数据504。如所描绘,对准模块160使用利用点云数据502确定的候选对象114和利用图像数据504确定的候选对象118。
关于点云数据502,可以使用聚类模块166来确定一个或多个对象508、114,如关于图4所描述的。聚类模块166可以使用点云数据502的2D占用地图144来确定一个或多个被占用的单元格是否表示可以被确定为非静止对象的候选对象。聚类模块166可基于确定一个或多个单元格是否以与未预期移动的对象相关联的形状或大小排列来滤除检测到的对象作为候选对象。例如,沙发的长度可以是P厘米,宽度可以是Q厘米,且纵横比可以是P:Q。可以基于具有大于第一阈值纵横比的纵横比将沙发滤除作为候选对象。例如,沙发可具有相对于长度:宽度的5:1的纵横比,所述纵横比对于用户108来说是不太可能的纵横比。类似地,可以基于宽度值、长度值、高度值或纵横比中的一者或多者将墙壁或其他大对象滤除作为候选对象。在此示例中,由聚类模块166确定的候选对象114被描绘在第一地图112内。在第一地图112内描绘了作为不是候选对象而被滤除的对象508。
关于图像数据504,可以使用对象辨识算法来确定一个或多个实体506。在此示例中,关于物理空间102的语义数据可为可用的。例如,机器视觉系统可以使用图像数据504来确定图像数据504包括家具和人的描绘。人由实体506(1)描绘,并且家具由实体506(2)描绘,其中实体506(1)与“人”的语义标签相关联,并且其中实体506(2)与“家具”的语义标签相关联。可能是非静止对象的对象的语义标签被确定为候选对象。例如,基于语义标签“人”与可能是非静止对象的第一类对象相关联,与标签“人”相关联的实体506(1)被确定为候选对象118。关于第二地图116描绘了候选对象118。可移动的第一类对象的其他语义标签包括“狗”、“猫”、“机器人”等。基于与标签“家具”相关联的实体506(2)不属于第一类对象,实体506(2)未被确定为候选对象。
在此示例中,对准模块160使用候选对象114和候选对象118来确定已对准对象数据410。关于图9更详细地描述对准模块160。
图6在600处绘示了根据一些实现方式的用于将静止对象与相邻的非静止对象区分开来的系统。
在此图解中,非静止对象模块154可以使用背景减除算法来确定单独的传感器数据簇146是否指示与非静止对象相邻的静止对象。使用背景减除算法,非静止对象模块154可以避免将静止对象错误分类为非静止对象的一部分。如以下示例中所描述,第一位置处的非静止对象可以从第一位置移动到在静止对象附近的位置。使用随时间获取的传感器数据146来确定指示占用位置和未占用位置的值,与静止对象相关联的位置可以被排除在与非静止对象相关联的位置之外。
非静止对象模块154可以确定包括多个单元格的当前地图616和包括多个单元格的累积地图614。每个相应的单元格可以与物理空间102的相应区域或位置相关联。例如,单个单元格或多个单元格可以与给定位置相关联。传感器数据146可用于确定物理区域内的一个或多个对象,并且给定位置处的单独对象可由与给定位置相关联的一个或多个单元格指示。累积地图614和当前地图616可以指示对应于占用地图144的物理区域。当前地图616用于在给定时间并基于与物理区域相关联的传感器数据146来指示物理区域内的占用位置和未占用位置。在此示例中,不随时间用指示占用位置或未占用位置的历史值更新当前地图616。如早先所述,可以使用提供数据存储和修改的任何数据结构来实施地图。例如,可以通过数组、数据库记录、列表、数据对象、图形等管理由地图指示的数据。
随时间更新累积地图614以指示指示占用位置和未占用位置的历史值。累积地图614中的历史值可用于确定静止对象和非静止对象的位置。非静止对象模块154可以关于在第一时间段内跟踪的对象来确定对累积地图614的第一一个或多个更新。在此示例中,第一一个或多个更新是针对与累积地图614相关联的多个位置。非静止对象模块154可以相对于在第一时间段内的静止对象确定对累积地图614的第二一个或多个更新。第二一个或多个更新是针对与累积地图614相关联的单个位置。非静止对象模块154可以基于第一一个或多个更新和第二一个或多个更新来确定包括静止对象的占用地图144。非静止对象模块154可以基于第一一个或多个更新和第二一个或多个更新来确定包括非静止对象的非静止地图层。
在第一时间,时间=1,关于物理空间102的累积地图614(1),非静止对象模块154可以获取传感器数据602(1)以确定当前地图616(1)。当前地图616(1)可以指示第一位置被占用而第二位置未被占用。第一位置可以与第一对象608(1)相关联,并且第二位置可以与当前地图616(1)的第二对象606(1)相关联。传感器数据602(1)可以是由深度传感器136确定的点云数据148、由图像传感器138确定的图像数据150,或点云数据148和图像数据150两者。在第一时间,将累积地图614(1)设置为等于当前地图616(1)。当前地图616(1)是基于传感器数据602(1)。在此示例中,值“0”指示由传感器数据602(1)指示的未占用位置,而值“1”指示由传感器数据602(1)指示的占用位置。
在第二时间,时间=2,非静止对象模块154可以获取指示当前地图616(2)中的第一对象608(2)和第二对象606(2)的传感器数据602(2)。在第二时间,可以将累积地图614(2)设置为当前地图616(2)的相应单元格的总和。当前地图616(2)可以指示基于传感器数据602(2)的占用位置和未占用位置。在此示例中,因为第二对象606(2)尚未移动,所以递增与第二对象606(2)相关联的单元格。在此示例中,因为第一对象608(2)已经移动,所以递增与新位置相关联的单元格。如所描绘,在第二时间,与第一对象608(2)相关联的单元格的值“1”不同于与第二对象606(2)相关联的单元格的值“2”。
在第三时间,时间=3,非静止对象模块154可以获取指示当前地图616(3)中的第一对象608(3)和第二对象606(3)的传感器数据602(3)。在第三时间,可以将累积地图614(3)设置为当前地图616(3)的相应单元格的总和。当前地图616(3)可以指示基于传感器数据602(3)的占用位置和未占用位置。在此示例中,因为第二对象606(3)尚未移动,所以递增与第二对象606(3)相关联的单元格。在此示例中,因为第一对象608(3)已经移动,所以递增与新位置相关联的单元格。如所描绘,在第三时间,与第一对象608(3)相关联的单元格的值“1”不同于与第二对象606(3)相关联的单元格的值“3”。
在第三时间,在与第一对象608(3)和第二对象606(3)相关联的单元格相邻时,非静止对象模块154基于与第一对象608(3)相关联的单元格中的值不同于与第二对象606(3)相关联的单元格中的值而将这些相邻单元格区分为不同的对象。在此示例中,在第三时间,第一对象608与排除第二对象606的位置的位置相关联。例如,与第一对象608相关联的值是基于指示在第一时间、第二时间和第三时间内的占用位置和未占用位置的值。因为第一对象608已经移动,所以与第一对象608的多个位置相关联的值没有累积。类似地,与第二对象606的位置相关联的值是基于指示在第一时间、第二时间和第三时间内的单个占用位置的值。因为第二对象606没有移动,所以与第二对象606的位置相关联的值已经累积。基于与第一对象608相关联的值小于阈值,可以确定与第一对象608相关联的位置被非静止对象占用。类似地,基于与第二对象606相关联的值大于阈值,可以确定与第二对象606相关联的位置被静止对象占用。可以从与非静止对象相关联的位置排除与静止对象相关联的位置。阈值可以基于用于确定累积地图614的所生成的当前地图616的数目。例如,每当基于传感器数据602确定当前地图616时,递增累积地图614的占用单元格和未占用单元格。在此示例中,与静止对象相关联的位置与一定数目的所生成的当前地图616的累积地图614中的累积值相关联,所述累积值是值3。在此图解中,阈值可以比所生成的当前地图616的数目小一,其为值2。
图7在700处绘示了根据一些实现方式的用于确定候选对象114的点云处理模块156和聚类模块166。
点云处理模块156可接收由深度传感器136确定的点云数据702。点云处理模块156可以使用三维点云数据702来确定物理空间102的二维(2D)占用地图704。2D占用地图704可以包括以下各项中的一者或多者的表示:墙壁、家具、非静止对象等。2D占用地图704可以由单元格网格表示,其中单独的单元格可以表示物理空间102的物理尺寸,诸如M×N厘米。如果传感器数据146指示物理对象的至少一部分位于与单独的单元格相关联的物理空间102的一部分处,则可以认为所述单元格“被占用”。示例性单独的单元格被描绘为单元格714。
在此示例中,2D占用地图704包括簇706(1)-(4)。簇706(1)表示物理空间102内的墙壁。簇706(2)表示物理空间102内的家具。簇706(3)表示物理空间102内的人。簇706(4)可以基于占用小于或等于阈值数目的单元格而被确定为噪声。
聚类模块166可以使用由点云处理模块156确定的2D占用地图704来确定一个或多个候选簇。聚类模块166可以使用2D占用地图704来确定一个或多个被占用的单元格是否表示可以被确定为非静止的候选对象。聚类模块166可基于确定一个或多个单元格是否以与预期移动的对象相关联的形状或大小排列来滤除检测到的对象作为候选对象。例如,沙发的长度可以是P厘米,宽度可以是Q厘米,且纵横比可以是P:Q。可以基于具有大于阈值纵横比值的纵横比将沙发滤除作为候选对象。类似地,墙壁或其他大对象可以被滤除作为候选对象。在此示例中,由聚类模块166确定的候选对象114被描绘在第一地图112内。基于单独的纵横比大于阈值纵横比值,聚类模块166可以滤除簇706(1)和706(2)。聚类模块166可以基于与簇706(3)相关联的一个或多个单独的占用单元格以及连接所述一个或多个单独的占用单元格的一个或多个未占用单元格来确定候选对象114。由聚类模块166确定的候选对象114然后可以由跟踪器模块164使用以确定候选对象是否可能是被跟踪的对象。
图8在800处绘示了根据一些实现方式的用于确定候选对象的视觉处理模块158。
关于图像数据504,可以使用对象辨识算法来确定一个或多个实体506。在此示例中,关于物理空间102的语义数据可为可用的。例如,机器视觉系统可以使用图像数据504来确定图像数据504包括家具和人的描绘。人由实体506(1)描绘,并且家具由实体506(2)描绘,其中实体506(1)与“人”的语义标签相关联,并且其中实体506(2)与“家具”的语义标签相关联。
语义标记模块806可以确定被认为能够在第一时间与第二时间之间改变位置的对象的语义标签。将被认为能够在第一时间与第二时间之间改变位置的对象确定为候选对象。例如,基于语义标签“人”与可能是非静止对象的第一类对象相关联,与标签“人”相关联的实体506(1)被确定为候选对象118。关于第二地图116描绘了候选对象118。可移动的第一类对象的其他语义标签包括“狗”、“猫”、“机器人”等。基于与标签“家具”相关联的实体506(2)不属于第一类对象,实体506(2)未被确定为候选对象。
特征检测模块802可以使用特征检测算法来识别物理空间102内的一个或多个对象。例如,面部辨识算法可以确定实体506(1)表示人。类似地,特征检测算法可以确定实体506是否表示与可移动的第一类对象中的一者匹配的一种类型实体。
坐标确定模块804可以确定用户108在物理空间102内的位置。例如,占用地图144可以包括物理空间102内的固定对象的位置。AMD 104还可以确定物理空间102内在其处确定图像数据504的第一方向和第一位置。为了确定实体506(1)的位置,AMD 104可以使用以下各项中的一者或多者:第一方向、第一位置、占用地图144,或在获取图像数据504时在视野中的一个或多个静止对象的相对位置。
图9在900处绘示了根据一些实现方式的用于确定候选对象是否为已对准对象的对准模块160和分类模块168。
对准模块160可以使用由视觉处理模块158确定的候选对象和由跟踪器模块164确定的被跟踪的对象或由聚类模块166确定的候选对象。例如,关于图5描述了基于点云数据148和基于图像数据150的候选对象数据408。第一对象可以是由视觉处理模块158确定的候选对象118。第二对象可以是由跟踪器模块164确定的被跟踪的对象或者可以是由聚类模块166确定的候选对象114。对准模块160可以确定第一对象的第一位置距第二对象的第二位置小于或等于阈值距离。第一位置可以由第一地图112的一个或多个单元格指示。第二位置可以由第二地图116的一个或多个单元格指示。对准模块160还可以确定第一对象的第一大小在第二对象的第二大小的阈值百分比内。第一大小可以由候选对象114占用的第一数量的单元格来确定。第二大小可以由候选对象118占用的第二数量的单元格来确定。
对准模块160可以基于第一对象的第一位置距第二对象的第二位置小于或等于阈值距离以及基于第一对象的第一大小在第二对象的第二大小的阈值百分比内来确定第一对象与第二对象对准。比对模块160可以基于第一数量的单元格和第二数量的单元格来确定候选簇904。在此示例中,簇地图902将候选簇904描绘为包括第一数量的单元格和第二数量的单元格的一组单元格。
对准模块160可以基于物理空间102内的重叠来确定第一对象与第二对象对准。例如,如果第一对象和第二对象都与在物理空间102内共同占用大于阈值区域相关联,则它们可以被认为是对准的。
对准模块160可以基于用于确定候选簇904的候选对象的一个或多个特性来确定已对准对象908。例如,对准模块160可以基于以下各项中的一者或多者来确定已对准对象908的一个或多个特性:第一对象的第一宽度和第二对象的第二宽度的平均值、第一对象的第一长度和第二对象的第二长度的平均值、第二对象的速度,或指示第一对象和第二对象在物理空间102内的位置的对应坐标值的平均值。已对准对象908是关于已对准对象地图910来描绘的。
图10是根据一些实现方式的用于将已对准对象或被跟踪的对象分类为静止对象或非静止对象的过程的流程图1000。
在1002处,分类模块168可以接收用于分类的特定对象数据。如上文关于图4所描述,特定对象数据可以是已对准对象数据410、跟踪数据406、候选对象数据404或候选对象数据408中的一者或多者。例如,可将已对准对象数据410提供给分类模块168。在另一示例中,可将候选对象数据404和候选对象数据408提供给分类模块168。在又一示例中,可将候选对象数据408和跟踪数据406提供给分类模块168。还可以使用分类模块168的输入数据的其他组合。
对准模块160确定已对准对象数据410。跟踪器模块164确定跟踪数据406。候选对象数据404和候选对象数据408可由视觉处理模块158或聚类模块166确定。
在1004处,分类模块168可以确定特定对象数据是否表示以大于0.5米/秒(m/s)的速度移动的物理对象。在此示例中,用于确定特定对象数据是否指示非静止对象的第一阈值速度是0.5m/s,但在其他示例中,可将第一阈值速度指定为另一速度值。如果特定对象数据指示大于第一阈值速度的速度,则过程在1014处继续,其中特定对象数据被分类为表示非静止对象。如果特定对象数据指示小于或等于第一阈值速度的速度,则过程在1006处继续。
在一些示例中,分类模块168可以基于音频数据确定特定对象数据是否指示非静止对象。音频数据可用于确定与特定对象数据相关联的物理对象的位置。例如,AMD 104可以使用麦克风阵列来获取音频数据并确定所述音频数据表示唤醒词。AMD 104可以基于音频数据确定指示相对于AMD的方向的第一方向值。第一方向值是在相对于AMD说出唤醒词的方向上。AMD 104可以基于第一组坐标或第二组坐标来确定指示相对于AMD的方向的第二方向值。第一组坐标可以基于与由点云处理模块156确定的特定对象数据相关联的物理对象的位置。第二组坐标可以基于与由视觉处理模块158确定的候选对象数据相关联的物理对象的位置。如果第一方向值与第二方向值之间的差小于或等于阈值,则可将特定对象数据分类为表示非静止对象。
在1006处,分类模块168可以确定特定对象数据是否为已对准对象数据。例如,从对准模块160接收的已对准对象数据410可以指示已对准对象数据410已经对准。如果跟踪数据406与候选对象数据408之间的对准的置信值大于阈值,则已对准对象908可以被认为是对准的。例如,如果候选对象114和候选对象118在彼此的阈值距离内、在物理空间102中彼此重叠等,则置信值可为高。如果特定对象数据已对准但指示小于或等于第一阈值速度的对象速度,则使用第二阈值速度来确定特定对象数据是否表示非静止对象。第二阈值速度低于第一阈值速度。如果特定对象数据已对准,则过程在1010处继续。如果特定对象数据未对准,则过程在1008处继续。
在1008处,分类模块168可以确定特定对象数据先前是否已经被分类为表示非静止对象。例如,特定对象数据可以将先前分类指示为表示非静止对象。例如,随着时间的推移,可以获取传感器数据,并且使用所述传感器数据来确定先前确定的对象数据表示已经在物理空间102内移动的对象。如果特定对象数据先前已被分类为表示非静止对象,则确定特定对象数据是否表示非静止对象的第二阈值速度低于第一阈值速度。如果特定对象数据先前已被分类为表示非静止对象,则过程在1010处继续。如果特定对象数据先前未被分类为表示非静止对象,则过程在1012处继续。
在1010处,分类模块可以确定特定对象数据是否表示以大于0.2m/s的速度移动的物理对象。如上文关于1004所描述,可在其他示例中不同地指定0.2m/s的第二阈值。如果特定对象数据表示以大于第二阈值速度的速度移动的物理对象,则过程在1014处继续,其中分类模块168将特定对象数据分类为表示非静止对象。如果特定对象数据表示以小于或等于第二阈值速度的速度移动的物理对象,则过程在1012处继续,其中分类模块168将特定对象数据分类为表示静止对象。
在1012处,分类模块168可以将特定对象数据分类为静止对象数据。例如,分类模块168可以将特定对象数据分类为静止对象数据412,如图4中描绘。对象分层模块162可以使用静止对象数据412来确定对占用地图144的更新。例如,所述更新可以指示在占用地图144中表示的静止对象的新位置。在另一示例中,所述更新可以指示新的静止对象。通过使用准确的占用地图144,AMD 104可以准确地确定物理空间102的位置之间的路径规划。
在1014处,分类模块168可以将特定对象数据分类为非静止对象数据。例如,分类模块168可以将特定对象数据分类为非静止对象数据414,如图4中描绘。对象分层模块162可以使用非静止对象数据414来确定对非静止地图层120的更新。例如,所述更新可以指示在非静止地图层120中表示的非静止对象的新位置。在另一示例中,所述更新可以指示新的静止对象。通过使用非静止对象的准确地图,AMD 104可以使用关于非静止对象的信息来作出导航决策,所述导航决策避免在AMD 104根据路径规划移动时干扰非静止对象。
分类模块168可以利用支持向量机(SVM)、分类器、神经网络等中的一者或多者。例如,可以训练分类器以确定对象是非静止对象还是静止对象。在另一示例中,可以训练神经网络以确定对象是否充分对准。
在一些实现方式中,可使用一种或多种机器学习技术来确定一个或多个阈值。例如,可以训练诸如神经网络或分类器的机器学习系统,并且可以由机器学习系统确定关于第一阈值速度、第二阈值速度等的信息。然后可以如关于图10所描述使用这些确定的阈值。
在本公开中论述的过程和方法可实施于硬件、软件或它们的组合中。在软件背景下,所描述的操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个硬件处理器执行时会执行所叙述的操作。一般来说,计算机可执行指令包括执行特定功能或实施特定抽象数据类型的例程、程序、对象、部件、数据结构等。本领域普通技术人员将容易认识到,在上文在图中绘示的某些步骤或操作可被排除、组合或按照替代性次序执行。任何步骤或操作可连续地或并行地执行。此外,描述操作的次序不希望被理解为限制。
可提供实施方案作为软件程序或计算机程序产品,所述软件程序或计算机程序产品包括非暂时性计算机可读存储介质,在所述非暂时性计算机可读存储介质上存储有指令(以被压缩或未压缩的形式),所述指令可用于将计算机(或其他电子装置)编程以执行在本文描述的过程或方法。所述计算机可读存储介质可为电子存储介质、磁性存储介质、光学存储介质、量子存储介质等中的一者或多者。举例来说,所述计算机可读存储介质可包括(但不限于)硬盘驱动器、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁卡或光学卡、固态存储器装置或适合于存储电子指令的其他类型的物理介质。此外,还可提供实施方案作为包括暂时性机器可读信号(以被压缩或未压缩的形式)的计算机程序产品。暂时性机器可读信号(无论是使用载波调制还是未调制)的示例包括(但不限于)操控或运行计算机程序的计算机系统或机器可被配置为访问的信号,包括由一个或多个网络传递的信号。举例来说,暂时性机器可读信号可包括通过互联网传输软件。
这些程序的单独的实例可在任何数目个单独的计算机系统上执行或分布。因此,虽然某些步骤已经被描述为由某些装置、软件程序、过程或实体执行,但不需要这样,并且本领域普通技术人员将理解多种替代性实现方式。
另外,本领域普通技术人员将容易认识到,可在多种装置、物理空间和情形中利用上文描述的技术。尽管已用结构特征或方法动作特有的语言描述了主题,但应理解,在所附权利要求书中所界定的主题不一定限于所描述的特定特征或动作。而是,所述特定特征和动作是作为实施权利要求书的说明性形式而公开的。
可鉴于以下条款来描述本公开的实施方案:
(条款1)一种位于物理空间中的自主移动装置(AMD),所述AMD包括:
深度传感器;
图像传感器;
一个或多个存储器,所述一个或多个存储器存储计算机可执行指令;以及
一个或多个处理器,所述一个或多个处理器执行所述计算机可执行指令以进行以下操作:
使用所述深度传感器确定指示所述物理空间内的一个或多个对象的点云数据;
基于所述点云数据确定指示所述一个或多个对象中的第一对象的第一位置的第一对象数据,所述第一位置与第一组坐标相关联;
使用所述图像传感器获取所述物理空间的一部分的图像数据;
基于所述图像数据确定指示设置在所述物理空间中的第二位置处的第二对象的第二对象数据,所述第二位置与第二组坐标相关联;
使用所述第一组坐标和所述第二组坐标确定所述第一对象和所述第二对象指示同一对象;以及
基于所述第一对象数据和所述第二对象数据确定所述同一对象是非静止的。
(条款2)根据条款1所述的AMD,其中所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
至少基于所述第一对象数据,确定所述物理空间内的避免与所述同一对象交叉的导航路径。
(条款3)根据条款1或条款2所述的AMD,其中为了确定所述同一对象是非静止的,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述点云数据确定与所述第一对象相关联的簇;以及
确定所述簇的纵横比小于阈值纵横比值。
(条款4)根据条款1-3中任一项所述的AMD,其中所述点云数据包括与第一对象相关联的第一组坐标点,并且所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述第一组坐标点确定与所述第一对象相关联的高度值在第一阈值高度与第二阈值高度之间;以及
进一步基于所述高度值确定所述第一对象数据。
(条款5)根据条款1-4中任一项所述的AMD,其中所述点云数据包括与第一对象相关联的第一组坐标点,并且所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述第一组坐标点确定一个或多个特性,所述一个或多个特性包括以下各项中的一者或多者:
所述第一对象的长度大于阈值长度值,
第一对象的宽度大于阈值宽度值,或
基于所述长度和所述宽度的纵横比小于阈值纵横比值;以及
进一步基于所述一个或多个特性确定所述第一对象数据。
(条款6)根据条款1-5中任一项所述的AMD,其中所述一个或多个处理器执行所述计算机可执行指令以进行以下操作:
由所述AMD在第一时间确定从所述物理空间中的第三位置导航到所述物理空间中的第四位置的第一路径;
基于所述同一对象的运动速度和方向,确定所述同一对象的预期行进路径;
确定所述第一路径与所述预期行进路径之间的交点,所述交点指示所述AMD与所述同一对象之间的潜在碰撞;
确定所述AMD的第二路径,其中所述第二路径避免所述潜在碰撞;以及
沿着所述第二路径移动所述AMD。
(条款7)根据条款1-6中任一项所述的AMD,其中为了确定所述同一对象是非静止的,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
确定以下各项中的一者或多者:
所述同一对象的速度大于第一阈值,
所述同一对象的纵横比小于第二阈值,
所述同一对象的长度大于第三阈值,或
所述同一对象的宽度大于第四阈值。
(条款8)根据条款1-7中任一项所述的AMD,其中为了确定所述第一对象数据指示所述第一对象的所述第一位置,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
在第一时间确定第三对象的第一路径,其中所述第三对象与第一速度相关联;
基于所述第一路径和所述第一速度,在第二时间确定指示所述第三对象的投影位置的第三位置;
确定所述第一时间在所述第二时间的阈值时间内;
确定所述第一位置与所述第三位置之间的第一距离小于或等于阈值距离;以及
进一步基于所述第一距离小于或等于所述阈值距离以及所述第一时间在所述第二时间的所述阈值时间内,确定所述第一对象数据。
(条款9)根据条款1-8中任一项所述的AMD,其中所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述图像数据确定所述第二对象包括以下各项中的一者或多者:人、宠物或第二自主移动装置;
确定指示所述第二对象是非静止的可能性的置信值;
确定所述置信值大于第一阈值;以及
进一步基于所述置信值大于所述第一阈值,确定所述同一对象是非静止的。
(条款10)根据条款1-9中任一项所述的AMD,所述AMD还包括麦克风阵列,并且所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
使用所述麦克风阵列获取音频数据;
确定所述音频数据表示唤醒词;
基于所述音频数据确定指示所述音频数据的来源相对于所述AMD的方向的第一方向值;
基于所述第一组坐标确定指示所述同一对象相对于所述AMD的方向的第二方向值;
确定所述第一方向值与所述第二方向值之间的差小于或等于阈值;
确定所述同一对象是所述音频数据的所述来源;以及
进一步基于所述同一对象是所述音频数据的所述来源,确定所述同一对象是非静止的。
(条款11)一种方法,所述方法包括:
基于由自主移动装置(AMD)上的一个或多个传感器获取的点云数据,确定物理空间中的一个或多个对象;
基于所述点云数据确定指示所述物理空间内的第一位置处的第一对象的第一对象数据;
基于由所述AMD上的所述一个或多个传感器获取的图像数据,确定指示所述物理空间内的第二位置处的第二对象的第二对象数据;
基于所述第一位置和所述第二位置确定所述第一对象和所述第二对象指示同一对象;以及
基于所述第一对象数据和所述第二对象数据确定所述同一对象是非静止的。
(条款12)根据条款11所述的方法,所述方法还包括:
基于所述点云数据确定与所述第一对象相关联的簇;
基于所述簇确定与所述第一对象相关联的高度值在第一阈值高度与第二阈值高度之间;以及
确定所述第一对象数据进一步基于所述高度值。
(条款13)根据条款11或条款12所述的方法,所述方法还包括:
基于所述点云数据确定与所述第一对象相关联的簇;
基于所述簇确定一个或多个特性,所述一个或多个特性包括以下各项中的一者或多者:
所述第一对象的长度大于阈值长度值,
所述第一对象的宽度大于阈值宽度值,或
基于所述长度和所述宽度的纵横比小于阈值纵横比值;并且
其中确定所述第一对象数据是基于以下各项中的一者或多者:所述长度、所述宽度或所述纵横比。
(条款14)根据条款11-13中任一项所述的方法,所述方法还包括:
由所述AMD在第一时间确定从所述物理空间中的第三位置导航到所述物理空间中的第四位置的第一路径;
基于所述同一对象的运动速度和方向,确定所述同一对象的预期行进路径;
确定第一路径与所述预期行进路径之间的交点,所述交点指示所述AMD与所述同一对象之间的潜在碰撞;
基于所述交点确定所述AMD的第二路径,其中所述第二路径避免所述潜在碰撞;以及
沿着所述第二路径移动所述AMD。
(条款15)根据条款11-14中任一项所述的方法,其中确定所述同一对象是非静止的进一步基于:
确定以下各项中的一者或多者:
所述同一对象的速度大于第一阈值,
所述同一对象的纵横比小于第二阈值,
所述同一对象的长度大于第三阈值,或
所述同一对象的宽度大于第四阈值。
(条款16)根据条款11-15中任一项所述的方法,其中确定所述第一对象数据指示所述第一对象还包括:
在第一时间确定所述第一对象的所述第一位置;
在所述第一时间确定第三对象的第一路径,其中所述第三对象与第一速度相关联;
基于所述第一路径和所述第一速度,在第二时间确定指示所述第三对象的投影位置的第三位置;
确定所述第一时间在所述第二时间的阈值时间内;
确定所述第一位置与所述第三位置之间的第一距离小于或等于阈值距离;以及
其中确定所述第一对象数据进一步基于所述第一距离小于或等于所述阈值距离以及所述第一时间在所述第二时间的所述阈值时间内。
(条款17)一种系统,所述系统包括:
一个或多个存储器,所述一个或多个存储器存储计算机可执行指令;以及
一个或多个处理器,所述一个或多个处理器执行所述计算机可执行指令以进行以下操作:
基于由深度传感器获取的点云数据,确定指示物理空间中的一个或多个对象的第一地图;
基于所述第一地图,确定表示由所述第一地图指示的所述一个或多个对象中的第一对象的第一簇;
基于所述点云数据确定所述第一簇的一个或多个特性;以及
至少基于所述第一簇的所述一个或多个特性,确定所述第一对象预计会移动。
(条款18)根据条款17所述的系统,其中所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
获取所述物理空间的一部分的图像数据;
基于所述图像数据确定第二对象是非静止的;
确定指示所述第二对象是非静止的可能性的置信值;
确定所述置信值大于第一阈值;以及
进一步基于所述置信值大于所述第一阈值,确定所述第一对象预计会移动。
(条款19)根据条款17或条款18所述的系统,其中为了确定所述第一对象预计会移动,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述点云数据确定与所述第一对象相关联的簇;以及
确定所述簇的纵横比小于阈值纵横比值。
(条款20)根据条款17-19中任一项所述的系统,其中所述第一对象与第一位置相关联,其中为了确定所述第一对象预计会移动,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
在第一时间确定第二对象的第一路径,其中所述第二对象与第一速度相关联;
基于所述第一路径和所述第一速度,在第二时间确定指示所述第二对象的投影位置的第二位置;
确定所述第一时间在所述第二时间的阈值时间内;以及
确定所述第一位置与所述第二位置之间的第一距离小于或等于阈值距离;
其中为了确定所述第一对象预计会移动是进一步基于所述第一距离小于或等于所述阈值距离以及所述第一时间在所述第二时间的所述阈值时间内。

Claims (15)

1.一种自主移动装置(AMD),所述自主移动装置包括:
深度传感器;
图像传感器;
一个或多个存储器,所述一个或多个存储器存储计算机可执行指令;以及
一个或多个处理器,所述一个或多个处理器执行所述计算机可执行指令以进行以下操作:
使用所述深度传感器确定指示物理空间内的一个或多个对象的点云数据;
基于所述点云数据确定指示所述一个或多个对象中的第一对象的第一位置的第一对象数据,所述第一位置与第一组坐标相关联;
使用所述图像传感器获取所述物理空间的一部分的图像数据;
基于所述图像数据确定指示设置在所述物理空间中的第二位置处的第二对象的第二对象数据,所述第二位置与第二组坐标相关联;
使用所述第一组坐标和所述第二组坐标确定所述第一对象和所述第二对象指示同一对象;以及
基于所述第一对象数据和所述第二对象数据确定所述同一对象是非静止的。
2.如权利要求1所述的AMD,其中所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
至少基于所述第一对象数据,确定所述物理空间内的避免与所述同一对象交叉的导航路径。
3.如权利要求1或权利要求2所述的AMD,其中为了确定所述同一对象是非静止的,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述点云数据确定与所述第一对象相关联的簇;以及
确定所述簇的纵横比小于阈值纵横比值。
4.如权利要求1-3中任一项所述的AMD,其中所述点云数据包括与所述第一对象相关联的第一组坐标点,并且所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述第一组坐标点确定与所述第一对象相关联的高度值在第一阈值高度与第二阈值高度之间;以及
进一步基于所述高度值确定所述第一对象数据。
5.如权利要求1-4中任一项所述的AMD,其中所述点云数据包括与所述第一对象相关联的第一组坐标点,并且所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述第一组坐标点确定一个或多个特性,所述一个或多个特性包括以下各项中的一者或多者:
所述第一对象的长度大于阈值长度值,
所述第一对象的宽度大于阈值宽度值,或
基于所述长度和所述宽度的纵横比小于阈值纵横比值;以及
进一步基于所述一个或多个特性确定所述第一对象数据。
6.如权利要求1-5中任一项所述的AMD,其中所述一个或多个处理器执行所述计算机可执行指令以进行以下操作:
由所述AMD在第一时间确定从所述物理空间中的第三位置导航到所述物理空间中的第四位置的第一路径;
基于所述同一对象的运动速度和方向,确定所述同一对象的预期行进路径;
确定所述第一路径与所述预期行进路径之间的交点,所述交点指示所述AMD与所述同一对象之间的潜在碰撞;
确定所述AMD的第二路径,其中所述第二路径避免所述潜在碰撞;以及
沿着所述第二路径移动所述AMD。
7.如权利要求1-6中任一项所述的AMD,其中为了确定所述同一对象是非静止的,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
确定以下各项中的一者或多者:
所述同一对象的速度大于第一阈值,
所述同一对象的纵横比小于第二阈值,
所述同一对象的长度大于第三阈值,或
所述同一对象的宽度大于第四阈值。
8.如权利要求1-7中任一项所述的AMD,其中为了确定所述第一对象数据指示所述第一对象的所述第一位置,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
在第一时间确定第三对象的第一路径,其中所述第三对象与第一速度相关联;
基于所述第一路径和所述第一速度,在第二时间确定指示所述第三对象的投影位置的第三位置;
确定所述第一时间在所述第二时间的阈值时间内;
确定所述第一位置与所述第三位置之间的第一距离小于或等于阈值距离;以及
进一步基于所述第一距离小于或等于所述阈值距离以及所述第一时间在所述第二时间的所述阈值时间内,确定所述第一对象数据。
9.如权利要求1-8中任一项所述的AMD,其中所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述图像数据确定所述第二对象包括以下各项中的一者或多者:人、宠物或第二自主移动装置;
确定指示所述第二对象是非静止的可能性的置信值;
确定所述置信值大于第一阈值;以及
进一步基于所述置信值大于所述第一阈值,确定所述同一对象是非静止的。
10.如权利要求1-9中任一项所述的AMD,所述AMD还包括麦克风阵列,并且所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
使用所述麦克风阵列获取音频数据;
确定所述音频数据表示唤醒词;
基于所述音频数据确定指示所述音频数据的来源相对于所述AMD的方向的第一方向值;
基于所述第一组坐标确定指示所述同一对象相对于所述AMD的方向的第二方向值;
确定所述第一方向值与所述第二方向值之间的差小于或等于阈值;
确定所述同一对象是所述音频数据的所述来源;以及
进一步基于所述同一对象是所述音频数据的所述来源,确定所述同一对象是非静止的。
11.一种系统,所述系统包括:
一个或多个存储器,所述一个或多个存储器存储计算机可执行指令;以及
一个或多个处理器,所述一个或多个处理器执行所述计算机可执行指令以进行以下操作:
基于由深度传感器获取的点云数据,确定指示物理空间中的一个或多个对象的第一地图;
基于所述第一地图,确定表示由所述第一地图指示的所述一个或多个对象中的第一对象的第一簇;
基于所述点云数据确定所述第一簇的一个或多个特性;以及
至少基于所述第一簇的所述一个或多个特性,确定所述第一对象预计会移动。
12.如权利要求11所述的系统,其中所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
获取所述物理空间的一部分的图像数据;
基于所述图像数据确定第二对象是非静止的;
确定指示所述第二对象是非静止的可能性的置信值;
确定所述置信值大于第一阈值;以及
进一步基于所述置信值大于所述第一阈值,确定所述第一对象预计会移动。
13.如权利要求11或权利要求12所述的系统,其中为了确定所述第一对象预计会移动,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
基于所述点云数据确定与所述第一对象相关联的簇;以及
确定所述簇的纵横比小于阈值纵横比值。
14.如权利要求11-13中任一项所述的系统,其中所述第一对象与第一位置相关联,并且其中为了确定所述第一对象预计会移动,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
在第一时间确定第二对象的第一路径,其中所述第二对象与第一速度相关联;
基于所述第一路径和所述第一速度,在第二时间确定指示所述第二对象的投影位置的第二位置;
确定所述第一时间在所述第二时间的阈值时间内;以及
确定所述第一位置与所述第二位置之间的第一距离小于或等于阈值距离;
其中为了确定所述第一对象预计会移动是进一步基于所述第一距离小于或等于所述阈值距离以及所述第一时间在所述第二时间的所述阈值时间内。
15.如权利要求11-14中任一项所述的系统,所述一个或多个处理器进一步执行所述计算机可执行指令以进行以下操作:
确定所述物理空间内的避免与所述第一对象交叉的导航路径;以及
至少部分地基于所述导航路径在所述物理空间中移动装置。
CN202280008821.2A 2021-03-19 2022-02-18 用于确定物理空间中的非静止对象的系统 Pending CN116745580A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/207,039 2021-03-19
US17/207,039 US11927963B2 (en) 2021-03-19 2021-03-19 System to determine non-stationary objects in a physical space
PCT/US2022/070737 WO2022198161A1 (en) 2021-03-19 2022-02-18 System to determine non-stationary objects in a physical space

Publications (1)

Publication Number Publication Date
CN116745580A true CN116745580A (zh) 2023-09-12

Family

ID=80683063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280008821.2A Pending CN116745580A (zh) 2021-03-19 2022-02-18 用于确定物理空间中的非静止对象的系统

Country Status (4)

Country Link
US (1) US11927963B2 (zh)
EP (1) EP4309015A1 (zh)
CN (1) CN116745580A (zh)
WO (1) WO2022198161A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI762365B (zh) * 2021-06-29 2022-04-21 晶睿通訊股份有限公司 影像辨識方法及其影像監控設備
US11948569B2 (en) * 2021-07-05 2024-04-02 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
US11762052B1 (en) * 2021-09-15 2023-09-19 Amazon Technologies, Inc. Sound source localization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5803043B2 (ja) 2010-05-20 2015-11-04 アイロボット コーポレイション 移動式ロボットシステム及び移動式ロボットを作動させる方法
DK2952993T3 (en) 2014-06-05 2018-07-30 Softbank Robotics Europe PROCEDURE FOR MAKING A CARD OF LIKELIHOOD FOR ONE OF THE ABSENCE OR EXISTENCE OF BARRIERS FOR AN AUTONOMOUS ROBOT
US20160188977A1 (en) 2014-12-24 2016-06-30 Irobot Corporation Mobile Security Robot
WO2018199958A1 (en) 2017-04-27 2018-11-01 Hewlett-Packard Development Company, L.P. Object recognition
US11860640B2 (en) 2018-03-29 2024-01-02 Sony Corporation Signal processing device and signal processing method, program, and mobile body
US12051206B2 (en) * 2019-07-25 2024-07-30 Nvidia Corporation Deep neural network for segmentation of road scenes and animate object instances for autonomous driving applications
WO2021064468A1 (en) * 2019-10-04 2021-04-08 Soundskrit Inc. Sound source localization with co-located sensor elements
US20220185267A1 (en) * 2020-12-16 2022-06-16 Zoox, Inc. Object determination in an occluded region

Also Published As

Publication number Publication date
US20220300001A1 (en) 2022-09-22
US11927963B2 (en) 2024-03-12
EP4309015A1 (en) 2024-01-24
WO2022198161A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US11501794B1 (en) Multimodal sentiment detection
US11409295B1 (en) Dynamic positioning of an autonomous mobile device with respect to a user trajectory
US11372408B1 (en) Dynamic trajectory-based orientation of autonomous mobile device component
US11256261B1 (en) System for movement of autonomous mobile device
US11927963B2 (en) System to determine non-stationary objects in a physical space
US11446810B1 (en) Robotic assistant
US11217235B1 (en) Autonomously motile device with audio reflection detection
US11433546B1 (en) Non-verbal cuing by autonomous mobile device
US11422565B1 (en) System for robot movement that is informed by cultural conventions
US11340617B1 (en) Thermally regulated autonomous motion by autonomous mobile device
US20230053276A1 (en) Autonomously motile device with speech commands
US11290977B1 (en) System for localizing wireless transmitters with an autonomous mobile device
US11983006B2 (en) Autonomously motile device with remote control
US11274930B1 (en) System for assessing an autonomously determined map
US11789457B1 (en) System for collision detection in autonomous mobile device
US11429110B1 (en) System for obstacle avoidance by autonomous mobile device
US11300963B1 (en) Robot movement constraint system
US11858143B1 (en) System for identifying a user with an autonomous mobile device
US11567504B1 (en) Dynamic wait location for an autonomous mobile device
US11367306B1 (en) System to determine user engagement with autonomous mobile device
US11720117B1 (en) System to facilitate autonomous mobile device movement
US11442463B1 (en) System to determine stationary features by autonomous mobile device
US11412133B1 (en) Autonomously motile device with computer vision
US11520332B1 (en) System for automated exploration by an autonomous mobile device using markers based on image features
US11233937B1 (en) Autonomously motile device with image capture

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