CN116188567A - 到动态对象的最小距离的有效计算方法 - Google Patents
到动态对象的最小距离的有效计算方法 Download PDFInfo
- Publication number
- CN116188567A CN116188567A CN202210235866.5A CN202210235866A CN116188567A CN 116188567 A CN116188567 A CN 116188567A CN 202210235866 A CN202210235866 A CN 202210235866A CN 116188567 A CN116188567 A CN 116188567A
- Authority
- CN
- China
- Prior art keywords
- robot
- distance
- image
- camera
- pixel
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 90
- 238000001914 filtration Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 229910003460 diamond Inorganic materials 0.000 description 5
- 239000010432 diamond Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 208000006440 Open Bite Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/088—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
- B25J13/089—Determining the position of the robot with reference to its environment
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/1607—Calculation of inertia, jacobian matrixes and inverses
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39091—Avoid collision with moving obstacles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40202—Human robot coexistence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20192—Edge enhancement; Edge preservation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20224—Image subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
- Image Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
一种用于计算从机器人到机器人工作空间中的动态对象的最小距离的方法和系统。该方法使用来自一个或多个三维相机的图像,其中在每个图像中检测对象的边缘,并且从所得图像中减去所述机器人和背景,从而仅留下对象边缘像素。然后,将深度值覆盖在对象边缘像素上,并且仅在边缘像素和机器人臂上的控制点之间执行距离计算。可以使用两个或多个相机来解决对象遮挡,其中独立地计算每个相机的最小距离,并将相机的最小距离的最大值用作实际结果。使用多个相机不会显著增加计算负荷,并且不需要相机相对于彼此的校准。
Description
技术领域
本公开涉及用于工业机器人运动控制的对象检测领域,并且更具体地,涉及一种使用来自一个或多个三维相机的图像来计算机器人与存在于机器人的工作空间中的动态对象之间的最小距离的方法,其中在每个图像中检测对象的边缘并且从得到的图像中减去机器人和背景,将深度值叠加在剩余的对象边缘像素上,并且仅在对象边缘像素与机器人臂上的控制点之间执行距离计算。
背景技术
使用工业机器人来执行各种各样的制造、组装和材料移动操作是众所周知的。在许多机器人工作空间环境中,障碍物存在并且可能存在于机器人运动的路径中。障碍物可以是永久性结构,例如机器和固定装置,由于它们的静态性质,机器人可以容易地避开这些永久性结构。障碍物还可以是随机地移动进入或穿过机器人工作空间的动态对象。动态对象必须由机器人控制器在实时计算中考虑,其中机器人必须在执行操作的同时操纵绕过对象。必须绝对避免机器人和任何障碍物之间的碰撞。
用于基于相机图像检测动态对象的现有技术在本领域中是已知的,然而,这些已知技术受到显著的限制。一种已知技术使用多个深度传感器来创建限定机器人工作空间中的任何对象的外表面的点云,并且在每个机器人运动时间步计算点云中的各个点与机器人臂之间的最小距离。然而,由于点云中的点数,这些计算是极其计算密集且缓慢的。
由于基于点云的对象距离技术的固有缺点,已经开发了其他技术。已知一种单相机深度空间方法,其中根据深度图像计算障碍物点和机器人控制点之间的距离。然而,对于比机器人更靠近相机的障碍物,障碍物的深度范围是未知的,并且障碍物后面的被遮挡空间被认为是被占据的。这可能导致显著低估最小距离,并且导致机器人臂绕过甚至未被占据的对象空间的不必要的大偏移。
为了克服单相机深度空间方法的限制,已经开发了为解决遮挡问题设计的多传感器技术。在该方法中,使用主传感器来构建空间深度栅格,并且使用其他传感器来检查深度栅格中的障碍物后面的被遮挡的单元。尽管该方法比点云方法计算强度低,但是对于具有许多控制点的大型机器人和在深度栅格中具有许多单元的大工作空间而言,它仍然需要长的计算时间。此外,该方法易受3D深度栅格构造中的误差的影响,并且需要相机/传感器相对于彼此的精确校准以便最小化这些误差。
鉴于上述情况,需要一种计算机器人工作空间中的机器人和动态对象之间的最小距离的改进方法。
发明内容
根据本公开的教导,描述和示出了用于计算从机器人到机器人工作空间中的动态对象的最小距离的方法和系统。该方法使用来自一个或多个三维相机的图像,其中在每个图像中检测对象的边缘,并且从所得图像中减去机器人和背景,仅留下对象边缘像素。然后,将深度值覆盖在对象边缘像素上,并且仅在对象边缘像素和机器人臂上的控制点之间执行距离计算。可以使用两个或多个相机来解决对象遮挡,其中独立地计算每个相机的最小距离,并将各个相机的最小距离中的最大者用作实际结果。使用多个相机不会显著增加计算负荷,并且确实需要相机相对于彼此的校准。
结合附图,根据以下描述和所附权利要求,当前公开的装置和方法的附加特征将变得显而易见。
附图说明
图1是人占据工业机器人的工作空间的图示,例示了需要执行以便确保机器人-对象碰撞避免的最小距离计算;
图2是如本领域已知的用于计算机器人和对象之间的最小距离的单相机深度空间技术的图示;
图3是如本领域中已知的用于计算机器人与对象之间的最小距离的多传感器深度空间技术的图示;
图4A-4D是根据本公开的实施例的图像进程的图示,其终止于用于计算机器人和障碍物之间的最小距离的具有深度信息的障碍物边缘检测;
图5是描绘根据本公开的实施例的用于计算机器人与障碍物之间的最小距离的方法和数据流的流程图;
图6是根据本公开的实施例的用于计算机器人和障碍物之间的最小距离的多相机系统的俯视图图示,其中每个相机独立地应用图5的计算方法;
图7是描绘根据本公开的实施例的用于使用图6的多相机系统来计算机器人与障碍物之间的最小距离的方法的流程图;
图8A和8B是根据本公开的实施例的从具有不同视点的两个相机同时拍摄的场景的图示,其描绘了如何应用图6和7的系统和方法来确定与实际测量紧密相关的机器人-障碍物最小距离;以及
图9A-9C是根据本公开的实施例的三种不同障碍物场景以及使用三相机系统针对每种场景的所得最小距离计算的图示。
具体实施方式
以下针对计算到机器人工作空间中的动态对象的最小距离的本公开的实施例的讨论本质上仅是示例性的,并且决不旨在限制所公开的设备和技术或它们的应用或使用。
使用工业机器人进行各种制造、组装和材料移动操作是众所周知的。在许多机器人工作空间环境中,障碍物存在并且有时可能存在于机器人运动的路径中。即,在没有预防性运动规划的情况下,当机器人从其当前位置移动到目的地位置时,机器人的一些部分可能与障碍物的一些部分碰撞或接近障碍物的一些部分。障碍物可以是固定结构,例如机器、固定装置和桌子,或者障碍物可以是动态(移动)对象,例如人、叉车和其它机器。在本领域中已经开发了用于计算机器人运动的技术,使得工具遵循到达目的地位置的路径,同时避免机器人与任何障碍物的碰撞。然而,在动态对象的情况下,实时地确定对象的位置并计算从对象到机器人的最小距离,其对于碰撞避免运动规划是必要的,一直是具有挑战性的。
一种用于计算机器人-对象距离的技术包括:在机器人上限定控制点;在每个时间步基于机器人姿态来计算控制点的三维(3D)坐标;以及计算从障碍物点到机器人控制点的距离。障碍物可以由来自传感器数据的点云限定,或者由下面进一步讨论的其他技术限定。
图1是人占据工业机器人的工作空间的图示,例示了需要执行以便确保机器人-对象碰撞避免的最小距离计算。在图1中,机器人100在工作空间中操作。在机器人100上限定多个控制点(102~106等)。控制点102-106可以被限定在机器人骨架的关键点(例如关节中心和沿着手臂中心线的点),或者它们可以被限定在实际手臂形状的外表面上。人130占据机器人100正在其中操作的工作空间的一部分。人130代表可以移入工作空间、在工作空间中四处移动和移出工作空间的动态对象。在每个时间步确定机器人100和人130之间的最小距离对于规划无碰撞机器人路径是必要的。
一种用于确定最小机器人-障碍物距离的技术是在工作空间周围放置多个传感器,并根据传感器数据构建限定障碍物的点云。然后计算从点云中的点到机器人控制点的3D距离。这些距离中的一些在图1中由110处指示的线示出,然后根据这些距离识别最小距离。点云技术可以产生精确的机器人-障碍物最小距离结果。然而,因为障碍物点云通常包括数千个3D点,并且需要针对每个机器人控制点来检查点云中的每个点,所以点云最小距离计算从计算方面来讲是非常密集的。因此,开发了其他的最小距离计算方法。这些其它方法中固有的一个问题是,从任何单个视点确定的障碍物和机器人控制点之间的表观最小距离(在图1中示为距离140)可能明显小于实际的3D距离。这种效果将在下面进一步讨论。
图2是如本领域已知的用于计算机器人和对象之间的最小距离的单相机深度空间技术的图示。单个3D相机200由相机中心点202表示。相机200具有图像平面210,其中图像平面中的每个像素具有图像平面空间中的坐标(px,py)。因为相机200是3D相机,所以每个像素也具有深度或距离值d。使用图2中描绘的深度空间方法,相机200提供连续的一系列图像,并且分析每个图像以检测可能需要机器人的碰撞避免操纵的障碍物。对于以下论述,考虑图2的相机200正在提供图1中所示出的场景的图像。
图2中的相机200检测障碍物点220和障碍物点230。障碍物点220可以是人130的手臂或手上的点。障碍物点230可以是图1的背景中的某个其它对象上的点。还示出了控制点240,其中控制点240可以是图1的机器人100上的控制点102-106中的其中一个。包括距离值d4的控制点240的位置,可以根据已知的机器人运动学和相对工作空间坐标系的相机空间校准来确定。基于距离值d2,已知障碍物点220比控制点240更靠近相机200。然而,因为相机200不能“看穿”障碍物,所以不知道在障碍物点220后面的多少空间被占据。这种效应被称为遮挡。因此,对于代表障碍物点220的像素,所有大于深度d2的深度值必须被认为是被占据的。这个被占据的空间由线222示出。
障碍物点220的3D坐标可以基于图像平面210中的对应像素位置、相机校准参数和距离d2来确定。如上所述,控制点240的3D坐标是已知的。因此,可以计算障碍物点220和控制点240之间的距离。然而,不能保证所计算的距离是在障碍物点220处检测到的对象与机器人之间的最小距离。相反,由于遮挡和沿着线222的任何或所有点被占据的可能性,对象和控制点240之间的最坏情况最小距离必须被计算为控制点240和线222之间的最短距离——其是沿着垂直于线222的线找到的。该最小距离由箭头224示出;它是投影到平行于相机图像平面210的平面上的距离。
障碍物点230具有相机测量的距离d3,其大于到控制点240的距离d4。因此,在障碍物点230的情况下,由线232示出的被遮挡空间不影响最小距离计算,因为它远于控制点240。因此,可以基于每个点的实际3D坐标(使用x、y和z坐标的差的平方和)计算从障碍物点230到控制点240的距离。箭头234所示的所得距离是在障碍物点230处检测到的对象与机器人上的控制点240之间的准确最小距离。
图2示出了计算机器人和障碍物之间的最小距离的单相机深度空间方法的缺点。也就是说,由于遮挡,必须使用最坏情况假设来计算比机器人更靠近相机200的对象到相机200的最小距离。这在图2中是显而易见的,因为箭头224所示的距离(最坏情况最小距离)远小于障碍物点220和控制点240之间的实际距离。使用最坏情况假设的最小机器人-障碍物距离,机器人控制器将计算不必要地使机器人移动远离其路线以避开障碍物点220的路径。
图3是如本领域已知的用于计算机器人和对象之间的最小距离的多传感器深度空间技术的图示。图3所示的多传感器深度空间技术是为了克服上述单相机深度空间方法的缺点而开发的。
在图3的左侧,重新绘出图2的单相机深度空间布置。如上所述,这包括图像平面210、障碍物点220和230以及控制点240。在图3的右侧,示出了多传感器增强。(来自图2的)相机200在左侧示出。相机200现在是主相机,并且设置至少一个附加相机或传感器300。为了讨论的目的,这将被称为相机300,并且假设具有如上文针对相机200所描述的图像平面和距离测量能力。
在多传感器深度空间技术中,构造深度栅格地图310以通过确定机器人工作空间中的任何障碍物的实际空间占据来克服遮挡问题。深度栅格地图310是从相机中心点202发出的锥形六面体的3D体积栅格。来自(主相机)相机200的数据用于构建深度栅格地图310的整体单元结构。深度栅格地图310的单元结构对于来自相机200的所有图像保持不变,并且深度栅格地图310优选地基本上覆盖机器人工作空间的整个工作体积。
对于来自相机200的每个相机图像,如上所述识别障碍物点。然后,将每个障碍物点分配给深度栅格地图310中的相应被占据单元。例如,障碍物点220对应于深度栅格地图310中的被占据单元320。基于从相机200到障碍物点220的距离d2,已知单元320是被占据的。在多传感器深度空间技术中,来自相机300(辅助相机/传感器)的数据用于确定在(从相机200来看是被遮挡的)被占据单元“之后”的单元是否被障碍物占据。从相机200来看,单元330和单元340在被占据单元320的“后面”。因此,来自相机300的数据用于确定单元330和340是否实际上被障碍物占据。例如,如果障碍物点220在具有很小深度的薄对象上,则单元330和340将是空的。以这种方式确定深度栅格地图310中的所有单元是被占据的还是空的。
在确定了深度栅格地图310中的单元的占用的情况下,可以通过计算从机器人上的每个控制点到深度栅格地图310中的每个被占据单元的距离来计算最小机器人-障碍物距离。这种多传感器深度空间技术通过使用来自附加传感器的数据而大大克服了遮挡问题。然而,对于大工作空间,深度栅格地图310(基于具有数千像素的图像,其实际上比图3中所示的细小得多)很容易能够包含数十万个栅格单元。因此,所得的到机器人控制点的最小距离计算从计算方面讲可能会变得过于密集。
本公开描述了一种为了克服单相机深度空间技术的遮挡问题和多传感器深度空间技术的计算复杂性问题而开发的技术。本公开描述了一种用于计算机器人和对象之间的最小距离的方法,其显著地减少了必须评估的点的数量,并且其可以应用于单相机或多相机配置中。该方法将参考以下附图进行讨论。
图4A-4D是根据本公开的实施例的图像进程的图示,该图像进程终止于用于计算机器人和障碍物之间的最小距离的具有深度信息的障碍物边缘检测。图4A-4D的图像处理步骤为所公开的有效最小距离计算技术提供了基础。
图4A是在任何所公开的处理步骤之前,机器人工作空间402的相机图像400的图示。如本领域已知的和上面讨论的类型的,图像400是来自3D相机的数字图像。图像400包括机器人410以及背景对象,诸如控制器420、管道422、门424和地面426。图像400还包括已经进入工作空间402并持有对象432的人430。人430和对象432代表必须由机器人410检测和避开的障碍物。
图4B是已经“减去”(数字编辑去除)了机器人410的图像440的图示。仅仅为了图示的清楚,从图像440中省略人430和对象432。机器人410具有固定到地面426的基座和若干机器人臂,所有机器人臂在工作空间402四处移动。使用从控制器420已知的(来自CAD模型,或使用几何图元近似的)机器人臂形状和机器人姿态数据(关节位置),可以在每个图像时间步计算机器人臂在图像440中的位置。从图像440中减去被计算为包含机器人410的像素,如空白空间442所示。只要预先将相机位置和姿态校准到工作空间坐标系,并且如上所述提供机器人运动学和臂形状,就可以计算机器人臂在图像440中的位置。减去机器人410通过消除与动态对象(障碍物)无关的像素来简化图像440以供进一步处理。
在另一个实施例中,图像400被分析以检测机器人410的可识别部件(臂、关节、臂端工具),并且仅减去机器人410的在图像400中可见的那些部分以产生图像440。这种技术避免了动态对象的位于相机和机器人410之间的部分的非计划的减去。
图4C是仅包括背景对象420-426的边缘的像素的图像450的图示。背景对象420-426不移动。这个事实可以用于在另一个图像处理步骤中去除背景对象420-426。可以处理诸如(没有障碍物的)图像440的图像,或者可能是没有障碍物并且机器人400处于不同的位置的多个图像,以检测包含背景对象420-426的边缘的像素。结果被存储为图像450,其可以用于所公开的方法中的进一步图像处理。
在所公开的方法的一个实施例中,对图像400(图4A)执行边缘滤波以产生仅包含边缘像素的中间图像,然后从该中间的仅包含边缘的图像中减去机器人和背景对象。在其他实施例中,边缘滤波步骤可以在该过程中的不同时刻执行,例如在机器人减法之后。
图4D是仅包括人430和对象432的边缘像素的图像460的图示。图像460通过以下步骤产生:从原始图像400开始,执行边缘滤波以在第一处理图像中仅留下边缘像素,然后如上所述减去机器人(图4B)和背景对象边缘像素(图4C)以产生图像460。图像460仅包括工作空间402中的动态对象(即,除机器人和背景以外的事物,即,潜在的障碍物)的边缘像素。图像460中的每个像素具有由拍摄图像400的3D相机提供的深度值。图像460中的像素深度数据中的任何“孔洞”(3D相机图像中的一些像素可能缺少深度数据,这通常是由于前景对象的外围周围的深度信号的阻挡)可以使用(来自相机的)相邻像素中的最小深度值来填充,这确保了深度值是从动态对象而不是背景中取得的。
基于上述图像处理和分析,图像460中的每个像素具有图像平面中的x和y坐标以及来自相机的深度值,并且因此可以由其在工作空间坐标系中的3D坐标来表示。如前面参照图2所讨论的,机器人控制点的3D坐标是已知的。因此,可以计算图像460中的每个像素与机器人控制点之间的3D距离。然而,如果图像460中的像素(代表动态对象——人430和对象432)比机器人更靠近相机,则不能保证3D距离是对象430和432与机器人之间的最小距离。代替地,如关于图2所讨论的,由于遮挡和对象430和432后面的任何或所有点被占据的可能性,对象430-432和机器人控制点之间的最坏情况(最短)最小距离必须计算为投影到平行于相机图像平面的平面上的距离。这种最坏情况的基于遮挡的距离计算仅适用于对象430和432的像素与相机的距离小于从机器人控制点到相机的距离的情况。否则,使用从每个像素到每个机器人控制点的实际3D距离计算。
图5是描绘根据本公开的实施例的用于计算机器人与障碍物之间的最小距离的方法和数据流的流程图500。3D相机502示出在左边,并且在线504上在每个相机时间间隔提供新图像。相机时间间隔或时间步可以基于任何合适的帧率,诸如在每秒10-30帧的范围内。也可使用更高或更低的帧率。在两个平行路线中处理线504上的图像——使用彩色图像510的像素处理(上部)路线和使用深度图像520的深度处理(下部)路线。
使用彩色图像510,在框512处执行边缘滤波以产生中间处理的图像。如上所述,边缘滤波产生了彩色图像510的仅包含图像内容的边缘像素的版本。在框514处,在中间处理的图像上执行机器人和背景减去以产生最终处理的像素图像。机器人和背景减去分别如上所述和如图4B和4C所示。最终处理的像素图像仅包括彩色图像510中的任何动态对象(即,去除机器人和背景之后留下的对象)的边缘像素。最终处理的图像的例子在图4D中示出。
使用深度图像520,在框522处执行深度孔洞填充滤波。框522处的深度孔洞填充滤波步骤提供缺少深度数据的像素的深度值。这能够由前景对象阻挡了附近像素中来自背景对象的深度信号引起。使用相邻像素中的(来自相机的)最小深度值来填充深度数据孔洞,这确保了从前景中的动态对象而不是从诸如门、墙壁等的背景对象中获取深度值。
障碍物边缘像素深度图像530是从机器人和背景减去之后的最终处理的像素图像(框514)和深度孔洞填充滤波之后的像素深度数据(框522)创建的。障碍物边缘像素深度图像530仅包含表示来自彩色图像510的障碍物(动态对象)的边缘的像素和由深度图像520提供的每个像素的深度数据。先前讨论的图4D是障碍物边缘像素深度图像530的表示。
在判定菱形540处,确定障碍物边缘像素深度图像530是否包括超过预定阈值的一些像素。即使在相机图像中不存在动态对象,图5的图像处理步骤也很可能在障碍物边缘像素深度图像530中产生少量的“噪声”像素。在判定菱形框540处的阈值检查设计成确定在图像中(以及在机器人工作空间中)是否实际存在任何动态对象。也就是说,如果仅十几个或两个像素保留在障碍物边缘像素深度图像530中,则不太可能在图像中存在动态对象。另一方面,如果数百或数千像素保留在障碍物边缘像素深度图像530中并限定如图4D中的不同形状,则这清楚地表示图像中的真实对象。在判定菱形540处的阈值检查可以以任何适当的方式设计成区分图像中的纯粹“噪声”像素和真实对象。如果在判决菱形540处没有超过阈值,指示图像中不存在动态对象,则该方法返回以在线504上从相机502接收下一图像。
如果在判定菱形540处超过阈值,指示动态对象存在于图像中,则在框550处计算从障碍边缘像素深度图像530中的每个像素到每个机器人控制点的距离。如果从相机到障碍物边缘像素深度图像530中的像素的距离小于从相机到机器人控制点的距离,则框550处的计算基于上述遮挡假设。如果从相机到障碍物边缘像素深度图像530中的像素的距离大于从相机到机器人控制点的距离,则框550处的计算基于从像素坐标到控制点坐标的实际3D距离。
对于非遮挡情况(其中与对象到相机相比机器人更靠近相机),框550处的3D距离计算通过首先将障碍物边缘像素深度图像530中的每个像素从图像坐标(图像平面中的x/y,加上深度)转置到机器人工作空间坐标系来执行,如先前所讨论和示出的。机器人控制点在工作空间坐标系中的坐标已经从机器人姿态获知,也如先前所讨论的。然后,使用三维坐标差的平方和来执行从障碍物边缘像素深度图像530中的像素到控制点的实际3D距离的计算。
对于遮挡情况(其中与对象离相机相比机器人离相机更远),在假定障碍边缘像素深度图像530中的像素后面的所有空间都被对象占据的情况下执行框550处的距离计算。因此,如前所述,该距离被计算为在平行于相机图像平面的平面中从像素到控制点的表观距离。
在框560处,然后提供从动态对象到机器人的最小距离作为来自框550的(所有像素和控制点的)距离计算的最小值。如果在框560处的最小距离小于阈值,则机器人控制器将动态对象的存在包括在机器人运动程序计算中以确保碰撞避免。机器人控制器可能会考虑更多的数据,而不仅仅是单个最小距离。例如,如果最小距离小于阈值,则机器人控制器在执行碰撞避免计算时可以考虑在机器人上的任何点的特定距离内的所有障碍物像素。在框560处提供了从动态对象到机器人的最小距离(以及可能的其他像素-机器人距离数据)之后,该方法返回以在线504上接收来自相机502的下一图像。
图5的方法可以在诸如图4的控制器420之类的机器人控制器本身上执行,或者在设置用于图像处理和最小距离计算的单独计算机上执行。如本领域所公知的,控制器420计算机器人关节运动命令。如果使用单独的计算机来计算机器人-障碍物最小距离,则可以在每个图像步将最小距离矢量(以及可能的其他像素-机器人距离数据)提供给机器人控制器,使得控制器可以基于所提供的机器人-障碍物最小距离来执行包括碰撞避免考虑的关节运动计算。
图4A-4D的图像处理进程和图5的流程图500都基于提供机器人工作空间的图像的单个3D相机。如下所述,相同的技术可以应用于多相机系统。
图6是根据本公开的实施例的用于计算机器人和障碍物之间的最小距离的多相机系统的俯视图图示,其中每个相机独立地应用图5的计算方法。图5的方法提供了当未知或动态对象进入机器人工作空间时,在计算中仅使用边缘像素的最小机器人-障碍物距离的有效且高效的计算。然而,利用单个相机,仍然可能存在遮挡问题,导致相机计算表观的(保守的,最坏情况的)机器人-障碍物距离,其比实际的3D机器人-障碍物距离小得多。
图6示出了图4和图5的技术如何能够非常简单地增加到多个相机,从而增加遮挡情况下的最小距离准确度。如前所述,机器人600在工作空间中操作。3D相机610、620和630布置在工作空间的外围周围以提供来自不同视点的图像。因为进入工作空间的任何动态对象(人、叉车等)可能在地面上移动,所以相机610-630通常基本上水平对准,即相机对准矢量在水平面的+/-20°内并且相机图像平面在竖直面的+/-20°内。
相机610、620和630通过固定线路连接或无线地与计算机640通信。计算机640执行图像处理和最小距离计算,并将最小距离结果提供给控制器650,该控制器以本领域已知的方式与机器人600通信并对其进行控制。或者,可以去除计算机640,而控制器650从相机610、620和630接收图像并且自身执行图像处理和最小距离计算。
相机610、620和630中的每一个具有被示出为从特定相机发出的三角形的视场。相机610具有视场612,相机620具有视场622,并且相机630具有视场632。为了清楚起见,在图6中,视场612、622和632各自被标记两次。动态对象640(人)已经进入机器人工作空间,并且在所有视场612、622和632内。对象640在来自每个相机的视场中的下游区域创建遮挡区域。遮挡区域614被创建为对象640在(相机610)视场612中的下游区域,遮挡区域624被创建为对象640在(相机620)视场622中的下游区域,并且(非常小的)遮挡区域634被创建为对象640在(相机630)视场632中的下游区域。
使用上文关于图4和图5所论述的边缘像素距离计算技术,可针对相机610、620和630中的每一个计算最小机器人-障碍物距离。首先考虑相机610及其视场612。对象640与机器人600到相机610相比更接近相机610。因此,存在遮挡情况,并且必须假设对象640占据了遮挡区域614。在以上关于图5描述的图像处理步骤之后,相机610计算基于遮挡的最小机器人-障碍物距离,其被标记为线616。
现在考虑相机620及其视场622。对象640与机器人600到相机620相比更接近相机620比。因此,存在遮挡情况,并且必须假设对象640占据了遮挡区域624。在以上关于图5描述的图像处理步骤之后,相机620计算基于遮挡的最小机器人-障碍物距离,其被标记为线626。
现在考虑相机630及其视场632。对象640与机器人600距离相机630相比距离相机630更远。因此,不存在遮挡情况,并且遮挡区域634将不被用于最小距离计算。相反,对于相机630,将计算边缘像素和机器人控制点之间的实际3D距离,并将其用在最小距离计算中。在以上关于图5描述的图像处理步骤之后,相机630计算实际最小机器人-障碍物距离,其被标记为线636。
在针对所有三个相机进行计算之后,针对相机610存在最小机器人-障碍物距离616,针对相机620存在最小机器人-障碍物距离626,并且针对相机630存在最小机器人-障碍物距离636。这时候,三个最小距离中的最大者可以安全地选择为实际值,因为当从不同的观察点观看时,实际3D距离从不小于那些观察值中的最大者。这一事实证明,在遮挡假设中会导致最小距离616和626人为地变小。因此,将最小距离636选择为三个相机中最准确的值,并且是由控制器650在机器人碰撞避免运动规划计算中使用的值。
图7是描绘根据本公开的实施例的用于使用图6的多相机系统来计算机器人与障碍物之间的最小距离的方法的流程图700。在步骤710处,从标识为相机1的第一3D相机获取图像帧。如上所述,图7(以及上述图6)中的每个相机以某一帧率(通常为每秒多帧)提供连续的图像流。在框712处,对图像应用边缘滤波,从而产生仅具有边缘像素的中间的处理图像。在框714处,从来自框712的中间的处理图像减去机器人和静态背景,得到仅包含动态对象的边缘的图像,如先前所讨论的。在框716处,将(来自相机的)深度数据应用于保留在动态对象边缘图像中的对象像素。在框718处,在将深度数据应用于动态对象边缘图像之后,或者作为真实的3D距离,或者基于如上所述的遮挡假设,计算对象边缘像素相对于机器人控制点的最小距离。框718处的最小距离计算提供了来自相机1的当前图像帧的最小距离值,其对应于图6中描绘的距离616。
在步骤720,从标识为相机2的第二3D相机获取图像帧。来自相机2的图像在框722-728处进行处理,从而导致在框728处的距离计算,该距离计算提供来自相机2的当前图像帧的最小距离值,其对应于图6的距离626。
在步骤730处,从标识为相机N的下一个3D相机获取图像帧。在框732-738处理来自相机N的图像,导致在738处的距离计算,其提供来自相机N的当前图像帧的最小距离值。如果N的值是三,则在框738处计算的距离对应于图6的距离636。
在框740处,在框718、728和738处计算的最小距离中的最大者被选择为当前相机图像时间步的最小机器人-障碍物距离的最准确表示。如上文关于图6所讨论的,由于遮挡假设,根据一些相机计算的最小距离可能被人为地变小,因而将根据多个相机计算的最小距离的最大者作为最准确的值。
图7的多相机方法可以应用于两个或更多的任意多个相机。相机的数量越多,(来自框740)最终的最小距离值将越准确。应当注意,在图7的方法中增加相机的数量仅引起计算强度的极少增加,因为每个相机的最小距离是独立且并行地计算的,并且最后仅需要简单的最大值选择(框740)。这与图3中所示并在上面讨论的现有技术方法形成对比,在现有技术方法中,多个相机导致创建3D深度栅格,其中复杂的计算涉及来自不同相机的数据之间的相互关系。
此外,图6和7的当前公开的技术仅要求相对于机器人工作空间坐标系校准相机。本公开的方法不需要相机相对于彼此校准,这不是微不足道的任务,并且如果不精确地进行校准,则这将导致图3中所示的深度栅格中的误差。
图8A和8B是根据本公开的实施例的从具有不同视点的两个相机同时拍摄的场景的图示,其描绘了如何应用图6和7的系统和方法以确定与实际测量紧密相关的机器人-障碍物最小距离。图8A描绘了从未示出的第一相机拍摄的机器人工作空间图像。机器人800由控制器810控制而在工作空间中操作。包括持有对象830的人820的多个动态对象也存在于工作空间中。图8B描绘了从未示出的第二相机拍摄的图像中的机器人工作空间。机器人800、控制器810、人820和对象830在图8B中的图像中也是可见的。图8A和8B表示在基本上相同的时刻(即,最近的相机时间步,其中两个相机以相同的帧率操作)用不同的相机拍摄的两个图像,使得它们可以使用图7的方法来处理。
图8A和8B示出了图6和7的系统和方法的两个相机的例子。在图8A中,从人820和机器人800在地面上的位置可以明显看出,人820和对象830与机器人800到第一相机相比更靠近第一相机比。因此,存在遮挡情形,并且从第一相机观察到的在人820和对象830“后面”的空间必须假定为是被占据的。将图4的图像处理技术和图5的方法应用于第一相机,识别出基于遮挡的最小机器人-障碍物距离,如线840所示。最小距离线840是在平行于相机图像平面的平面中测量的。
在图8B中,人820和对象830离第二相机的距离与机器人800离第二相机的距离近似相同。因此,即使有任何遮挡也是很少的。将图4的图像处理技术和图5的方法应用于第二相机,识别出最小机器人-障碍物距离,如线850所示。无论最小距离线850是在平行于相机图像平面的平面中测量的还是在实际3D工作空间坐标中测量的,线850的长度都将远大于线840的长度。
使用图7的方法,图8A和8B中描绘的场景的最小机器人-障碍物距离将被选择为线850(图8B),其是由第一相机和第二相机识别的两个最小距离中的较大者。
图9A-9BC是根据本公开的实施例的三种不同障碍场景以及使用三相机系统针对每种场景的所得最小距离计算的图示。与由不同相机在同一时刻拍摄的同一场景的图像的图8A/8B不同,图9A-9C是在不同时间拍摄的来自同一相机的三个不同场景的图像的图示,其中动态对象已经从一个场景移动到下一个场景的新位置。将分别讨论图9A-9C中的每一个,以说明障碍物位置与工作空间周围的相机位置的关系如何影响每个相机的计算的最小距离。在每种场景中,针对每个相机列出了与实际系统测试的距离值。
如图9A-9C所示,相机910位于工作空间的“前部中央”。也就是说,图9A-9C是从相机910的视角示出的。如图9A-9C所示,相机920位于工作空间的“左后方”,而相机930位于工作空间的右侧的中间。在图9A-9C的每一个中,具有控制器902的机器人900在工作空间中操作。机器人900在图9A-9C的每一个中被描绘为处于相同的姿态。人940正持有对象950,其中人940和对象950代表机器人900的潜在障碍物,并且是动态的,因为它们可以移动进入、移动离开和在工作空间四处移动。
在图9A中,人940在工作空间的“左前方”处,并且以人的手臂基本上水平并朝向工作空间的中心伸出的方式手持对象950。在这种场景中,相机910肯定具有遮挡情况,因为相机910与到机器人900相比更靠近对象950。然而,在对象950与机器人900之间存在相当大的横向和垂直距离,因此相机910感知到约69厘米(cm)的基于遮挡的最小机器人-障碍物距离。相机920也具有遮挡情况,因为相机920与到机器人900相比更靠近对象950。由于遮挡假设以及对象950和机器人900的相对位置,相机920感知到约39cm的基于遮挡的最小机器人-障碍物距离。相机930没有遮挡情况,因为相机930与到对象950相比更靠近机器人900。因此,相机930基于对象950的边缘像素和机器人900上的控制点的实际3D坐标计算机器人-障碍物最小距离。使用实际3D坐标,相机930计算大约82cm的最小机器人-障碍物距离。根据图7的方法,三个相机的最小距离中的最大者被选择为是最准确的。因此,选择距相机930的最小距离82cm。该最小距离值与由在实际工作空间中建立的动作捕捉系统针对图9A的场景测量的81cm的最小距离相比是有利的。
在图9B中,人940在工作空间的前部中央靠左的位置处,仍然以手臂基本上水平并且朝向工作空间的中心伸出的方式手持对象950。在这种场景中,相机910仍然具有遮挡情况,因为相机910与到机器人900相比更加靠近对象950。现在,对象950与机器人900之间的横向和垂直距离比图9A中的距离小,且相机910感知到约35cm的基于遮挡的最小机器人-障碍物距离。相机920也具有遮挡情况,因为相机920与到机器人900相比更靠近对象950。由于遮挡假设以及对象950和机器人900的相对位置,相机920也感知到大约35cm的最小机器人-障碍物距离。相机930仍然没有遮挡情况,因为相机930与到对象950相比更靠近机器人900。因此,相机930基于对象950的边缘像素和机器人900上的控制点的实际3D坐标计算机器人-障碍物最小距离,并且该距离为大约83cm。根据图7的方法,三个相机的最小距离中的最大者被选择为是最准确的,即距相机930的83cm最小距离。该最小距离值与由运动捕捉系统在图9B的场景的实际工作空间中测量的89cm最小距离相比是有利的。
在图9C中,人940沿着工作空间的左侧朝向后方,仍然以人的手臂基本上水平并且朝向工作空间的中心伸出的方式手持对象950。在这种场景中,相机910可能具有或不具有遮挡情况,因为相机910与对象950和机器人900的距离大约相同。使用图4所示的图像处理技术和图5的方法,如果从对象950的边缘像素到相机的距离小于从机器人手臂上的控制点到相机的距离,则将假定有遮挡。使用适当的计算(基于遮挡的投影或真实的3D距离),相机910计算得到大约78cm的最小机器人-障碍物距离。在图9C中,相机920肯定具有遮挡情况。由于遮挡假设以及对象950和机器人900的相对位置,相机920感知到约20cm的基于遮挡的最小机器人-障碍物距离。在图9C中,相机930仍然没有遮挡情况,因为相机930与到对象950相比更靠近机器人900。因此,相机930基于对象950的边缘像素和机器人900上的控制点的实际3D坐标计算机器人-障碍物最小距离,并且该距离为大约77cm。根据图7的方法,三个相机的最小距离中的最大者被选择为是最准确的,即距相机910的78cm最小距离。该最小距离值与由运动捕捉系统在图9C的场景的实际工作空间中测量的78cm最小距离相比是有利的。
提供图9A-9C的使用三个相机来快速且可靠地确定准确的最小距离的前述讨论以说明图6和7的系统和方法如何应用于真实世界机器人-障碍物情况。为了讨论的目的,如果人940和对象950位于工作空间的右前方,则相机920将可能产生最大(并且最准确)的最小距离。
如前所述,在图9A-9C中,控制器902可以从相机910、920和930接收图像,并且执行以上关于图4-9描述的所有图像处理和距离计算步骤。或者,可以提供单独的计算机来执行所有图像处理和距离计算步骤,从而确定工作空间中是否存在动态对象,并且如果存在动态对象,则确定最小机器人-障碍物距离是什么。在任一情况下,当动态对象存在时,控制器902使用最小机器人-障碍物距离来确定机器人900是否需要碰撞避免操纵。
在整个前述讨论中,描述并暗示了各种计算机和控制器。应当理解,这些计算机和控制器的软件应用和模块在具有处理器和存储器模块的一个或多个计算设备上执行。特别地,这包括在上述图6的机器人控制器650和(如果使用的)计算机640的每一个中的处理器。具体地,控制器650和/或(如果使用的)计算机640中的处理器配置为以贯穿前述公开内容描述的方式对来自一个或多个相机的图像执行图像处理步骤,并计算最小机器人-障碍物距离。这同样适用于图4、8和9中描述的机器人控制器,其可以与或不与单独的计算机一起使用以执行所公开的计算。
如上所述,所公开的用于计算到机器人工作空间中的动态对象的最小距离的技术提供了优于现有技术方法的显著优点。所公开的检测对象边缘像素的图像处理步骤提供了对相机的最小距离向量的有效识别,无论是否存在遮挡。多个相机在并行计算中的组合使得能够快速检测准确的最小距离,而无需现有技术方法的耗时且易出错的相机校准和3D深度栅格计算。
尽管上面已经讨论了用于计算到机器人工作空间中的动态对象的最小距离的方法和系统的多个示例性方面和实施例,但是本领域技术人员将认识到其修改、置换、添加和子组合。因此,所附权利要求和此后引入的权利要求旨在解释为包括所有这些修改、置换、添加和子组合,因为这些修改、置换、添加和子组合在它们的真实精神和范围内。
Claims (20)
1.一种用于计算从机器人到所述机器人的工作空间中的障碍物的最小距离的方法,所述方法包括:
从三维相机提供所述工作空间的图像;
使用具有处理器和存储器的计算机对所述图像执行边缘滤波,从而产生仅具有限定所述工作空间中的物品的边缘的像素的边缘图像;
从所述边缘图像中减去所述机器人和背景物品,得到动态对象边缘像素图像;
将深度值分配给所述动态对象边缘像素图像中的每个像素以创建最终图像,其中,所述深度值是从由所述相机提供的所述图像中的深度数据取得的;
计算从所述最终图像中的每个像素到所述机器人上的多个控制点中的每个控制点的距离;以及
根据所计算的距离确定最小机器人-障碍物距离。
2.根据权利要求1所述的方法,其中,从所述边缘图像减去所述机器人包括基于使用机器人关节位置数据的正向运动学计算来计算机器人姿态,将所述机器人姿态转置为每个机器人臂在图像坐标系中的位置和取向,以及从所述边缘图像减去每个机器人臂。
3.根据权利要求1所述的方法,其中,从所述边缘图像减去背景物品包括提供已知在所述工作空间中没有动态对象的先前拍摄的背景参考图像,对所述背景参考图像执行边缘滤波以创建背景参考边缘图像,以及从所述边缘图像减去所述背景参考边缘图像。
4.根据权利要求1所述的方法,还包括:在将深度值分配给每个像素之前对所述深度数据进行孔洞填充,包括将深度值分配给所述图像中的缺少深度数据的像素,其中,基于在预定的相邻距离内具有最接近所述相机的深度值的像素来分配所述深度值。
5.根据权利要求1所述的方法,还包括:确定所述最终图像中的像素数量是否大于预定的阈值,当所述像素数量大于所述阈值时计算从所述最终图像中的每个像素到所述机器人上的所述多个控制点中的每个控制点的距离,以及当所述最终图像中的所述像素数量小于或等于所述预定的阈值时确定所述工作空间中不存在障碍物。
6.根据权利要求1所述的方法,其中,计算从所述最终图像中的每个像素到所述机器人上的多个控制点中的每个控制点的距离包括执行遮挡检查,其中,当从所述相机到所述像素的距离小于从所述相机到所述控制点的距离时所述遮挡检查是肯定的。
7.根据权利要求6所述的方法,其中,当所述遮挡检查为肯定的时,将从所述像素到所述控制点的距离计算为投影到与相机图像平面平行的平面上的距离。
8.根据权利要求6所述的方法,其中,当所述遮挡检查不是肯定的时,使用坐标公式中的差的平方和将从所述像素到所述控制点的距离计算为实际三维距离。
9.根据权利要求1所述的方法,其中,所述机器人上的所述多个控制点中的每一个限定在机器人臂的外表面上的点处、沿着机器人臂的运动学轴线或者在关节中心处。
10.根据权利要求1所述的方法,还包括:从一个或多个附加的三维相机提供所述工作空间的同时拍摄的图像,其中所述相机中的每一个放置在所述工作空间的外围周围的不同位置处;根据来自所述附加的相机中的每一个的所述图像确定最小机器人-障碍物距离;以及,选择所确定的最小机器人-障碍物距离中的最大值以在机器人运动编程中使用。
11.根据权利要求1所述的方法,还包括:由机器人控制器在碰撞避免机器人运动规划算法中使用所述最小机器人-障碍物距离。
12.根据权利要求11所述的方法,其中,所述计算机是所述机器人控制器。
13.一种用于计算从机器人到所述机器人的工作空间中的障碍物的最小距离的方法,所述方法包括:
从多个三维(3D)相机中的每一个提供所述工作空间的同时拍摄的图像;
使用具有处理器和存储器的计算机对各个图像的每一个执行边缘滤波,从而产生仅具有限定所述工作空间中的物品的边缘的像素的边缘图像;
从各个边缘图像中的每一个减去所述机器人和背景物品,得到动态对象边缘像素图像;
将深度值分配给各个动态对象边缘像素图像的每一个中的每个像素以创建最终图像,其中,所述深度值是从由所述相机提供的图像中的深度数据取得的;
当各个最终图像的每一个中的像素数量大于或等于预定的阈值时,计算从所述最终图像中的每一个像素到所述机器人上的多个控制点中的每一个的距离;
根据所计算的距离确定所述相机的每一个的最小机器人-障碍物距离;
选择所确定的最小机器人-障碍物距离中的最大值以在机器人运动编程中使用;以及
当所有所述各个最终图像中的所述像素数量小于所述预定的阈值时,确定所述工作空间中不存在障碍物。
14.根据权利要求13所述的方法,其中,计算从所述最终图像中的每个像素到所述机器人上的多个所述控制点中的每个控制点的距离包括执行遮挡检查,其中,当从所述相机到所述像素的距离小于从所述相机到所述控制点的距离时所述遮挡检查是肯定的,并且当所述遮挡检查是肯定的时,从所述像素到所述控制点的所述距离被计算为投影到平行于相机图像平面的平面上的距离。
15.一种用于计算从机器人到所述机器人的工作空间中的障碍物的最小距离的系统,所述系统包括:
一个或多个三维(3D)相机,每个相机提供所述工作空间的同时拍摄的图像;以及
与所述一个或多个相机通信的计算机,所述计算机具有处理器和存储器,所述计算机配置用于:
对各个图像中的每一个执行边缘滤波,产生仅具有限定所述工作空间中的物品的边缘的像素的边缘图像;
从各个边缘图像中的每一个减去所述机器人和背景物品,得到动态对象边缘像素图像;
将深度值分配给各个动态对象边缘像素图像的每一个中的每个像素以创建最终图像,其中,所述深度值是从由所述相机提供的图像中的深度数据取得的;
当各个最终图像的每一个中的像素数量大于或等于预定的阈值时,计算从所述最终图像中的每一个像素到所述机器人上的多个控制点中的每一个的距离;
根据所计算的距离确定所述相机中的每一个的最小机器人-障碍物距离;
当使用多于一个相机时,选择所确定的最小机器人-障碍物距离中的最大值以使用;以及
当所有所述各个最终图像中的所述像素数量小于所述预定的阈值时,确定所述工作空间中不存在障碍物。
16.根据权利要求15所述的系统,其中,所述计算机还配置用于在将深度值分配给每个像素之前对所述深度数据进行孔洞填充,包括将深度值分配给所述图像中的缺少深度数据的像素,其中,基于在预定的相邻距离内具有最接近所述相机的深度值的像素来分配所述深度值。
17.根据权利要求15所述的系统,其中,计算从所述最终图像中的每个像素到所述机器人上的多个所述控制点中的每个控制点的距离包括执行遮挡检查,其中,当从所述相机到所述像素的距离小于从所述相机到所述控制点的距离时所述遮挡检查是肯定的,并且当所述遮挡检查是肯定的时,从所述像素到所述控制点的所述距离被计算为投影到平行于相机图像平面的平面上的距离。
18.根据权利要求15所述的系统,其中,所述一个或多个相机位于所述工作空间的外围周围,并且来自每个相机的图像是在所述相机在基本上水平方向上对准的情况下拍摄的。
19.根据权利要求15所述的系统,所述系统还包括机器人控制器,所述机器人控制器与所述计算机通信并且配置为在碰撞避免机器人运动规划算法中使用所述最小机器人-障碍物距离。
20.根据权利要求15所述的系统,其中,所述计算机是机器人控制器,所述机器人控制器配置为在碰撞避免机器人运动规划算法中使用所述最小机器人-障碍物距离。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/456,771 US12076869B2 (en) | 2021-11-29 | 2021-11-29 | Effective calculation method of the minimum distance to dynamic objects |
US17/456,771 | 2021-11-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116188567A true CN116188567A (zh) | 2023-05-30 |
Family
ID=86317047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210235866.5A Pending CN116188567A (zh) | 2021-11-29 | 2022-03-11 | 到动态对象的最小距离的有效计算方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12076869B2 (zh) |
JP (1) | JP2023079994A (zh) |
CN (1) | CN116188567A (zh) |
DE (1) | DE102022102562A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102528797B1 (ko) * | 2021-08-10 | 2023-05-03 | 세메스 주식회사 | 기판 이송 어셈블리 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3421189B1 (de) * | 2017-06-28 | 2019-05-22 | Sick AG | Verfahren zum überwachen einer maschine |
CN110378937B (zh) * | 2019-05-27 | 2021-05-11 | 浙江工业大学 | 基于Kinect摄像头的工业机械臂人机安全距离检测方法 |
CN116619386A (zh) * | 2021-05-18 | 2023-08-22 | 牧今科技 | 用于物体大小测量的机器人系统 |
-
2021
- 2021-11-29 US US17/456,771 patent/US12076869B2/en active Active
-
2022
- 2022-02-03 DE DE102022102562.4A patent/DE102022102562A1/de active Pending
- 2022-03-11 CN CN202210235866.5A patent/CN116188567A/zh active Pending
- 2022-05-27 JP JP2022086929A patent/JP2023079994A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022102562A1 (de) | 2023-06-01 |
US12076869B2 (en) | 2024-09-03 |
US20230166406A1 (en) | 2023-06-01 |
JP2023079994A (ja) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101776622B1 (ko) | 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
EP3948782B1 (en) | Robotic control based on 3d bounding shape, for an object, generated using edge-depth values for the object | |
KR101776621B1 (ko) | 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
US20190007659A1 (en) | Sensor for securing a machine | |
CN109416843B (zh) | 实时高度映射 | |
KR101776620B1 (ko) | 검색 기반 상관 매칭을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
CN109671115A (zh) | 使用深度值估计的图像处理方法和装置 | |
US11334086B2 (en) | Autonomous robots and methods of operating the same | |
EP1766580A2 (en) | Method and apparatus for machine-vision | |
US10762703B2 (en) | Visualization of 3D image data | |
Burschkal et al. | Stereo-based obstacle avoidance in indoor environments with active sensor re-calibration | |
US20190379836A1 (en) | Sensor control device, object search system, object search method, and program | |
CN116188567A (zh) | 到动态对象的最小距离的有效计算方法 | |
Henrich et al. | Multi-camera collision detection between known and unknown objects | |
CN112288815A (zh) | 一种目标模位置测量方法、系统、存储介质及设备 | |
WO2021131990A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
Fetzner et al. | A 3D representation of obstacles in the robots reachable area considering occlusions | |
Pachidis et al. | Vision-based path generation method for a robot-based arc welding system | |
Fischer et al. | Surveillance of robots using multiple colour or depth cameras with distributed processing | |
CN115683109A (zh) | 基于cuda和三维栅格地图的视觉动态障碍物检测方法 | |
JPH07152810A (ja) | 環境モデル作成装置 | |
Stengel et al. | Efficient 3d voxel reconstruction of human shape within robotic work cells | |
Rashd et al. | Open-box target for extrinsic calibration of LiDAR, camera and industrial robot | |
Zhu et al. | Occlusion handling for industrial robots | |
WO2023031991A1 (ja) | 判定装置、制御装置、特定方法、制御方法、および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |