码放盒子的机器人和方法

文档序号:1957577 发布日期:2021-12-10 浏览:12次 >En<

阅读说明:本技术 码放盒子的机器人和方法 (Robot and method for stacking boxes ) 是由 N.内维尔 K.布兰克斯波尔 J.巴里 A.D.珀金斯 于 2020-03-12 设计创作,主要内容包括:一种用于码放的方法(300),包括接收由机器人(100)抓取的盒子(20)的目标盒子位置(202)。该方法还包括将盒子定位在邻近目标盒子位置的初始位置(212),并且以相对于地平面(12)一定角度倾斜盒子。该方法还包括将盒子从初始位置沿第一方向(D-(1))移位到满足阈值第一对准距离(224、224a)的第一对准位置(222、222a),将盒子从第一对准位置沿第二方向(D-(2))移位到满足阈值第二对准距离(224、224b)的目标盒子位置,以及释放由机器人保持的盒子。盒子的释放导致盒子朝向目标盒子位置的边界边缘(24)枢转。(A method (300) for palletizing includes receiving a target cassette position (202) of a cassette (20) grasped by a robot (100). The method also includes positioning the box at an initial position (212) adjacent to the target box position and tilting the box at an angle relative to a ground plane (12). The method further comprises bringing the cassette from the initial position in a first direction (D) 1 ) Shifting to a first alignment position (222, 222a) satisfying a threshold first alignment distance (224, 224a), the cassette from the first alignment position in a second direction (D) 2 ) Shifting to a target cassette position that satisfies a threshold second alignment distance (224, 224b), and releasing the cassette held by the robot. The release of the cassette causes the cassette to pivot towards the boundary edge (24) of the target cassette position.)

码放盒子的机器人和方法

技术领域

本公开涉及码放盒子。

背景技术

机器人通常被定义为可重新编程的多功能操纵器,其设计成通过可变的编程运动来移动材料、零件、工具或专用设备以执行任务。机器人可以是物理锚定的操纵器(例如工业机器人臂)、在整个环境中移动的移动机器人(例如使用腿、轮或基于牵引的机构)或者操纵器和移动机器人的某种组合。机器人用于各种行业,包括例如制造业、运输、危险环境、勘探和医疗保健。这些行业中的每个都包括或依赖于某种程度的物流和/或与包装商品的互动。因此,码放盒子的能力可以增强机器人的功能,并为这些行业提供额外的好处。

发明内容

本公开的一方面提供了一种用于码放盒子的方法。该方法包括在机器人的数据处理硬件处接收由机器人保持的盒子的目标盒子位置。盒子具有顶表面、底表面和侧表面。该方法还包括由机器人将盒子定位在邻近目标盒子位置的初始位置,并且由机器人以相对于地平面一定角度倾斜盒子,该角度形成在地平面和盒子的底表面之间。该方法还包括由机器人将盒子从初始位置沿第一方向移位到满足阈值第一对准距离的第一对准位置,并且由机器人将盒子从第一对准位置沿第二方向移位到满足阈值第二对准距离的目标盒子位置。该方法还包括由机器人从机器人释放盒子,盒子的释放导致盒子朝向目标盒子位置的边界边缘枢转。

本公开的实施方式可以包括一个或多个以下可选特征。在一些实施方式中,初始位置包括在第一方向和第二方向上相对于目标盒子位置的偏移。这里,该方法可以包括:在数据处理硬件处接收来自机器人的视觉系统的传感器数据;以及由数据处理硬件确定在第一方向上的第一补偿距离和在第二方向上的第二补偿距离,第一补偿距离和第二补偿距离基于传感器数据补偿盒子的实际位置和盒子的感知位置之间的差异。当从视觉系统接收传感器数据时,初始位置包括:基于第一补偿距离的在第一方向上相对于目标盒子位置的第一偏移;以及基于第二补偿距离的在第二方向上相对于目标盒子位置的第二偏移。

在一些示例中,将盒子从初始位置沿第一方向移位到第一对准位置包括在满足阈值第一对准距离之前,确定盒子经历阈值接触力或阈值速度;并且将盒子从第一对准位置沿第二方向移位到目标盒子位置包括在满足阈值第二对准距离之前,确定盒子经历阈值接触力或阈值速度。在满足阈值第一对准距离或阈值第二对准距离之前,该方法可以包括确定盒子已经在第一方向或第二方向中的相应一个方向上移动了阈值时间段。

在一些配置中,将盒子定位在初始位置包括将盒子保持在目标盒子位置上方而不接触相邻盒子。从机器人释放盒子可以导致盒子抵靠一个或多个相邻盒子。目标盒子位置可以位于配置为支撑多个盒子的货盘上。机器人可以包括操纵器臂,其具有配置为抓取盒子的末端执行器。这里,末端执行器可以包括多个吸盘,其配置为施加吸力以抓取盒子。

在一些实施方式中,所述机器人包括:倒立摆主体,其具有第一端部、第二端部和多个关节;臂,其在所述多个关节中的第一关节处联接到倒立摆主体,所述臂包括配置为抓取盒子的末端执行器;具有第一和第二端的至少一个腿,第一端在所述多个关节中的第二关节处联接到倒立摆主体;以及驱动轮,其可旋转地联接到所述至少一个腿的第二端,驱动轮配置成根据与地平面的滚动接触来移动机器人。所述至少一个腿可以包括具有第一和第二端的右腿,该右腿的第一端棱柱形地(prismatically)联接到倒立摆主体的第二端部,该右腿具有可旋转地联接到右腿的第二端的右驱动轮。所述至少一个腿还可以包括具有第一和第二端的左腿,该左腿的第一端棱柱形地联接到倒立摆主体的第二端部,该左腿具有可旋转地联接到左腿的第二端的左驱动轮。机器人可以包括设置在倒立摆主体上并配置为相对于倒立摆主体移动的平衡主体。

本公开的另一方面提供了一种用于码放盒子的机器人。机器人包括具有一个或多个关节的主体和在一个或多个关节中的第一关节处联接到主体的臂,该臂包括末端执行器。机器人还包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,所述指令在数据处理硬件上被执行时使数据处理硬件执行操作。所述操作包括接收由末端执行器抓取的盒子的目标盒子位置,盒子具有顶表面、底表面和侧表面。所述操作还包括指示机器人将盒子定位在邻近目标盒子位置的初始位置,并且指示机器人以相对于地平面一定角度倾斜盒子,该角度形成在地平面和盒子的底表面之间。所述操作还包括指示机器人将盒子从初始位置沿第一方向移位到满足阈值第一对准距离的第一对准位置;指示机器人将盒子从第一对准位置沿第二方向移位到满足阈值第二对准距离的目标盒子位置;以及指示机器人从末端执行器释放盒子,盒子的释放导致盒子朝向目标盒子位置的边界边缘枢转。

该方面可以包括一个或多个以下可选特征。在一些示例中,第二方向垂直于第一方向。初始位置可以包括在第一方向和第二方向上相对于目标盒子位置的偏移。所述操作可以包括:接收来自机器人的视觉系统的传感器数据;以及确定在第一方向上的第一补偿距离和在第二方向上的第二补偿距离,第一补偿距离和第二补偿距离基于传感器数据补偿盒子的实际位置和盒子的感知位置之间的差异。这里,所述初始位置包括:基于第一补偿距离的在第一方向上相对于目标盒子位置的第一偏移;以及基于第二补偿距离的在第二方向上相对于目标盒子位置的第二偏移。

在一些配置中,将盒子从初始位置沿第一方向移位到第一对准位置包括在满足阈值第一对准距离之前确定盒子经历阈值接触力或阈值速度;并且将盒子从第一对准位置沿第二方向移位到目标盒子位置包括在满足阈值第二对准距离之前确定盒子经历阈值接触力或阈值速度。在满足阈值第一对准距离或阈值第二对准距离之前,操作包括确定盒子已经在第一方向或第二方向中的相应一个方向上移动了阈值时间段。

在一些实施方式中,将盒子定位在初始位置包括,将盒子保持在目标盒子位置上方而不接触相邻盒子。从机器人释放盒子可以导致盒子抵靠一个或多个相邻盒子。目标盒子位置可以位于配置为支撑多个盒子的货盘上。末端执行器可以包括多个吸盘,其配置为施加吸力以抓取盒子。

在一些示例中,机器人包括:具有第一和第二端的至少一个腿,第一端在多个关节中的第二关节处联接到主体;以及驱动轮,其可旋转地联接到至少一个腿的第二端,驱动轮配置成根据与地平面的滚动接触来移动机器人。所述至少一个腿包括具有第一和第二端的右腿和具有第一和第二端的左腿。所述右腿的第一端棱柱形地联接到主体,所述右腿具有可旋转地联接到右腿的第二端的右驱动轮。所述左腿的第一端棱柱形地联接到主体,所述左腿具有可旋转地联接到左腿的第二端的左驱动轮。

在附图和以下描述中阐述了本公开的一个或多个实施方式的细节。从说明书和附图以及权利要求中,其他方面、特征和优点将是显而易见的。

附图说明

图1A是机器人在环境内抓取盒子的示例的透视图。

图1B是机器人的示例的透视图。

图1C是图1B的机器人的系统的示例布置的示意图。

图2A是用于图1A的机器人的示例码放器的示意图。

图2B是图1A的机器人的示例的俯视图,该机器人将抓取的盒子定位在货盘上的盒子堆叠处。

图2C是图1A的机器人的示例的正视图,该机器人将抓取的盒子定位在货盘上的盒子堆叠处。

图2D是图1A的机器人的示例的侧视图,该机器人将抓取的盒子定位在货盘上的盒子堆叠处。

图2E是图1A的机器人的示例的俯视图,该机器人相对于货盘上的盒子堆叠沿第一方向移动抓取的盒子。

图2F是图1A的机器人的示例的正视图,该机器人相对于货盘上的盒子堆叠沿第一方向移动抓取的盒子。

图2G是图1A的机器人的示例的侧视图,该机器人相对于货盘上的盒子堆叠沿第一方向移动抓取的盒子。

图2H是图1A的机器人的示例的俯视图,该机器人相对于货盘上的盒子堆叠沿第二方向移动抓取的盒子。

图2I是图1A的机器人的示例的正视图,该机器人相对于货盘上的盒子堆叠沿第二方向移动抓取的盒子。

图2J是图1A的机器人的示例的侧视图,该机器人相对于货盘上的盒子堆叠沿第二方向移动抓取的盒子。

图2K是图1A的机器人的示例的俯视图,该机器人将抓取的盒子释放到货盘上的盒子堆叠的位置。

图2L是图1A的机器人的示例的正视图,该机器人将抓取的盒子释放到货盘上的盒子堆叠的位置。

图2M是图1A的机器人的示例的侧视图,该机器人将抓取的盒子释放到货盘上的盒子堆叠的位置。

图3是机器人在环境内码放盒子的操作的示例布置。

图4是可用于实现本文描述的系统和方法的示例计算设备的示意图。

不同附图中相同的参考符号表示相同的元件。

具体实施方式

物流已经发展到包装和/或运输各种形状和尺寸的商品。随着这种发展,越来越多的包装商品比如盒子在各种物流渠道中流动。特别是,近几十年来,由于在线购物的增加等原因,消费者对包装商品的需求显著增加。如今,大型航运公司估计每天要运送数百万个包裹。作为航运物流的一部分,通常需要执行与盒子相关的某些任务,比如计数、分拣、运输、码放等。各种企业、仓库、营运中心等的进出设施都可能需要这些任务。目前,与包装货物盒子相关的任务耗费了无数的人力和时间。此外,虽然速度和准确性可能至关重要,但这些任务往往单调、乏味、耗时和/或费力。

由于人类疲劳的固有性质及其对人类准确性的不利影响,这些任务通常更适合机器人。机器人可以以可重复和/或可靠的方式执行与盒子相关的任务,而不会感到疲劳。有利地,运输物流的某些方面已经涉及器械和/或机械加工。例如,运输环境通常包括计算机、扫描仪、秤、输送机或叉车等设备。通过使用机器人来执行盒子的任务,机器人可以巩固该设备的角色。在某些情况下,机器人可以更容易地与该设备和/或相关物流系统集成。基于这些和其他优点,可以在工作环境内精确有效地码放盒子的机器人可以极大地有利于物流领域的发展。

图1A是在包括至少一个盒子20的工作环境10内操作的机器人100的示例。这里,工作环境10包括堆叠在位于地面12上的货盘30上的多个盒子20、20a-n。通常,盒子20用于包装货物以保护、便于运输、可堆叠等。盒子20通常具有类似于矩形棱柱或长方体的结构。盒子20包括面26的边24相交的拐角22。作为矩形棱柱,盒子20包括六个面26(也称为盒子20的表面或盒子20的侧面),其中每个面26是由四个边24的边界形成的矩形。每个面26对应于空间平面内的表面,其中两个平面的相交形成边24。拐角22是指至少两条边24(例如二维拐角的两条边或三维拐角的三条边)通常以90度角(即直角)相交的点或顶点。盒子20具有八个拐角22(即顶点)和十二个边24。在物流中,盒子20通常包括对应容纳在盒子20内的货物的库存单元(SKU)(例如以条形码的形式)。当码放(即堆叠在货盘30上)时,SKU或条形码通常位于盒子20的暴露的面26上。

工作环境10可以包括例如存储设施、配送中心或营运中心。机器人100可以在地面12上移动(例如行驶)以检测和/或操纵工作环境10内的盒子20(例如码放)。例如,货盘30对应于机器人100装载的运输卡车。机器人100可以与物流的装运和/或接收阶段相关,其中机器人100将盒子20码放用于物流营运或库存管理。

货盘30通常是指支撑货物并允许货物作为单元(或单元负载)运输的平坦平台结构(即甲板)。货盘30包括入口点,其使得起重设备(例如叉车、滑移式装载机、拖车、货盘搬运车、前端式装载机等)能够工作,以提升货盘30用于运输和便于移动。货盘30的边缘形成由货盘30支撑的货物的边界。货盘30上的货物通常被包装在盒子20中,盒子20在货盘30的顶部形成堆叠。货盘30可以包含任意数量的各种形状和尺寸的盒子20。为了有效利用空间,货盘30通常可以包括由层L(或行)限定的盒子20的堆叠结构。层L的数量或构成层L的盒子20的数量可以根据盒子20的尺寸和/或形状而变化。在一些配置中,货盘30的尺寸基于可接受的高度(从货盘30的甲板顶部到顶层盒子20的顶部)和/或可接受的运输重量。这可以根据包含在货盘30的盒子20内的货物类型而变化。为简单起见,图2B-2M通常描绘具有两层L,L1–2的货盘30,其中每层L包括四个盒子20、20a-d。通常,层L上或层L之间的盒子20将被互锁以有助于货盘30在运输期间的稳定性。货盘30因此可以指支撑盒子20和盒子20单元的物理结构。货盘30可以通过以下来指代:它们的结构(例如块状货盘、长条状货盘、翼形货盘、平齐货盘、可翻转货盘、不可翻转货盘等)、它们的材料(例如防滑货盘、金属货盘、木质货盘、纸质货盘等)或者通过它们的入口点(例如双向货盘或四向货盘)。

历史上,术语“码放”意味着将货物盒子20放置或堆叠在货盘30上。然而,码放已经发展成更一般地指将货物盒子20放置或堆叠在任何表面上以形成集合单元,即使货盘30通常是在其上堆叠盒子20的方便表面,以用于运输目的。码放的目标是形成盒子20的紧密结合堆叠。盒子20的紧密结合堆叠在盒子之间具有最小至没有空间,使得堆叠内的盒子20的空间关系在运输期间起到保护和/或减少移动(例如通过利用邻接盒子的表面之间的摩擦力)的作用。此外,在盒子20之间很少至没有间隙的情况下,盒子20可以形成集合单元,其质量更有可能在运输期间抵抗相对运动。换句话说,盒子20的总质量将需要更大的力来产生动量,该动量可能损坏、倾倒或通常使盒子20在堆叠内分离。通过在盒子20之间没有空间或间隙的情况下堆叠盒子20,码放防止间隙允许盒子20在货盘30的运输期间四处移动或推挤。尽管为了简单起见,机器人100的系统示出为将盒子20码放在货盘30上,但机器人100可以配置为将盒子20一起码放(即放置/定位)在任何表面上。

码放盒子20对于机器人来说似乎是理想的任务,但机器人经常与任务不协调。首先,机器人可被设计成具有相当大的力量来快速执行任务和/或执行需要超过普通人的力量的任务。利用这种力量,当试图将盒子20堆叠在一起时,机器人可以容易地推动、滑动或倾倒盒子20。为了解决机器人力量的问题,机器人可以根据命令和执行命令的反馈来工作。这里,当机器人在盒子20上施加强力导致与另一盒子20碰撞时,机器人装备不足以在将另一盒子20移动到不期望的位置之前补偿冲击。通过将另一盒子20移动到不期望的位置,机器人可能会损害堆叠盒子20单元的完整性(例如倾倒盒子或彼此之间具有太多空间的堆叠盒子)。机器人的另一问题是,当操纵盒子20时,机器人的系统和盒子20堆叠的实际位置之间的不精确性和/或公差可能导致在相邻盒子20之间放置带有间隙或空间的盒子20。在机器人感知到它在空间上保持盒子20的地方和它实际保持盒子20的地方之间可能会出现类似效果。例如,如果机器人实际上以与其感知的提升位置相差几英寸的位置提升盒子20,当将盒子放下时,盒子20将把这几英寸的差异转移到盒子20的触地位置,导致放置的盒子20和其他盒子20之间存在几英寸的潜在间隙。当盒子20包含具有不同重量或重量分布的货物时,这些问题会变得更加复杂。例如,如果机器人放置盒子20太快,即使盒子20的放置没有引起与相邻盒子20的碰撞,放置的盒子20内的货物可能由于机器人在放置盒子20期间的运动而具有动量,从而引起与相邻盒子20的碰撞。由于这些问题,简单地将盒子20移动到盒子20堆叠中的目标位置而不考虑这些问题可能会导致码放不良。当这些问题中的任何一个或组合在码放期间由机器人多次放置盒子20时,尤其如此。换句话说,如果货盘30包括两层L1–2,每层L有四个盒子20,机器人不幸有八次机会破坏货盘单元的完整性。这里,为了解决这些问题,如图1A-1C所示的机器人100包括可靠地且重复地码放盒子20的系统。

参考图1B,机器人100具有沿着重力方向的竖直重力轴Vg和质心CM,质心CM是机器人100具有质量零和分布的点。机器人100还具有基于相对于竖直重力轴Vg的CM的姿态P,以定义机器人100采取的特定姿势或站姿。机器人100的姿势可以由空间中物体的定向或角度位置来定义。

机器人100通常包括主体110和一个或多个腿120。取决于要在工作环境10中执行的任务,机器人100的主体110可以是单一结构或更复杂设计。主体110可以允许机器人100平衡、感知工作环境10、给机器人100供电、协助工作环境10内的任务或支撑机器人100的其他部件。在一些示例中,机器人100包括两部分式主体110。例如,机器人100包括倒立摆主体(IPB)110、110a(即称为机器人100的躯干110a)和设置在IPB 110a上的平衡主体(CBB)110、110b(即称为机器人100的尾部110b)。

主体110(例如IPB 110a或CBB 110b)具有第一端部112和第二端部114。例如,IPB110a具有第一端部112a和第二端部114a,而CBB 110b具有第一端部112b和第二端部114b。在一些实施方式中,CBB 110b设置在IPB 110a的第二端部114a上并配置为相对于IPB 110a移动。在一些示例中,平衡主体110b包括用于给机器人100供电的电池。后关节JB可以将CBB110b可旋转地联接到IPB 110a的第二端部114a,以允许CBB 110b相对于IPB 110a旋转。后关节JB可被称为俯仰关节。在所示的示例中,后关节JB支撑CBB110b,以允许CBB 110b围绕垂直于机器人100的重力竖直轴Vg和前后轴(x轴)延伸的横轴(y轴)移动/俯仰。前后轴(x轴)可以表示机器人100的当前行进方向。CBB 110b相对于IPB 110a的移动通过相对于竖直重力轴Vg移动机器人100的CM来改变机器人100的姿态P。旋转致动器或后关节致动器A,AB(例如尾部致动器或平衡主体致动器)可以位于后关节JB处或附近,用于控制CBB 110b(例如尾部)围绕横轴(y轴)的运动。旋转致动器AB可以包括电动马达、电动液压伺服、压电致动器、螺线管致动器、气动致动器或适于精确实现CBB 110b相对于IPB 110a的运动的其他致动器技术。

CBB 110b相对于IPB 110a的旋转运动改变了机器人100的姿态,用于平衡和保持机器人100处于直立位置。例如,类似于常规倒立摆飞轮中的飞轮的旋转,CBB 110b相对于重力竖直轴Vg的旋转在后关节JB处产生/施加力矩MCBB,以改变机器人100的姿态P。通过相对于IPB 110a移动CBB 110b以改变机器人100的姿态P,机器人100的CM相对于重力竖直轴Vg移动,以在机器人100移动和/或承载负载的情况下平衡并保持机器人100处于直立位置。然而,与具有定向于力矩点处的质量的常规倒立摆飞轮中的飞轮部分相比,CBB 110b包括与在后关节JB处施加的力矩偏移的相应质量。在一些配置中,可以使用设置在后关节JB处的陀螺仪来代替CBB 110b旋转并施加力矩(旋转力),以平衡和保持机器人100处于直立位置。

CBB 110b可以在顺时针和逆时针方向上围绕后关节JB(例如在“俯仰方向”上围绕y轴)旋转(例如俯仰),以产生振荡(例如摇摆)运动。CBB 110b相对于IPB 110a在位置之间的运动导致机器人100的CM移位(例如朝向地面12降低或者远离地面12升高)。CBB 110b可以在运动之间振荡以产生摇摆运动。当相对于IPB 110a移动时,CBB 110b的旋转速度可以是恒定的或变化的(加速或减速),这取决于为了动态平衡机器人100需要多快地改变机器人100的姿态P。

腿120是基于运动的结构(例如腿和/或轮),其配置成在工作环境10中移动机器人100。机器人100可以具有任意数量的腿120(例如具有四个腿的四足动物、具有两个腿的两足动物、具有六个腿的六足动物、具有八个腿的蜘蛛类机器人等)。例如,机器人100可以具有用作基于运动的结构的单个基座或腿120,其中一个或多个轮从基座延伸以接触表面,以便在工作环境10周围移动机器人100。这里,为了简单起见,机器人100通常示出和描述为具有两个腿120、120a–b。

作为两个腿的机器人100,机器人包括第一腿120、120a和第二腿120、120b。在一些示例中,每个腿120包括第一端122和第二端124。第二端124对应于腿120的接触或邻近机器人100的接触表面(例如地面)使得机器人100可以穿越工作环境10的构件的一端。例如,第二端124对应于根据步态模式移动的机器人100的脚。在一些实施方式中,机器人100根据滚动运动移动,使得机器人100包括驱动轮130。驱动轮130可以是机器人100的脚状构件的补充或替代。例如,机器人100能够根据行走运动和/或滚动运动移动。这里,图1B中描绘的机器人100示出了联接到主体110(例如在IPB 110a)的第一端122,而第二端124联接到驱动轮130。通过将驱动轮130联接到腿120的第二端124,驱动轮130可以围绕联接器的轴线旋转,以使机器人100在工作环境10中移动。

主体110的每一侧的髋关节JH(例如关于机器人100的矢状面PS对称的第一髋关节JH,JHa和第二髋关节JH,JHb)可以将腿120的第一端122可旋转地联接到主体110的第二端部114,以允许腿120的至少一部分相对于主体110围绕横轴(y轴)移动/俯仰。例如,腿120(例如第一腿120a或第二腿120b)的第一端122在髋关节JH处联接到IPB 110a的第二端部114a,以允许腿120的至少一部分相对于IPB 110a围绕横轴(y轴)移动/俯仰。

腿致动器A,AL可以与每个髋关节JH相关(例如第一腿致动器AL,ALa和第二腿致动器AL,ALb)。与髋关节JH相关的腿致动器AL可导致腿120(例如第一腿120a或第二腿120b)的上部126相对于主体110(例如IPB 110a)围绕横轴(y轴)移动/俯仰。在一些配置中,每个腿120包括相应的上部126和相应的下部128。上部126可以从第一端122处的髋关节JH延伸到相应的膝关节JK,而下部128可以从膝关节JK延伸到第二端124。与膝关节JK相关的膝关节致动器A,AK可导致腿120的下部128相对于腿120的上部126围绕横轴(y轴)移动/俯仰。

每个腿120可以包括相应的踝关节JA,其配置成将驱动轮130可旋转地联接到腿120的第二端124。例如,第一腿120a包括第一踝关节JA,JAa,第二腿120b包括第二踝关节JA,JAb。这里,踝关节JA可以与轮轴相关,轮轴与驱动轮130联接以共同旋转,并且基本平行于横轴(y轴)延伸。驱动轮130可以包括相应的扭矩致动器(驱动马达)A,AT,其配置为施加相应的轴扭矩,用于围绕踝关节JA旋转驱动轮130,以沿着前后轴(x轴)在地面12(其可以互换地称为工作表面12或地平面12)上移动驱动轮130。例如,轴扭矩可导致驱动轮130在一方向上旋转,以沿着前后轴(x轴)在向前方向上移动机器人100,和/或导致驱动轮130在相反的方向上旋转,以沿着前后轴(x轴)在向后方向上移动机器人100。

在一些实施方式中,腿120棱柱形地联接到主体110(例如IPB 110a),使得每个腿120的长度可以经由髋关节JH附近的相应致动器(例如腿致动器AL)、设置在髋关节JH和膝关节JK附近的一对滑轮(未示出)以及同步滑轮旋转的同步带(未示出)而扩展和收缩。每个腿致动器AL可以包括线性致动器或旋转致动器。这里,具有控制器142(例如如图1C所示)的控制系统140可以致动与每个腿120相关的致动器,以在顺时针方向或逆时针方向中的一个上相对于主体110(例如IPB 110a)旋转相应的上部126,从而通过使相应的下部128在顺时针方向或逆时针方向中的另一个上相对于上部126围绕相应的膝关节JK旋转来棱柱形地延伸/扩展腿120的长度。可选地,代替双连杆腿,至少一个腿120可以包括单个连杆,其棱柱形地线性延伸/缩回,使得腿120的第二端124棱柱形地沿着线性轨道远离/朝向主体110(例如IPB 110a)移动。在其他配置中,膝关节JK可以采用相应的旋转致动器作为膝致动器AK来代替一对同步滑轮相对于上部126旋转下部128。

施加到每个驱动轮130(例如与第一腿120a相关的第一驱动轮130、130a和与第二腿120b相关的第二驱动轮130、130b)的相应轴扭矩可以变化,以操纵机器人100穿过地面12。例如,施加到第一驱动轮130a的大于施加到第二驱动轮130b的轴扭矩的轴扭矩可以使机器人100向左转动,而施加到第二驱动轮130b比施加到第一驱动轮130更大的轴扭矩可以使机器人100向右转动。类似地,向每个驱动轮130施加基本相同大小的轴扭矩可以使机器人100在向前或向后方向上基本笔直地穿过地面12。施加到每个驱动轮130的轴扭矩的大小也控制机器人100沿着前后轴(x轴)的速度。可选地,驱动轮130可以沿相反方向旋转,以允许机器人100通过在地面12上旋转来改变方向。因此,每个轴扭矩可以独立于施加到另一驱动轮130的轴扭矩(如果有的话)而施加到相应的驱动轮130。

在一些示例中,主体110(例如在CBB 110b处)还包括至少一个非驱动轮(未示出)。非驱动轮通常是被动的(例如被动脚轮),使得非驱动轮的运动由与机器人100相关的其他驱动轮或运动来支配。例如,非驱动轮不接触地面12,除非主体110移动到主体110(例如CBB110b)由地面12支撑的姿态P。

在一些实施方式中,机器人100还包括一个或多个附件,比如设置在主体110上(例如在IPB 110a上)并配置为相对于主体110移动的铰接臂150(也称为臂或操纵器臂)。铰接臂150可以具有一个或多个自由度(例如从相对固定到能够在工作环境10中执行多种任务)。这里,图1B所示的铰接臂150具有五个自由度。虽然图1B示出了设置在主体110的第一端部112上的铰接臂150(例如在IPB 110a处),但铰接臂150可以其他配置设置在主体110的任何部分上。例如,铰接臂150设置在CBB 110b上或者在IPB 110a的第二端部114a上。

铰接臂150在近端第一端152和远端第二端154之间延伸。臂150可以包括在第一端152和第二端154之间的一个或多个臂关节JA,其中,每个臂关节JA配置成使得臂150能够在工作环境10中铰接。这些臂关节JA可以将臂150的臂构件156联接到主体110,或者将两个或更多个臂构件156联接在一起。例如,第一端152在第一铰接臂关节JA1(例如类似肩关节)处连接到主体110(例如IPB 110a)。在一些配置中,第一铰接臂关节JA1设置在髋关节JH之间(例如在主体110的中心沿着机器人100的矢状面PS对齐)。在一些示例中,第一铰接臂关节JA1将臂150的近端第一端152可旋转地联接到主体110(例如IPB 110a),以使臂150能够相对于主体110(例如IPB 110a)旋转。例如,臂150可以相对于主体110围绕横轴(y轴)移动/俯仰。

在一些实施方式中,比如图1B,臂150包括第二臂关节JA2(例如类似肘关节)和第三臂关节JA3(例如类似腕关节)。第二臂关节JA2将第一臂构件156a联接到第二臂构件156b,使得这些构件156a-b可相对于彼此以及主体110(例如IPB 110)旋转。根据臂150的长度,臂150的第二端154与臂构件156的一端重合。例如,尽管臂150可以具有任意数量的臂构件156,但图1B描绘了具有两个臂构件156a-b的臂150,使得第二臂构件156b的该端与臂150的第二端154重合。这里,在臂150的第二端154,臂150包括末端执行器160,其配置为在工作环境10内执行任务。末端执行器160可以在臂关节JA处(例如在第三臂关节JA3处)设置在臂150的第二端154上,以允许末端执行器160在操作期间具有多个自由度。末端执行器160可以包括一个或多个末端执行器致动器A,AEE,用于夹持/抓取物体。例如,末端执行器160包括一个或多个吸盘作为末端执行器致动器AEE,以通过在末端执行器160和目标物体(例如目标盒子)之间提供真空密封来抓取或夹持物体。

铰接臂150可以相对于主体110(例如IPB 110a)围绕横轴(y轴)移动/俯仰。例如,铰接臂150可以在重力方向上相对于主体110围绕横轴(y轴)旋转,以在执行转弯动作时降低机器人100的CM。CBB 110b也可以同时在重力方向上相对于IPB 110围绕横轴(y轴)旋转,以帮助降低机器人100的CM。这里,铰接臂150和CBB 110b可以抵消机器人100的CM沿着前后轴(x轴)在向前或向后方向上的任何移位,同时仍实现机器人100的CM向下移位更靠近地面12。

参考图1C,机器人100包括控制系统140,其配置成监测和控制机器人100的操作。在一些实施方式中,机器人100配置为自主和/或半自主操作。然而,用户也可以通过向机器人100提供命令/指示来操作机器人100。在所示的示例中,控制系统140包括控制器142(例如数据处理硬件)和存储器硬件144。控制器142可以包括其自己的存储器硬件或者利用控制系统140的存储器硬件144。在一些示例中,控制系统140(例如与控制器142)配置成与致动器A(例如背致动器AB、腿致动器AL、膝致动器AK、驱动带致动器、旋转致动器、末端执行器致动器AEE等)通信(例如命令运动),以使机器人100能够在工作环境10中移动。控制系统140不限于所示的部件,并且可以包括附加部件(例如电源)或更少部件,而不脱离本公开的范围。这些部件可以通过无线或有线连接进行通信,并且可以分布在机器人100的多个位置上。在一些配置中,控制系统140与远程计算设备和/或用户接口。例如,控制系统140可以包括用于与机器人100通信的各种部件,比如操纵杆、按钮、发射器/接收器、有线通信端口和/或无线通信端口,用于从远程计算设备和/或用户接收输入,并向远程计算设备和/或用户提供反馈。

控制器142对应于可以包括一个或多个通用处理器、数字信号处理器和/或专用集成电路(ASIC)的数据处理硬件。在一些实施方式中,控制器142是专用的嵌入式设备,其配置为与机器人100的一个或多个子系统一起执行特定操作。存储器硬件144与控制器142通信,并且可以包括一个或多个非暂时性计算机可读存储介质,比如易失性和/或非易失性存储部件。例如,存储器硬件144可以与彼此通信的一个或多个物理设备相关,并且可以包括光、磁、有机或其他类型的存储器或存储装置。存储器硬件144尤其配置为存储指令(例如计算机可读程序指令),指令在由控制器142执行时使控制器142执行许多操作,比如但不限于改变机器人100的姿态P以保持平衡、操纵机器人100、检测物体、运输物体和/或在工作环境10内执行其他任务。控制器142可以基于与传感器系统170的直接或间接交互来执行操作。

传感器系统170包括一个或多个传感器172、172a–n。传感器172可以包括图像传感器(例如视觉传感器或感知传感器)、惯性传感器(例如惯性测量单元(IMU))和/或运动传感器。图像传感器172的一些示例包括相机比如单目相机或立体相机、飞行时间(TOF)深度传感器、扫描光检测和测距(LIDAR)传感器或扫描激光检测和测距(LADAR)传感器。更一般地,传感器172可以包括以下中的一个或多个:力传感器、扭矩传感器、速度传感器、加速度传感器、位置传感器(线性和/或旋转位置传感器)、运动学传感器、定位传感器、负载传感器、温度传感器、触摸传感器、深度传感器、超声波测距传感器、红外传感器和/或物体传感器。在一些示例中,传感器172具有定义对应于传感器172的感测范围或区域的相应视场。每个传感器172可以是可枢转的和/或可旋转的,使得传感器172可以例如围绕一个或多个轴(例如相对于地面12的x轴、y轴或z轴)改变视场。在一些实施方式中,机器人100的主体110包括传感器系统170,其具有围绕主体的多个传感器172,以收集机器人100周围所有方向的传感器数据174。另外或可替代地,传感器系统170的传感器172可以安装在机器人100的臂150上(例如结合安装在主体110上的一个或多个传感器172)。机器人100可以包括任何数量的传感器172作为传感器系统170的一部分,以便为机器人100周围的工作环境10产生传感器数据172。例如,当机器人100在工作环境10周围操纵时,传感器系统170收集机器人100的姿态数据,其包括惯性测量数据(例如由IMU测量的)。在一些示例中,姿态数据包括关于机器人100的运动学数据和/或定向数据。

当用传感器172测量视场时,传感器系统170产生对应于视场的传感器数据174(也称为图像数据174)。对于图像传感器172,传感器172可以特定频率捕获图像176作为传感器数据174,使得传感器数据174包括对应于时间间隔的视场的帧F。在传感器系统170包括多个图像传感器172的配置中,传感器系统170可以配置为控制每个传感器172的方向(例如视场),使得对应于图像传感器172的一个以上视场重叠,以允许不同类型的图像数据174一起用于图像处理。在一些示例中,传感器系统170包括作为第一传感器172、172a的至少一个单目相机和作为第二传感器172、172b的至少一个深度传感器(例如立体相机、LIDAR、TOF等)。传感器172a-b可以重叠它们的视场。利用重叠的视场,传感器172a-b在相同时刻为工作环境10的相同视场(或取决于传感器安装位置的几乎相同视场)捕获单目图像(即二维)和深度图像(即三维)。

与环境10相关的由传感器系统170收集的传感器数据174比如图像数据、姿态数据、惯性数据、运动学数据等可被传送到机器人100的控制系统140(例如控制器142和/或存储器硬件144)。在一些示例中,传感器系统170收集并存储传感器数据174(例如在存储器硬件144或与机器人100通信的远程资源相关的存储器硬件中)。在其他示例中,传感器系统170实时收集传感器数据174并处理传感器数据174,而不存储原始(即未处理的)传感器数据174。在其他示例中,控制器系统140和/或远程资源存储处理的传感器数据174和原始的传感器数据174。来自传感器172的传感器数据174可以允许机器人100的系统检测和/或分析关于机器人100的状况。例如,传感器数据174可以允许控制系统140操纵机器人100,改变机器人100的姿态,和/或致动用于移动/旋转机器人100的机械部件的各种致动器A。

在一些示例中,比如图1C,传感器系统170包括安装在或联接到臂150的腕关节JA3的一个或多个传感器172。例如,腕传感器172是六轴力/扭矩传感器172。这里,传感器172感测机器人100保持的盒子20上的力。码放器200在机器人100保持的盒子20上使用该力来间接检测机器人100保持的盒子20和一个或多个其他盒子20之间的相互作用。在一些实施方式中,码放器200基于机器人100的关节J确定(或从机器人100的另一系统接收)机器人100保持的盒子20的速度。换句话说,利用传感器系统170,机器人100可以确定对应于每个关节J和驱动轮130的速度。基于这些速度,机器人100确定末端执行器160与盒子20一起移动得有多快,并使用此来导出盒子20的速度。

在一些配置中,机器人100使用类似的方法进行力感测。更具体地,机器人100可以基于关于一个或多个关节J的力和机器人100的运动学的组合来确定末端执行器160处的力。当机器人100的设计重视速度和/或精度时,这种方法可能被证明是困难的。例如,当基于除腕关节JA3之外的关节J(比如肩关节JA1)确定力时,末端执行器160的加速将导致机器人100感测惯性质量的惯性力(例如在肩关节JA1的情况下,臂150的惯性力)和末端执行器160处的力。因此,当机器人100想要最小化计算资源和/或防止潜在的不准确性时,机器人100在最靠近末端执行器160的位置(例如腕关节JA3)感测末端执行器160周围的力。

在一些示例中,机器人100使用关节力反馈控制和末端执行器阻抗控制来使末端执行器160运动顺从。例如,阻抗控制根据来自安装在或联接到腕关节JA3的腕关节传感器172的力反馈而增强(例如感测末端执行器160)。这里,阻抗控制包括作为输入的期望的末端执行器位置和测量的末端执行器位置。可选地,阻抗控制的其他输入可以包括期望的末端执行器速度和/或加速度以及测量的末端执行器速度和/或加速度。给定这些输入,阻抗控制输出所需的末端执行器力。在一些实施方式中,阻抗控制配置成使得这些输入和输出之间的关系对应于类似弹簧的特性,比如刚度、阻尼或惯性。

为了以紧密包装的方式构建盒子20堆叠,机器人100必须克服机器人100认为某物位于的地方和它实际位于的地方之间的误差(即感知误差)。例如,当机器人100使用视觉系统(即基于视觉的传感器172)来识别机器人100保持的盒子20的位置或者识别要放置在货盘30上的盒子20的目标位置(例如目标盒子位置202(图2A))时,这两个位置都存在一定程度的误差。仅仅依靠机器人100的这些感知会将这些误差转化为码放期间的放置误差。为了应对机器人100的感知的不确定性,机器人100配置为使用其保持的盒子20的一个或多个运动来感觉其进入盒子20的目标位置。相反,传统上,机器人被编程到盒子20应该去的地方,并且机器人倾向于僵硬地将盒子20移动到那个位置。这种传统方法使得机器人100很容易破坏和/或干扰附近的其他盒子。

由机器人100保持的盒子20称为“抓取的盒子20G”。当机器人100使用臂150的末端执行器160将其自身联接到盒子20时,盒子20被机器人100抓取。如图1A所示,机器人100用臂150的末端执行器160(例如用末端执行器致动器AEE)在抓取的盒子20G的顶表面26、26T抓取盒子20。例如,末端执行器160利用作为末端执行器致动器AEE的吸盘的吸力来抓取盒子20。在其他示例中,机器人100具有一个以上臂150,并且通过抵靠盒子20的侧面(即面26)朝向彼此挤压臂150,用至少两个臂150共同抓取盒子20。不管抓取方法如何,码放器200配置为将抓取的盒子20G放置在目标盒子位置202,以形成盒子20堆叠,在该堆叠的盒子20之间具有最小至没有空间(例如相邻盒子有效地配合或邻接)。

参考图2A,码放器200包括定位器210和对准器220。码放器200配置为接收针对抓取的盒子20G的目标盒子位置202,其标识放置抓取的盒子20G的位置。目标盒子位置202可以在现有的盒子20堆叠内(例如在货盘30上)或者开始盒子堆叠20。在理想世界中,该机器人100会将抓取的盒子20G放置在该目标盒子位置202,并且该位置的盒子20堆叠不会被破坏。然而,由于感知误差、控制容差和/或盒子差异,将抓取的盒子20G移动到目标盒子位置202有可能扰乱其他盒子20。相反,码放器200系统性地尝试感知抓取的盒子20G何时到达与相邻盒子20具有可接受的空间关系的位置。在一些示例中,码放器200将相邻盒子20之间的最小至没有间隙视为可接受的空间关系。

定位器210配置成将抓取的盒子20G放置在邻近目标盒子位置202的初始位置212。初始位置212旨在是未被另一物体(例如另一盒子20)占据的空间。例如,初始位置212偏离目标盒子位置202,以从未被占据的位置开始码放过程,使得机器人100可以准确地感测抓取的盒子20G何时遇到另一盒子20。

图2B-2D是在初始位置212的抓取的盒子20G的示例。在一些实施方式中,如图2B所示,初始位置212包括在第一方向(例如y方向)上的偏移(Offset,或偏移量)214和在第二方向(例如x方向)上的偏移214。在一些示例中,机器人100的系统,比如图2A的码放器200,基于来自传感器系统170的传感器数据174来确定偏移214。利用传感器数据174,机器人100确定偏移214是在第一方向(例如x方向)上的第一补偿距离和在第二方向(例如y方向)上的第二补偿距离。这里,偏移214补偿机器人100的感知误差(例如盒子20的实际位置和基于传感器数据174的盒子20的感知位置之间的差异)。机器人100可以配置为确定这些误差的典型值,以便生成偏移214。在一些示例中,偏移214考虑了诸如末端执行器160的位置、盒子20相对于末端执行器160的位置和/或对应于盒子20堆叠相对于机器人100的盒子20的位置的误差。当机器人100基于误差量(例如平均误差量)确定第一补偿距离和第二补偿距离时,初始位置212由第一方向(例如x方向)上的第一偏移214、214a和第二方向(例如y方向)上的第二偏移214、214b限定。每个偏移214可以另外包括公差,以确保初始位置212不被占据。换句话说,如果偏移214仅等于每个方向上的平均误差,则初始位置212可能被占据或部分被占据。例如,如果典型误差为3cm,则偏移214可以总计为5cm,以包括2cm的额外公差。

参考图2C和2D,在一些配置中,定位器210将抓取的盒子20G定位在目标盒子位置202上方(相对于z方向),而不接触相邻盒子20。通过将抓取的盒子20G定位在目标盒子位置202上方的悬停状态,当抓取的盒子20G移动到目标盒子位置202时,码放器200可以消除抓取的盒子20G和其他盒子20之间的摩擦。在没有摩擦的情况下,机器人100可以更容易地感测抓取的盒子20G和其他盒子20之间的接触力。由于抓取的盒子20G可以保持在目标盒子位置202上方某个高度,所以对准器220可以在释放抓取的盒子20G之前降低盒子。对准器220在释放抓取的盒子20G之前降低盒子的量可以根据变量而变化,比如悬停状态下的抓取的盒子20G的高度、机器人100的操作速度和/或抓取的盒子20G的内容物(如果在机器人100提升/携带抓取的盒子20G时基于传感器172已知或确定的话)。

继续参考图2A和2C,定位器210配置为以相对于地面12(或接地平面)一定角度倾斜抓取的盒子20G。换句话说,抓取的盒子20G的底表面26、26B(即底面26)与地面12形成角度。在一些示例中,抓取的盒子20G朝向相邻盒子20向上倾斜。这里,当抓取的盒子20G被机器人100释放R时(图2L),现在释放的盒子20将朝向相邻盒子20枢转,使得枢转盒子20的边24和面26邻接相邻盒子20的边24和面26,导致盒子20之间很少至没有间隙(例如,如图2K-2M所示)。换句话说,机器人100释放的盒子20的边24(例如,如图2I所示的边24G)可以使用相邻盒子20的面26作为引导,以由于倾斜(例如释放的盒子20的相对面26和相邻盒子20之间的配合关系)而实现目标盒子位置202。在一些示例中,比如在图2C和2D中,定位器210可以在抓取的盒子20G处于初始位置212时或之前倾斜抓取的盒子20G。在其他示例中,当对准器220从初始位置212移动抓取的盒子20G时,定位器210倾斜抓取的盒子20G

继续参考图2A,码放器200的对准器220配置成将抓取的盒子20G从初始位置212移动到目标盒子位置202。当抓取的盒子20G移动到目标盒子位置202或者尽可能如其他盒子20允许的靠近目标盒子位置202时,对准器220释放抓取的盒子20G以将抓取的盒子20G安置在适当位置(例如,如图2K-2M所示)。在一些示例中,对准器220以两种不同的运动移动抓取的盒子20G,以在目标盒子位置202附近或位置处实现对准位置222。例如,图2E-2G示出了对准器220沿第一方向D1(例如沿y方向)移位抓取的盒子20G,而图2H-2J示出了对准器220沿第二方向D2(例如x方向)移位抓取的盒子20G。在一些示例中,第一方向D1垂直于第二方向D2。在一些实施方式中,对准器220沿着具有第一方向的分量和第二方向的分量的运动矢量移位抓取的盒子20G(例如对准器220在x-y平面中以一定角度移位抓取的盒子20G)。另外或可替代地,因为工作环境10是三维空间,所以运动矢量可以包括第三方向(例如运动矢量包括z方向的分量)。因此,即使图2B-2J指示对准器220可以在每个方向上顺序移动,对准器220也可以配置为同时在三维空间的任何方向顺序和/或所有方向上移位抓取的盒子20G。当对准器220在给定方向上移动抓取的盒子20G时,码放器200和/或对准器220在移动过程中监控一些条件。

在一些示例中,对准器220移动抓取的盒子20G,直到抓取的盒子20G到达对准位置222。为了说明,从图2B-2D到图2E-2G,对准器220已经将抓取的盒子20G从初始位置212(图2B)移动到第一对准位置222a(图2E-2G)。在一些示例中,当对准器220将抓取的盒子20G沿第一方向D1从初始位置212移位到第一对准位置222、222a时,对准器220确定第一对准位置222a是否满足阈值第一对准距离224、224a(例如,如图2E所示)。阈值第一对准距离224a对应于对准器220可以在给定方向上移动抓取的盒子20G的有限距离。在有限距离的情况下,码放器200防止抓取的盒子20G偏离目标盒子位置202太远。例如,在没有有限距离的情况下,机器人100可能将抓取的盒子20G完全移出盒子20堆叠,同时等待接触力或特定速度来停止抓取的盒子20G的移动。有限距离还可以防止对准器220在移动抓取的盒子20G时加剧未对准。例如,盒子20堆叠中的盒子20可能与其理想位置有很大偏移。如果对准器220移动抓取的盒子20G以邻接偏离具有大偏移的位置的盒子20,则抓取的盒子20G也将分担未对准。在一些示例中,阈值对准距离224对应于对准器220被允许移动抓取的盒子20G的最大移动距离。

参考图2H-2J,对准器220在第二方向D2上将抓取的盒子20G从第一对准位置222a(如图2E-2G所示)移位到目标盒子位置202(或者如允许的靠近目标盒子位置202)。当对准器220在第二方向D2上将抓取的盒子20G从第一对准位置222移位到目标盒子位置202时,对准器220确定到目标盒子位置202的移动是否满足阈值第二对准距离224、224b(例如,如图2H所示)。在一些示例中,阈值第二对准距离224b具有与阈值第一对准距离224a相同的大小。在其他示例中,这些阈值对准距离224由于盒子20的形状而不同。例如,每个盒子20可以是细长的矩形棱柱,使得沿着矩形棱柱长度的阈值对准距离224大于对应于矩形棱柱宽度的阈值对准距离224。

在对准器220的移动过程中,在阈值对准距离224出现之前,抓取的盒子20G可以实现其他条件。例如,码放器200可以感测到由于阈值接触力Fthresh或阈值速度vthresh,抓取的盒子20G应该停止移动(即已经实现第一对准位置222或目标盒子位置202)。换句话说,阈值接触力Fthresh或阈值速度vthresh指示抓取的盒子20G遇到了由相邻盒子20引起的阻力。这里,码放器200理想地希望引起无破坏性的完全非弹性碰撞,使得抓取的盒子20G和相邻盒子20形成用于堆叠盒子20的可接受的空间关系(例如没有抓取的盒子20G将相邻盒子20撞出位置和/或没有不利于运输的间隙)。这样,阈值接触力Fthresh指的是力的大小,该力表示在码放过程中抓取的盒子20G已经开始与至少一个相邻盒子20接触,但该力的大小还没有显著干扰至少一个相邻盒子20(例如没有足够的大小来克服静摩擦力)。在类似的方面,阈值速度vthresh指的是指示机器人100(例如通过末端执行器160)正在产生移动力,但由于相邻盒子20引起的阻力,抓取的盒子20G不再移动的速度。例如,阈值速度vthresh设定为零,以指示抓取的盒子20G没有移动。在一些示例中,阈值接触力Fthresh和/或阈值速度vthresh表示为矢量。作为矢量,码放器200可以使用这些矢量的总大小(例如在三维工作环境中)或这些矢量的分量(例如在对准器220当前移动抓取的盒子20G的方向上)来确定是否满足这些阈值。

在一些示例中,阈值接触力Fthresh的大小是特定于任务的。例如,机器人100接收指示将要堆叠在一起的盒子20的指令以及关于这些盒子20的信息。这里,信息可以包括每个盒子20的重量。其他类型的信息包括盒子本身的材料类型(例如标准瓦楞纸盒子或表面涂覆的盒子),使得机器人100可以考虑码放期间盒子20之间的摩擦系数。基于该信息,机器人100可以配置阈值接触力Fthresh。例如,码放器200将阈值接触力Fthresh设定为对应于机器人100能够施加在盒子20上的最大力,该最大力小于预期移动先前放置的盒子20的力F。在一些实施方式中,机器人100的传感器172确定每个先前放置的盒子20的重量,并使用确定的重量来设定阈值接触力Fthresh。在一些示例中,码放器200使用阻抗控制和力反馈控制的组合来主动限制机器人100施加在盒子20上的力(即,设定阈值接触力Fthresh)。例如,机器人100将来自阻抗控制的期望末端执行器力限制为小于预期移动先前放置的盒子20的力(例如考虑先前放置的盒子20的物理属性,比如质量、摩擦系数等)。通过限制期望的末端执行器力,阻抗控制限制机器人100施加在抓取的盒子20G上的力的大小,从而限制当抓取的盒子20G接触相邻盒子20时抓取的盒子20G可能传递的力。在其他方法中,码放器200限制末端执行器160和抓取的盒子20G的动能,使得施加在货盘30上的放置的或现有的盒子20上的能量值或不移动放置的盒子20,或只能将放置的盒子20移动可接受的距离。这种条件可能是在机器人100未能检测到抓取的盒子20G和另一盒子20之间的接触的情况下。这里,可接受的距离还可以考虑将由摩擦耗散的能量值(例如机器人100知道盒子材料和/或盒子20之间的摩擦系数)。

在一些示例中,码放器200配置成在对准器220移动抓取的盒子20G时,在接触检测期间考虑先前放置的盒子20。通过考虑先前放置的盒子20,码放器200可以潜在地增加其接触灵敏度。换句话说,码放器200可以利用抓取的盒子20G和其他盒子20之间的已知接近度。码放器200可以通过基于机器人100关于先前放置的盒子20的知识,对抓取的盒子20G经受的力(例如在末端执行器160周围的腕关节JA3处经受的力)和/或抓取的盒子20G的速度施加权重来实现增加的灵敏度。例如,当期望接触时,码放器200可以通过特定权重改变阈值接触力Fthresh或阈值速度vthresh。在一些示例中,特定权重可以对应于表示码放器200的接触置信度的概率分布。

在一些示例中,码放器200包括对准器220在给定方向上移动抓取的盒子20G的阈值时间段Tthresh。这里,该条件可以说明对准器220没有足够地移动抓取的盒子20G以满足阈值对准距离224,但也没有经历阈值接触力Fthresh或阈值速度vthresh的事实。在这种情况下,对准器220配置成停止移动抓取的盒子20G,以最小化盒子20之间的潜在中断。当码放器200在传感器172处遇到一些噪声或者未能检测到与另一盒子20接触时,该阈值时间段Tthresh可能是有利的。当这发生时,阈值时间段Tthresh是最小化由于缺乏检测而导致的问题的设定时间,因为接触将只针对阈值时间段Tthresh存在。

图3是用于码放盒子20的方法300的示例。在操作302,方法300接收用于由机器人保持的盒子20G的目标盒子位置202。盒子20G具有顶表面26T、底表面26B和侧表面26。在操作304,方法300将盒子20G定位在邻近目标盒子位置202的初始位置212。在操作306,方法300以相对于接地平面12一定角度倾斜盒子20G。这里,该角度形成在接地平面12和盒子20G的底表面26B之间。在操作308,方法300将盒子20从初始位置212沿第一方向D1移位到满足阈值第一对准距离224a的第一对准位置222a。在操作310,方法300将盒子20G从第一对准位置222a沿第二方向D2移位到满足阈值第二对准距离224b的目标盒子位置202。在操作312,方法300从机器人100释放盒子20G。这里,盒子20G的释放导致盒子20G朝向目标盒子位置202的边界边缘枢转。

在一些实施方式中,将盒子20G从初始位置212沿第一方向D1移动到第一对准位置222a包括在满足阈值第一对准距离224a之前,确定盒子20G经历阈值接触力Fthresh或阈值速度vthresh。在这些实施方式中,将盒子20G从第一对准位置222a沿第二方向D2移动到目标盒子位置202还包括在满足阈值第二对准距离224b之前,确定盒子20G经历阈值接触力Fthresh或阈值速度vthresh。在一些示例中,在满足阈值第一对准距离224a或阈值第二对准距离224b之前,方法300确定盒子20G已经在第一方向D1或第二方向D2中的相应一个方向上移动了阈值时间段Tthresh

图4是可用于实现在本文件中描述的系统的示例计算设备400的示意图和方法。计算设备400旨在表示各种形式的数字计算机,比如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。这里所示的部件、它们的连接和关系以及它们的功能仅是示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实施方式。

计算设备400包括处理器410(例如数据处理硬件)、存储器420(例如存储器硬件)、存储设备430、连接到存储器420和高速扩展端口450的高速接口/控制器440以及连接到低速总线470和存储设备430的低速接口/控制器460。每个部件410、420、430、440、450和460使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器410可以处理用于在计算设备400内执行的指令,包括存储在存储器420中或存储设备430上的指令,以在外部输入/输出设备上显示图形用户界面(GUI)的图形信息,比如耦合到高速接口440的显示器480。在其他实施方式中,可以适当使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备400,每个设备提供必要操作的部分(例如作为服务器组、一组刀片服务器或多处理器系统)。

存储器420在计算设备400内非暂时地存储信息。存储器420可以是计算机可读介质、易失性存储单元或非易失性存储单元。非暂时性存储器420可以是用于临时或永久存储程序(例如指令序列)或数据(例如程序状态信息)以供计算设备400使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如通常用于固件,比如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。

存储设备430能够为计算设备400提供大容量存储。在一些实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或者设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地包含在信息载体中。计算机程序产品包含指令,其在被执行时执行一种或多种方法,比如上述方法。信息载体是计算机或机器可读介质,比如存储器420、存储设备430或处理器410上的存储器。

高速控制器440管理计算设备400的带宽密集型操作,而低速控制器460管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器440耦合到存储器420、显示器480(例如通过图形处理器或加速器)以及可以接受各种扩展卡(未示出)的高速扩展端口450。在一些实施方式中,低速控制器460耦合到存储设备430和低速扩展端口490。可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网)的低速扩展端口490可以例如通过网络适配器耦合到一个或多个输入/输出设备,比如键盘、定点设备、扫描仪或网络设备,比如交换机或路由器。

如图所示,计算设备400可以多种不同的形式实现。例如,它可以实现为标准服务器400a,或者在一组这样的服务器400a中多次实现为膝上型计算机400b,或者实现为机架服务器系统400c的一部分。

本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令并将数据和指令发送至它们。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所用,术语“机器可读介质”和“计算机可读介质”指的是用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并产生输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路来执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传输数据,或两者兼有。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或结合在其中。

为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有显示设备,例如CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,用于向用户显示信息,并且可选地具有键盘和定点设备,例如鼠标或轨迹球,用户可以通过该定点设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户客户端设备上的网络浏览器。

已经描述了许多实施方式。然而,应当理解,在不脱离本公开的构思和范围的情况下,可以进行各种修改。因此,其他实施方式在以下权利要求的范围内。

38页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:滑动器以及手术工具

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!