CN108283021A - 使用来自机器人的相机的相机图像的检测边缘和从环境的三维模型取得的检测边缘来定位环境中的机器人 - Google Patents

使用来自机器人的相机的相机图像的检测边缘和从环境的三维模型取得的检测边缘来定位环境中的机器人 Download PDF

Info

Publication number
CN108283021A
CN108283021A CN201680057325.0A CN201680057325A CN108283021A CN 108283021 A CN108283021 A CN 108283021A CN 201680057325 A CN201680057325 A CN 201680057325A CN 108283021 A CN108283021 A CN 108283021A
Authority
CN
China
Prior art keywords
camera
image
environment
posture
robot
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.)
Granted
Application number
CN201680057325.0A
Other languages
English (en)
Other versions
CN108283021B (zh
Inventor
菲利普·米歇尔
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.)
Insi Innovation Co ltd
Original Assignee
X Development LLC
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 X Development LLC filed Critical X Development LLC
Publication of CN108283021A publication Critical patent/CN108283021A/zh
Application granted granted Critical
Publication of CN108283021B publication Critical patent/CN108283021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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
    • 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/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05GCONTROL DEVICES OR SYSTEMS INSOFAR AS CHARACTERISED BY MECHANICAL FEATURES ONLY
    • G05G9/00Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously
    • G05G9/02Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only
    • G05G9/04Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously
    • G05G9/047Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously the controlling member being movable by hand about orthogonal axes, e.g. joysticks
    • G05G9/04737Manually-actuated control mechanisms provided with one single controlling member co-operating with two or more controlled members, e.g. selectively, simultaneously the controlling member being movable in different independent ways, movement in each individual way actuating one controlled member only in which movement in two or more ways can occur simultaneously the controlling member being movable by hand about orthogonal axes, e.g. joysticks with six degrees of freedom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • 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/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/207Image signal generators using stereoscopic image cameras using a single 2D image sensor
    • H04N13/211Image signal generators using stereoscopic image cameras using a single 2D image sensor using temporal multiplexing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/257Colour aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39046Compare image of plate on robot with reference, move till coincidence, camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • 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/30244Camera pose
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0092Image segmentation from stereoscopic image signals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/09Closed loop, sensor feedback controls arm movement

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Electromagnetism (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Manipulator (AREA)
  • Image Processing (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

提供了用于使用机器人的相机捕获机器人的环境的图像的方法、装置、系统和计算机可读介质,检测图像中的边缘以及基于将所检测的图像中的边缘与从环境中的机器人的估计姿态的视角的,根据机器人的环境的三维(“3D”)模型取得的边缘比较来定位机器人。在一些实施方式中,基于根据环境的3D模型渲染从估计姿态的视角的环境的模型图像以及将边缘检测器应用于渲染的模型图像以从模型图像检测检测模型图像中的边缘来取得边缘。

Description

使用来自机器人的相机的相机图像的检测边缘和从环境的三 维模型取得的检测边缘来定位环境中的机器人
背景技术
可以编程机器人来执行各种任务,诸如自主或半自主导航、操纵物体(例如,重新定位物体、变动物体,和/或拾取物体并且将其移动到不同的位置)、运输物体(不必操纵那些物体)、监视环境条件、充当“轮子上的视频会议”等。
如果机器人不知道它在何处,则机器人难以准确地执行各种任务。机器人定位旨在解析环境中的机器人的姿态(位置和取向),从而使机器人能够知道它在何处。已经提出了各种机器人定位技术。例如,航位推算法使用来自机器人的一个或多个里程计的传感器读数,连同三角法和运动学方程来确定机器人如何移动并且基于该确定,更新机器人的姿态。此外,例如,一些机器人定位技术利用具有整个环境中的已知位置的主动信标(例如红外线、声音)和/或被动信标(例如反射器),以使得机器人的传感器能够感测这些信标并且三角测量或以其他方式确定机器人相对于所感测的信标的姿态,因此,确定其在环境中的姿态。这些和/或其他机器人定位技术具有一个或多个缺陷,诸如定位精度、计算成本、与在环境中放置信标或其他地标相关联的成本,和/或与执行定位技术所必需的传感器相关联的成本。会存在上述技术和/或其他技术的附加和/或替选的缺陷。
发明内容
本公开涉及使用机器人的相机来捕获机器人环境的图像,检测图像中的边缘,并且基于所检测的图像中的边缘与从机器人的环境的三维(“3D”)模型取得的边缘的比较,定位机器人。如本文所使用的,在环境中“定位机器人”是指相对于一些参考坐标系,诸如所谓的“世界坐标系”,确定环境中的机器人的姿态。如本文所使用的,“姿态”既指位置又指取向。例如,机器人的所确定的姿态可以定义机器人的六个自由度的值。
作为根据本文所述的技术的机器人定位的一个示例,由环境中的机器人的相机捕获相机图像。将边缘检测器应用于相机图像以检测相机图像中的相机图像边缘。边缘检测器可以采用一个或多个边缘检测技术,例如Canny边缘检测算法。
进一步识别环境中的机器人的相机的估计姿态。在一些实施方式中,估计的姿态可以是使用其他机器人定位技术(例如,在本文所述的机器人定位技术的第一迭代中)确定的姿态和/或可以基于在本文所述的机器人定位技术的在前迭代期间确定的机器人相机的姿态。
所估计的姿态被用来根据环境的三维模型来渲染从估计的姿态的视点的环境的模型图像。换言之,渲染的模型图像是具有与估计姿态同一位置和取向的渲染图像的视点的模型的渲染图像。在一些实施方式中(例如,当相机图像为二维图像时),“根据3D模型渲染模型图像”是指将3D模型的一部分转换成该部分的二维图像(例如,具有一个或多个颜色和/或灰度通道的图像)。在一些实施方式中(例如,当相机图像包括深度通道和一个或多个颜色和/或灰度通道时),“由3D模型渲染模型图像”是指将3D模型的一部分转换为包括深度通道和一个或多个颜色和/或灰度通道的“2.5D”图像。可以使用各种渲染技术,诸如光栅化、光线投射、辐射度和/或光线追踪。
边缘检测器还被应用于渲染的模型图像以检测模型图像的模型图像边缘。然后,基于相机图像边缘与模型图像边缘的比较来确定机器人的相机的当前姿态(即,当捕获相机图像时的相机的姿态)。例如,可以确定一个或多个相机图像边缘与一个或多个对应的模型图像边缘之间的欧几里德距离,并且利用这些距离来确定姿态。例如,距离的方向和/或量值可以被用来根据被用来生成模型图像的估计姿态取得机器人的相机的姿态。换言之,可以通过鉴于(由相机在其实际姿态下拍摄的)相机图像中的边缘与(从估计姿态的视点渲染的)模型图像之间的差异来修改估计姿态,确定相机的当前姿态。
然后,使用相机的所确定的当前姿态来在环境中定位机器人。例如,在一些实施方式中,可以通过将相机的当前姿态指派为机器人的当前姿态(例如,机器人的当前姿态可以与相机的当前姿态相同)来定位机器人。此外,例如,在一些实施方式中,机器人的姿态可以相关于与相机的姿态不同的参考点,并且可以已知相机的姿态和机器人的姿态之间的相对差异。在这些实施方式中的一些实施方式中,可以通过使用该已知的相对差异,将相机的所确定的姿态变换成机器人的姿态来定位机器人。
在基于一个或多个相机图像边缘与一个或多个模型图像边缘的比较来确定机器人的相机的当前姿态的一些实施方式中,可以从3D模型来渲染环境的一个或多个附加模型图像——每个附加模型图像具有来自不同候选姿态的视点。可以将边缘检测器应用于每个附加模型图像,并且基于具有相对于一个或多个相机图像边缘满足一些阈值的一个或多个边缘的附加模型图像的候选姿态来确定姿态。例如,可以将具有附加模型图像的边缘和机器人图像边缘之间的最小差量的附加模型图像的候选姿态选择为该姿态。在一些实施方式中,可以基于相机图像边缘与基于估计的姿态所渲染的模型图像的模型图像边缘之间的差异来确定用于生成附加模型图像的候选姿态(例如,由这些差异指示的一个或多个最可能的候选姿态)。
每次使用来自机器人的相机的新捕获的图像并且使用基于相机的紧接在前(immediately preceding)确定的当前姿态的“估计姿态”,执行上述示例机器人定位的多次迭代。在一些实施方式中,可以将机器人的相机的紧接在前当前姿态用作估计的姿态。在一些其他实施方式中,可以基于以下来确定估计姿态:基于来自机器人的一个或多个附加传感器的传感器数据来修改机器人的相机的紧接在前当前姿态。例如,可以利用来自惯性测量单元、一个或多个里程计和/或一个或多个其他传感器的传感器数据来确定紧接在前姿态的可能变化。可以将该可能变化应用于紧接在前姿态,并将结果用作下一迭代的估计姿态。
在一些实施方式中,可以提供一种方法,包括:由环境中的机器人的相机捕获相机图像;将边缘检测器应用于所述相机图像以检测所述相机图像的相机图像边缘。该方法进一步包括识别所述环境中的所述相机的估计姿态以及根据所述环境的电子存储的三维模型渲染来从所述估计姿态的视角的所述环境的模型图像。该方法进一步包括将所述边缘检测器应用于所述环境的模型图像以检测所述模型图像的模型图像边缘以及基于所述相机图像边缘与所述模型图像边缘的比较来确定所述环境中的所述相机的当前姿态。该方法进一步包括基于所述相机的当前姿态来定位所述环境中的所述机器人。
本文公开的技术的该方法和其他实施方式可以分别可选地包括一个或多个下述特征。
在一些实施方式中,所述环境中的所述相机的估计姿态是基于所述相机的紧接在前姿态。所述相机的所述紧接在前姿态可以基于由所述相机捕获的在前相机图像的在前相机图像边缘与从在前估计姿态的视角渲染的在前模型图像的在前模型图像边缘的比较来确定。在那些实施方式中的一些实施方式中,所述环境中的所述相机的所述估计姿态是基于根据来自所述机器人的一个或多个附加传感器——诸如惯性测量单元传感器的传感器数据,修改所述紧接在前姿态来确定的。
在一些实施方式中,该方法进一步包括:在捕获所述相机图像之后,由所述相机捕获附加相机图像;将边缘检测器应用于所述附加相机图像以检测所述附加相机图像的附加相机图像边缘;基于所述环境中的所述相机的所确定的估计姿态,确定所述环境中的所述相机的附加估计姿态;根据所述环境的电子存储的三维模型来渲染从所述附加估计姿态的视角的所述环境的附加模型图像;将所述边缘检测器应用于所述环境的附加模型图像以检测所述附加模型图像的附加模型图像边缘;以及基于所述附加相机图像边缘与所述附加模型图像边缘的比较来确定所述环境中的所述相机的新当前姿态。在那些实施方式中的一些实施方式中,基于所述环境中的所述相机的所确定的当前姿态来确定所述附加估计姿态包括将所述附加估计姿态定义为所述环境中的所述相机的所确定的当前姿态。在那些实施方式中的一些其他实施方式中,该方法进一步包括从所述机器人的一个或多个附加传感器接收传感器数据;以及基于所述相机的所确定的当前姿态来确定所述附加估计姿态包括基于所述相机的所确定的当前姿态并且基于所述传感器数据来确定所述附加估计姿态。
在一些实施方式中,基于所述相机图像边缘与所述模型图像边缘的比较来确定所述环境中的所述相机的当前姿态包括:确定所述相机图像边缘和所述模型图像边缘之间的差异;以及基于所述差异来确定所述相机的当前姿态。
在一些实施方式中,基于所述相机图像边缘与所述模型图像边缘的比较来确定所述环境中的所述相机的当前姿态包括:确定所述相机图像边缘和所述模型图像边缘之间的差异;基于所述差异来确定所述相机的候选姿态;根据所述环境的电子存储的三维模型渲染来渲染从所述候选姿态的视角的环境的附加模型图像;将所述边缘检测器应用于所述环境的附加模型图像以从所述附加模型图像提取附加模型图像边缘;确定所述附加相机图像边缘与所述附加模型图像边缘之间的附加差异;以及如果所述附加差异满足阈值,则将所述候选姿态用作所述相机的当前姿态。
在一些实施方式中,由所述相机的单个传感器捕获所述相机图像。在那些实施方式中的一些实施方式中,相机是单眼相机。
在一些实施方式中,机器人的图形处理器单元执行该方法的一个或多个步骤。
在一些实施方式中,环境的三维模型是计算机辅助设计模型。
在一些实施方式中,当前姿态是六自由度姿态。
在一些实施方式中,可以提供一种方法,该方法包括:由环境中的机器人的相机捕获相机图像;由所述机器人的一个或多个处理器将边缘检测器应用于所述相机图像以检测所述相机图像的相机图像边缘;识别所述环境中的所述相机的估计姿态;基于所述环境的电子存储的三维模型,确定从所述估计姿态的视角的所述环境的模型边缘;基于所述相机图像边缘与所述模型边缘的比较来确定所述环境中的所述相机的当前姿态;以及基于所述相机的当前姿态来定位所述环境中的所述机器人。
其他实施方式可以包括存储指令的至少一个非瞬时计算机可读存储介质,该指令可由处理器执行以实现诸如上文所述的一个或多个方法的方法。又一实施方式可以包括机器人和/或计算机系统,包括存储器和一个或多个处理器,处理器用来执行存储在存储器中的指令以实现一个或多个模块或引擎,所述模块或引擎单独或共同地执行诸如上述一个或多个方法的方法。
应当意识到,上述概念和本文更详细所述的附加概念的所有组合均被认为是本文公开的主题的一部分。例如,本公开所附的要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1示出了示例机器人、示例定位系统以及环境的示例三维模型。
图2示出了检测由机器人的相机捕获的图像中的边缘并且基于所检测的图像中的边缘与从机器人的环境的三维模型取得的边缘的比较来定位机器人的示例。
图3示出了根据各个实施方式的示例方法。
图4示意性地示出机器人的示例架构。
具体实施方式
图1示出了示例机器人130、示例定位系统150以及环境的示例三维(“3D”)模型170。机器人130是移动的并且可以访问室内环境——诸如建筑物(例如仓库、制造工厂、办公楼)、附近建筑物群中的一个或多个建筑物、多层办公室或其他建筑物的一个或多个楼层等——的一个或多个部分。可以在室内环境中提供附加和/或替选的机器人,诸如在一个或多个方面不同于图1所示的机器人130的附加机器人。例如,在一些实施方式中,可以将移动远程即席(telepresence)机器人、移动叉车机器人和/或人形机器人提供为唯一的机器人和/或与其他机器人一起提供。一个或多个提供的附加和/或替选的机器人可以体现下文所述的定位系统150的单独实例和/或可以与定位系统150(或定位系统150的单独实例)通信。
机器人130包括底座133,底座133具有设置在其相对侧上的用于机器人130的行动的轮子。底座133可以包括例如用于驱动机器人130的轮子以实现用于机器人130的移动的期望方向、速度和/或加速度的一个或多个马达。
机器人130还包括相机131。在一些实施方式中,相机131可以是包括单个传感器(例如电荷耦合器件(CCD))的单眼相机,并且基于由传感器感测的物理属性,生成均包括定义颜色值和/或灰度值的多个数据点的图像。例如,单眼相机可以生成包括红色、蓝色和/或绿色通道的图像。每个通道可以对图像的多个像素中的每一个定义值,诸如对图像的每个像素从0到255的值。在一些实施方式中,相机131可以是包括两个或更多个传感器的立体相机,每个传感器处于不同的有利位置。在那些实施方式中的一些实施方式中,立体相机基于由两个传感器感测的特性来生成图像,每个图像包括定义深度值和颜色值和/或灰度值的多个数据点。例如,立体相机可以生成包括深度通道和红色、蓝色和/或绿色通道的图像。在一些实施方式中,相机131可以是立体相机,但是可以仅使用其中的一个传感器来生成不包括深度通道的图像。
机器人130还包括一个或多个处理器,该一个或多个处理器例如向致动器和/或致动器的其他操作组件提供控制命令、根据本文所述的技术定位机器人、至少部分地基于根据本文所述的技术确定的机器人的当前姿态来生成对于各种任务的控制命令等。例如,机器人130的一个或多个处理器可以向驱动机器人130的轮子的伺服马达提供控制命令以将机器人130自主和/或半自主地导航到环境中的各个位置。此外,例如,机器人130的一个或多个处理器可以实现定位系统150的全部或多个方面和/或执行图3的方法300的全部或多个方面。本文提供了各种机器人的结构和功能的一些示例的附加描述。
机器人130还包括具有对应的末端执行器135A和135B的机器人臂134A和134B,每个末端执行器135A和135B采取具有两个相对的“手指”或“足趾”的夹持器的形式。可以自主地、半自主地和/或基于经由用户的计算设备由用户提供的控制命令来控制机器人臂134A、134B和末端执行器135A、135B。例如,可以自主地控制机器人臂134B以将末端执行器135B定位在物体的附近,并且可以自主地控制末端执行器135B以抓取物体。在那些实施方式中的一些实施方式中,机器人130的处理器可以生成控制机器人臂134B和/或末端执行器135B的控制命令,并且生成那些控制命令至少部分地受根据本文所述的技术确定的机器人130的当前姿态影响。
在一些实施方式中,定位系统150的全部或多个方面可以由机器人130实现。在一些实施方式中,定位系统150的全部或多个方面可以由与机器人130通信的一个或多个计算系统实现。各种模块或引擎可以作为软件、硬件或两者的任意组合而实现为定位系统150的一部分。例如,在图1中,定位系统150包括模型图像渲染引擎152、边缘检测器154、姿态确定引擎156和估计姿态确定引擎158。
模型图像渲染引擎152被配置为根据环境的3D模型170,渲染从所识别的机器人130的相机131的估计姿态的视角的环境的模型图像。换言之,模型图像渲染引擎152以与估计的姿态相同的位置和取向的渲染图像的视角来渲染模型图像。被用来在给定迭代中渲染模型图像的相机131的估计姿态可以是在指定迭代中,由估计姿态确定引擎158确定的估计姿态。如本文所述,在一些实施方式中,相机131的估计姿态可以是使用其他机器人定位技术(例如,在本文所述的机器人定位技术的第一迭代中)确定的姿态和/或可以基于在本文所述的机器人定位技术的先前迭代(例如,紧接在前迭代)期间确定的相机131的姿态。
模型图像渲染引擎152可以使用各种渲染技术来渲染来自环境的3D模型170的模型图像,诸如光栅化、光线投射、辐射度和/或光线追踪。可以根据诸如计算成本、期望速度(例如,为实现“实时”渲染)等的各种标准来可选地选择特定渲染技术和/或用于渲染技术的参数。
环境的3D模型170定义环境的至少一些结构、那些结构的尺寸以及那些结构之间的空间关系。因此,环境的3D模型170是环境结构的可测量精确模型。环境的3D模型170可以用各种细节水平来定义。例如,在一些实施方式中,3D模型可以是使用计算机辅助设计(“CAD”)软件生成的相对粗略的CAD模型。在那些实施方式中的一些实施方式中,环境的3D模型170可以是作为室内环境的设计过程的一部分创建的和/或基于室内环境的其他建筑设计所创建的室内环境的3D建筑设计。在一些实施方式中,可以基于来自一个或多个机器人或其他自动化代理的一个或多个传感器的传感器数据来生成环境的3D模型170。例如,可以基于“融合”来自已经在整个室内环境中导航的一个或多个机器人的一个或多个3D激光扫描仪的3D激光扫描来生成环境的3D模型170。
在一些实施方式中,环境的3D模型170可以建模室内环境的固定结构,诸如室内环境的墙壁、门、窗户、天花板和/或地板以及这些固定结构之间的空间关系(例如,窗户在墙上之处,墙壁与天花板相接之处)。在一些实施方式中,环境的3D模型170可以进一步模拟非固定结构,诸如室内环境的搁架、家具和/或图片。在一些实施方式中,可以从环境的3D模型170中省略环境的一个或多个固定结构和/或非固定结构。在一些实施方式中,可以以向量图形格式,将环境的3D模型170定义为多个形状(例如,多边形),可选地具有所定义的形状中的一个或多个形状的一个或多个特征,诸如材料、颜色等。
边缘检测器154被配置为检测图像的一个或多个边缘。图像中的边缘是满足边缘检测器154的一个或多个阈值的图像的亮度和/或深度的不连续性(例如,在2.5D图像的情况下)。图像的不连续性可以对应于例如深度不连续性、表面取向的不连续性、材料性质(例如,颜色、纹理)的变化和/或照明的变化。例如,边缘检测器154可以检测图像中对应于两堵墙壁相接、天花板与墙壁相接、墙壁中的开口、窗框、墙壁的颜色变化等的边缘。
边缘检测器154可以检测由机器人130的相机131捕获的相机图像中的边缘,并且还可以检测由模型图像渲染引擎152生成的模型图像中的边缘。边缘检测器154可以利用一种或多种技术来检测图像中的边缘。例如,边缘检测器可以采用一个或多个边缘检测算法,诸如Canny边缘检测算法。
姿态确定引擎156被配置为:基于从相机131的相机图像提取的边缘,与当捕获相机131的相机图像时,由模型图像渲染引擎152从机器人130的相机131的估计姿态的视点,生成的模型图像提取的边缘的比较,确定相机131的当前姿态。
姿态确定引擎156进一步被配置为基于相机131的所确定的当前姿态来确定机器人的当前姿态(即,定位机器人)。例如,在一些实施方式中,姿态确定引擎156可以将相机131的当前姿态指派为机器人的当前姿态。此外,例如,在一些实施方式中,相机131的姿态和机器人的姿态之间的相对差异可以是已知的,并且姿态确定引擎156可以使用该已知的相对差异,将相机131的姿态变换成机器人的姿态。在那些实施方式中的一些实施方式中,相机131可以静态地安装在机器人130上,相机131的姿态和机器人的姿态之间的相对差异可以是静态的,并且使用固定变换来将相机131的姿态变换成机器人的姿态。在一些其它实施方式中,相机131可动态地耦合到机器人130(例如,在可致动臂或其他组件上),基于应用机器人运动学来确定当前相对差异,并且基于当前相对差异确定的机器人姿态的当前变换,相机131的姿态和机器人的姿态之间的相对差异可以是“已知的”。
在一些实施方式中,姿态确定引擎156可以确定一个或多个相机图像边缘与模型图像的一个或多个匹配边缘之间的一个或多个欧几里得距离,并且使用这些距离来确定相机131的当前姿态。例如,可以利用距离的方向和/或量值来从被用来生成模型图像的估计姿态取得当前姿态。换言之,可以通过根据(在该相机姿态下由相机捕获的)相机图像和(从估计姿态渲染的)模型图像的边缘之间的距离的取向和/或量值修改估计姿态来确定当前姿态。在一些实施方式中,姿态确定引擎156可以将最小二乘拟合应用于所确定的欧几里得距离。在那些实施方式中的一些实施方式中,姿态确定引擎156可以基于通过由最小二乘拟合确定的差的平方和来修改估计姿态,确定相机的当前姿态。在确定给定相机图像边缘和匹配模型图像边缘之间的一个或多个欧几里得距离的一些实施方式中,通过在沿那些边缘的多个点处测量,确定多个欧几里德距离。
作为一个示例,假定姿态确定引擎156确定相机图像边缘和匹配模型边缘之间没有(或名义(nominal))差异。在这样的示例中,姿态确定引擎156可以确定相机的当前姿态与被用来渲染模型图像的估计姿态相同。作为另一示例,假定姿态确定引擎156确定相机图像边缘和匹配模型边缘之间的相对小的差异。在这样的示例中,姿态确定引擎156可以基于以下来确定相机的当前姿态:通过基于那些相对小的差异的量和取向,修改被用来渲染模型图像的估计姿态。
在一些实施方式中,姿态确定引擎156基于模型边缘和相机边缘之间的一个或多个差异满足阈值来确定模型图像中的模型边缘与相机图像中的相机边缘匹配。该阈值可以是:例如模型边缘的像素的阈值百分比处于相机边缘的像素的阈值像素数目内和/或两个边缘之间的最小均方距离小于阈值像素数目。在一些实施方式中,姿态确定引擎156可以过滤或以其他方式忽略其确定不“匹配”任何模型边缘的相机边缘(例如,大于来自任何模型边缘的阈值像素数目)。例如,如果椅子或其他物体存在于相机图像中,但未在环境的3D模型170中建模,则与椅子相对应的相机边缘可能与任何模型边缘不匹配-并且姿态确定引擎156可以过滤与椅子相对应的边缘。
在确定相机的给定当前姿态的一些实施方式中,模型图像渲染引擎152可以渲染来自环境的3D模型170的环境的一个或多个附加模型图像-每个附加模型图像具有不同候选姿态的视点。边缘检测器154可以检测每个附加模型图像中的边缘,并且姿态确定引擎156可以基于边缘相对于匹配相机图像边缘满足某个阈值的模型图像的候选姿态来确定相机131的当前姿态。例如,可以将具有边缘与机器人图像边缘之间的最小差量的模型图像的候选姿态选择为当前姿态。在一些实施方式中,姿态确定引擎156可以基于相机图像边缘和从估计的姿态的视点的原始模型图像边缘之间的差异,确定被用来生成附加模型图像的候选姿态。例如,在一些实施方式中,引擎156可以基于差异来确定相机131的候选姿态,并且将该候选姿态提供给模型图像渲染引擎152以从该候选姿态渲染附加模型图像。边缘检测器154可以检测附加模型图像的模型边缘,并且姿态确定引擎156作为“校验”,可以将那些模型边缘与相机边缘比较以确保应当基于候选姿态来确定相机的当前姿态(例如以确保那些模型边缘和相机边缘之间存在足够接近的匹配)和/或生成可以被用来生成另外的附加图像的进一步的候选姿态,所述另外的附加图像可以被用来进一步细化相机的当前姿态。
估计姿态确定引擎158被配置成将相机131的估计姿态提供给模型图像渲染引擎152,以使得模型图像渲染引擎152能够从该估计姿态的视角渲染模型图像。在一些实施方式中,估计姿态可以基于在所提出的机器人定位技术的先前迭代期间确定的相机131的当前姿态。例如,当所提出的机器人定位技术以相对高的频率(例如,30Hz或60Hz)迭代时——其中每次迭代基于来自相机131的新相机图像,在所提出的机器人定位技术的紧接在前迭代期间相机131的所确定的姿态可以提供相机131的实际姿态的相当接近的估计。
在一些实施方式中,估计姿态确定引擎158可以将相机131的紧接在前姿态用作估计姿态。在一些其它实施方式中,估计姿态确定引擎158可以基于以下来确定估计姿态:基于来自机器人130的一个或多个附加传感器的传感器数据来修改相机131紧接在前姿态。例如,可以利用来自惯性测量单元、一个或多个里程表和/或一个或多个其他传感器的传感器数据来确定相机131的紧接在前姿态的可能变化。该可能变化可以应用于紧接在前姿态,并且该结果被用作用于下一迭代的估计姿态。
在一些实施方式中,估计姿态确定引擎158可以使用其他定位技术来确定估计姿态。例如,当机器人130意外地(例如由人类)移动、初始“上电”(例如,在“休眠”期间之后或在电池电量用尽之后),和/或以其他方式初始不知道其在环境中的姿态时,引擎158可以使用其他定位技术来确定用于本文所述的定位技术的初始迭代的估计姿态。
尽管机器人130、定位系统150和环境的3D模型170在图1中单独地示出,这并不意味着限制。在各个实施方式中,定位系统150和/或环境的3D模型170的一个或多个方面可以在机器人130上实现。例如,引擎152、154、156和/或158中的一个或多个的全部或多个方面可以经由机器人130的硬件(例如,处理器)来实现。此外,例如,环境的3D模型170的全部或多个方面可以被存储在机器人130的存储器中。在机器人130和系统150的一个或多个方面是单独的组件的实施方式中,它们可以通过一个或多个有线或无线网络或使用其他无线技术,诸如无线电、蓝牙,红外等通信。在环境的3D模型170的一个或多个方面与机器人130分开的实施方式中,机器人130可以使用一个或多个有线或无线网络或使用其他无线技术来访问环境的3D模型170。例如,机器人130可以周期性地访问远程存储的环境的3D模型170,以检索和本地存储(例如,缓存)位于机器人的当前姿态的阈值距离内的环境的3D模型170的一个或多个部分。
图2示出了检测由机器人(例如图1的机器人130)的相机捕获的相机图像101中的边缘,并且基于将所检测的图像中的边缘与从环境的3D模型170取得的边缘的比较来定位机器人的示例。
在图2中,模型图像渲染引擎152使用环境的3D模型170来渲染2D模型图像。模型图像渲染引擎152从由估计姿态确定引擎158提供的机器人的相机的估计姿态的视角渲染图像。如本文所述,估计姿态可以基于根据图2的示例来定位机器人的先前迭代的相机姿态。例如,可以将紧接在前迭代的相机的当前姿态105用作估计姿态。此外,例如,估计姿态确定引擎158可以根据来自一个或多个附加机器人传感器135的传感器数据来修改紧接在前迭代的相机的当前姿态105并且将这样的修改用作估计姿态。在一些实施方式中,估计姿态确定引擎158可以与来自在前迭代的当前相机姿态独立地使用来自一个或多个附加机器人传感器135的传感器数据,来生成估计姿态(例如,在图2的示例的初始迭代中)。
边缘检测器154从模型图像渲染引擎152接收2D模型图像,并且还从机器人的相机接收相机图像101。边缘检测器154从相机图像101提取相机图像边缘,从模型图像提取模型图像边缘,并且将相机图像边缘和模型图像边缘提供给姿态确定引擎156。
如本文所述,姿态确定引擎156基于相机图像边缘与模型图像边缘的比较,确定机器人的相机的当前姿态105。姿态确定引擎156进一步基于相机的当前姿态105来确定机器人的当前姿态107。例如,姿态确定引擎156可以将相机的当前姿态105用作机器人的当前姿态107,或者可以基于虑及机器人与机器人的相机之间的相对姿态差异的变换,将相机的当前姿态105变换为机器人的当前姿态107。
在一些实施方式中,姿态确定引擎156可以可选地确定机器人109的相机的一个或多个候选姿态(例如,如上所述),并且将这些候选姿态109提供给模型图像渲染引擎152。在那些实施方式中,引擎152可以根据环境的3D模型170生成一个或多个附加2D模型图像,其中,每个附加2D模型图像来自对应的候选姿态的角度。边缘检测器154可以检测附加模型图像中的边缘,并且姿态确定引擎156可以基于边缘满足相对于相机图像边缘的某个阈值的附加模型图像的候选姿态来确定相机的当前姿态105和机器人的当前姿态107。
可以将机器人的当前姿态107提供给机器人的机器人任务引擎160和/或用来执行一个或多个机器人任务的机器人的另一组件。例如,机器人任务引擎160可以将机器人的当前姿态107用于生成在执行任务时提供给机器人的致动器的一个或多个控制命令。相机的当前姿态105可以被提供给估计姿态确定引擎158并且引擎158可以将相机的当前姿态105用来确定用于图2的示例的下一迭代的估计姿态。
可以执行上述图2的示例的多次迭代,每次使用来自机器人的相机的新捕获的相机图像101和使用基于紧接在前确定的相机的当前姿态105而由引擎158确定的“估计姿态”。例如,机器人的相机可以每秒捕获多个图像(例如,每秒30帧或每秒60帧),并且每次接收到新图像时,根据图2的示例来更新相机的当前姿态105。此外,每次更新相机的当前姿态时,可以根据估计姿态来更新当前姿态,该估计姿态是由引擎158根据相机的紧接在前在前姿态而确定的。在一些实施方式中,可以实时地执行图2的示例。例如,基于在由机器人相机捕获新图像前机器人相机最近捕获的图像,可以确定机器人的当前姿态。
图3描绘了根据各个实施方式的,示出确定环境中的机器人的相机的姿态的示例方法300的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各个计算机系统和/或机器人的各个组件,诸如图1的定位系统150、图1的相机131和/或图4的处理器402。此外,尽管以特定顺序示出方法300的操作,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框302处,由环境中的机器人的相机捕获图像。例如,可以由机器人的单眼相机捕获图像。
在框304处,系统将边缘检测器应用于相机图像来检测相机图像中的相机图像边缘。该系统可以利用一种或多种技术来检测图像中的边缘,诸如Canny边缘检测技术。
在框306处,系统识别环境中的相机的估计姿态。在一些实施方式中,系统可以基于方法300的先前迭代的在框312中确定的相机的姿态来确定估计姿态。例如,可以将紧接在前迭代的当前相机姿态用作估计姿态。此外,例如,系统可以根据来自一个或多个附加机器人传感器的传感器数据来修改紧接在前迭代的当前相机姿态。在一些实施方式中,系统可以使用与来自在前迭代的当前相机姿态无关的、来自一个或多个附加机器人传感器的传感器数据,以生成估计姿态(例如,在方法300的初始迭代中)。
在框308处,系统根据环境的3D模型,渲染从所估计的姿态的视角的环境的模型图像。换言之,系统渲染具有与估计姿态相同位置和取向的渲染图像的视点的模型图像。系统可以使用各个渲染技术来渲染来自环境的3D模型的模型图像,例如光栅化、光线投射、辐射度和/或光线追踪。
在框310处,系统将边缘检测器应用于模型图像以检测模型图像中的模型图像边缘。
在框312处,系统基于相机图像边缘与模型图像边缘的比较来确定环境中的相机的姿态。例如,系统可以确定框304的一个或多个相机图像边缘与框310的一个或多个匹配模型图像边缘之间的欧几里德距离,并且使用这些距离来确定相机的当前姿态。例如,系统可以使用距离的方向和/或量值来从被用来生成框308的模型图像的估计姿态取得当前状态。在一些实施方式中,系统可以渲染来自环境的3D模型的境的一个或多个附加模型图像-每个附加模型图像具有不同候选姿态的视点。系统可以检测每个附加模型图像中的边缘,并且系统可以基于边缘满足相对于匹配相机图像边缘的某个阈值的模型图像的候选姿态来确定相机的当前姿态。
在框314处,系统基于在框312处确定的环境中的相机的姿态来定位环境中的机器人。例如,系统可以通过将框312的相机的当前姿态指派为机器人的当前姿态(例如,机器人的当前姿态与相机的当前姿态相同)来定位机器人。此外,例如,在一些实施方式中,机器人的姿态可以相对于与相机的姿态不同的参考点,并且相机的姿态和机器人的姿态之间的相对差异可以是已知的。在那些实施方式中的一些实施方式中,系统可以通过使用该已知的相对差异,将相机的所确定的姿态变换成机器人的姿态来定位机器人。
在一些实施方式中,还可以对由机器人的附加相机捕获的附加图像执行框302、304、306、308、310和/或312(例如,面对与该相机不同方向或以其他方式具有与该相机不同的视野的附加相机),并且系统可以基于以下在框314定位机器人:基于(附加相机的)附加图像在框312处确定的姿态和/或基于根据(相机的)图像在框314处确定的姿态。
例如,可以对由机器人的第一相机捕获的第一图像执行框302、304、306、308、310和312中的每一个,以及对在接近捕获第一图像的时间(例如在500毫秒内)的时间,由机器人的第二相机捕获的第二图像,执行框302、304、306、308、310和312中的每一个。在这样的示例中,在框314处,系统可以基于对第一图像的在框312处确定的姿态和/或对第二图像的在框312处确定的姿态来定位机器人。例如,系统可以基于在框312处确定的仅一个姿态——诸如基于(对应的相机图像边缘和对应的模型图像边缘之间的)最大匹配边缘的数量确定的姿态和/或满足一些附加或替选标准的姿态——来定位机器人。此外,例如,系统可以基于对第一图像的在框312处确定的姿态和对第二图像的在框312处确定的姿态的其他组合的平均值来定位机器人。考虑到来自多个相机的多个图像来定位机器人的一些实施方式在一些情景下——诸如当其中一个相机捕获没有或具有很少边缘的图像(例如,白墙)而另一个相机捕获包括更多边缘数目的图像时,可以导致改进的机器人定位。
图4示意性地描绘机器人的示例架构。机器人400可以采取各种形式,包括但不限于远程即席机器人、人形、动物形式、轮式设备、潜水器、无人飞行器(“UAV”)等等。在各个实施方式中,机器人400可以包括处理器402。处理器402可以采取各种形式,诸如一个或多个中央处理单元、一个或多个图形处理器单元(“GPU”)、一个或多个现场可编程门阵列(“FPGA”)、一个或多个专用集成电路(“ASIC”)、一个或多个所谓的“实时控制器”等等。
在各个实施方式中,处理器402可以例如经由一个或多个总线410可操作地与一个或多个致动器404a-n和/或一个或多个传感器408a-m耦合。传感器408a-m可以采取各种形式,包括但不限于相机、深度传感器、压力传感器、压力波传感器(例如麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等。虽然传感器408a-m被描绘为与机器人400集成,但这并不意味着限制。在一些实施方式中,一个或多个传感器408a-m可以位于机器人400的外部,例如作为独立单元。
处理器402可以向致动器404a-n提供控制命令以完成一个或多个任务。那些控制命令包括将致动器404a-n引导到驱动轮和/或其他组件以使得机器人400能够自主地、半自主地和/或响应于在计算设备处的用户界面输入,而由计算设备提供的控制命令来遍历一个或多个路径的命令。处理器402可以至少部分地基于根据本文所述的技术确定的机器人的姿态来生成一个或多个控制命令。
此外,在一些实施方式中,处理器402可以实现定位系统150的一个或多个(例如全部)方面。在一些实施方式中,处理器包括实现定位系统150的一个或多个(例如,全部)方面的至少一个GPU。处理器402与存储器417通信。在一些实施方式中,存储器417存储环境的3D模型的全部或多个方面,并且处理器402可以从存储在存储器417中的3D模型渲染模型图像。存储器417可以包括例如用于在程序执行期间存储指令和数据的随机存取存储器(RAM)和/或存储固定指令和/或数据的只读存储器(ROM)。
网络接口子系统415为外部网络接收接口,并且耦合到一个或多个其他计算机系统中的一个或多个对应的接口设备,诸如包括环境的3D模型的全部或部分的计算设备和/或实现定位系统150的一个或多个方面的计算设备。
尽管本文已经描述和示出了若干实施方式,但是可以利用用于执行功能和/或获得结果和/或本文所述的一个或多个优点的各种其他装置和/或结构,并且将这样的变化和/或改进中的每一个视为在本文所述的实施方式的范围内。更一般地,本文所述的所有参数、尺寸、材料和配置意指示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用这些教导的特定应用。本领域技术人员将认识到,或仅仅使用不多于常规实验就能够确定本文所述的具体实施方式的许多等同。因此,应理解到,上述实施方式仅通过示例的方式呈现,并且在所附权利要求书及其等同的范围内,可以以与具体描述和要求保护的方式不同的方式来实现实施方式。本公开的实施方式针对本文所述的每个单独的特征、系统、物品、材料、套件和/或方法。此外,如果这些特征、系统、物品、材料、工具包和/或方法不会相互不兼容,则两个或更多个这样的特征、系统、物品、材料、工具包和/或方法的任意组合都包括在本公开的范围内。

Claims (20)

1.一种方法,包括:
由环境中的机器人的相机捕获相机图像;
由所述机器人的一个或多个处理器将边缘检测器应用于所述相机图像以检测所述相机图像中的相机图像边缘;
由所述一个或多个处理器识别所述环境中的所述相机的估计姿态;
由所述一个或多个处理器根据所述环境的电子存储的三维模型来渲染从所述估计姿态的视点的所述环境的模型图像;
由所述一个或多个处理器将所述边缘检测器应用于所述环境的所述模型图像以检测所述模型图像中的模型图像边缘;以及
由所述一个或多个处理器基于所述相机图像边缘与所述模型图像边缘的比较来确定所述环境中的所述相机的当前姿态;以及
由所述一个或多个处理器基于所述相机的当前姿态来定位所述环境中的所述机器人。
2.如权利要求1所述的方法,其中,所述环境中的所述相机的所述估计姿态是基于所述相机的紧接在前姿态,其中,所述相机的所述紧接在前姿态是基于由所述相机捕获的在前相机图像的在前相机图像边缘与从在前估计姿态的视角渲染的在前模型图像的在前模型图像边缘的比较来确定的。
3.如权利要求2所述的方法,其中,所述环境中的所述相机的所述估计姿态是基于以下来确定的:基于来自所述机器人的一个或多个附加传感器的传感器数据来修改所述紧接在前姿态。
4.如权利要求3所述的方法,其中,所述一个或多个附加传感器包括惯性测量单元。
5.如权利要求1所述的方法,进一步包括:
在捕获所述相机图像之后,由所述相机捕获附加相机图像;
由所述一个或多个处理器将所述边缘检测器应用于所述附加相机图像以检测所述附加相机图像中的附加相机图像边缘;
基于所述环境中的所述相机的所确定的当前姿态,确定所述环境中的所述相机的附加估计姿态;
由所述一个或多个处理器根据所述环境的所述电子存储的三维模型渲染从所述附加估计姿态的视角的所述环境的附加模型图像;
由所述一个或多个处理器将所述边缘检测器应用于所述环境的所述附加模型图像以检测所述附加模型图像中的附加模型图像边缘;以及
由所述一个或多个处理器基于所述附加相机图像边缘与所述附加模型图像边缘的比较来确定所述环境中的所述相机的新当前姿态。
6.如权利要求5所述的方法,其中,基于所述环境中的所述相机的所确定的当前姿态来确定所述附加估计姿态包括:将所述附加估计姿态定义为所述环境中的所述相机的所确定的当前姿态。
7.如权利要求5所述的方法,进一步包括:
从所述机器人的一个或多个附加传感器接收传感器数据;
其中,基于所述相机的所确定的当前姿态来确定所述附加估计姿态包括:基于所述相机的所确定的当前姿态并且基于所述传感器数据来确定所述附加估计姿态。
8.如权利要求1所述的方法,其中,基于所述相机图像边缘与所述模型图像边缘的比较来确定所述环境中的所述相机的当前姿态包括:
确定所述相机图像边缘和所述模型图像边缘之间的差异;以及
基于所述差异来确定所述相机的当前姿态。
9.如权利要求1所述的方法,其中,基于所述相机图像边缘与所述模型图像边缘的比较来确定所述环境中的所述相机的当前姿态包括:
确定所述相机图像边缘和所述模型图像边缘之间的差异;
基于所述差异来确定所述相机的候选姿态;
由所述一个或多个处理器根据所述环境的所述电子存储的三维模型来渲染从所述候选姿态的视角的所述环境的附加模型图像;
由所述一个或多个处理器将所述边缘检测器应用于所述环境的所述附加模型图像以从所述附加模型图像提取附加模型图像边缘;
由所述一个或多个处理器确定所述附加相机图像边缘与所述附加模型图像边缘之间的附加差异;以及
如果所述附加差异满足阈值,则将所述候选姿态用作所述相机的当前姿态。
10.如权利要求1所述的方法,其中,由所述相机的单个传感器捕获所述相机图像。
11.如权利要求10所述的方法,其中,所述相机是单眼相机。
12.如权利要求1所述的方法,其中,所述一个或多个处理器包括图形处理器单元。
13.如权利要求1所述的方法,其中,所述环境的三维模型是计算机辅助设计模型。
14.如权利要求1所述的方法,其中,所述当前姿态是六自由度姿态。
15.一种机器人,包括:
至少一个非瞬时计算机可读存储介质,所述至少一个非瞬时计算机可读存储介质存储环境的三维模型;
相机;
一个或多个处理器,所述一个或多个处理器与所述非瞬时计算机可读存储介质通信并且接收由所述相机捕获的相机图像,其中所述一个或多个处理器被配置为:
将边缘检测器应用于所述相机图像中的一个相机图像以检测所述一个相机图像中的相机图像边缘;
识别所述环境中的所述相机的估计姿态;
根据所述环境的三维模型来渲染从所述估计姿态的视角的所述环境的模型图像;
将所述边缘检测器应用于所述环境的所述模型图像以检测所述模型图像中的模型图像边缘;以及
基于所述相机图像边缘与所述模型图像边缘的比较来确定所述环境中的所述相机的当前姿态;以及
基于所述相机的当前姿态来定位所述环境中的所述机器人。
16.如权利要求15所述的机器人,其中,所述环境中的所述相机的所述估计姿态是基于所述相机的紧接在前姿态,其中,所述紧接在前姿态是基于由所述相机捕获的在前相机图像的在前相机图像边缘与从在前估计姿态的视角渲染的在前模型图像的在前模型图像边缘的比较来确定的。
17.如权利要求16所述的机器人,其中,所述环境中的所述相机的所述估计姿态是基于以下来确定的:基于来自所述机器人的一个或多个附加传感器的传感器数据来修改所述紧接在前姿态。
18.如权利要求15所述的机器人,其中,所述一个或多个处理器被进一步配置为:
将所述边缘检测器应用于在捕获所述图像之后捕获的图像的附加相机图像以从所述附加相机图像检测附加相机图像边缘;
基于所述环境中的所述相机的所确定的当前姿态,确定所述环境中的所述相机的附加估计姿态;
根据所述环境的所述三维模型来渲染从所述附加估计姿态的视角的所述环境的附加模型图像;
将所述边缘检测器应用于所述环境的所述附加模型图像以从所述附加模型图像提取附加模型图像边缘;以及
基于所述附加相机图像边缘与所述附加模型图像边缘的比较来确定所述环境中的所述相机的新姿态。
19.如权利要求15所述的机器人,其中,所述相机是单眼相机。
20.一种方法,包括:
由环境中的机器人的相机捕获相机图像;
由所述机器人的一个或多个处理器将边缘检测器应用于所述相机图像以检测所述相机图像中的相机图像边缘;
由所述一个或多个处理器识别所述环境中的所述相机的估计姿态;
由所述一个或多个处理器基于所述环境的电子存储的三维模型,确定从所述估计姿态的视角的所述环境的模型边缘;
由所述一个或多个处理器基于所述相机图像边缘与所述模型边缘的比较来确定所述环境中的所述相机的当前姿态;以及
由所述一个或多个处理器基于所述相机的当前姿态来定位所述环境中的所述机器人。
CN201680057325.0A 2015-10-02 2016-09-30 机器人和用于机器人定位的方法 Active CN108283021B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/873,430 2015-10-02
US14/873,430 US9849591B2 (en) 2015-10-02 2015-10-02 Localization of a robot in an environment using detected edges of a camera image from a camera of the robot and detected edges derived from a three-dimensional model of the environment
PCT/US2016/054809 WO2017059263A1 (en) 2015-10-02 2016-09-30 Localization of a robot in an environment using detected edges of a camera image from a camera of the robot and detected edges derived from a three-dimensional model of the environment

Publications (2)

Publication Number Publication Date
CN108283021A true CN108283021A (zh) 2018-07-13
CN108283021B CN108283021B (zh) 2022-04-26

Family

ID=58424342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680057325.0A Active CN108283021B (zh) 2015-10-02 2016-09-30 机器人和用于机器人定位的方法

Country Status (5)

Country Link
US (1) US9849591B2 (zh)
EP (1) EP3347875B1 (zh)
CN (1) CN108283021B (zh)
TW (1) TWI620627B (zh)
WO (1) WO2017059263A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109410316A (zh) * 2018-09-21 2019-03-01 深圳前海达闼云端智能科技有限公司 物体的三维重建的方法、跟踪方法、相关装置及存储介质
CN109472828A (zh) * 2018-10-26 2019-03-15 达闼科技(北京)有限公司 一种定位方法、装置、电子设备及计算机可读存储介质
CN113256715A (zh) * 2020-02-12 2021-08-13 北京京东乾石科技有限公司 机器人的定位方法和装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6348097B2 (ja) * 2015-11-30 2018-06-27 ファナック株式会社 ワーク位置姿勢算出装置およびハンドリングシステム
JP6710946B2 (ja) * 2015-12-01 2020-06-17 セイコーエプソン株式会社 制御装置、ロボットおよびロボットシステム
US10607364B2 (en) * 2017-10-31 2020-03-31 Honeywell International Inc. Position and attitude determination method and system using edge images
US10026218B1 (en) * 2017-11-01 2018-07-17 Pencil and Pixel, Inc. Modeling indoor scenes based on digital images
US10901430B2 (en) * 2017-11-30 2021-01-26 International Business Machines Corporation Autonomous robotic avatars
US10792809B2 (en) * 2017-12-12 2020-10-06 X Development Llc Robot grip detection using non-contact sensors
US10682774B2 (en) 2017-12-12 2020-06-16 X Development Llc Sensorized robotic gripping device
CN108010130B (zh) * 2017-12-13 2021-03-09 合肥工业大学 一种面向图形的机器人操作方法
JP7109207B2 (ja) * 2018-02-23 2022-07-29 パナソニックホールディングス株式会社 相互作用装置、相互作用方法、相互作用プログラム及びロボット
GB2571528A (en) 2018-02-28 2019-09-04 Rolls Royce Plc Controlling a robot in an environment
EP3686700B1 (de) * 2018-07-27 2020-12-16 Eisenmann SE Verfahren zur überwachung einer automatisierungsanlage
TWI676934B (zh) * 2018-10-03 2019-11-11 東元電機股份有限公司 開放擴充式移動平台
US11810202B1 (en) 2018-10-17 2023-11-07 State Farm Mutual Automobile Insurance Company Method and system for identifying conditions of features represented in a virtual model
US11556995B1 (en) 2018-10-17 2023-01-17 State Farm Mutual Automobile Insurance Company Predictive analytics for assessing property using external data
US11024099B1 (en) * 2018-10-17 2021-06-01 State Farm Mutual Automobile Insurance Company Method and system for curating a virtual model for feature identification
US10873724B1 (en) 2019-01-08 2020-12-22 State Farm Mutual Automobile Insurance Company Virtual environment generation for collaborative building assessment
WO2020202163A1 (en) * 2019-04-02 2020-10-08 Buildots Ltd. Determining position of an image capture device
US11049072B1 (en) 2019-04-26 2021-06-29 State Farm Mutual Automobile Insurance Company Asynchronous virtual collaboration environments
US11032328B1 (en) 2019-04-29 2021-06-08 State Farm Mutual Automobile Insurance Company Asymmetric collaborative virtual environments
CN111028350B (zh) * 2019-11-21 2022-05-20 大连理工大学 一种利用双目立体相机构建栅格地图的方法
EP3893074B1 (en) * 2020-04-06 2024-05-29 General Electric Company Localization method for mobile remote inspection and/or manipulation tools in confined spaces and associated system
CN113618367B (zh) * 2021-08-19 2022-05-03 哈尔滨工业大学(深圳) 基于七自由度并联双模块机器人的多视觉空间装配系统
CN117226854B (zh) * 2023-11-13 2024-02-02 之江实验室 一种夹取任务的执行方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102596517A (zh) * 2009-07-28 2012-07-18 悠进机器人股份公司 移动机器人定位和导航控制方法及使用该方法的移动机器人
CN104848861A (zh) * 2015-05-28 2015-08-19 西安交通大学 一种基于图像消失点识别技术的移动设备姿态测量方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8896660B2 (en) 2003-05-30 2014-11-25 Alcatel Lucent Method and apparatus for computing error-bounded position and orientation of panoramic cameras in real-world environments
US7650013B2 (en) 2004-11-15 2010-01-19 Mobilerobots Inc. System and method for map and position-determination enhancement
US8930023B2 (en) 2009-11-06 2015-01-06 Irobot Corporation Localization by learning of wave-signal distributions
US7826926B2 (en) 2005-11-07 2010-11-02 Samsung Electronics Co., Ltd. Robot and method of localizing the same
NO327279B1 (no) * 2007-05-22 2009-06-02 Metaio Gmbh Kamerapositurestimeringsanordning og- fremgangsmate for foroket virkelighetsavbildning
US9079315B2 (en) 2011-08-29 2015-07-14 Neil Davey Banking automation using autonomous robot
US8798840B2 (en) 2011-09-30 2014-08-05 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
KR101438514B1 (ko) 2013-02-04 2014-09-11 한국원자력연구원 다중 영상을 이용한 원자로 내부 로봇 위치 측정 시스템 및 위치 측정방법
US9406137B2 (en) * 2013-06-14 2016-08-02 Qualcomm Incorporated Robust tracking using point and line features
BR112016010089B1 (pt) * 2013-11-13 2021-06-08 Nissan Motor Co. Ltd. dispositivo de estimação de posição de corpo em movimento e método de estimação de posição de corpo em movimento
US20150199572A1 (en) * 2014-01-16 2015-07-16 Qualcomm Incorporated Object tracking using occluding contours

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102596517A (zh) * 2009-07-28 2012-07-18 悠进机器人股份公司 移动机器人定位和导航控制方法及使用该方法的移动机器人
CN104848861A (zh) * 2015-05-28 2015-08-19 西安交通大学 一种基于图像消失点识别技术的移动设备姿态测量方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PHILIPP MICHEL: "GPU-accelerated Real-Time 3D Tracking for Humanoid Locomotion and Stair Climbing", 《2007 IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109410316A (zh) * 2018-09-21 2019-03-01 深圳前海达闼云端智能科技有限公司 物体的三维重建的方法、跟踪方法、相关装置及存储介质
CN109472828A (zh) * 2018-10-26 2019-03-15 达闼科技(北京)有限公司 一种定位方法、装置、电子设备及计算机可读存储介质
CN113256715A (zh) * 2020-02-12 2021-08-13 北京京东乾石科技有限公司 机器人的定位方法和装置
CN113256715B (zh) * 2020-02-12 2024-04-05 北京京东乾石科技有限公司 机器人的定位方法和装置

Also Published As

Publication number Publication date
US9849591B2 (en) 2017-12-26
US20170098309A1 (en) 2017-04-06
WO2017059263A1 (en) 2017-04-06
TWI620627B (zh) 2018-04-11
EP3347875A4 (en) 2019-04-24
EP3347875A1 (en) 2018-07-18
TW201722657A (zh) 2017-07-01
CN108283021B (zh) 2022-04-26
EP3347875B1 (en) 2023-11-01

Similar Documents

Publication Publication Date Title
CN108283021A (zh) 使用来自机器人的相机的相机图像的检测边缘和从环境的三维模型取得的检测边缘来定位环境中的机器人
US11691273B2 (en) Generating a model for an object encountered by a robot
US20230116849A1 (en) Six degree of freedom tracking with scale recovery and obstacle avoidance
CN104062973B (zh) 一种基于图像标志物识别的移动机器人slam方法
US7336814B2 (en) Method and apparatus for machine-vision
KR20190030197A (ko) 훈련된 경로를 자율주행하도록 로봇을 초기화하기 위한 시스템 및 방법
CN110603122B (zh) 用于交互式学习应用的自动个性化反馈
JP2011175477A (ja) 3次元計測装置、処理方法及びプログラム
CN102448681A (zh) 动作空间提示装置、动作空间提示方法以及程序
Sequeira et al. 3D reconstruction of indoor environments
JP6040264B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2020149186A (ja) 位置姿勢推定装置、学習装置、移動ロボット、位置姿勢推定方法、学習方法
JP2014053018A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US20220130147A1 (en) Method and device for monitoring the environment of a robot
KR101438514B1 (ko) 다중 영상을 이용한 원자로 내부 로봇 위치 측정 시스템 및 위치 측정방법
Poomarin et al. Automatic docking with obstacle avoidance of a differential wheel mobile robot
CN113268062B (zh) 一种人体曲面建模方法、建模装置及建模系统
JP7452768B2 (ja) 撮像システム、および撮像方法
CN116423515B (zh) 一种多机器人的数字孪生控制系统及其定位与建图的方法
Zhu et al. Real-time automated simulation generation based on CAD modeling and motion capture
Shen et al. SLAM algorithm for indoor scene vision based on RGB-D cameras
Mendiburu et al. Visual feedback trajectory planning for object handling and obstacle avoidance
Fojtu et al. Nao robot navigation based on a single VGA camera
Kyriakoulis et al. Pose estimation of a volant platform with a monocular visuo-inertial system
Yang et al. Visual Servoing Control of Robot Manipulator

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230321

Address after: California, USA

Patentee after: Insi Innovation Co.,Ltd.

Address before: California, USA

Patentee before: X Development Co.,Ltd.