用于确定相机校准的姿态的方法和系统与流程

文档序号:24938927发布日期:2021-05-04 11:31阅读:147来源:国知局
用于确定相机校准的姿态的方法和系统与流程

本发明涉及一种用于确定相机校准和机器人控制的姿态的方法和系统。



背景技术:

随着自动化变得越来越普遍,机器人在更多的环境中使用,例如在仓库和制造环境中。例如,机器人可用于在仓库中将物品装载到托盘上或从托盘上卸下,或在工厂中从传送带上拾取物品。机器人的运动可以是固定的,或者可以基于输入,例如由仓库或工厂中的相机拍摄的图像。在后一种情况下,可以执行校准以便确定相机的特性,并且确定相机与机器人所在的环境之间的关系。校准可称为相机校准,并且可以生成校准信息,该校准信息用于基于相机捕获的图像来控制机器人。在一些实施方式中,相机校准可能涉及人的手动操作,人可以手动控制机器人的运动,或手动控制相机以捕获机器人的图像。



技术实现要素:

本文的实施例的一个方面涉及计算系统或由计算系统(例如,经由非临时性计算机可读介质上的指令)执行的方法。所述计算系统可以包括通信接口,所述通信接口被配置成与机器人和具有相机视野的相机通信,其中所述机器人具有设置于其上的校准图案。所述计算系统还可具有控制电路,所述控制电路被配置成当所述计算系统与所述机器人和所述相机通信时,通过以下操作来执行相机校准:确定用于执行所述相机校准的图案取向范围,其中所述图案取向范围是所述校准图案的取向范围;确定假想球体的表面上的表面区域,其中所述假想球体的表面表示所述校准图案的可能图案取向,并且所述表面区域表示用于执行所述相机校准的图案取向范围;确定在执行所述相机校准时所述校准图案采用的多个姿态,其中所述多个姿态由所述相机视野内的多个相应位置和多个相应组的姿态角值的相应组合限定,其中所述多个相应组中的每一组姿态角值基于选自所述假想球体的表面上的表面区域内的相应表面点;输出多个机器人运动命令以用于控制所述校准图案的放置,其中所述多个机器人运动命令是基于确定的多个姿态生成的;接收多个校准图像,其中所述多个校准图像中的每一个校准图像表示所述校准图案,并且在所述校准图案具有所述多个姿态中的相应姿态时生成;以及基于所述多个校准图像确定相机校准参数的估计值。所述控制电路还被配置成在执行所述相机校准之后,经由所述通信接口从所述相机接收后续图像,并输出基于所述后续图像且基于所述相机校准参数的估计值生成的后续机器人运动命令。

附图说明

本发明的前述和其他特征、目标和优点将从如附图中所图示的本发明的实施例的以下描述而显而易见。附图被并入本文中并且形成本说明书的一部分,附图进一步用于解释本发明的原理,并使得相关领域的技术人员能够制作和使用本发明。附图未按比例绘制。

图1描绘了根据本文中的实施例执行相机校准的系统的框图。

图2描绘了根据本文中的实施例被配置成确定用于执行相机校准的姿态的计算系统的框图。

图3a和图3b描绘了根据本文中的实施例执行相机校准并且校准图案可以采用各种姿态的系统。

图4a图示了根据本文中的实施例在校准图案与相机之间的姿态角的角度值。

图4b和图4c描绘了根据本文中的实施例的校准图案、相机坐标系和图案坐标系的法向量。

图5a-5c描绘了根据本文中的实施例的校准图案的各种姿态角。

图6a-6c描绘了根据本文中的实施例的校准图案的各种姿态角。

图7a-7c图示了表示校准图案的可能图案取向的假想球体和假想球体上的表面点。

图8a描绘了根据本文中的实施例对姿态角值的约束的实例。

图8b和图8c图示了根据本文中的实施例的表示校准图案的可能取向的假想球体,表示用于执行相机校准的图案取向范围的表面区域以及假想球体上的表面点。

图9描绘了根据本文中的实施例的用于确定执行相机校准的姿态的示例性方法的流程图。

图10a和图10b描绘了根据本文中的实施例均匀分布在表示图案取向的假想球体的表面区域内的表面点。

图11a和图11b描绘了根据本文中的实施例的划分相机视野中的空间的示例性网格。

图12a-12c图示了根据本文中的实施例的各种姿态的拉丁方形空间分布的实例。

图13a和图13b图示了根据本文中的实施例的各种姿态的分层空间分布的实例。

图14a和图14b图示了根据本文中的实施例的各种姿态的随机空间分布的实例。

图15a-15c图示了根据本文中的实施例的机器人可达到候选姿态的各种空间分布。

具体实施方式

以下详细描述在本质上仅是示例性的,并且不旨在限制本发明或本发明的应用和用途。此外,并不意图受到前面技术领域、背景技术、发明内容或具体实施方式中呈现的任何明示或暗示理论的束缚。

本文中描述的实施例涉及确定用于执行相机校准的姿态。例如,姿态可以指放置校准图案的取向(其可以称为图案取向),放置校准图案的位置,或其组合。相机可以在校准图案具有该姿态时对校准图案拍照或以其它方式成像,以便生成对应于该姿态的校准图像,并且校准图像可以用于执行相机校准。例如,执行相机校准可以涉及估计相机的特性,和/或相机和其环境之间的关系。在执行相机校准之后,由相机生成的图像可以促进对用于与相机环境中的物体进行交互的机器人的控制。例如,机器人可以用于在仓库中拾取包裹,其中机器人的臂或其他部件的运动可以基于相机生成的包裹的图像。

本文中的实施例的一个方面涉及尝试实现一种姿态分布,其中,姿态一般根据校准图案的位置和/或图案取向分布。如果姿态转而具有姿态集中在某些区域中或集中在图案取向的期望范围中的某些图案取向周围的分布,所得的校准图像可捕获当拍摄物体处于那些区域和/或取向时表现的某些相机行为,但可能会错过对应于在其他区域和/或取向处的拍摄物体的相机行为。以代替分散姿态的方式确定姿态,以便创建例如在位置和/或取向方面姿态的更均匀的分布,可以使得所得的校准图像更完全或更准确地捕获相机行为。例如,如果相机行为是可能由相机的镜头引入的镜头失真,那么分散校准图案的姿态可以允许校准图案具有多样化的姿态,并在多样化的位置和/或图案取向处被拍摄或以其他方式成像。这种多样化的姿态可以使所得的校准图像更有可能捕获表现镜头失真的更多方式。此校准图像可允许镜头失真或者相机的另一特性,从而以更加完整和准确的方式被表征或以其它方式被评估。

本文中的实施例的一个方面涉及确定校准图案的不同姿态的姿态角值,并且更具体地,以实现校准图案的图案取向的期望分布的方式进行此操作。图案取向的分布可以指定向校准图案的方向的分布。例如,在图案取向的期望范围内大体上均匀的分布可以指这样的分布,其中校准图案具有在期望方向范围内,并且通常均匀地分布在期望的方向范围中的方向,其中期望的图案取向范围可以由期望的方向范围限定。

在实施例中,上面讨论的姿态角值可以是姿态角的角度值,其可以是校准图案与参考系(例如相机的光轴)之间的角。姿态角可以用于控制校准图案相对于例如相机的倾斜(这种倾斜可被称为相对倾斜)。在实施例中,多个姿态角可用于控制校准图案的倾斜,并且多个姿态角的一组相应的姿态角值可以用于控制校准图案的相对倾斜的方向和量。在某些情况下,可通过根据期望分布(例如,均匀分布)分别为多个姿态角中的每一个确定一组相应的姿态角值来确定一组图案取向。然而,这种方法实际上不可能实现该组图案取向的期望分布。例如,如果图案取向由三个姿态角控制,根据均匀分布分别为三个姿态角中的每一个确定一组姿态角值实际上可能不会导致得到的一组图案方向的均匀分布。因此,本文中的实施例的一个方面涉及通过首先确定与期望分布一致的图案取向,并且接着基于期望分布确定姿态角值来确定姿态角的姿态角值。

在实施例中,确定与期望分布一致的图案取向可以涉及选择假想球体上的表面点。表面点可以是假想球体的表面上的点,其可以表示校准图案的可能图案取向,并且更具体地可以表示校准图案的法向量可以指向的方向。在某些情况下,假想球体的中心可以处于法向量的一个端点处,并且假想球体可以具有表面,该表面是可以由法向量的另一个端点指向或更一般地朝向的点的轨迹。在某些情况下,假想球体的表面上的区域(其可以被称为表面区域)可以表示图案取向的期望范围,并且表面区域内的表面点可表示在期望范围内的相应图案取向。在实施例中,根据期望分布,表面点可以选自假想球体的表面,并且更具体地选自表面区域内。例如,根据期望的均匀分布选择表面点可以涉及对表面区域内的表面点进行采样以选择那些表面点中的一个表面点,其中采样可以使得表面区域内的每个表面点同样可能被选择的方式进行。在此实施例中,可以基于所选择的表面点确定姿态角的姿态角值。如果图案取向被多个姿态角控制,则可基于所选择的表面点对多个姿态角中的每一个确定相应的姿态角值。如果以上文方式对多个相应姿态确定多个图案取向,则多个图案取向更可能具有期望分布,例如均匀分布。

本文中的实施例的一个方面涉及以使得多个姿态分散在相机的视野(也称为相机视野)内的方式确定多个姿态的相应位置。在某些情况下,每个确定的位置可以与相应组的姿态角值组合,以形成用于校准图案的姿态。例如,可以使用上述方式确定相应组的姿态角值。在实施例中,相机的视野内的空间可以被划分为具有一层或多层并且具有多行和多列的网格。在某些情况下,确定相应位置可涉及尝试寻找将实现第一空间分布的位置,所述第一空间分布将多个姿态放置在不同区域处。如果无法实现第一空间分布,所述确定可进一步涉及尝试寻找实现第二空间分布的位置,所述第二空间分布也可尝试将多个姿态放置在不同区域处,但相对于第一空间分布,可能具有更少的条件或更宽松的条件。在某些情况下,如果无法实现第一空间分布、第二空间分布和/或另一空间分布,可确定多个姿态的位置以实现随机空间分布。

在实施例中,第一空间分布可为这样的分布,其中,i)在网格的特定层中的每一行仅包括一个姿态,或包括不超过一个姿态,并且其中,ii)该层中的每一列仅包括一个姿态,或包括不超过一个姿态。在实施例中,第二空间分布可以是必须满足第一空间分布的上述标准中的仅一个中的分布。更具体地,第二空间分布可为这样的分布,其中,i)网格的特定层中的每一行仅包括一个姿态,或包括不超过一个姿态,或ii)特定层中的每一列仅包括一个姿态,或不超过一个姿态。

图1图示了用于执行自动相机校准的机器人操作系统100的框图。机器人操作系统100包括机器人150、计算系统110和相机170。在某些情况下,计算系统110可以被配置成控制机器人150,且可在这些情况下被称为机器人控制系统或机器人控制器。在实施例中,机器人操作系统100可以位于仓库、制造厂或其他场所内。计算系统110可以被配置成例如通过确定校准信息执行相机校准,该校准信息稍后用于控制机器人150。在某些情况下,计算系统110被配置成执行相机校准并基于校准信息控制机器人150。在某些情况下,计算系统110可专用于执行相机校准,并且可以将校准信息传送到专用于控制机器人的另一计算系统。可以基于相机170捕获的图像和校准信息来定位机器人150。在某些情况下,计算系统110可以是采集相机170所处的环境的图像的视觉系统的一部分。

在实施例中,计算系统110可以被配置成经由有线或无线通信与机器人150和相机170通信。例如,计算系统110可以被配置成经由rs-232接口、通用串行总线(usb)接口、以太网接口、接口、ieee802.11接口或其任何组合与机器人150和/或相机170通信。在实施例中,计算系统110可以被配置成经由本地计算机总线(例如,外围部件互连(pci)总线)与机器人150和/或相机170通信。

在实施例中,计算系统110可以与机器人分开150,并且可以经由上述无线或有线连接与机器人150通信。例如,计算系统110可以是独立的计算机,其被配置成经由有线连接或无线连接与机器人150和相机170通信。在实施例中,计算系统110可以是机器人150的整体部件,并且可以经由上述本地计算机总线与机器人150的其他部件通信。在某些情况下,计算系统110可以是仅控制机器人150的专用控制系统(也称为专用控制器)。在其他情况下,计算系统110可以被配置成控制多个机器人,包括机器人150。在实施例中,计算系统110、机器人150和相机170位于相同的场所(例如,仓库)。在实施例中,计算系统110可远离机器人150和相机170,并且可以被配置成经由网络连接(例如,局域网(lan)连接)与机器人150和相机170通信。

在实施例中,计算系统110可以被配置成访问和处理校准图像,该校准图像是设置在机器人150上的校准图案160的图像。计算系统110可以通过从相机170或另一来源(例如,从存储装置或其上存储校准图像的其它非临时性计算机可读介质)检索或更一般地接收校准图像来访问校准图像。在某些情况下,计算系统110可以被配置成控制相机170以捕获此类图像。例如,计算系统110可以被配置成生成相机命令,该相机命令使相机170生成捕获相机170的视野(也称为相机视野)中的场景的图像,并通过有线或无线连接将相机命令传送至相机170。相同命令可以使相机170还将图像(作为图像数据)传送回计算系统110,或更一般地传送回可由计算系统110访问的存储装置。替代地,计算系统110可以生成另一相机命令,其使相机170在接收到相机命令后,将其捕获到的图像传送到计算系统110。在实施例中,相机170可以定期或响应于定义的触发条件自动捕获在其相机视野中的场景的图像,而不需要来自计算系统110的相机命令。在此实施例中,相机170还可以被配置成在没有来自计算系统110的相机命令的情况下,自动地将图像传送到计算系统110,或更一般地传送到可由计算系统110访问的存储装置。

在实施例中,计算系统110可以被配置成通过计算系统110生成并通过有线或无线连接传送到机器人150的运动命令控制机器人150的运动。运动命令可以使机器人移动设置在机器人上的校准图案160。校准图案160可以永久地设置在机器人150上,或者可以是可附接到机器人150并且从该机器人拆卸的单独部件。

在实施例中,相机170可以被配置成例如通过对场景进行拍摄生成或以其他方式获取捕获相机视野中的场景的图像。图像可以由诸如像素阵列的图像数据形成。相机170可以是彩色图像相机、灰度图像相机、深度感测相机(例如,飞行时间(tof)或结构化光相机),或任何其他相机。在实施例中,相机170可以包括一个或多个镜头、图像传感器和/或任何其它部件。图像传感器可包括例如电荷耦合装置(ccd)传感器、互补金属氧化物半导体(cmos)传感器、量子图像传感器(qis)或任何其他图像传感器。

图2描绘了计算系统110的框图。如框图所示,计算系统110可包括控制电路111、通信接口113和非临时性计算机可读介质115(例如,存储器)。在实施例中,控制电路111可以包括一个或多个处理器、可编程逻辑电路(plc)或可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、专用集成电路(asic)或任何其它控制电路。

在实施例中,通信接口113可以包括被配置成与相机170和机器人150通信的一个或多个部件。例如,通信接口113可以包括被配置为通过有线或无线协议执行通信的通信电路。例如,通信电路可以包括rs-232端口控制器、usb控制器、以太网控制器、ieee802.11控制器、控制器、pci总线控制器、任何其他通信电路或其组合。

在实施例中,非临时性计算机可读介质115可以包括信息存储装置,例如计算机存储器。计算机存储器可以包括,例如,动态随机存取存储器(dram)、固态集成存储器和/或硬盘驱动器(hdd)。在某些情况下,相机校准可以通过非临时性计算机可读介质115上存储的计算机可执行指令(例如,计算机代码)实施。在此类情况下,控制电路111可以包括一个或多个处理器,所述一个或多个处理器被配置成执行计算机可执行指令以执行相机校准(例如,图9中所图示的步骤)。在实施例中,非临时性计算机可读介质可以被配置成存储相机170生成的一个或多个校准图像。

如上所述,本文中的实施例的一个方面涉及确定校准图案160的多个姿态。每个姿态可以指校准图案160的位置和图案取向的组合。多个姿态可以被确定以便(经由机器人150)将校准图案160放置在相机视野内的不同位置处,并且使校准图案160倾斜或以其他方式移动以相对于相机170具有不同图案取向。例如,图3a和图3b描绘了机器人操作系统200内的校准图案260的两个不同的姿态。机器人操作系统200可以是机器人操作系统100的实施例,并且包括计算系统110、相机270(其可以是相机170的实施例)、机器人250(其可以是机器人150的实施例)以及校准图案260,其可以是校准图案260的实施例。

在图3a和图3b的实例中,机器人250可具有机械臂,所述机械臂包括通过接头连接的多个连杆254a-254e。机械臂可以被构造成移动校准图案260。这种移动可以包括将校准图案260放置在相机270的相机视野272内的不同位置处,和/或将校准图案260倾斜到相对于相机270的不同取向。在某些情况下,机械臂可以被构造成经由多个连杆254a-254e中的一个或多个连杆围绕连接多个连杆254a-254e的接头中的一个或多个的旋转而移动。在某些情况下,机械臂可响应于运动命令(也称为机器人运动命令)而移动。例如,机器人250可以包括一个或多个电机(未示出),其被配置成在连接连杆254a-254e的多个接头处输出旋转,以便使连杆254a-254e中的至少一些旋转。在此实例中,运动命令可以包括一个或多个电机命令,所述一个或多个电机命令使电机中的一个或多个被激活。在某些情况下,运动命令可由计算系统110生成且由计算系统110输出到机器人150。在某些情况下,机器人运动命令可由另一计算系统和/或由机器人250生成。

在实施例中,校准图案260(其为校准图案160的实施例)可以由机器人250的机械臂移动到不同的姿态。更具体地,图3a和图3b分别描绘了具有第一姿态和第二姿态的校准图案260。第一姿态和第二姿态可被视为不同的姿态,因为它们具有校准图案260的位置和校准图案260的图案取向的不同相应组合。

在实施例中,相机270可以生成或以其它方式获取捕获校准图案260的第一校准图像,同时校准图案260具有图3a中描绘的第一姿态,并且可以生成或以其它方式获取捕获校准图案260的第二校准图像,同时校准图案260具有图3b中描绘的第二姿态。因为第一校准图像和第二校准图像在校准图案260分别处于第一姿态和第二姿态时捕获校准图案,所以这两个姿态也可被称为图像捕获姿态。第一校准图像和第二校准图像可以由计算系统110或任何其它计算系统访问以执行相机校准。

在实施例中,例如,相机校准可确定对相机270的一个或多个固有相机参数的估计,和/或相机270与其环境之间的关系。例如,一个或多个固有相机参数可包括相机270的投影矩阵、相机270的一个或多个失真参数或其任何组合。例如,相机270与其环境之间的关系可包括描述相机270与机器人250之间的空间关系的矩阵。更具体地,所述矩阵可描述相机270与世界点294之间的空间关系(在图3b中描绘),所述世界点可以是相对于机器人250的基座252静止的点。相机校准信息随后可以用于促进机器人250与物体(诸如仓库中的包裹)之间的交互。例如,相机270可以被配置成生成或以其他方式获取物体的图像,并且计算系统110或一些其他计算系统可以被配置成使用物体的图像和相机校准信息来确定机器人250与物体之间的空间关系。在名称为“methodandsystemforperformingautomaticcameracalibrationforrobotcontrol(用于机器人控制的执行自动相机校准的方法和系统)”的美国专利申请第16/295,940号中更详细地讨论了确定相机校准参数的估计值,该申请通过全文引用的方式并入本文中。

在实施例中,也如上文所述,校准图案160/260的图案取向可以由一个或多个姿态角控制。一般讲,姿态角可以是校准图案160/260与参考轴线之间的角度。例如,图4a描绘了在校准图案260的法向量261与轴线之间形成的姿态角α。法向量261可以是正交于由图4a的校准图案260限定的平面的向量。在某些情况下,法向量可以是与轴线重合或更一般地对齐的向量,下文将更详细地讨论。轴线可以是参考轴线,相对于参考轴线测量姿态角α。在图4a的实例中,可以与相机270的坐标系(也称为相机坐标系)的z轴平行和/或重合,其中,z轴线被标记为相机坐标系和世界坐标系一起在图4b中示出。在某些情况下,如果相机270具有一个或多个镜头,相机坐标系的可以是一个或多个镜头的光轴。此外,如果相机270具有图像传感器(例如,ccd传感器),则相机坐标系的x轴或和相机坐标系的y轴或可以限定图像传感器的二维(2d)图像平面。相机坐标系可以具有位于一个或多个镜头处、图像传感器的表面上或任何其他位置的起点。图4b还图示了世界坐标系,其可以是具有关于世界点294的起点的坐标系。如图4b中所描绘,世界坐标系可以由轴线限定。

如上所述,在一些情况下,校准图案260的法向量261可以与图案坐标系的z轴或重合,或者更一般地与其平行。图4c描绘了图案坐标系的坐标轴线,即在一些实施方式中,在图案坐标系中,校准图案260可以具有多个图案元素(例如,点),所述多个图案元素具有已知位置或更一般地具有定义的位置。例如,多个图案元素可以是具有预定义间距的点的网格。在此类实施方式中,图案坐标系的起点可以位于图案元素之一处,或者可以位于别处。在名称为“methodandsystemforperformingautomaticcameracalibrationforrobotcontrol(用于机器人控制的执行自动相机校准的方法和系统)”的美国专利申请第16/295,940号中更详细地讨论了校准图案,该申请通过全文引用的方式并入本文中。

在实施例中,校准图案160/260的图案取向可以由一组姿态角控制,且更具体地由姿态角的一组相应的姿态角值控制。例如,图5a-5c描绘了使用三个姿态角α、β、θ中的一些或全部限定校准图案260的图案取向。在此实例中,姿态角α可以是沿着由形成的y-z平面在法向量261和之间形成的角度。在此实例中,法向量261可以与重合,使得姿态角α也可以是之间的角。在某些情况下,参考轴线可以是与图4b的重合或更一般地与其平行的轴线。在某些情况下,轴线可以是相机270的光轴。在某些情况下,可以是与图4b的轴线平行的轴线,而轴线可以是与图4b的轴线平行的轴线。在图5a所描绘的实例中,姿态角α还可定义为之间的角,和/或定义为通过使校准板260围绕轴线旋转而形成的角度,所述轴线可以为角α的旋转轴线。

在实施例中,姿态角β(在图5b中示出)可以是沿着形成的x-z平面在法向量261与之间形成的角。因为法向量261可以与重合,所以姿态角β也可以是之间的角。在图5b所描绘的实例中,姿态角β也可以定义为之间的角,和/或定义为通过使校准板260围绕轴线旋转而形成的角,所述轴线可以是角度β的旋转轴线。

在实施例中,姿态角θ(在图5c中示出)可以是沿着形成的x-y平面在之间或之间形成的角。在图5c所描绘的实例中,姿态角θ也可以定义为通过使校准板260围绕轴线和/或围绕法向量261旋转而形成的角,所述轴线可以是角θ的旋转轴线。因此,在实施例中,姿态角α、β、θ可以表示校准图案260围绕相应旋转轴线(例如,)的相应旋转量,其中,相应轴线彼此正交。在某些情况下,相应轴线可以与相机光轴平行或正交,所述相机光轴可以是平行于的轴线。在其他情况下,相应轴线可以倾斜于相机光轴。

在实施例中,姿态角α、β、θ可以基于可具有不同组的坐标轴的不同参考坐标系来定义。例如,图6a-6c描绘了相对于基于姿态角α的参考轴线限定姿态角β的实例,且还描绘了相对于基于姿态角α和β的另一参考轴线限定姿态角θ的实例。更具体地,图6a图示了一个实施例,其中类似于图5a的实施例,姿态角α是沿着形成的y-z平面在法向量261与参考轴线之间形成的角度,其中可以是第一参考坐标系的坐标轴。法向量261可以与重合或者更一般地与其平行。参考轴线可以是与图4b的重合或更一般地与其平行的轴线。在某些情况下,轴线可以是相机270的光轴。在某些情况下,可以是与图4b的轴线平行的轴线,而轴线可以是与图4b的轴线平行的轴线。在图6a所描绘的实例中,姿态角α还可定义为之间的角,和/或定义为通过使校准板260围绕轴线旋转而形成的角。

在图6a-6c的实例中,轴线可以是第一参考坐标系,而姿态角β可以相对于第二参考坐标系来定义。第二参考坐标系可以在校准板260旋转姿态角β之前限定该校准板的起点。在此起点处,校准板260已经相对于第一参考坐标系旋转了角α。因此,此实例中的第二参考坐标系可以是相对于第一参考坐标系旋转α的坐标系。第二参考坐标系可以由坐标轴限定。如图6b中所描绘,姿态角β可以是沿着形成的x-z平面在法向量261与之间或在之间形成的角。在图6b所描绘的实例中,姿态角β也可以定义为之间的角,和/或定义为通过使校准板260围绕轴线旋转而形成的角。

类似地,姿态角θ可相对于第三参考坐标系定义。第三参考坐标系可以在校准板260旋转角θ之前限定该校准板的起点。该起点可以通过使第二坐标系旋转角β来限定,这可以产生第三参考坐标系的坐标轴如图6c所示,姿态角θ可以是沿着形成的x-y平面在之间或在之间形成的角。在图6c所描绘的实例中,姿态角θ也可以定义为通过使校准板260围绕轴线或者围绕法向量261旋转而形成的角。

如上所述,本文中的实施例的一个方面涉及控制校准图案160/260以具有多样化姿态,并且更具体地,涉及采用具有期望分布(例如在图案取向的期望范围内的大体均匀的分布)的多个图案取向。图案取向可以由一个或多个姿态角(如α、β、θ)控制。然而,根据均匀分布简单地为姿态角α、β、θ中的每一个单独地生成角度值(也称为姿态角值)可能不一定使所得图案取向具有均匀分布。

例如,图7a描绘了表示图案取向的实例,所述图案取向各自由基于均匀概率密度分布(pdf)单独地生成α的随机姿态角值并且基于均匀pdf生成β的随机姿态角值产生。在某些情况下,θ的随机姿态角值也可以根据均匀pdf单独地生成。更具体地,图7a描绘了可以表示校准图案160/260的可能图案取向的假想球体302。假想球体的表面可以表示校准图案160/260的法向量261可以指向的可能方向。更具体地,假想球体302的表面可以是或可以表示校准图案260的法向量261可以指向的所有方向的轨迹。如果法向量261具有分配的长度(例如,10cm),则假想球体302的半径可以等于所分配的长度。在图7b中描绘了法向量261的实例,并且其可以是正交于校准图案260的向量。在实施例中,法向量261可以具有在校准图案260上的一个端点。例如,端点可以位于校准图案260的图案坐标系的起点处。在图7b的实例中,假想球体302的中心可以位于法向量261的该端点处,并且假想球体302的表面可以由法向量261的另一个端点限定。假想球体302的表面上的特定表面点可以表示将使校准图案260的法向量指向该表面点的校准图案260的特定图案取向。例如,当校准图案260具有图7b中描绘的特定取向时,法向量261指向表面点304a。因此,表面点304a可以表示或以其他方式对应于该图案取向。当校准图案260改变取向时,法向量261可以指向假想球体302上的不同表面点,例如表面点304b或304c,这在图7a中图示。

如上所述,图7a中的实例可以基于均匀概率密度分布(pdf)生成α的随机姿态角值,并且基于均匀pdf生成β的随机姿态角值。均匀pdf可以被配置成随机输出处于期望角度值范围的值,其中所述范围中的每个角度值具有同等被输出的可能性。在图7a的实例中,期望范围可以是-180度至180度。角度值的期望范围可以与图案取向的期望范围相对应。对于图7a,这样的角度值的期望范围(-180度至180度)可以对应于校准图案260的所有可能的图案取向。

如图7a中所描绘,尽管使用均匀的pdf来个别地确定每个姿态角α、β、θ的姿态角值,但所得的图案取向不均匀地分布在图案取向的期望范围内。更具体地,图7a的实例中的图案取向的期望范围可包括所有可能的图案取向,并且根据使用均匀pdf确定角度值所得的图案取向表示为假想球体302的表面上的表面点(例如,304a-304d)。图7a中的多个表面点相比分布在假想球体302的表面上的其它部分内,更密集地分布在假想球体302的表面的某些部分内。因此,所得的图案取向可相对于其它方向朝向某一或某些方向范围更密集地分布。相比之下,图7c图示了图案取向具有更均匀分布的情形,使得表示图案取向的表面点也具有在假想球体302的表面上的更均匀的分布。

在图7a中,图案取向由从-180度至180度的α、β和/或θ的角度值的期望范围产生。图8a-8c描绘了基于角度值的不同期望范围的图案取向的分布。更具体地,图8a描绘了图案取向由从-10度到-30度的角度值的第一期望范围802(也被称作第一范围802)和从10度到30度的角度值的第二期望范围804(也称为第二范围804)产生的实例。姿态角α的姿态角值可以约束到第一范围和第二范围。姿态角α可以约束到第一范围802和第二范围804,使得当获取校准图像时,校准图案260相对于相机270倾斜,但不是太倾斜。在某些情况下,α、β、θ中的一个或多个的一个或若干个期望角度范围可以是一个或多个用户定义的范围。

在实施例中,角度值的期望范围可以适用于多个姿态角,例如α和β。在此实施例中,姿态角β也将约束到上文所论述的第一范围802和第二范围804。在实施例中,假想球体的表面上的区域(也可以称作表面区域)可以表示由角度值的期望范围802/804产生的图案取向的一个或若干个范围。例如,图8b图示了假想球体302的表面区域306。表面区域306可以含有表示图案取向的期望范围的表面点。例如,图8b中描绘的实例中的图案260的图案取向可以由表面点304d表示。在实施例中,表面区域306可在假想球体302的表面上形成圆形或椭圆形带。在实施例中,圆形或椭圆形带可具有均匀宽度。

在图7a的实例中,可以基于均匀概率分布来确定α和β中的每一个的姿态角值,所述均匀概率分布随机选择在-180度到180度的角度值的期望范围内的角度值。图8b描绘了以类似方式确定α和β的姿态角值的实例,但角度值的期望范围是图8a的第一范围802和第二范围804,即,-10度至-30度和10度至30度。姿态角α和β可以被约束到第一范围802和第二范围804,这可产生由表面区域306表示的图案取向的期望范围。然而,以此方式确定α和β还导致图案取向的分布在图案取向的期望范围内通常不均匀或者更一般地不具有期望分布。更具体地,图8c描绘了多个表面点,例如表面点306a-306c,其表示由利用以上技术确定姿态角值而产生的图案取向的分布。如图所示,多个表面点不均匀地分布在表面区域306内,而是在表面区域306的顶部附近集中。表面点的此分布可指示所得的图案取向可更加集中在与更紧密对准并且倾向于相对于相机170/270表现更少倾斜的方向周围。

如上所述,本文中的实施例的一个方面涉及确定在校准图案160/260的图案取向的期望范围内具有以期望方式(例如,通常均匀的方式)分布的图案取向的多个姿态。例如,图9描绘了用于确定多个姿态的方法900,所述多个姿态可具有以期望方式分布的图案取向。方法900可以由计算系统110的控制电路111执行,作为执行相机校准的一部分。例如,相机校准可用于确定相机170的固有相机参数的估计值,和/或确定相机170与其环境之间的空间关系,诸如相机170相对于机器人150的位置和取向。

在实施例中,方法900可以包括步骤902,其中控制电路111确定图案取向范围,这可以是图1/3a的校准图案160/260的图案取向范围以用于执行相机校准。在某些情况下,图案取向范围可以是图案取向的期望范围。在某些情况下,图案取向范围可以仅包括可以由校准图案160/260采用的一些可能的图案取向,并排除其他可能的图案取向。例如,排除的图案取向可提供对执行相机校准而言并非最佳的校准图像。例如,相对于图1/3a的相机170/270不表现任何倾斜的图案取向可以产生不表现任何透视效果和/或任何镜头失真效果的校准图像,这可能只具有有限值来用于确定镜头失真参数或其它相机校准参数的估计值。这样的图案取向可以对应于姿态角α和β均为零度的姿态角值。可以排除一些其他图案取向,因为它们使校准图案160/260上的图案元素或其他特征背离相机170/270太多,使得在那些姿态拍摄校准图案160/260可能产生无法清楚地捕获图案元素的校准图像。

在实施例中,在步骤902中确定图案取向范围可能涉及确定至少一个姿态角(例如上述的姿态角α、β或θ)的角度值的一个或多个范围。针对姿态角确定的范围可以约束针对该姿态角可以确定哪些姿态角值。在一个实例中,一个或多个范围可以是图8a中描绘的第一范围802和第二范围804。更具体地,在此实例中确定图案取向范围可涉及确定姿态角α和姿态角β都被约束到两个范围,即在-10度与-30度之间的第一范围802和在10度与30度之间的第二范围804。在某些情况下,一个或多个范围可排除量值(即,绝对值)太小的姿态角值,且还可排除量值太大的姿态角值。量级太小的姿态角值可能导致校准图案160/260相对于相机170/270不表现任何倾斜或表现太少倾斜,这可能导致对于准确估计相机参数值而言并非最佳的校准图像。量值太大的姿态角值可导致校准图案160/260相对于相机170/270太倾斜以致到图案取向上,在该图案取向处,校准图案160/260上的各个图案元素或其他特征未在所得的校准图像中被捕获,或在所得的校准图像中显得太翘曲。

在某些情况下,步骤902的图案取向范围可以基于用户定义的值。例如,确定图案取向范围可涉及图2的控制电路111从非临时性计算机可读介质115访问用户定义的一个或若干个姿态角值的范围。更具体地,控制电路111可从非临时性计算机可读介质115检索或更一般地接收用户定义的范围。

在实施例中,方法900包括步骤904,其中图2的控制电路111确定假想球体的表面上的表面区域。例如,假想球体可以是图7a-7c、8b、8c以及图10a和图10b的假想球体302。假想球体(例如,假想球体302)可以表示校准图案160/260的可能图案取向。在一个更具体的实例中,假想球体可以表示校准图案160/260的所有可能的图案取向。例如,假想球体的表面可以是校准图案160/260的法向量(例如,261)可以指向的所有点的轨迹,并且可以对应于法向量可以指向的所有方向。如果给法向量分配例如10厘米的定义长度,则假想球体可以是半径为10厘米的球体。在实施例中,在表面区域之外的表面点不用于确定姿态角值。换言之,出于确定姿态角值和确定姿态的目的,控制电路111可忽略表面区域之外的表面点。

在实施例中,假想球体(例如,302)的表面上的表面区域(例如306)表示用于执行相机校准的图案取向范围(例如,用于执行相机校准的图案取向的期望范围)。例如,表面区域可以是图10a和图8c的表面区域306。在某些情况下,表面区域可以是校准图案160/260的法向量可以指向的点的轨迹,同时保持在图案取向的期望范围内。例如,如果图案取向范围基于至少一个姿态角(例如,α和β)的姿态角值的一个或多个范围,表面区域(例如,306)可以是法向量(例如,法向量261)可以指向的点的轨迹,同时保持在至少一个姿态角的姿态角值的一个或多个范围内。在某些情况下,表面区域,例如图10a和图8c的表面区域306可在假想球体的表面上形成圆形带(也称为圆形条)。圆形带可具有均匀宽度,或可具有变化宽度。

在实施例中,方法900包括步骤906,其中控制电路111确定校准图案160/260的多个姿态。在某些情况下,多个姿态可以是在其处拍摄或以其他方式成像校准图案160/260以生成校准图像的姿态,并且可以被称为图像捕获姿态或成像姿态。所述多个姿态可由相机视野内的多个相应位置和多个相应组的姿态角值的相应组合限定。例如,多个相应位置可以是图3a、图3b和图4b的相机视野272内的位置。在此实例中,相应组的姿态角值中的每一个可以是α和β的相应姿态角值,或α、β,和θ的相应姿态角值。在此实例中,特定的姿态可由相机视野272内的位置、α的姿态角值、β的姿态角值,和θ的姿态角值限定。在某些情况下,用于定义姿态的姿态角可以是影响校准图案160/260相对于相机170/270倾斜多少的角。此角可包括姿态角α和β。例如,如果姿态角θ不影响校准图案160/260的相对倾斜,则校准图案160/260的姿态可以仅由姿态角α和β以及相机视野272内的位置限定。

在实施例中,步骤906中的多组姿态角值中的每组姿态角值可以基于选自假想球体的表面上的表面区域内的相应表面点来确定。例如,一组姿态角值可分别包括姿态角α、β和θ的三个角度值,或分别包括姿态角α和β的两个角度值。在此实例中,一组姿态角值中的一些或所有姿态角值可基于相应的表面点,例如图10a中的表面点308a-308i之一,其从图中的假想球体302的表面上的表面区域306内选择。表面点(例如,表面点308a)可以表示校准图案160/260的法向量261指向的方向。下文更详细地论述了对姿态角值的确定。

在实施例中,通过选择假想球体上的表示校准图案160/260的可能图案取向的表面点来确定校准图案160/260的姿态,且接着基于所选择的表面点确定至少一个姿态角的姿态角值可更好地允许所得的图案取向实现期望分布。例如,可以根据均匀概率分布或某种其他概率分布(例如,高斯分布)从表面区域内随机地选择相应的一组姿态角值所基于的表面点。使用均匀概率分布来选择表面点可以确保所选表面点可能在表面区域内具有均匀分布。在此实例中,因为所选的表面点可能在表面区域内具有均匀分布,基于所选表面点确定的姿态角值也可能产生具有均匀分布或某种其它期望分布的所得的图案取向。

图10a描绘了选自假想球体302的表面区域306内并且在表面区域306内具有基本上均匀分布的多个表面点308a-308i的实例。更具体地,表面区域306可形成圆形带,并且表面点308a-308i以基本上均匀的方式围绕圆形带并且沿着圆形带的宽度分布。如上所述,使用表面点308a-308i确定至少一个姿态角的姿态角值可以产生具有基本上均匀分布的图案取向。

在实施例中,控制电路111可以被配置成对于相应组的姿态角值所基于的相应表面点(例如,308a-308i),根据均匀概率分布随机地从表面区域(例如,图10a和图10b中的表面区域306)内选择每个相应表面点。在某些情况下,随机选择可以依赖于伪随机函数,诸如rand()。在某些情况下,可以根据极坐标范围定义表面区域,并且可以通过从极坐标范围中随机地选择极坐标来选择相应表面点中的每个表面点。可以根据均匀概率分布执行随机选择,使得极坐标范围中的每个极坐标有同等被选择的可能性。在某些情况下,控制电路111可以被配置成对于相应组的姿态角值所基于的相应表面点,仅从一组均匀的表面点中随机地选择每个相应表面点。该组均匀的表面点可以是均匀地分布在假想球体的表面上的表面区域内的一组表面点。例如,图10a和图10b描绘了一组均匀的表面点。在此实例中,多个表面点308a-308i可以是从该组均匀的表面点中随机选择的表面点。可以根据均匀概率分布来执行随机选择,其中该组均匀的表面点中的每一个有同等被选择的可能性。通过以此方式执行选择,所选的表面点(例如,308a-308i)可能倾向于在表面区域306内具有大体均匀的分布。

如上所述,在一些情况下,假想球体(例如,302)的表面上的表面点可以表示将引起校准图案的法向矢量(例如,261)指向表面点或以其它方式朝向表面点的校准图案160/260的相应取向。例如,图10b示出了表面点308a,其表示将导致法向量261指向该表面点308a的校准图案160/260的相应取向。在此类情况下,基于表面点确定姿态角值可以涉及将反正切应用到表面点308a的相应坐标。在此实例中,表面点308a的相应坐标也可以称作法向矢量261的坐标。例如,如果表面点308a具有笛卡尔坐标[x,y,z]t(在相机坐标系或某种其他坐标系中),姿态角中的一个(例如,α)的角度值可等于或基于arctan(y/z)。在一些实施方式中,角度值可以基于对一个或多个旋转矩阵进行求解来确定,所述一个或多个旋转矩阵将法向量从指向初始方向(例如,沿着相机光轴朝坐标[0010cm]t指向)变换到指向朝表面点308a(例如,朝坐标[xyz]t)的方向。在一个实例中,对旋转矩阵的求解可以涉及求解等式[xyz]t=rαrβrθ[0010cm]t,其中rα、rβ和rθ是表示校准图案160/260的旋转的相应旋转矩阵,其中,姿态角α、β和θ采用上文相对于图5a-5c和图6a-6c所述的方式。在一些实施方式中,如果表面点308a的坐标为极坐标系中表示的极坐标,姿态角中的一些的姿态角值可基于或更具体地等于极坐标的分量。

如上所述,在实施例中,在步骤906中确定的多个姿态可以是相机170/270拍摄或以其他方式成像校准图案160/260以生成用于执行相机校准的校准图像的姿态。因此,在步骤906中确定的多个姿态也可以被称为图像捕获姿态。在一些实施方式中,在步骤906中确定多个姿态可以涉及确定一组候选姿态,确定哪些候选姿态是机器人可达到候选姿态,以及从机器人可达到候选姿态中选择多个姿态(其为图像捕获姿态)。

在实施例中,候选姿态可以是控制电路111已经确定但尚未评估该姿态是否能够由机器人150/250达到的姿态,如下文更详细地讨论的。在某些情况下,候选姿态可为控制电路111已确定位置和一组姿态角值的姿态。例如,该组候选姿态中的每个候选姿态可以通过以下操作确定:针对候选姿态确定相机视野内的相应位置,以及针对候选姿态确定相应组的姿态角值。例如,可确定产生分散在空间内的机器人可达到候选姿态的相应位置,如下文更详细地讨论的。在某些情况下,确定相应位置可以依赖于针对相应位置的坐标的一些或所有分量生成随机值或伪随机值(例如,rand()函数)的函数。在实施例中,相应组的姿态角值可以由以下操作确定,例如,从假想球体(例如,302)的表面上的表面区域(例如,306)内选择相应的表面点,以及如上文所论述,基于相应的表面点确定相应组的候选姿态的姿态角值。在另一个实施例中,相应组的姿态角值可以以不同方式确定。

在实施例中,控制电路111可以被配置成从一组候选姿态确定一组机器人可达到候选姿态。机器人可达到候选姿态可为能够由机器人150/250实现的校准图案160/260的候选姿态。更具体地,在一些情况下,机器人150/250可能不能实现一些候选姿态。例如,特定候选姿态可具有机器人150/250不能满足的一组姿态角值,因为机器人150/250不能够以该组姿态角值所指示的方式倾斜校准图案。另外,校准图案的候选姿态不仅可以涉及放置校准图案160/260的一组姿态角值,还涉及放置校准图案160/260的相机视野(例如,272)内的位置。在某些情况下,机器人150/250可能不能将校准图案160/260放置到确定的位置。在某些情况下,机器人150/250可能够满足一组姿态角值或者候选姿态的位置,但因为对机器人150/250的运动的约束可能无法满足一组姿态角和候选姿态的位置的组合。例如,机器人150/250的运动可能受障碍物的约束,这可以防止机器人150/250将校准图案160/260移动到相机视野(例如,272)中的某个位置。在某些情况下,机器人150/250的机械配置可以约束其运动自由度。例如,图3a和图3b的机器人250可以具有机械配置,其中机械臂的各种连杆254a-254e彼此连接,且相对于彼此具有有限的自由度。这种机械配置可以防止机器人250实现校准图案260所附接的连杆254e的位置和取向的某些组合。因此,机器人250的机械配置可防止机器人250实现校准图案260的位置和图案取向的某些组合。换言之,机器人250的机械配置可以防止机器人250实现校准图案260的某些姿态。

因此,在实施例中,在步骤906中,控制电路111可以确定对于一组候选姿态中的每个候选姿态,候选姿态是否是机器人可达到的(即,候选姿态是否能够由机器人150/250实现)。控制电路111可以响应于确定候选姿态是机器人可达到的,将候选姿态添加到该组候选姿态。控制电路111还可以响应于确定候选姿态不是机器人可达到的,从该组机器人可达到候选姿态中排除该候选姿态,或者更一般地忽略该候选姿态,以用于执行相机校准的目的。

在某些情况下,控制电路111可以通过控制机器人150/250以实际上尝试移动校准图案160/260来实现候选姿态并且确定机器人150/250是否能够在限定的时间量内实现候选姿态来确定特定候选姿态是否是机器人可达到的。在某些情况下,控制电路111可确定逆运动学函数是否能够为候选姿态输出运动命令。逆运动学函数可以是被设计成计算机器人150/250完成特定姿态的运动命令(例如,一个或多个电机命令)的函数。如果逆运动学函数能够为特定候选姿态输出运动命令,控制电路111可确定候选姿态是机器人可达到候选姿态。如果函数无法为特定候选姿态输出运动命令,控制电路111可确定候选姿态不是机器人可达到候选姿态。

如上所述,在实施例中,在步骤906中,控制电路111还可仅从一组机器人可达到候选姿态中选择多个姿态(其为或将为图像捕获姿态)。在某些情况下,所述选择可涉及选择机器人可达到候选姿态的目标数目作为多个姿态。例如,目标数目可以是用户定义值,或可基于某种噪声水平、分配给执行相机校准的时间量或某种其他因素确定。例如,一组机器人可达到候选姿态可包括至少九个机器人可达到候选姿态,且目标数目可以是八。在此实例中,在步骤906中,控制电路111可以从一组九个机器人可达到候选姿态中选择八个机器人可达到候选姿态作为多个姿态。在另一个实例中,该组机器人可达到候选姿态可包括至少64个候选姿态,并且目标数目可以是15。在此实例中,控制电路111可以从一组64个机器人可达到候选姿态中选择15个机器人可达到候选姿态作为多个姿态。在一些实施方式中,控制电路111可以随机执行所述选择。例如,控制电路111可根据均匀概率分布随机从一组64个机器人可达到候选姿态中选择15个机器人可达到候选姿态,在该均匀概率分布中,机器人可达到候选姿态中的每一个有同等被选择的可能性。在一些实施方式中,随机选择可以依赖于伪随机函数。

如上所述,在实施例中,控制电路111可以基于选自假想球体(例如,302)的表面上的表面区域(例如,306)内的表面点,确定一组候选姿态中的每一个的姿态角值(例如,对于相应姿态角α、β、θ)的相应组。因为在步骤906中确定的多个姿态(其为或将为图像捕获姿态)最终选自一组候选姿态,所以多个姿态中的每一个可被认为具有也基于选自假想球体的表面上的表面区域内的相应表面点而确定的一组姿态角值。

在实施例中,控制电路111可以以随机方式确定候选姿态的相应位置。例如,控制电路111可以随机选择相机视野(例如,272)内的位置,并且基于选自假想球体的表面区域内的表面点来(以上述方式)确定一组姿态角值,且评估具有所确定位置和一组姿态角值的候选姿态是否是机器人可达到候选姿态。在某些情况下,该组姿态角值可以以不依赖于确定表面点的一些其它方式确定。在实施例中,控制电路111可以将候选姿态分散在相机视野内的方式确定候选姿态的位置。更具体地,控制电路111可确定候选姿态的位置使得那些候选姿态产生分散在相机视野内的机器人可达到候选姿态。因为在步骤906中确定的多个姿态可以选自机器人可达到候选姿态,所以多个姿态然后也可以分散在相机视野内。

在实施例中,为了尝试分散候选姿态、机器人可达到候选姿态和/或图像捕获姿态,控制电路111可以确定划分相机视野(例如,272)内的空间的3d区域的网格,并确定候选姿态的位置使其分散在网格中,和/或使得机器人可达到候选姿态分散在网格中。在实施例中,3d区域的网格可将相机视野内的空间划分为一层或多层,每个层具有多行3d区域和多列3d区域。

在实施例中,相机视野内的空间可以是校准图案160/260由机器人150/250移动并由相机270拍摄以执行相机校准的空间。该空间可以足够大以包括机器人150/250可将校准图案160/260移动到的相机视野(例如,272)内的所有位置,或者可以具有从该空间中省去那些位置中的一些的大小。在某些情况下,空间的大小或边界可以基于机器人150/250的运动范围。例如,该空间的边界可以对应于机器人150/250(例如,经由机械臂)能够相对于机器人的基座(例如,252)或相对于相机170/270或相对于一些其他位置放置校准图案160/260的最远位置。在某些情况下,该空间的边界可以由第一深度值和第二深度值限定。例如,图11a描绘了相机270的相机视野272内的空间271。在此实例中,空间271可以封闭在相机视野272内并且在第一深度值深度min和第二深度值深度max之间的所有位置(且仅这些位置),其中两个深度值都相对于相机270。在某些情况下,第一深度值和第二深度值可以是用户定义值,其存储在图2的非临时性计算机可读介质115中或在一些其它装置中,并且是控制电路111可以访问的。在某些情况下,控制电路111可以基于机器人150/250的运动范围来确定第一深度值和第二深度值。在实施例中,空间271可以形成或可以包围棱锥或锥体的截头体。棱锥或锥体可以限定相机视野。例如,图11a中的视野272由棱锥限定,并且空间271可以形成棱锥的截头体。

如上所述,3d区域的网格可将相机视野内的空间划分为一或多层,每层具有多行3d区域和多列3d区域。例如,图11a描绘了二十七个3d区域的网格2731-27(即,3d区域2731、2732、2733……27325、27326、27327),其将空间271划分为第一层274、第二层275和第三层276。图11b中所示的网格可以是3×3×3网格。即,网格可具有三层(第一层274、第二层275和第三层275),并且每层可具有三行3d区域和三列3d区域。换言之,层274、275和276中的每一层可以是或者可以被划分成三列和三行的3×3网格。第一层274可以包含3d区域2731-9,第二层275可以包含3d区域27310-18,第三层276可以包含3d区域27319-27。

在图11b的实例中,其中视野272由棱锥限定,每个3d区域可形成或成形为六面体。在某些情况下,六面体可以是立方体。在相机视野由另一形状(诸如锥体)限定的另一实例中,3d区域中的一些或全部可具有不同形状。在实施例中,3d区域2731-27可以共同完全占据所有空间271,并且可以是非重叠区域。在实施例中,3d区域2731-27中的每一个可紧邻3d区域中的其他3d区域,使得3d区域与其它3d区域中的一些共享边界。例如,如图11a中所描绘,3d区域2731与第一层274中的两个其他3d区域共享边界,并与第二层275上的另一个3d区域共享边界。

在实施例中,控制电路111可以被配置成确定目标数目,所述目标数目指示在步骤906中期望多个姿态有多少个姿态,并且可以基于目标数目来确定网格的大小。所述大小可指示网格中有多少层、多少行和/或多少列,这可能影响网格中有多少3d区域。在某些情况下,控制电路111可以将网格大小确定为大于或等于目标数目的平方根的最小整数。更具体地,网格可具有一或多层,并且每层具有n行,每行具有n列。在某些情况下,网格能够每层含有最多n个机器人可达到候选姿态,例如在机器人可达到候选姿态必须满足拉丁方形空间分布或分层空间分布的实例中,这在下文更详细地讨论。如果网格还具有n层(即,网格为n×n×n网格),则在上述情况下,网格能够容纳最多n2个机器人可达到候选姿态。因为步骤906中的多个姿态可以从一组机器人可达到候选姿态中选择,n2个机器人可达到候选姿态需要在数量上高于目标数目,所述目标数目指示在步骤906中要确定多个姿态有多少个姿态。因此,控制电路111可以被配置成将值n确定为网格的大小,n为大于或等于姿态的目标数目的平方根的最小整数。此类值n可确保以上情况中的机器人可达到候选姿态的数目,其等于n2,大于步骤906确定的目标数目。确定的大小n可指示网格中有多少行,网格中有多少列,网格中有多少层,其任何组合,或可以指示一些其他信息。

如上所述,控制电路111可确定候选姿态的相应位置,使得候选姿态或更具体地为机器人可达到候选姿态的候选姿态的子集分散在3d区域的网格内。因为步骤906中确定的多个姿态(其可被称为图像捕获姿态)是从机器人可达到候选姿态中选择的,所以步骤906中确定的姿态还可分散在3d区域的网格内。在实施例中,可以在3d网格的每层内分散候选姿态/机器人可达到候选姿态/图像捕获姿态。例如,它们可以分散在图11b的网格的第一层274内,分散在网格的第二层275内,分散在网格的第三层276内。

在一些实施方式中,如下文更详细地讨论的,控制电路111可尝试寻找候选姿态以用正好一个候选姿态(即,机器人可达到候选姿态)填充3d区域的网格的每个3d区域(或更一般地,用也为机器人可达到候选姿态的相等数目的候选姿态填充每个3d区域)。在一些实施方式中,也如下文更详细地讨论的,控制电路111可以确定候选姿态的位置,以尝试仅用候选姿态或更具体地用为机器人可达到候选姿态的候选姿态填充3d区域的子集。在这些实施方式中,控制电路111可确定使得特定层中的机器人可达到候选姿态具有特定空间分布的位置,所述特定空间分布例如拉丁超立方体空间分布(也称为拉丁方形空间分布)、分层空间分布,或某种其他分布,如下文更详细地讨论的。

如上所述,在实施例中,控制电路111可确定候选姿态的相应位置,以尝试用相同数目的候选姿态(例如,用正好一个姿态),或更具体地,用也为机器人可达到候选姿态的相等数目的候选姿态填充3d区域(例如,2731-27)的网格中的每个3d区域。在此实施例中,机器人可达到候选姿态可因此具有通常均匀的空间分布。在一些情况下,在步骤906中确定的多个姿态(图像捕获姿态)可包括所有那些机器人可达到候选姿态,或可以为所有机器人可达到候选姿态的随机选择的子集。然而,对于3d区域的网格中的每个3d区域,可能难以找到也是机器人可达到候选姿态的候选姿态。例如,如上文讨论的,一些3d区域可具有阻碍机器人150/250和校准图案160/260移动到该3d区域中的障碍。在某些情况下,每个候选姿态不仅可以包括特定3d区域内的位置,还包括一组姿态角值。可以如上文讨论的或以某种其他方式基于假想球体的表面点确定姿态角值。机器人150/250能够将校准图案160/260放置在该位置,但可能不能也倾斜校准图案160/260以满足一组姿态角值,并且因此可能无法实现该候选姿态。

因此,在某些情况下,控制电路111可确定候选姿态的相应位置,以便仅用机器人可达到候选姿态填充网格层的3d区域的子集。在某些情况下,控制电路111可响应于确定无法找到填充该层的每个3d区域的机器人可达到候选姿态,或更具体地,在限定的时间量内无法找到此类机器人可达到候选姿态,确定仅填充3d区域的子集的这些位置。在某些情况下,控制电路111可以确定仅填充3d区域的子集的位置,而不尝试事先找到填充该层的每个3d区域的机器人可达到候选姿态。

在实施例中,控制电路111可确定候选姿态的相应位置,以便尝试识别具有分散在网格的层内的空间分布的机器人可达到候选姿态。在某些情况下,控制电路111可确定候选的位置,使得其产生具有拉丁方形空间分布(也称为拉丁超立方体空间分布)的机器人可达到候选姿态。对于机器人可达到候选姿态而言,拉丁方形空间分布或拉丁超立方体空间分布可为这样一种空间分布,其中层内多行中的每一行恰好包括一个机器人可达到候选姿态,且层内多列中的每一列恰好包括一个机器人可达到候选姿态。在一个更具体的实例中,如果上文讨论的网格具有一或多层,每层具有n行3d区域和n列3d区域,控制电路111可通过对于一层或多层中的每一层基于初始条件确定n个机器人可达到候选姿态的相应子集来确定一组机器人可达到候选姿态,所述初始条件为n个机器人可达到候选姿态具有第一空间分布的n个位置,其中,(所述层的n行中的)每一行仅包括一个机器人可达到候选姿态,且(所述层的n列中的)每一列仅包括一个机器人可达到候选姿态。在某些情况下,机器人可达到候选姿态的相应子集还可具有基于选自假想球体(例如,302)的表面上的表面区域(例如,306)的n个相应表面点的n组姿态角值。

例如,图12a描绘了在图11a和图11b中描绘的网格的层274中的三个机器人可达到候选姿态的拉丁方空间分布的实例。在图12a中,三个机器人可达到候选姿态由x表示。更具体地,三个机器人可达到候选姿态包括:在占据第1行、第1列(或更具体地,在占据第1行、第1列的3d区域内)的位置处的第一姿态,在占据第3行、第2列的位置处的第二姿态,以及占据第2行、第3列的第三姿态。在图12a的实例中,层274内的多行3d区域中的每一行正好包括一个机器人可达到候选姿态,并且层274内的多列3d区域中的每一列正好包括一个机器人可达到候选姿态。此空间分布可使机器人可达到候选姿态分散在相机视野272内。

如上所述,在步骤906中确定的姿态(即,图像捕获姿态)可从机器人可达到候选姿态中选择。因此,在实施例中,如果所述机器人可达到候选姿态具有拉丁方形空间分布,则多个姿态可具有这样的空间分布,其中所述层内的多行中的每一行包括多个姿态中的不超过一个姿态,并且所述层内的多列中的每一列包括多个姿态中的不超过一个姿态。例如,图12b描绘了在步骤906中确定的多个姿态包括图12a的第一机器人可达到候选姿态(在3d区域中占据第1行、第1列),以及图12a的第三机器人可达到候选姿态(在3d区域中占据第3行、第2列)。在此实例中,网格的第1行和第3行正好包括多个姿态中的一个姿态,而第2行不包括多个姿态中的任何姿态。另外,网格的第1列和第2列正好包括多个姿态中的一个姿态,而第3列不包括多个姿态中的任何姿态。

在实施例中,控制电路111可以尝试通过控制如何确定候选姿态的相应位置来实现拉丁方形空间分布。一般而言,当控制电路111正在确定特定候选姿态的位置时,它可避免将候选姿态放置在已含有先前识别的机器人可达到候选姿态的3d区域中,且避免将候选姿态放置在与先前识别的机器人可达到候选姿态共享行或列的3d区域中。更具体地,控制电路111可被配置成确定一组候选姿态中的每个候选姿态的相应位置是在网格的一层或多层中的一层中的位置,且所述相应位置i)不与该层中的一组机器人可达到候选姿态的任何机器人可达到候选姿态共享行,且ii)不与该层中的一组机器人可达到候选姿态的任何机器人可达到候选姿态共享列。

例如,图12c描绘了一个实例,其中,控制电路111可通过确定第一候选姿态的第一位置和第一组姿态角值来确定第一候选姿态。在此实例中,当控制电路111正在确定第一候选姿态时,其可能尚未识别出第一层274中的任何机器人可达到候选姿态。因此,第一候选姿态可放置在第一层274中的任何3d区域中。在某些情况下,控制电路111可以随机方式使用例如伪随机函数确定第一位置。在图12c的实例中,第一位置可以是第2行、第3列。还在此实例中,第一候选姿态可被确定为机器人可达到候选姿态。

进一步在图12c中,控制电路111还可通过确定第二候选姿态的第二位置和第二组姿态角值来确定第二候选姿态。在此实例中,因为在第2行、第3列的3d区域中存在机器人可达到候选姿态,所以控制电路可对于第二位置选择不在第2行、第3列中的3d区域。在图12c的实例中,控制电路111可以选择处于第1行、第2列的3d区域。在某些情况下,控制电路111可通过随机地选择3d区域内占据第1行、第3列的位置来确定第二位置。然而,控制电路111可以进一步确定第二候选姿态不是机器人可达到候选姿态。在此实例中,控制电路111可类似地通过确定第三候选姿态的第三位置和第三组姿态角值来确定第三候选姿态。例如,控制电路111可以选择占据网格的第3行、第2列的3d区域,并通过随机选择该3d区域内的位置来确定第三位置。在此实例中,第三候选姿态可以被确定为机器人可达到候选姿态。此外,控制电路111接着可通过确定第四位置和第四组姿态角值来确定第四候选姿态。因为在第2行、第3列处的第一3d区域具有机器人可达到候选姿态,并且因为在第3行、第2列处的另一个3d区域具有另一机器人可达到候选姿态,控制电路111可限于将第四位置确定为在第1行、第1列处的3d区域内的位置。

在实施例中,当一组机器人可达到候选姿态已经包含一个或多个机器人可达到候选姿态时,如果控制电路111无法大体上或在限定的时间量内识别满足拉丁方形空间分布的另一个机器人可达到候选姿态,其可删除该组机器人可达到候选姿态中的一些或全部。控制电路111接着可重新尝试识别可满足拉丁方形空间分布的机器人可达到候选姿态。例如,如果图12c的实例中的控制电路111确定第四候选姿态不是机器人可达到候选姿态,且还无法识别在第1行、第1列处的3d区域中的机器人可达到候选姿态,则控制电路111可从一组机器人可达到候选姿态移除第2行、第3列处的机器人达到候选姿态,和/或移除第3行、第2列处的机器人可达到候选姿态。控制电路111接着可产生额外候选姿态,以尝试寻找满足拉丁方形空间分布的机器人可达到候选姿态。在某些情况下,如果控制电路111仍无法大体上或在限定的时间量内识别满足拉丁方形空间分布的机器人可达到候选姿态,其可尝试识别满足分层空间分布的机器人可达到候选姿态,如下文更详细地讨论的。

在实施例中,控制电路111可确定候选姿态的位置,使得其产生具有分层空间分布的机器人可达到候选姿态。在某些情况下,控制电路111可响应于确定无法满足上文讨论的描述拉丁方形分布的初始条件而使用分层空间分布。例如,在以上涉及n×n×n网格的实例中,控制电路可对于网格的n层中的每一层确定如果n个机器人可达到候选姿态必须满足初始条件,那么该层的n个机器人可达到候选姿态是否是可确定的。例如,控制电路可在限定的时限到期或其他约束之前确定其是否已成功找到满足初始条件的n个机器人可达到候选姿态。在某些情况下,如上文讨论的,机器人可达到候选姿态可具有基于选自假想球体的表面区域的表面点(例如,基于均匀概率分布的选择)确定的相应取向。在此类情况下,控制电路将确定其是否可成功地找到n个机器人可达到候选姿态,所述n个机器人可达到候选姿态既具有初始条件的空间分布又具有使用假想球体的表面点确定的相应取向。在某些情况下,控制电路可对于网格的特定层确定如果必须满足初始条件,那么n个机器人可达到候选姿态是不可确定的(例如,n个机器人可达到候选姿态尚未在限定的时限到期之前或者在某个其它定义的约束结束之前成功地为该层找到满足初始条件的姿态)。在某些情况下,控制电路111可以在没有事先尝试找到满足拉丁方形空间分布的候选姿态,并且不确定其是否可找到满足拉丁方形空间分布的机器人可达到候选姿态的情况下,使用分层空间分布。机器人可达到候选姿态的分层空间分布可为这样的空间分布,其中,对于3d区域的网格的特定层,(i)层内的3d区域的多行中的每一行正好包括一个机器人可达到候选姿态,或(ii)层内的多列中的每一列正好包括一个机器人可达到候选姿态(其中“或”一般在本文中用于指“和/或”)。在上述涉及n×n×n网格的实例中,控制电路111可以尝试通过对于网格的每一层基于第二条件确定n个机器人可达到候选姿态的相应子集来实现分层空间分布,在所述第二条件中,n个机器人可达到候选姿态具有n个位置,其中,(所述层的多行中的)每一行仅包括一个机器人可达到候选姿态,或者(所述层的多列中的)每一列仅包括一个机器人可达到候选姿态。在某些情况下,n个机器人可达到候选姿态可具有基于选自假想球体的表面上的表面区域的相应表面点的n组姿态角。

例如,图13a描绘了三个机器人可达到候选姿态在图11a和图11b中描绘的网格的层275中的分层空间分布的实例。在图13a的实例中,三个机器人可达到候选姿态由x表示。更具体地,三个机器人可达到候选姿态包括:在占据第1行、第3列的位置处的第一姿态(或更具体地,在占据第1行、第1列的3d区域内),在占据第2行、第1列的位置处的第二姿态,以及占据第3行、第3列的第三姿态。尽管每一列并不正好含有一个机器人可达到候选姿态(第3列包含占据该列中的两个相应3d区域的两个机器人可达到候选姿态),此实例仍满足分层空间分布,因为每一行正好含有一个机器人可达到候选姿态。

在实施例中,如果机器人可达到候选姿态具有分层空间分布,则在步骤906中确定的多个姿态可具有这样的空间分布,其中层内多行中的每一行包括多个姿态中的不超过一个姿态,或者层内多列中的每一列包括多个姿态中的不超过一个姿态。例如,图13b描绘了一个实例,其中,在步骤906中确定的多个姿态(图像捕获姿态)包括图13a的第一机器人可达到候选姿态(在3d区域中占据第1行、第3列),以及图13a的第三机器人可达到候选姿态(在3d区域中占据第3行、第3列)。在此实例中,网格的第3列包括多个姿态中的两个姿态,网格的第1行和第3行正好包括多个姿态中的一个姿态,而第2行不包括多个姿态中的任何姿态。

在实施例中,控制电路111可以尝试通过控制候选姿态的位置来实现分层空间分布。例如,控制电路111可被配置成确定一组候选姿态中的每个候选姿态的相应位置是在网格的一层或多层中的一层中的位置,且所述位置i)不与该层中的一组机器人可达到候选姿态的任何机器人可达到候选姿态共享行,或者ii)不与该层中的一组机器人可达到候选姿态中的任何机器人可达到候选姿态共享列。

在实施例中,控制电路111可确定候选姿态的位置,使得其产生具有任何随机空间分布的机器人可达到候选姿态。在某些情况下,控制电路111可以响应于确定其无法找到满足拉丁方形空间分布的足够的机器人可达到候选姿态,且无法找到满足分层空间分布的足够的机器人可达到候选姿态而使用机器人可达到候选姿态的任何随机空间分布。在某些情况下,控制电路111可在不试图事先寻找满足拉丁方形空间分布的机器人可达到候选姿态和/或不试图事先寻找满足分层空间分布的机器人可达到候选姿态的情况下,使用机器人可达到候选姿态的任何随机空间分布。在上述涉及n×n×n网格的实例中,控制电路111可被配置成如果n个机器人可达到候选姿态必须满足初始条件,则确定其是不可确定的,和/或如果n个机器人可达到候选姿态必须满足第二条件,则确定其是不可确定的。例如,控制电路可确定其在限定的时间限制内未成功找到满足网格的层的初始条件的n个机器人可达到候选姿态,和/或已确定其在限定的时间限制内未成功找到满足该层的第二条件的n个机器人可达到候选姿态。初始条件与拉丁方形空间分布关联,并且第二条件与分层空间分布关联。换言之,控制电路111可能无法找到满足拉丁方形空间分布和分层空间分布的n个机器人可达到候选姿态。在这种情况下,控制电路111可针对所述网格的该层执行以下操作:基于第三条件来确定该层的n个机器人可达到候选姿态的相应子集,在所述第三条件中,n个机器人可达到候选姿态具有:(a)随机分布在该层的n个相应3d区域内的n个位置。在某些情况下,n个机器人可达到候选姿态可具有基于从假想球体的表面上的表面区域选择的n个相应表面点的n组姿态角值。

图14a描绘了三个机器人可达到候选姿态的实例,其位置被随机确定为占据图11a和图11b中所描绘的网格的层276的三个不同的3d区域。图14b描绘了从图14a的机器人可达到候选姿态中选择的两个图像捕获姿态的实例。

以上对拉丁方形空间分布和分层空间分布的讨论涉及具有多行和多列的层的网格,且每一行正好含有一个机器人可达到候选姿态,和/或每一列正好含有一个机器人可达到候选姿态。在实施例中,拉丁方形空间分布和分层空间分布可更一般涉及具有与其它行相等数目的机器人可达到候选姿态的每一行,和/或具有与其它列相等数目的机器人可达到候选姿态的每一列。例如,在一些情形下,控制电路111可识别机器人可达到候选姿态,使得网格的特定层内的每一行正好具有两个机器人可达到候选姿态,且所述层内的每一列正好具有两个机器人可达到候选姿态。

在实施例中,控制电路111可被配置成执行对特定空间分布是否被逐层地满足的确定。例如,当控制电路111确定特定候选姿态的位置时,其中该位置在网格(例如,图11a和图11b中的网格)的特定层内的特定3d区域内,控制电路111可通过将候选姿态的位置与现有机器人可达到候选姿态的位置进行比较来评估拉丁方形空间分布或分层空间分布是否正在被满足,以评估候选姿态是否与机器人可达到候选姿态中的一个在同一行或在同一列。然而,控制电路111可更具体地比较候选姿态的位置与仅在网格的同一层中的那些机器人可达到候选姿态的相应位置,以便确定候选姿态是否将与该层中的机器人可达到候选姿态在同一行或同一列。在图15a中示出了逐层确定的实例,该图描绘了具有机器人可达到候选姿态的网格,机器人可达到候选姿态满足第一层274、第二层275和第三层276中的每一层的拉丁方形空间分布。控制电路111可确定图15a中描绘的空间分布,即使第一对机器人可达到候选姿态在具有相同行和系统列的相应3d区域中。更具体地,机器人可达到候选姿态中的一个在层274中的第1行、第1列的3d区域中,且机器人可达到候选姿态中的另一个在层276中的同样第1行、第1列的另一个3d区域中。然而,因为在此实例中控制电路111执行对特定空间分布是否被逐层地满足的评估,仍可认为图15a中的机器人可达到候选姿态满足层274、275、276中的每一个的拉丁方形空间分布。

在实施例中,控制电路111可被配置成允许网格的不同层具有不同空间分布。例如,图15b描绘了一个实例,其中,控制电路111已识别出具有针对网格的第一层274的拉丁方形空间分布的三个机器人可达到候选姿态,已识别出满足网格的第二层275的分层空间分布的另外三个机器人可达到候选姿态,且已识别出满足网格的第三层276的随机空间分布的又三个机器人可达到候选姿态。在某些情况下,控制电路111可以在无法成功找到可满足第二层275中的拉丁方形空间分布的三个机器人可达到候选姿态之后,确定满足第二层275中机器人可达到候选姿态的分层空间分布的位置。

在实施例中,控制电路111可以应用满足拉丁方形空间分布的更严格的条件。更严格的条件可以涉及被划分为具有m层的网格的空间,其中每层具有n行和n列。层数可与行或列的数目相同,或者可以与行或列的数目不同。对于m层中的每一层,每一行可仅具有一个机器人可达到候选姿态,且每一列可仅具有一个机器人可达到候选姿态。在此更严格的条件下,网格中的每一堆叠可仅具有机器人可达到候选姿态。堆叠可指在网格的不同相应层上并且在相应层内占据同一行和同一列的网格的m个3d区域。图15c描绘了满足上文所论述的更严格的条件的九个机器人可达到候选姿态的实例。

如上所述,在步骤906中确定的多个姿态可选自在3d区域的网格内分布的机器人可达到候选姿态,所述3d区域划分相机视野(例如,272)内的空间。选择的机器人可达到候选姿态的总数目可等于上文所论述的目标数目。多个姿态可以用于生成多个校准图像,其中,校准图像的总数目也等于上文论述的目标数目。例如,图15a-15c图示了控制电路111已经识别出分布在相机视野内的九个机器人可达到候选姿态的情形。在此实例中,如果目标数目等于例如八,则步骤906可涉及从九个机器人可达到候选姿态中选择八个姿态。在实施例中,所述选择可以以随机方式,例如,通过使用伪随机函数完成。

如上面的讨论指示的,步骤906可涉及通过确定多个相应组的姿态角值来确定多个姿态,其中每组姿态角值基于选自假想球体的表面上的表面区域内的相应表面点来确定。在某些情况下,步骤906还可涉及确定多个姿态的位置以尝试满足期望的空间分布,例如拉丁方形空间分布或分层空间分布。在实施例中,可修改步骤906以便省略确定多个相应组的姿态角值,或者可以修改该步骤,使得确定多个相应组的姿态角值以不涉及从假想球体上的表面区域内选择表面点的某种其它方式执行。例如,对于此修改的步骤906,可以基于均匀概率分布函数随机地确定相应组的姿态角值中的每个姿态角值,如上文所论述。在此实施例中,步骤902和904可以省略,或者仍可以被包括,并且步骤906仍可以涉及确定多个姿态。多个姿态可通过确定多个姿态的相应位置来确定,其中可确定相应位置以便满足期望的空间分布,例如,拉丁方形空间分布或分层空间分布。例如,此修改的步骤906可涉及确定将相机视野内的空间划分为多行3d区域和多列3d区域的一层或多层的网格,并确定候选姿态的相应位置,使得候选姿态将产生满足拉丁方形空间分布或分层空间分布的机器人可达到候选姿态,如上文所论述。此修改的步骤906还可产生多个姿态,其中,对于网格的每一层,各行中的每一行包括多个姿态中的不超过一个姿态,并且每一列包括多个姿态中的不超过一个姿态。

返回图9,方法900还可包括步骤908,其中,控制电路111输出用于控制校准图案的放置的多个运动命令(也称为机器人运动命令)。例如,机器人运动命令可包括用于控制机器人150/250以将校准图案160/260放置到特定姿态的多个电机命令,这可能涉及将校准图案160/260移动到特定的姿态位置,和/或将校准图案160/260倾斜到姿态的特定图案取向。在某些情况下,机器人运动命令可基于为步骤906中确定的姿态确定的相应组的姿态角值。在某些情况下,机器人运动命令可基于逆运动学函数确定,所述逆运动学函数基于期望姿态确定机器人运动命令。

在实施例中,方法900可以包括步骤910,其中,控制电路进一步接收多个校准图像,其中,多个校准图像中的每个校准图像表示(例如,捕获)校准图案并且在校准图案具有多个姿态的相应姿态时生成。例如,如果在步骤906中确定了八个姿态,则在步骤910中,控制电路111可以接收八个校准图像。在某些情况下,相机170/270可能已经拍摄或以其他方式成像校准图案160/260,而校准图案160/260处于八个姿态中的每一个中,以便生成八个姿态。在一些实施方式中,在步骤910中,控制电路111可以生成相机命令,该相机命令使相机170/270拍摄校准图案160/260,并且可以将相机命令(例如,经由通信接口113)输出到相机170/270。在实施例中,控制电路111可以例如经由通信接口113从相机170/270接收多个校准图像。在实施例中,控制电路111可以从其上存储校准图像的存储装置(例如,非临时性计算机可读介质115)或从一些其他非临时性计算机可读介质接收多个校准图像。

在实施例中,方法900还可包括步骤912,其中,控制电路111基于多个校准图像确定相机校准参数的估计值。如上所述,相机校准参数可以是固有相机校准参数,例如投影矩阵或相机170/270的镜头失真参数,或可以是描述相机170/270与其环境之间的空间关系的参数,例如相机170/270相对于机器人150/250的位置和取向。在实施例中,控制电路111可以基于描述在图案坐标系中的校准图案160/260上的图案元素(例如,点)的定义位置与图案元素在校准图像中出现的位置之间的关系的方程来确定相机校准参数的估计值。确定相机校准参数的估计值在名称为“methodandsystemforperformedautomatedcameracalibrationforrobotcontrol(用于机器人控制的执行自动相机校准的方法和系统)”的美国专利申请第16/295,940号中更详细地描述,其内容以全文引用的方式并入本文中。

在实施例中,控制电路可被配置成在执行相机校准之后,经由通信接口从相机接收后续图像,并输出基于后续图像且基于相机校准参数的估计值生成的后续机器人运动命令。例如,后续图像可以是在待由机器人150/250卸载的仓库中的包裹或包裹堆的图像。在某些情况下,控制电路111可被配置成基于包裹的图像并且基于在步骤912中确定的相机校准参数的估计值确定机器人150/250与包裹之间的空间关系,和/或相机170/270与包裹之间的空间关系,这也在名称为“methodandsystemforperformedautomatedcameracalibrationforrobotcontrol(用于机器人控制的执行自动相机校准的方法和系统)”的美国专利申请第16/295,940号中更详细地描述,其内容以全文引用的方式并入本文中。控制电路111然后可被配置成基于包裹与机器人150/250或相机170/270之间的所确定空间关系生成机器人运动命令,并将机器人运动命令输出到机器人150/250。

各种实施例的简要描述

实施例1涉及一种计算系统,其包括通信接口和控制电路。所述通信接口被配置成与机器人和具有相机视野的相机通信,其中所述机器人具有设置于其上的校准图案。所述控制电路被配置成当所述计算系统与所述机器人和所述相机通信时,通过以下操作来执行相机校准:确定用于执行所述相机校准的图案取向范围,其中所述图案取向范围是所述校准图案的取向范围;确定假想球体的表面上的表面区域,其中所述假想球体的表面表示所述校准图案的可能图案取向,并且所述表面区域表示用于执行所述相机校准的图案取向范围;确定在执行所述相机校准时所述校准图案采用的多个姿态,其中所述多个姿态由所述相机视野内的多个相应位置和多个相应组的姿态角值的相应组合限定,其中所述多个相应组中的每一组姿态角值基于选自所述假想球体的表面上的表面区域内的相应表面点;输出多个机器人运动命令以用于控制所述校准图案的放置,其中所述多个机器人运动命令是基于确定的多个姿态生成的;接收多个校准图像,其中所述多个校准图像中的每个校准图像表示所述校准图案,并且在所述校准图案具有所述多个姿态中的相应姿态时生成;以及基于所述多个校准图像确定相机校准参数的估计值。所述控制电路还被配置成在执行所述相机校准之后,经由所述通信接口从所述相机接收后续图像,并输出基于所述后续图像且基于所述相机校准参数的估计值生成的后续机器人运动命令。

实施例2包括实施例1的计算系统。在此实施例中,所述控制电路被配置成对于所述相应组的姿态角值所基于的相应表面点,根据均匀概率分布从所述表面区域内随机选择所述相应表面点中的每一个。

实施例3包括实施例2的计算系统。在此实施例中,所述控制电路被配置成对于所述相应组的姿态角值所基于的相应表面点,仅从一组均匀的表面点中随机地选择所述相应表面点中的每一个,其中所述一组均匀的表面点是均匀地分布在所述假想球体的表面上的表面区域内的一组表面点。

实施例4包括实施例1-3中的任意一个的计算系统。在此实施例中,所述假想球体的表面上的表面区域形成均匀宽度的圆形带。

实施例5包括实施例1-4中的任意一个的计算系统。在此实施例中,所述多组姿态角值中的每组姿态角值是表示所述校准图案围绕相应旋转轴线的相应旋转量的一组角度值,其中所述相应轴线彼此正交,并且其中,所述相应轴线中的每一个轴线与相机光轴平行或正交。

实施例6包括实施例5的计算系统。在此实施例中,所述假想球体的表面上的每个表面点表示将使所述校准图案的法向量指向所述表面点的所述校准图案的相应图案取向。此外,所述控制电路被配置成通过将反正切函数应用于相应表面点的相应坐标来基于所述相应表面点确定所述多组中的每一组姿态角值。

实施例7包括实施例1-6中的任意一个的计算系统。在此实施例中,所述控制电路被配置成通过以下操作确定所述多个姿态:确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有多行3d区域和多列3d区域;确定所述多个姿态的多个位置,使得所述多个姿态在所述网格内具有空间分布,其中,对于所述一层或多层中的每一层:(i)所述层内的多行中的每一行包括所述多个姿态中的不超过一个姿态,且(ii)所述层内的多列中的每一列包括所述多个姿态中的不超过一个姿态。

实施例8包括实施例1-6中的任意一个的计算系统。在此实施例中,所述控制电路被配置成通过以下操作确定所述多个姿态:确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有多行3d区域和多列3d区域;确定所述多个姿态的多个位置,使得所述多个姿态在所述网格内具有空间分布,其中,对于所述一层或多层中的每一层:(i)所述层内的多行中的每一行包括所述多个姿态中的不超过一个姿态,或(ii)所述层内的多列中的每一列包括所述多个姿态中的不超过一个姿态。

实施例9包括实施例1-6中的任意一个的计算系统。在此实施例中,所述控制电路被配置成通过以下操作确定所述多个姿态:(a)确定一组候选姿态,其中所述一组候选姿态中的每个候选姿态通过以下操作确定:对于所述候选姿态确定所述相机视野内的相应位置,从所述假想球体的表面上的表面区域内选择相应的表面点,以及基于所选择的表面点确定所述候选姿态的相应组的姿态角值;(b)通过以下操作确定一组机器人可达到候选姿态:对于所述一组候选姿态中的每个候选姿态,确定所述候选姿态是否是机器人可达到的,并且响应于确定所述候选姿态是机器人可达到的,将所述候选姿态添加到所述一组机器人可达到候选姿态中;以及仅从所述一组机器人可达到候选姿态中选择所述多个姿态。

实施例10包括实施例9的计算系统。在此实施例中,所述控制电路被配置成确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有多行3d区域和多列3d区域。此外,所述控制电路被配置成确定所述一组候选姿态中的每个候选姿态的相应位置是在所述网格的一层或多层的一层中的位置,且所述位置i)不与该层中的所述一组机器人可达到候选姿态中的任何机器人可达到候选姿态共享行,且ii)不与该层中的所述一组机器人可达到候选姿态中的任何机器人可达到候选姿态共享列。

实施例11包括实施例9的计算系统。在此实施例中,所述控制电路被配置成:确定目标数目,所述目标数目指示期望所述多个姿态有多少个姿态;基于姿态的目标数目确定网格大小n;确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有n行3d区域和n列3d区域;对于所述一层或多层中的每一层并作为所述一组机器人可达到候选姿态的一部分,基于所述n个机器人可达到候选姿态具有第一空间分布的n个位置的初始条件确定n个机器人可达到候选姿态的相应子集,在所述第一空间分布中,i)所述层的n行中的每一行仅包括一个机器人可达到候选姿态;并且ii)所述层的n列中的每一列仅包括一个机器人可达到候选姿态。

实施例12包括实施例11的计算系统。在此实施例中,所述控制电路还被配置成通过对所述网格的一层或多层中的每一层执行以下操作来确定所述一组机器人可达到候选姿态:(a)如果所述n个机器人可达到候选姿态的相应子集必须满足所述初始条件,则确定所述层的n个机器人可达到候选姿态的相应子集是否是可确定的,其中,所述初始条件是第一条件;以及(b)响应于确定如果所述n个机器人可达到候选姿态的相应子集必须满足所述初始条件,所述n个机器人可达到候选姿态的相应子集是不可确定的,基于第二条件确定所述n个机器人可达到候选姿态的相应子集,在所述第二条件中,所述n个机器人可达到候选姿态具有第二空间分布的n个位置,在所述第二空间分布中,i)所述层的多行中的每一行仅包括一个机器人可达到候选姿态,或ii)所述层的多列中的每一列仅包括一个机器人可达到候选姿态。

实施例13包括实施例12的计算系统。在此实施例中,所述控制电路还被配置成通过对所述网格的一层或多层中的每一层进一步执行以下操作来确定所述一组机器人可达到候选姿态:(a)如果所述n个机器人可达到候选姿态的相应子集必须满足所述第二条件,确定所述层的n个机器人可达到候选姿态的相应子集是否是可确定的,以及(b)响应于如果所述n个机器人可达到候选姿态的相应子集必须满足所述第二条件,确定n个机器人可达到候选姿态的相应子集是不可确定的,基于第三条件确定n个机器人可达到候选姿态的相应子集,在所述第三条件中,所述n个机器人可达到候选姿态具有随机分布在所述层的n个相应3d区域内的n个位置。

实施例14包括实施例12或实施例13的计算系统。在此实施例中,所述网格具有n层,并且其中,网格大小n通过以下操作确定:对于所述多个姿态确定姿态的目标数目的平方根,以及将所述网格大小n确定为大于或等于姿态的所述目标数目的平方根的最小整数。

实施例15涉及一种计算系统,其包括通信接口和控制电路。所述通信接口被配置成与机器人和具有相机视野的相机通信,其中所述机器人具有设置于其上的校准图案。所述控制电路被配置成:当所述计算系统与所述机器人和所述相机通信时,通过以下操作执行相机校准:确定在执行所述相机校准时所述校准图案采用的多个姿态,其中所述多个姿态由所述相机视野内的多个相应位置和多个图案取向的相应组合限定;输出多个机器人运动命令以用于控制所述校准图案的放置,其中所述多个机器人运动命令是基于确定的多个姿态生成的;接收多个校准图像,其中所述多个校准图像中的每个校准图像表示所述校准图案,并且在所述校准图案具有所述多个姿态中的相应姿态时生成;以及基于所述多个校准图像确定相机校准参数的估计值。所述控制电路还被配置成在执行所述相机校准之后,经由所述通信接口从所述相机接收后续图像,并输出基于所述后续图像且基于所述相机校准参数的估计值生成的后续机器人运动命令。

实施例16包括实施例15的计算系统。在此实施例中,所述控制电路被配置成通过以下操作确定所述多个姿态:(a)确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有多行3d区域和多列3d区域;(b)确定所述多个姿态的多个位置,使得所述多个姿态在所述网格内具有空间分布,其中,对于所述一层或多层中的每一层:(i)所述层内的多行中的每一行包括所述多个姿态中的不超过一个姿态,且(ii)所述层内的多列中的每一列包括所述多个姿态中的不超过一个姿态。

实施例17包括实施例15的计算系统。在此实施例中,所述计算系统被配置成通过以下操作确定所述多个姿态:(a)确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有多行3d区域和多列3d区域;(b)确定所述多个姿态的多个位置;使得所述多个姿态在所述网格内具有空间分布,其中,对于所述一层或多层中的每一层:(i)所述层内的多行中的每一行包括所述多个姿态中的不超过一个姿态,或(ii)所述层内的多列中的每一列包括所述多个姿态中的不超过一个姿态。

实施例18包括实施例15的计算系统。在此实施例中,所述计算系统被配置成通过以下操作确定多个姿态:(a)确定一组候选姿态,其中所述一组候选姿态中的每个候选姿态通过以下操作确定:对于所述候选姿态确定所述相机视野内的相应位置,(b)通过以下操作确定一组机器人可达到候选姿态:对于所述一组候选姿态中的每个候选姿态,确定所述候选姿态是否是机器人可达到的,并且响应于确定所述候选姿态是机器人可达到的,将所述候选姿态添加到所述一组机器人可达到候选姿态中;以及(c)仅从所述一组机器人可达到候选姿态中选择所述多个姿态。

实施例19包括实施例18的计算系统。在此实施例中,所述控制电路被配置成确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有多行3d区域和多列3d区域,并且其中所述控制电路被配置成确定所述一组候选姿态中的每个候选姿态的相应位置是在所述网格的一层或多层的一层中的位置,且所述位置i)不与该层中的所述一组机器人可达到候选姿态中的任何机器人可达到候选姿态共享行,且ii)不与该层中的所述一组机器人可达到候选姿态中的任何机器人可达到候选姿态共享列。

实施例20包括实施例18的计算系统。在此实施例中,所述控制电路被配置成:确定目标数目,所述目标数目指示期望所述多个姿态有多少个姿态;基于姿态的目标数目确定网格大小n;确定将所述相机视野内的空间划分为一层或多层的3d区域的网格,所述一层或多层各自具有n行3d区域和n列3d区域;对于所述一层或多层中的每一层并作为所述一组机器人可达到候选姿态的一部分,基于所述n个机器人可达到候选姿态具有第一空间分布的n个位置的初始条件确定n个机器人可达到候选姿态的相应子集,在所述第一空间分布中,i)所述层的n行中的每一行仅包括一个机器人可达到候选姿态;并且ii)所述层的n列中的每一列仅包括一个机器人可达到候选姿态。

实施例21包括实施例20的计算系统。在此实施例中,所述控制电路还被配置成通过对所述网格的一层或多层中的每一层执行以下操作来确定所述一组机器人可达到候选姿态:(a)如果所述n个机器人可达到候选姿态的相应子集必须满足所述初始条件,则确定所述层的n个机器人可达到候选姿态的相应子集是否是可确定的,其中,所述初始条件是第一条件;以及(b)响应于确定如果所述n个机器人可达到候选姿态的相应子集必须满足所述初始条件,所述n个机器人可达到候选姿态的相应子集是不可确定的,基于第二条件确定所述n个机器人可达到候选姿态的相应子集,在所述第二条件中,所述n个机器人可达到候选姿态具有第二空间分布的n个位置,在所述第二空间分布中,i)所述层的多行中的每一行仅包括一个机器人可达到候选姿态,或ii)所述层的多列中的每一列仅包括一个机器人可达到候选姿态。

实施例22包括实施例21的计算系统。在此实施例中,所述控制电路还被配置成通过对所述网格的一层或多层中的每一层进一步执行以下操作来确定所述一组机器人可达到候选姿态:(a)如果所述n个机器人可达到候选姿态的相应子集必须满足所述第二条件,确定所述层的n个机器人可达到候选姿态的相应子集是否是可确定的,以及(b)响应于如果所述n个机器人可达到候选姿态的相应子集必须满足所述第二条件,确定n个机器人可达到候选姿态的相应子集是不可确定的,基于第三条件确定n个机器人可达到候选姿态的相应子集,在所述第三条件中,所述n个机器人可达到候选姿态具有随机分布在所述层的n个相应3d区域内的n个位置。

实施例23包括实施例20-22中的任意一个的计算系统,其中所述网格具有n层,并且其中,网格大小n通过以下操作确定:(a)对于所述多个姿态确定姿态的目标数目的平方根,以及(b)将所述网格大小n确定为大于或等于姿态的所述目标数目的平方根的最小整数。

实施例24包括实施例15-23中的任意一个的计算系统,其中所述多个相应的图案取向由多个相应组的姿态角值限定,并且其中,所述控制电路被配置成:确定用于执行所述相机校准的图案取向范围,其中所述图案取向范围是所述校准图案的取向范围;确定假想球体的表面上的表面区域,其中所述假想球体的表面表示所述校准图案的可能图案取向,并且所述表面区域表示用于执行所述相机校准的图案取向范围;基于选自所述假想球体的表面上的表面区域内的相应表面点确定所述多个相应组中的每一组姿态角值(例如,基于均匀概率分布选择)。例如,实施例24的上述技术可用于实施例18。在这种情况下,所述控制电路被配置成通过以下操作确定所述多个姿态:(a)确定一组候选姿态,其中所述一组候选姿态中的每个候选姿态通过以下操作确定:对于所述候选姿态确定所述相机视野内的相应位置,从所述假想球体的表面上的表面区域内选择相应的表面点,以及基于所选择的表面点确定所述候选姿态的相应组的姿态角值;(b)通过以下操作确定一组机器人可达到候选姿态:对于所述一组候选姿态中的每个候选姿态,确定所述候选姿态是否是机器人可达到的,并且响应于确定所述候选姿态是机器人可达到的,将所述候选姿态添加到所述一组机器人可达到候选姿态中;以及仅从所述一组机器人可达到候选姿态中选择所述多个姿态。

虽然上文已描述各种实施例,应理解,其仅作为本发明的图示和实例呈现,而不是限制性的。对于相关领域的技术人员来说显而易见的是,在不脱离本发明的精神和范围的情况下,可以在其中进行形式和细节的各种变化。因此,本发明的广度和范围不应受上述示例性实施例中的任何一个限制,但仅应根据所附权利要求书及其等效物来限定。还应理解,本文中论述的每个实施例和在本文引用的每个参考文献的每个特征可与任何其他实施例的特征结合使用。本文所讨论的所有专利和出版物均以全文引用的方式并入本文中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1