监督式自主抓取的制作方法
未命名
08-27
阅读:133
评论:0
1.本公开涉及监督式自主抓取。
背景技术:
2.机器人通常被定义为可重新编程和多功能的操纵器,其被设计为通过可变的编程运动来移动材料、部件、工具或专用设备以执行任务。机器人可以是物理锚定的操纵器(例如,工业机器人臂)、在整个环境中移动的移动机器人(例如,使用腿、轮子或基于牵引的机构)、或操纵器和移动机器人的一些组合。机器人用于各种行业,包括例如制造、运输、危险环境、勘探和医疗保健。因此,针对各种行为以快速且有效的方式对机器人进行编程的能力为这些行业提供了额外的益处。
技术实现要素:
3.本公开的一个方面提供了一种计算机实现的方法,该方法在由机器人的数据处理硬件执行时使数据处理硬件执行操作。操作包括接收机器人周围的环境内的空间(例如,体积)的传感器数据的三维点云。操作还包括接收选择输入,该选择输入指示对在对应于空间的图像中表示的目标对象的用户选择。目标对象用于由机器人的机器人操纵器的末端执行器抓取。操作还包括通过将来自图像的所选择的目标对象的多条射线投影到传感器数据的三维点云上来生成机器人操纵器的末端执行器的抓取区。另外,操作包括确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状。此外,操作包括指示机器人操纵器的末端执行器基于抓取几何形状在抓取区内抓取目标对象。
4.本公开的方面可以提供以下可选特征中的一个或多个。在一些实施方式中,确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状包括基于抓取区内的目标对象生成多个候选抓取几何形状。确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状还包括:对于多个候选抓取几何形状中的每个候选抓取几何形状,确定用于抓取目标对象的抓取分数。抓取分数指示基于相应的候选抓取几何形状使用机器人操纵器的末端执行器抓取目标对象的成功可能性。确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状还包括选择具有最大抓取分数的相应的候选抓取几何形状作为被指定用于抓取目标对象的初始抓取几何形状。初始抓取几何形状基于机器人操纵器的末端执行器的初始姿势。在进一步的实施方式中,操作包括接收针对机器人操纵器的末端执行器的第二姿势的更新的传感器数据。在这些另外的实施方式中,操作包括基于更新的传感器数据确定新的一组候选抓取几何形状。新的一组候选抓取几何形状中的每个候选抓取几何形状包括相应的抓取分数。在这些进一步的实施方式中,操作包括确定来自新的一组候选抓取几何形状的相应的候选抓取几何形状包括超过初始抓取几何形状的抓取分数的对应抓取分数。在这些进一步的实施方式中,操作包括基于来自新的一组候选抓取几何形状的相应的候选抓取几何形状来修改初始抓取几何形状。
5.在一些实施例中,操作还包括接收末端执行器约束,该末端执行器约束约束机器
人操纵器的末端执行器抓取目标对象的一个或多个自由度。在一些实施方式中,在对应于空间的图像中表示的目标对象对应于由机器学习算法分类的对象。
6.在一些示例中,操作包括接收对应于空间的图像。在这些示例中,操作包括使用机器学习对象分类算法对所接收的图像内的可抓取对象进行分类。在一些实施方式中,机器人操纵器的末端执行器基于抓取几何形状指示在抓取区内抓取目标对象包括指示机器人的主体朝向目标对象俯仰,或者指示机器人的第一腿使第一腿的上构件围绕膝关节朝向第一腿的下构件旋转。
7.在一些实施例中,接收选择对应于空间的图像中表示的目标对象的选择输入发生在与机器人的数据处理硬件远程通信的用户设备处。在一些示例中,操作包括接收对应于空间的图像并校准所接收的图像。在一些实施方式中,末端执行器包括具有可动钳口(jaw)和固定钳口的夹持器(gripper)。可动钳口被构造成相对于固定钳口移动,以在夹持器的打开位置和夹持器的闭合位置之间移动。在一些实施例中,机器人操纵器包括安装在末端执行器处或附近的一个或多个传感器,以捕获定义机器人周围的环境内的空间的三维点云的传感器数据。
8.本公开的另一方面提供了一种机器人。机器人包括主体、联接到主体的多个腿、联接到主体的机器人操纵器、与机器人操纵器通信的数据处理硬件以及与数据处理硬件通信的存储器硬件。机器人操纵器包括末端执行器,该末端执行器被配置为抓取机器人周围的环境内的对象。该存储器硬件存储指令,该指令当在该数据处理硬件上执行时使该数据处理硬件执行操作。操作包括接收机器人周围的环境内的空间的传感器数据的三维点云。操作还包括从机器人的用户接收选择输入,该选择输入指示对在对应于空间的图像中表示的目标对象的用户选择。目标对象用于由机器人操纵器的末端执行器抓取。另外,操作包括通过将来自图像的所选择的目标对象的多条射线投影到传感器数据的三维点云上来生成机器人操纵器的末端执行器的抓取区。此外,操作包括确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状。操作还包括指示机器人操纵器的末端执行器基于抓取几何形状在抓取区内抓取目标对象。
9.本公开的方面可以提供以下可选特征中的一个或多个。在一些实施例中,确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状包括基于抓取区内的目标对象生成多个候选抓取几何形状。在这些实施例中,对于多个候选抓取几何形状中的每个候选抓取几何形状,确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状还包括确定用于抓取目标对象的抓取分数。抓取分数指示基于相应的候选抓取几何形状使用机器人操纵器的末端执行器抓取目标对象的成功可能性。在这些实施例中,确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状还包括选择具有最大抓取分数的相应的候选抓取几何形状作为被指定用于抓取目标对象的初始抓取几何形状。初始抓取几何形状基于机器人操纵器的末端执行器的初始姿势。在进一步的实施例中,操作还包括接收针对机器人操纵器的末端执行器的第二姿势的更新的传感器数据。在这些另外的实施例中,操作包括基于更新的传感器数据确定新的一组候选抓取几何形状。新的一组候选抓取几何形状中的每个候选抓取几何形状包括相应的抓取分数。在这些另外的实施例中,操作包括确定来自新的一组候选抓取几何形状的相应的候选抓取几何形状包括超过初始抓取几何形状的抓取分数的对应抓取分数。在这些另外的实施例中,操作包括基于来自新的一组候选抓取
几何形状的相应的候选抓取几何形状来修改初始抓取几何形状。
10.在一些实施方式中,操作还包括接收末端执行器约束,该末端执行器约束约束机器人操纵器的末端执行器抓取目标对象的一个或多个自由度。在一些示例中,在对应于空间的图像中表示的目标对象对应于由机器学习算法分类的对象。在一些实施例中,操作还包括接收对应于空间的图像。在这些实施例中,操作包括使用机器学习对象分类算法对接收图像内的可抓取对象进行分类。
11.在一些示例中,机器人操纵器的末端执行器基于抓取几何形状指示在抓取区内抓取目标对象包括指示机器人的主体朝向目标对象俯仰或指示机器人的第一腿使第一腿的上构件围绕膝关节朝向第一腿的下构件旋转。在一些实施方式中,接收选择对应于空间的图像中表示的目标对象的选择输入发生在与机器人的数据处理硬件远程通信的用户设备处。在一些实施例中,操作还包括接收对应于空间的图像并校准接收到的图像。在一些示例中,末端执行器包括具有可动钳口和固定钳口的夹持器。可动钳口被构造成相对于固定钳口移动,以在夹持器的打开位置和夹持器的闭合位置之间移动。在一些实施方式中,机器人操纵器包括安装在末端执行器处或附近的一个或多个传感器,以捕获定义机器人周围的环境内的空间的三维点云的传感器数据。
12.在附图和下面的描述中阐述了本公开的一个或多个实施方式的细节。其他方面、特征和优点将从说明书和附图以及权利要求书中显而易见。
附图说明
13.图1a是能够抓取对象的示例机器人的透视图。
14.图1b是图1a的机器人的示例系统的示意图。
15.图2a至图2c是用于图1a的机器人的示例抓取系统的示意图。
16.图3是用于监督式自主抓取的方法的操作的示例布置的流程图。
17.图4是可以用于实现本文描述的系统和方法的示例计算设备的示意图。
18.各附图中相同的附图标记表示相同的元件。
具体实施方式
19.参考图1a和图1b,机器人100包括主体110,主体110上连接有基于运动的结构,诸如腿120a-d,可使机器人100在环境10中移动。在一些示例中,每个支腿120是可铰接结构,使得一个或多个关节j允许腿120的构件122移动。例如,每个腿120包括将腿120的上部构件122、122u联接到主体110的髋关节jh和将腿120的上部构件122u联接到腿120的下部构件122
l
的膝关节jk。尽管图1a描绘了具有四个腿120a-d的四足机器人,但是机器人100可以包括任何数量的腿或基于运动(locomotive)的结构(例如,具有两个腿的双足或类人机器人,或者一个或多个腿的其他布置),其提供穿过环境10内的地形的手段。
20.为了穿过地形,每个腿120具有与地形的表面(即,牵引表面)接触的远端124。换句话说,腿120的远端124是腿120的由机器人100用于在机器人100的移动期间枢转、树立(plant)或通常提供牵引力的端部。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未示出,腿120的远端124包括踝关节ja,使得远端124可相对于腿120的下部构件122
l
铰接。
21.在所示的示例中,机器人100包括用作机器人操纵器的臂126。臂126可以被配置为围绕多个自由度移动,以便接合环境10的元件(例如,环境10内的对象)。在一些示例中,臂126包括一个或多个构件128,其中构件128通过关节j联接,使得臂126可以围绕关节j枢转或旋转。例如,在具有多于一个构件128的情况下,臂126可以被配置为延伸或缩回。为了说明示例,图1a描绘了具有对应于下构件128
l
、上构件128u和手构件128h(例如,示出为末端执行器150)的三个构件128的臂126。这里,下部构件128
l
可以围绕位于主体110附近(例如,臂126连接到机器人100的主体110的位置)的第一臂关节j
a1
旋转或枢转。下部构件128
l
在第二臂关节j
a2
处联接到上部构件128u,并且上部构件128u在第三臂关节j
a3
处联接到手构件128h。在一些示例中,诸如图1a,手构件128h或末端执行器150是机械夹持器,其包括可移动钳口和固定钳口,其被配置为执行环境10内的元件的不同类型的抓取。可移动钳口被配置为相对于固定钳口移动,以便在夹持器的打开位置和夹持器的闭合位置(例如,围绕对象闭合)之间移动。在一些实施方式中,臂126另外包括第四关节j
a4
。第四关节j
a4
可以位于下部构件128
l
与上部构件128u的联接附近,并且用于允许上部构件128u相对于下部构件128
l
扭转或旋转。换句话说,第四关节j
a4
可以用作类似于第三关节j
a3
的扭转关节或邻近手构件128h的臂126的腕关节。例如,作为扭转关节,联接在关节j处的一个构件可以相对于联接在关节j处的另一构件移动或旋转(例如,联接在扭转关节处的第一构件被固定,而联接在扭转关节处的第二构件旋转)。在一些实施方式中,臂126在机器人100的主体110上的插座(socket)处连接到机器人100。在一些配置中,插座被配置为连接器,使得臂126可以附接到机器人100或从机器人100分离,这取决于臂126是否需要用于操作。
22.机器人100具有沿着重力方向的垂直重力轴(例如,示出为z方向轴az)和质心cm,质心cm是对应于机器人100的所有部件的平均位置的位置,其中部件根据它们的质量被加权(即,机器人100的分布质量的加权相对位置总和为零的点)。机器人100还具有基于cm的相对于垂直重力轴az(即,相对于重力的固定参考系)的姿势p,以定义机器人100采取的特定姿态或姿式。机器人100的姿态可以由机器人100在空间中的取向或角位置限定。腿120相对于主体110的移动改变了机器人100的姿势p(即,机器人的cm的位置和机器人100的姿态或取向的组合)。这里,高度通常是指沿z方向(例如,沿z方向轴线az)的距离。机器人100的矢平面对应于在y方向轴ay和z方向轴az的方向上延伸的y-z平面。换句话说,矢状面将机器人100平分成左侧和右侧。通常垂直于矢状面,地平面(也称为横向平面)通过在x方向轴a
x
和y方向轴ay的方向上延伸而跨越x-y平面。地平面是指地面14,其中机器人100的腿120的远端124可以生成牵引力以帮助机器人100在环境10中四处移动。机器人100的另一解剖平面是横跨机器人100的主体110延伸的额状面(例如,从具有第一腿120a的机器人100的左侧到具有第二腿120b的机器人100的右侧)。额状面通过在x方向轴线a
x
和z方向轴线az的方向上延伸而跨越x-z平面。
23.为了在环境10周围操纵或使用臂126执行任务,机器人100包括具有一个或多个传感器132、132a-n(例如,示出为第一传感器132、132a和第二传感器132、132b)的传感器系统130。传感器132可以包括视觉/图像传感器、惯性传感器(例如,惯性测量单元(imu))、力传感器和/或运动传感器。传感器132的一些示例包括相机,诸如立体相机、飞行时间(tof)传感器、扫描光检测和测距(lidar)传感器或扫描激光检测和测距(ladar)传感器。在一些示例中,传感器132具有限定对应于传感器132的感测范围或区(region)的对应视场fv。例如,
图1a描绘了机器人100的视场fv。每个传感器132可以是可枢转的和/或可旋转的,使得传感器132可以例如围绕一个或多个轴(例如,相对于地平面的x轴、y轴或z轴)改变视场fv。
24.当利用传感器132勘测视场fv时,传感器系统130生成对应于视场fv的传感器数据134(也称为图像数据)。传感器系统130可以利用安装在机器人100的主体110上或附近的传感器132(例如,传感器132a、132b)生成视场fv。传感器系统可以附加地和/或替代地利用安装在臂126的末端执行器150处或附近的传感器132(例如,(一个或多个)传感器132c)来生成视场fv。一个或多个传感器132可以捕获定义机器人100周围的环境10内的区域(area)的三维点云的传感器数据134。在一些示例中,传感器数据134是对应于由三维体积图像传感器132生成的三维体积点云的图像数据。附加地或替代地,当机器人100在环境10周围操纵时,传感器系统130收集机器人100的姿势数据,其包括惯性测量数据(例如,由imu测量)。在一些示例中,姿势数据包括关于机器人100的运动学数据和/或取向数据,例如,关于机器人100的腿120或臂126的关节j或其他部件的运动学数据和/或取向数据。利用传感器数据134,机器人100的各种系统可以使用传感器数据134来定义机器人100的当前状态(例如,机器人100的运动学的当前状态)和/或机器人100周围的环境10的当前状态。
25.在一些实施方式中,传感器系统130包括联接到关节j的传感器132。此外,这些传感器132可以联接到操作机器人100的关节j的马达m(例如,传感器132、132a-b)。这里,这些传感器132以基于关节的传感器数据134的形式生成关节动力学(joint dynamics)。被收集为基于关节的传感器数据134的关节动力学可以包括关节角度(例如,上部构件122u相对于下部构件122
l
或手构件126h相对于臂126或机器人100的另一构件)、关节速率(speed)(例如,关节角速度(velocity)或关节角加速度)和/或在关节j处经历的力(也称为关节力)。由一个或多个传感器132生成的基于关节的传感器数据可以是原始传感器数据、被进一步处理以形成不同类型的关节动力学的数据、或两者的某种组合。例如,传感器132测量关节位置(或在关节j处联接的构件122的位置),并且机器人100的系统执行进一步处理以从位置数据导出速度和/或加速度。在其他示例中,传感器132被配置为直接测量速度和/或加速度。
26.当传感器系统130收集传感器数据134时,计算系统140存储、处理和/或将传感器数据134传送到机器人100的各种系统(例如,控制系统170、抓取系统200和/或远程控制器20)。为了执行与传感器数据134相关的计算任务,机器人100的计算系统140包括数据处理硬件142和存储器硬件144。数据处理硬件142被配置为执行存储在存储器硬件144中的指令,以执行与机器人100的活动(例如,移动和/或基于移动的活动)相关的计算任务。一般而言,计算系统140涉及数据处理硬件142和/或存储器硬件144的一个或多个位置。
27.在一些示例中,计算系统140是位于机器人100上的本地系统。当位于机器人100上时,计算系统140可以是集中式的(即,在机器人100上的单个位置/区域中,例如,机器人100的主体110)、分散式的(即,位于机器人100周围的各个位置处)或两者的混合组合(例如,其中大部分集中式硬件和少数分散式硬件)。为了说明一些差异,分散式计算系统140可以允许处理在活动位置处(例如,在移动腿120的关节的马达处)发生,而集中式计算系统140可以允许中央处理中枢与位于机器人100上的各个位置处的系统通信(例如,与移动腿120的关节的马达通信)。
28.附加地或替代地,计算系统140包括远离机器人100定位的计算资源。例如,计算系
统140经由网络180与远程系统160(例如,远程服务器或基于云的环境)通信。非常类似于计算系统140,远程系统160包括远程计算资源,诸如远程数据处理硬件162和远程存储器硬件164。这里,传感器数据134或其他经处理的数据(例如,由计算系统140本地处理的数据)可以存储在远程系统160中,并且可以由计算系统140访问。在另外的示例中,计算系统140被配置为利用远程资源162、164作为计算资源142、144的扩展,使得计算系统140的资源可以驻留在远程系统160的资源上。
29.在一些实施方式中,如图1a和图1b所示,机器人100包括控制系统170。控制系统170可以被配置为与机器人100的系统(诸如至少一个传感器系统130)通信。控制系统170可以使用硬件140执行操作和其他功能。控制系统170包括被配置为控制机器人100的至少一个控制器172。例如,控制器172基于来自机器人100的系统(例如,传感器系统130、控制系统170和/或抓取系统200)的输入或反馈来控制机器人100的移动以在环境10中四处移动。在另外的示例中,控制器172控制机器人100的姿势和/或行为之间的移动。至少一个控制器172可以负责控制机器人100的臂126的移动,以便臂126使用末端执行器150执行各种任务。例如,至少一个控制器172控制末端执行器150(例如,夹持器)以操纵环境10中的对象或元件。例如,控制器172在朝向固定钳口的方向上致动可动钳口以闭合夹持器。在其他示例中,控制器172在远离固定钳口的方向上致动可动钳口以打开夹持器。
30.给定控制器172可以通过控制围绕机器人100的一个或多个关节j的移动来控制机器人100。在一些配置中,给定控制器172是具有编程逻辑的软件,该编程逻辑控制至少一个关节j或操作或联接到关节j的马达m。例如,控制器172控制施加到关节j的力的量(例如,关节j处的扭矩)。作为可编程控制器172,控制器172控制的关节j的数量对于特定控制目的是可缩放的和/或可定制的。控制器172可以控制机器人100的单个关节j(例如,控制单个关节j处的扭矩)、多个关节j或一个或多个构件128的致动(例如,手构件128h的致动)。通过控制一个或多个关节j、致动器或马达m,控制器172可以协调机器人100的所有不同部件(例如,主体110、一个或多个腿120、臂126)的移动。例如,为了执行一些移动或任务,控制器172可以被配置为控制机器人100的多个部件的移动,诸如例如两个腿120a-b、四个腿120a-d或与臂126组合的两个腿120a-b的移动。
31.现在参考图1b,机器人100的传感器系统130为机器人100周围的环境10内的区域或空间或体积生成传感器数据134的三维点云。尽管被称为传感器数据134的三维点云,但是应当理解,传感器数据134可以表示环境10的三维部分或环境10的二维部分(诸如表面或平面)。换句话说,传感器数据134可以是三维点云或二维点集合。传感器数据134对应于安装在机器人100上的一个或多个传感器132的当前视场fv。在一些示例中,传感器系统130利用安装在末端执行器150处或附近的一个或多个传感器132c生成视场fv。在其他示例中,传感器系统130附加地和/或替代地基于安装在机器人100的主体110处或附近的一个或多个传感器132a、132b来生成视场fv。当机器人100在环境10内操纵并且一个或多个传感器132经受不同的视场fv时,传感器数据134更新。传感器系统130将传感器数据134发送到控制系统170、抓取系统200和/或远程控制器20。
32.用户12可以经由远程控制器20与机器人100交互,远程控制器20与机器人100通信以执行动作。另外,机器人100可以与远程控制器20通信以在远程控制器20的用户界面300(例如,ui 300)上显示图像。ui 300被配置为显示与一个或多个传感器132的三维视场fv相
对应的图像,或者在传感器132之间切换,以便显示与给定传感器132的相应视场fv相对应的不同图像。在远程控制器20的ui 300上显示的图像是与机器人100周围的环境10内的区域的传感器数据134的三维点云(例如,视场fv)相对应的二维图像。也就是说,在ui 300上显示的图像是对应于一个或多个传感器132的三维视场fv的二维图像表示。
33.在ui 300上显示的图像可以包括存在于环境10中(例如,在机器人100的传感器132的视场fv内)的一个或多个对象。在一些示例中,抓取系统200或机器人100的一些其他系统可以被配置为对图像进行分类,以便标识图像内的一个或多个对象(例如,标识一个或多个可抓取对象)。在一些实施方式中,通过机器学习算法对图像进行分类,以便标识图像中与对应于图像的环境10的一部分内的一个或多个可抓取对象相对应的一个或多个可抓取对象的存在。特别地,传感器系统130接收对应于区域(例如,环境10)的图像,并将图像(例如,传感器数据134)发送到抓取系统200。抓取系统200使用机器学习对象分类算法对所接收的图像(例如,传感器数据134)内的可抓取对象进行分类。例如,抓取系统200可以将地面上的一件衣服分类为“衣物”,或者将地面上的一件垃圾分类为“垃圾”。图像中的对象的分类可以在ui 300上显示给用户12。ui 300可以进一步校准接收到的图像以显示给用户12。ui 300允许用户12选择在二维图像中显示的对象作为目标对象,以便指示机器人100对三维环境10中的所选择的目标对象执行动作。
34.在一些实施方式中,由用户选择的目标对象对应于机器人100的机器人操纵器的末端执行器150要抓取的相应对象。例如,制造环境10中的机器人100的传感器系统130为制造环境10内的区域生成传感器数据134的三维点云。ui 300显示对应于制造环境10内的传感器数据134的三维点云的二维图像。用户12可以通过在ui 300上选择目标对象(例如,阀)来指示机器人100抓取制造环境10内的目标对象(例如,阀)。远程控制器20将所选择的目标对象发送到机器人100以对目标对象执行抓取。
35.抓取系统200接收用户选择的目标对象和传感器数据134。从用户选择的目标对象和传感器数据134,抓取系统200标识目标对象所在的三维环境10内的区域或区。例如,抓取系统200生成与三维环境10内目标对象实际所在的区域相对应的抓取区域或抓取区,以便指定末端执行器150将抓取目标对象的位置。特别地,抓取系统200将用户选择的目标对象从二维图像变换到传感器数据134的三维点云上的抓取区域。通过生成抓取区域,抓取系统200允许来自二维图像的所选择的目标对象指示机器人100在三维环境10中抓取目标对象。在一些配置中,抓取系统200通过将来自图像的所选择的目标对象的多条射线投影到传感器数据134的三维点云上来生成抓取区域,如下面在图2c中更详细地讨论的。在确定抓取区域之后,抓取系统200确定用于机器人操纵器(即,机器人100的臂126)抓取目标对象的抓取几何形状(grasp geometry)212。抓取几何形状212指示机器人操纵器的末端执行器150的姿势,其中姿势表示末端执行器150的平移(例如,x坐标、y坐标和z坐标)和取向(例如,俯仰、偏航和滚动)。也就是说,抓取几何形状212指示机器人操纵器的末端执行器150用于抓取目标对象的姿势(例如,取向和平移)。
36.抓取系统200将初始抓取几何形状212i发送到一个或多个控制器172,控制器172指示机器人100在目标对象上执行抓取几何形状212。在一些实施方式中,抓取系统200包括一个或多个专用控制器172以指示机器人100执行抓取几何形状212。在其他实施方式中,抓取系统200将抓取几何形状212发送到控制系统170的一个或多个控制器172,控制器172指
示机器人100执行抓取几何形状212。
37.现在参考图2a,在一些实施方式中,抓取系统200确定用于机器人操纵器的末端执行器150抓取由用户12选择的靶向到的对象的抓取几何形状212。也就是说,抓取系统200确定机器人操纵器的末端执行器150的姿势(例如,取向和平移)以抓取目标对象。抓取系统200可以包括抓取几何形状生成器210和选择器220以确定抓取几何形状212。抓取几何生成器210从传感器系统130接收传感器数据134。抓取几何形状生成器210被配置为基于抓取区域和传感器数据134为机器人操纵器的末端执行器150生成抓取几何形状212以抓取所选择的目标对象。特别地,抓取几何生成器210接收所选择的目标对象和传感器数据134以生成抓取区域。基于抓取区域,抓取几何形状生成器210确定末端执行器150的抓取几何形状212(例如,取向和平移)以抓取目标对象。抓取几何形状生成器210将抓取几何形状212发送到选择器220。选择器220被配置为实现从抓取几何形状生成器210接收的抓取几何形状212。特别地,选择器220将初始抓取几何形状212i发送到控制系统170。控制系统170指示机器人100开始执行初始抓取几何形状212i以抓取所选择的目标对象。
38.在一些实施方式中,用户12可以在远程控制器20处输入末端执行器约束,其中末端执行器约束约束末端执行器150的一个或多个自由度。自由度可以包括末端执行器150的平移(例如,x坐标、y坐标和z坐标)和/或取向(例如,俯仰、滚动和偏航)。换句话说,末端执行器150可以具有六个自由度,其中三个自由度涉及平移,并且三个自由度涉及取向。用户12可以指示末端执行器150利用包括末端执行器约束的抓取几何形状212抓取目标对象,以便约束末端执行器150的自由度。例如,用户12可以指示机器人100以90度的俯仰抓取目标对象。在该示例中,抓取系统200可以生成包括九十度的俯仰的任何抓取几何形状。在另一示例中,用户12指示机器人100利用包括特定高度(例如,z坐标)的抓取几何形状212抓取目标对象。因此,抓取几何形状生成器210可以生成包括用户选择的z坐标的抓取几何形状212。用户12可以包括任何数量的末端执行器约束,以在抓取目标对象时约束末端执行器150。例如,组合两个示例,用户12可以输入针对俯仰和z坐标两者的末端执行器150约束(例如,当为末端执行器150分配目标对象以抓取时)。末端执行器约束允许用户12为末端执行器150定制任何数量的自由度以抓取目标对象。
39.在一些实施方式中,在机器人100开始执行初始抓取几何形状212i之后,抓取系统200可以确定新的抓取几何形状212n以抓取目标对象。在机器人100开始执行初始抓取几何形状212i之后,抓取系统200可以确定改进和/或细化正在执行的抓取几何形状212的新的抓取几何形状212n。这里,抓取几何形状212的改进或细化可以对应于当与初始抓取几何形状212i相比时更有效(例如,在能量或运动方面更具成本效益的抓取)、具有更高的成功可能性、具有更优的执行时间(例如,更快或更慢)等的抓取几何形状212来抓取目标对象。抓取系统200可以基于更新的传感器数据134u生成新的抓取几何形状212n,更新的传感器数据134u表示当机器人100在环境10内操纵以抓取目标对象时一个或多个传感器132的变化的视场fv。也就是说,当机器人100在环境10内操纵以执行初始抓取几何形状212i以抓取目标对象时,一个或多个传感器132捕获环境10内的变化的视场fv。基于变化的视场fv(例如,更新的传感器数据134u),抓取系统确定新的抓取几何形状212n。例如,机器人100的传感器132(例如,安装在末端执行器150上或附近的传感器132)可以以某个感测频率生成传感器数据134。因此,当机器人100移动以执行初始抓取几何形状212i时,传感器132可以移动并
且可以以感测频率生成新的传感器数据134(称为“更新的传感器数据134u”),其固有地可以包括能够改进或细化初始抓取几何形状212i的新信息。因此,当根据初始抓取几何形状212i执行末端执行器150的抓取时,抓取系统200可以利用该更新的传感器数据134u,以更新或修改初始抓取几何形状212i;从而导致确保目标对象被最佳地抓取的连续或周期性反馈回路。
40.作为示例,当机器人操纵器的末端执行器150移动以执行初始抓取几何形状212i时,传感器系统130接收指示目标对象附近的异物(foreign object)的更新的传感器数据134u。特别地,当末端执行器150在环境10内操纵时,传感器132c在环境10内具有与机器人100开始执行初始抓取几何形状212i之前的视场fv(即,当生成初始抓取几何形状212i时的初始视场fv)不同的视场fv。在该示例中,在机器人100开始执行初始抓取几何形状212i之前,异物在传感器系统130的视场fv之外。因为异物在视场fv之外,所以传感器系统130不在发送到抓取几何生成器210的传感器数据134中表示异物。因此,抓取几何形状生成器210可以生成未能考虑异物(例如,异物的障碍物)的初始抓取几何形状212i,因为发送到抓取几何形状生成器210的传感器数据134没有指示目标对象附近的任何异物。在不知道异物的情况下,如果机器人100执行初始抓取几何形状212i,则异物可能阻止末端执行器150成功抓取目标对象。在该示例中,机器人100可以基于更新的传感器数据134u(例如,包括异物的传感器数据134u)来修改初始抓取几何形状212i以成功抓取目标对象。
41.在一些实施方式中,在机器人操纵器的末端执行器150开始执行抓取几何形状212与完成在目标对象上执行抓取几何形状212之间的时间段期间,传感器系统130接收更新的传感器数据134u。也就是说,当机器人操纵器的末端执行器150移动以在目标对象上执行初始抓取几何形状212i时,传感器系统130接收更新的传感器数据134u。更新的传感器数据134u表示当机器人100在环境10内移动以抓取目标对象时的更新的视场fv。特别地,更新的传感器数据134u可以向抓取系统200提供在抓取系统200确定初始抓取几何形状212i之前不可用的附加信息(例如,目标对象处或附近的异物)。例如,机器人100的传感器系统130接收表示机器人100的当前视野fv的传感器数据134,在机器人100开始执行抓取几何形状212之后,当机器人100移动以执行抓取时,机器人100的传感器系统130接收更新的传感器数据134u。在一些示例中,抓取系统200可以基于更新的传感器数据134u来修改抓取几何形状212(例如,更新的传感器数据134u指示阻止机器人100抓取目标对象的异物)。在其他示例中,抓取系统200可以在接收到更新的传感器数据134u之后继续执行初始抓取几何形状212i(例如,更新的传感器数据134u指示与初始传感器数据134相同或基本相似的数据)。在这个意义上,在抓取系统200生成初始抓取几何形状212i之后,抓取系统200可以使用提供给抓取系统200的传感器数据134来检查初始抓取几何形状212i的有效性。在基于接收到的更新的传感器数据134u查看初始抓取几何形状212i时,机器人100可以继续执行初始抓取几何形状212i(例如,当与使用更新的传感器数据134u生成的其他候选抓取几何形状212相比时,初始抓取几何形状212i仍然是最佳的),修改初始抓取几何形状212i,或者完全切换到替代抓取几何形状212。
42.可选地,抓取系统200可以包括调节器230。调节器230由虚线指示,因为调节器230是抓取系统200的可选部件。调节器230被配置为在机器人操纵器的末端执行器150开始执行初始抓取几何形状212i之后确定是否调整初始抓取几何形状212i。当机器人100执行初
始抓取几何形状212i时,抓取几何形状生成器210从一个或多个传感器132接收更新的传感器数据134u。基于更新的传感器数据134u,抓取几何形状生成器210生成新的候选抓取几何形状212n。抓取几何形状生成器210将新的候选抓取几何形状212n发送到调节器230。调节器230还可以从选择器220接收初始抓取几何形状212i。调节器230基于新的抓取几何形状212n和更新的传感器数据134u来确定是否修改初始抓取几何形状212i。也就是说,在开始执行初始抓取几何形状212i之后,调节器230接收新的候选抓取几何形状212n和更新的传感器数据134u。换句话说,抓取系统200在第一时间实例(例如,当用户12选择末端执行器150要抓取的目标对象时)使用传感器数据134生成初始抓取几何形状212i,然后,抓取系统200在第一时间实例之后的第二时间实例(例如,当机器人操纵器和/或末端执行器150正在执行目标对象的抓取时)使用更新的传感器数据134u生成一个或多个新的候选抓取几何形状212n。基于更新的传感器数据134u,调节器230确定是继续执行初始抓取几何形状212i还是修改初始抓取几何形状212i。
43.在一些示例中,调节器230确定继续执行初始抓取几何形状212i。在其他示例中,调节器230确定修改初始抓取几何形状212i以生成修改的抓取几何形状212m。也就是说,在接收到更新的传感器数据134u之后,调节器230将初始抓取几何形状212i与新的候选抓取几何形状212n进行比较,并确定它应该修改初始抓取几何形状212i。例如,当更新的传感器数据134u指示目标对象处或附近的异物时,调节器230确定新的候选抓取几何形状212n包括比初始抓取几何形状212i更高的抓取目标对象的成功可能性。在另一示例中,基于更新的传感器数据134u,调节器230确定新的候选抓取几何形状212n包括比初始抓取几何形状212i更短的抓取执行时间。调节器230可以通过调整一个或多个自由度来修改初始抓取几何形状212i以匹配或更接近地匹配新的候选抓取几何形状212n的特性。在一些实施方式中,调节器230通过丢弃初始抓取几何形状212i并执行新的候选抓取几何形状212n来修改初始抓取几何形状212i。在修改初始抓取几何形状212i之后,调节器230将修改的抓取几何形状212m发送到控制系统170,以指示机器人100执行修改的抓取几何形状212m。当调节器230确定应该继续执行初始抓取几何形状212i时,调节器230不将修改后的抓取几何形状212m发送到控制系统170。
44.现在参考图2b,在一些实施方式中,抓取几何形状生成器210基于抓取区域内的所选择的目标对象生成多个候选抓取几何形状212、212a-n。特别地,抓取几何形状生成器210生成多个候选抓取几何形状212,并且抓取系统200确定机器人100应该使用多个候选抓取几何形状212中的哪一个来抓取目标对象。在这些实施方式中,抓取系统200包括评分器240,该评分器240将抓取分数242分配给多个候选抓取几何形状212中的每一个。抓取分数242指示候选抓取几何形状212将成功抓取目标对象的估计或预计的成功可能性。也就是说,基于所选择的目标对象、传感器数据134和抓取区域,抓取几何形状生成器210生成多个抓取几何形状212以抓取目标对象。这里,抓取几何形状生成器210将多个候选抓取几何形状212中的每一个发送到评分器240。对于多个候选抓取几何形状212中的每个候选抓取几何形状212,评分器240确定表示候选抓取几何形状抓取目标对象的能力的抓取分数242。评分器240将与多个候选抓取几何形状212中的相应的候选抓取几何形状212相对应的每个抓取分数242发送到选择器220。生成器210可以生成多个抓取几何形状212,因为存在使得末端执行器150能够抓取目标对象的一些部分的可能的多个姿势排列。例如,末端执行器150
可以从3d空间中的特定方向或移动矢量或以特定取向(例如,俯仰、滚动或偏航)接近和/或抓取目标对象。换句话说,由于末端执行器150可以具有多个自由度以影响末端执行器150抓取目标对象的方式,因此生成器210可以生成一定数量的这些排列作为候选抓取几何形状212。
45.在一些配置中,可以存在这样大量的潜在候选抓取几何形状212,使得生成器210可以与选择器220结合工作,以在特定时刻生成n个最佳数量的抓取几何形状212。在一些实施方式中,生成器210被预先配置为在任何特定时间实例生成最大数量的候选抓取几何形状212。在一些示例中,可以基于生成器210生成抓取几何形状212的相对定时来减少、减低或衰减抓取几何形状212的数量。例如,生成器210可以生成大量抓取几何形状212以在第一时间实例形成初始抓取几何形状212i,但是然后,在第二时间实例,生成器210可以被配置为在机器人操纵器执行初始抓取几何形状212i时生成较少数量的抓取几何形状212。
46.选择器220被配置为选择具有最大抓取分数242的相应的候选抓取几何形状212作为供机器人100用于抓取目标对象的抓取几何形状212。抓取分数242可以由评分算法生成,该评分算法考虑标识给定抓取几何形状212的整体性能的不同因素。这些因素可以由机器人100的用户12预先配置或设计。可能有助于抓取分数242的因素的一些示例包括抓取目标对象的速率(例如,抓取对象的时间)、特定抓取的复杂程度、从末端执行器150的当前姿势到末端执行器150的抓取姿势的变化程度、抓取几何形状212与目标对象的接合(例如,相对于目标对象的质心的接合位置)、目标对象可以估计贡献的扭矩量、末端执行器150施加在目标对象上的力的量或力的方向等。当确定抓取分数242时,影响分数242的因素也可以被加权以强调一个因素相对于另一个因素的重要性。例如,如果目标对象已经被分类为易碎对象,则评分算法可以降低抓取速率以确保易碎对象不太可能被损坏。基于这些因素中的一些因素,抓取分数242通常可以指示抓取几何形状的效率、执行时间、成功可能性等。在一些示例中,当抓取分数242满足抓取分数阈值时(例如,当抓取分数242超过设置为抓取分数阈值的值时),选择器220从多个候选抓取几何形状212中选择候选抓取几何形状212。作为示例,选择器220接收包括抓取分数242为0.6、0.4和0.8的三个候选抓取几何形状212。在该示例中,选择器220确定具有抓取分数0.8的候选抓取几何形状212具有成功抓取目标对象的最高可能性。选择器220将从多个候选抓取几何形状212中选择的候选抓取几何形状212(例如,初始抓取几何形状212i)发送到控制系统170。控制系统170指示机器人100以0.8的抓取分数242执行候选抓取几何形状212作为初始抓取几何形状212i。
47.抓取系统200将初始抓取几何形状212i发送到控制系统170,以启动一系列移动以根据初始抓取几何形状212i抓取目标对象。换句话说,为了执行初始抓取几何形状212i,控制系统170指示臂126从臂126的初始姿势移动到由初始抓取几何形状212i指定的抓取姿势。这里,臂126的初始姿势是指当控制器20从用户12接收到选择要由臂126的末端执行器150抓取的目标对象的输入时臂126的姿势或状态。在这方面,初始抓取几何形状212i可以基于机器人操纵器的末端执行器150的初始姿势。例如,当在控制器20处向用户12提供图像的传感器132来自末端执行器150处的传感器132时,与末端执行器150相关联的传感器132的视场fv将用于定义初始抓取几何形状212i,并且该视场fv基于臂126的初始姿势。
48.在一些实施方式中,在机器人100开始对初始抓取几何形状212i执行之后,抓取系统200确定多个新的候选抓取几何形状212n。也就是说,当机器人操纵器的末端执行器150
基于初始抓取几何形状212i移动以抓取目标对象时,传感器系统130接收用于机器人操纵器的末端执行器150的第二姿势的更新的传感器数据134u。传感器系统130将更新的传感器数据134u发送到抓取系统200。抓取几何形状生成器210基于更新的传感器数据134确定新的一组候选抓取几何形状212n。新的一组候选抓取几何形状212n可以包括任何数量的新的候选抓取几何形状212n。抓取几何形状生成器210将每个新的候选抓取几何形状212n发送到评分器240。
49.对新的候选抓取几何形状212n进行评分的评分器240可以是用于对导致初始抓取几何形状212i的候选抓取几何形状212进行评分的相同评分器240,或者是专用于对新的候选抓取几何形状212n进行评分的不同评分器240。在任一种情况下,评分器240将抓取分数242分配给新的一组候选抓取几何形状212n中的每个新的候选抓取几何形状212n。也就是说,抓取几何形状生成器210将多个新的候选抓取几何形状212n发送到评分器240,评分器240确定多个新的候选抓取几何形状212n中的每一个的抓取分数242。评分器240将每个相应的新的候选抓取几何形状212n的抓取分数242发送到调节器230。在一些示例中,评分器240仅发送来自多个新的候选抓取几何形状212n的最高抓取分数242。调节器230确定来自新的一组候选抓取几何形状212n的相应的抓取几何形状212是否包括超过初始抓取几何形状212i的抓取分数242的对应抓取分数242(即,指示候选抓取几何形状212n比初始抓取几何形状212i更好的分数242)。也就是说,调节器230接收更新的传感器数据134u和初始抓取几何形状212i和每个新的候选抓取几何形状212n的相应的抓取分数242。
50.在一些实施方式中,当新的候选抓取几何形状212n的对应抓取分数242超过初始抓取几何形状212i的抓取分数242时,调节器230基于来自新的一组候选抓取几何形状212n的相应的候选抓取几何形状212n来修改初始抓取几何形状212i。例如,机器人100以0.8的抓取分数开始执行初始抓取几何形状212i。在机器人100开始执行初始抓取几何形状212i之后,抓取几何形状生成器210接收与一个或多个传感器132的当前视场fv相对应的更新的传感器数据134u。抓取几何形状生成器210基于更新的传感器数据134生成多个新的候选抓取几何形状212n。在该示例中,调节器230接收抓取分数242为0.8的初始抓取几何形状212i,并且接收抓取分数242为0.85的新的候选抓取几何形状212n。这里,调节器230确定新的候选抓取几何形状212n的抓取分数242(例如,0.85的抓取分数242)超过初始抓取几何形状212i的抓取分数242(例如,0.8的抓取分数242)并修改初始抓取几何形状212i。如前所述,该修改可以对初始抓取几何形状212i进行某种形式的调整,或者用新的候选抓取几何形状212n完全替换初始抓取几何形状212i。
51.在一些实施方式中,当新的候选抓取几何形状212n的抓取分数242超过初始抓取几何形状212i的分数242阈值时,调节器230仅修改初始抓取几何形状212i。例如,当新的候选抓取几何形状212n的抓取分数242超过初始抓取几何形状212i的抓取分数242 0.1的余量时,调节器230仅修改初始抓取几何形状212i。在该示例中,当初始抓取几何形状212i的抓取分数242是0.6并且新的候选抓取几何形状212n的抓取分数242是0.65时,调节器230确定新的候选抓取几何形状212n的抓取分数242不超过初始抓取几何形状212i的抓取分数242阈值(例如,0.1)。这里,即使新的候选抓取几何形状212n的抓取分数242超过初始抓取几何形状212i的抓取分数242,机器人100也继续执行初始抓取几何形状212i。换句话说,即使较新的抓取几何形状212具有较高的分数242,抓取分数242之间的差异裕度也可能无法
证明抓取几何形状212的变化。
52.现在参考图2c,在一些示例中,抓取几何生成器210生成抓取区域216。通过生成抓取区域216,抓取几何生成器210将用户选择的感兴趣的二维区域(例如,选择的目标对象)转换成传感器数据134的三维点云中的抓取区域216。具体地,抓取区域216的生成允许用户12与二维图像交互以指示机器人100在三维环境10中执行动作。抓取几何生成器210从ui 300和传感器数据134(例如,三维点云)接收用户选择的目标对象。用户12选择ui 300上的二维图像上的目标对象,该目标对象对应于机器人100的视场fv的三维点数据云134。抓取几何生成器210将来自二维图像的所选择的目标对象的多条射线投影到传感器数据134的三维点云上。因此,抓取区域216对应于由投影射线和传感器数据134的三维点云的相交形成的区域。
53.特别地,抓取几何生成器210投影来自所选择的目标对象的一个或多个像素的多条射线。从二维图像投影到三维点云的多条射线中的每条射线表示所选择的目标对象的像素。三维点云中的多条射线的集合表示抓取区域216。通过投影来自所选择的目标对象的每个像素的光线,抓取几何生成器210将用户12感兴趣的二维区域(例如,所选择的目标对象)转换为三维抓取区域216。换句话说,抓取区域216指定包括目标对象的三维区域,使得抓取系统200可以生成抓取几何形状212以在抓取区域216内抓取三维目标对象。这意味着抓取区域216指定机器人操纵器要抓取的感兴趣区域。从该标识的抓取区域216,抓取几何形状生成器210可以使用所标识的抓取区域216的边界内的传感器数据134来理解目标对象(例如,由3d点云传感器数据134表示的目标对象的轮廓)并确定抓取几何形状212。
54.在一些示例中,基于抓取几何形状212指示机器人操纵器的末端执行器150在抓取区域216内抓取目标对象包括一个或多个控制器172指示机器人100的主体110朝向目标对象俯仰。也就是说,一个或多个控制器172可以指示机器人100的末端执行器150朝向目标对象操纵和机器人100的主体110朝向目标对象俯仰。通过指示末端执行器150和主体110两者,机器人100可以生成机器人操纵器的末端执行器150可以访问的更多自由度。
55.在其他示例中,一个或多个控制器172指示机器人100的第一腿120围绕膝关节jk朝向第一腿120的下部构件122
l
旋转第一腿120的上部构件122u。例如,一个或多个控制器172指示机器人100的每个腿120围绕膝关节jk朝向下部构件122
l
旋转腿的上部构件122u以降低机器人100的主体110。在该示例中,当一个或多个控制器172指示机器人100的每个腿120时,机器人100的主体110降低,同时主体110的俯仰保持恒定。在另一示例中,一个或多个控制器172指示机器人100的腿120的子集使腿120的上部构件122u围绕膝关节jk朝向下部构件122
l
旋转。这里,机器人100的主体110可以朝向目标对象俯仰,同时机器人的主体110朝向地面14下降。
56.图3是用于监督式自主抓取的方法500的操作的示例布置的流程图。方法500可以是由机器人的数据处理硬件142执行的计算机实现的方法,其使数据处理硬件142执行操作。在操作502处,方法500包括接收机器人100周围的环境10内的区域的传感器数据134的三维点云。在操作504处,方法500包括从机器人100的用户12接收选择在对应于该区域的图像中表示的目标对象的用户输入。由用户输入选择的目标对象对应于机器人100的机器人操纵器的末端执行器150要抓取的相应对象。在操作506处,方法500包括通过将来自图像的所选择的目标对象的多条射线218投影到传感器数据134的三维点云上来生成用于机器人
操纵器的末端执行器150的抓取区域216。在操作508处,方法500包括确定用于机器人操纵器在抓取区域216内抓取目标对象的抓取几何形状212。在操作510处,方法500包括指示机器人操纵器的末端执行器150基于抓取几何形状212在抓取区域216内抓取目标对象。
57.图4是可以用于实现本文档中描述的系统和方法的示例计算设备400的示意图。计算设备400旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里示出的组件、它们的连接和关系以及它们的功能仅意在是示例性的,并不意在限制本文档中描述和/或要求保护的发明的实施方式。
58.计算设备400包括处理器410(例如,数据处理硬件)、存储器420(例如,存储器硬件)、存储设备430、连接到存储器420和高速扩展端口450的高速接口/控制器440、以及连接到低速总线470和存储设备430的低速接口/控制器460。组件410、420、430、440、450和460中的每一个使用各种总线互连,并且可以适当地安装在公共主板上或以其他方式安装。处理器410可以处理用于在计算设备400内执行的指令,包括存储在存储器420中或存储设备430上的指令,以在外部输入/输出设备(诸如联接到高速接口440的显示器480)上显示图形用户界面(gui)的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备400,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
59.存储器420将信息非暂时性地存储在计算设备400内。存储器420可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器420可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备400使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电可擦除可编程只读存储器(eeprom)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器(pcm)以及磁盘或磁带。
60.存储设备430能够为计算设备400提供大容量存储装置。在一些实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,所述指令在被执行时执行一个或多个方法,诸如上面描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器420、存储设备430或处理器410上的存储器。
61.高速控制器440管理计算设备400的带宽密集型操作,而低速控制器460管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器440联接到存储器420、显示器480(例如,通过图形处理器或加速器),并且联接到高速扩展端口450,高速扩展端口450可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器460联接到存储设备430和低速扩展端口470。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口470可以例如通过网络适配器联接到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪或诸如交换机或路由器的联网设备。
62.计算设备400可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器400a或在一组这样的服务器400a中多次实现,实现为膝上型计算机400b,或者实现为机架服务器系统400c的一部分。
63.本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,联接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
64.这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
65.本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或者可操作地联接以从其接收数据或向其传输数据或两者。然而,计算机不需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
66.为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)、lcd(液晶显示器)监视器或触摸屏)以及可选地键盘和指示设备(例如,鼠标或轨迹球),用户可以通过该键盘和指示设备向计算机提供输入。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求将网页发送到用户的客户端设备上的网络浏览器。
67.已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在所附权利要求的范围内。
技术特征:
1.一种计算机实现的方法(500),当由机器人(100)的数据处理硬件(142)执行时,使所述数据处理硬件(142)执行操作,所述操作包括:接收所述机器人(100)周围的环境(10)内的空间的传感器数据(134)的三维点云;接收选择输入,所述选择输入指示在对应于所述空间的图像(300)中表示的目标对象的用户选择,所述目标对象用于由所述机器人(100)的机器人操纵器(126)的末端执行器(128
h
,150)抓取;通过将来自所述图像(300)的所选择的目标对象的多条射线(218)投影到传感器数据(134)的三维点云上来生成用于所述机器人操纵器(126)的所述末端执行器(128
h
,150)的抓取区(216);确定用于所述机器人操纵器(126)在所述抓取区(216)内抓取所述目标对象的抓取几何形状(212);以及指示所述机器人操纵器(126)的所述末端执行器(128
h
,150)基于所述抓取几何形状(212)在所述抓取区(216)内抓取所述目标对象。2.根据权利要求1所述的方法(500),其中,确定用于所述机器人操纵器(126)在所述抓取区(216)内抓取所述目标对象的所述抓取几何形状(212)包括:基于所述抓取区(216)内的所述目标对象生成多个候选抓取几何形状(212);对于所述多个候选抓取几何形状(212)中的每个候选抓取几何形状(212),确定用于抓取所述目标对象的抓取分数(242),所述抓取分数(242)指示基于相应的候选抓取几何形状(212)使用所述机器人操纵器(126)的所述末端执行器(128
h
,150)抓取所述目标对象的成功可能性;以及选择具有最大抓取分数(242)的相应的候选抓取几何形状(212)作为被指定用于抓取所述目标对象的初始抓取几何形状(212i),所述初始抓取几何形状(212i)基于所述机器人操纵器(126)的所述末端执行器(128
h
,150)的初始姿势。3.根据权利要求2所述的方法(500),其中,所述操作还包括:接收针对所述机器人操纵器(126)的所述末端执行器(128
h
、150)的第二姿势的更新的传感器数据(134u);基于所述更新的传感器数据(134u)确定新的一组候选抓取几何形状(212n),所述新的一组候选抓取几何形状(212n)中的每个候选抓取几何形状(212n)包括相应的抓取分数(242);确定来自所述新的一组候选抓取几何形状(212n)的相应的候选抓取几何形状(212n)包括超过所述初始抓取几何形状(212i)的抓取分数(242)的对应抓取分数(242);以及基于来自所述新的一组候选抓取几何形状(212n)的相应的候选抓取几何形状(212n)来修改所述初始抓取几何形状(212i)。4.根据权利要求1-3中任一项所述的方法(500),其中,所述操作还包括接收末端执行器约束,所述末端执行器约束约束所述机器人操纵器(126)的末端执行器(128
h
,150)抓取所述目标对象的一个或多个自由度。5.根据权利要求1-4中任一项所述的方法(500),其中,在对应于所述空间的所述图像(300)中表示的所述目标对象对应于由机器学习算法分类的对象。6.根据权利要求1至5中任一项所述的方法(500),其中,所述操作还包括:
接收对应于所述空间的所述图像(300);以及使用机器学习对象分类算法对所接收的图像(300)内的可抓取对象进行分类。7.根据权利要求1-6中任一项所述的方法(500),其中,指示所述机器人操纵器(126)的所述末端执行器(128
h
,150)基于所述抓取几何形状(212)在所述抓取区(216)内抓取所述目标对象包括:指示所述机器人(100)的主体(110)朝向所述目标对象俯仰;或指示所述机器人(100)的第一腿(120)使所述第一腿(120)的上部构件(122
u
)围绕膝关节(j
k
)朝向所述第一腿(120)的下部构件(122
l
)旋转。8.根据权利要求1至7中任一项所述的方法(500),其中,接收选择在对应于所述空间的所述图像(300)中表示的所述目标对象的所述选择输入发生在与所述机器人(100)的所述数据处理硬件(142)远程通信的用户设备(20)处。9.根据权利要求1至8中任一项所述的方法(500),其中,所述操作还包括:接收对应于所述空间的所述图像(300);以及校准所接收的图像(300)。10.根据权利要求1至9中任一项所述的方法(500),其中,所述末端执行器(128
h
,150)包括具有可动钳口和固定钳口的夹持器(128
h
,150),所述可动钳口被配置为相对于所述固定钳口移动,以在所述夹持器(128
h
,150)的打开位置和所述夹持器(128
h
,150)的闭合位置之间移动。11.根据权利要求1-10中任一项所述的方法(500),其中,所述机器人操纵器(126)包括安装在所述末端执行器(128
h
,150)处或附近的一个或多个传感器(130,130c),以捕获定义所述机器人(100)周围的环境(10)内的空间的三维点云的传感器数据(134)。12.一种机器人(100),包括:主体(110);多个腿(120),联接到所述主体(110);机器人操纵器(126),联接到所述主体(110),所述机器人操纵器(126)包括末端执行器(128
h
,150),所述末端执行器被配置为抓取所述机器人(100)周围的环境(10)内的对象;数据处理硬件(142),与所述机器人操纵器(126)通信;以及存储器硬件(144、164),与所述数据处理硬件(142)通信,所述存储器硬件(144,164)存储指令,所述指令当在所述数据处理硬件(142)上执行时使所述数据处理硬件(142)执行操作,所述操作包括:接收所述机器人(100)周围的所述环境(10)内的空间的传感器数据(134)的三维点云;从所述机器人(100)的用户接收选择输入,所述选择输入指示在对应于所述空间的图像(300)中表示的目标对象的用户选择,所述目标对象用于由所述机器人操纵器(126)的所述末端执行器(128
h
,150)抓取;通过将来自所述图像(300)的所选择的目标对象的多条射线(218)投影到所述传感器数据(134)的三维点云上来生成用于所述机器人操纵器(126)的所述末端执行器(128
h
,150)的抓取区(216);确定用于所述机器人操纵器(126)在所述抓取区(216)内抓取所述目标对象的抓取几何形状(212);以及
指示所述机器人操纵器(126)的所述末端执行器(128
h
,150)基于所述抓取几何形状(212)在所述抓取区(216)内抓取所述目标对象。13.根据权利要求12所述的机器人(100),其中,确定用于所述机器人操纵器(126)在所述抓取区(216)内抓取所述目标对象的所述抓取几何形状(212)包括:基于所述抓取区(216)内的所述目标对象生成多个候选抓取几何形状(212);对于所述多个候选抓取几何形状(212)中的每个候选抓取几何形状(212),确定用于抓取所述目标对象的抓取分数(242),所述抓取分数(242)指示基于相应的候选抓取几何形状(212)使用所述机器人操纵器(126)的所述末端执行器(128
h
,150)抓取所述目标对象的成功可能性;以及选择具有最大抓取分数(242)的相应的候选抓取几何形状(212)作为被指定用于抓取所述目标对象的初始抓取几何形状(212i),所述初始抓取几何形状(212i)基于所述机器人操纵器(126)的所述末端执行器(128
h
,150)的初始姿势。14.根据权利要求13所述的机器人(100),其中,所述操作还包括:接收针对所述机器人操纵器(126)的所述末端执行器(128h,150)的第二姿势的更新的传感器数据(134u);基于所述更新的传感器数据(134u)确定新的一组候选抓取几何形状(212n),所述新的一组候选抓取几何形状(212n)中的每个候选抓取几何形状(212n)包括相应的抓取分数(242);确定所述新的一组候选抓取几何形状(212n)中的相应的候选抓取几何形状(212n)包括超过所述初始抓取几何形状(212i)的抓取分数(242)的对应抓取分数(242);以及基于来自所述新的一组候选抓取几何形状(212n)的相应的候选抓取几何形状(212n)来修改所述初始抓取几何形状(212i)。15.根据权利要求12-14中任一项所述的机器人(100),其中,所述操作还包括接收末端执行器约束,所述末端执行器约束约束所述机器人操纵器(126)的末端执行器(128h,150)抓取所述目标对象的一个或多个自由度。16.根据权利要求12-15中任一项所述的机器人(100),其中,在对应于所述空间的所述图像(300)中表示的所述目标对象对应于由机器学习算法分类的对象。17.根据权利要求12-16中的任一项所述的机器人(100),其中,所述操作还包括:接收对应于所述空间的所述图像(300);以及使用机器学习对象分类算法对所接收的图像(300)内的可抓取对象进行分类。18.根据权利要求12-17中任一项所述的机器人(100),其中,指示所述机器人操纵器(126)的所述末端执行器(128
h
,150)基于所述抓取几何形状(212)在所述抓取区(216)内抓取所述目标对象包括:指示所述机器人(100)的主体(110)朝向所述目标对象俯仰;或指示所述机器人(100)的第一腿(120)使所述第一腿(120)的上部构件(122
u
)围绕膝关节(j
k
)朝向所述第一腿(120)的下部构件(122
l
)旋转。19.根据权利要求12-18中任一项所述的机器人(100),其中,接收选择对应于所述空间的所述图像(300)中表示的所述目标对象的所述选择输入发生在与所述机器人(100)的所述数据处理硬件(142)远程通信的用户设备(20)处。
20.根据权利要求12-19中的任一项所述的机器人(100),其中,所述操作还包括:接收对应于所述空间的所述图像(300);以及校准所接收的图像(300)。21.根据权利要求12-20中任一项所述的机器人(100),其中,所述末端执行器(128h,150)包括具有可动钳口和固定钳口的夹持器(128h,150),所述可动钳口被配置为相对于所述固定钳口移动,以在所述夹持器(128h,150)的打开位置和所述夹持器(128h,150)的闭合位置之间移动。22.根据权利要求12-21中任一项所述的机器人(100),其中,所述机器人操纵器(126)包括安装在所述末端执行器(128
h
,150)处或附近的一个或多个传感器(130,130c),以捕获定义所述机器人(100)周围的环境(10)内的空间的三维点云的传感器数据(134)。
技术总结
一种用于机器人(100)的方法(500)包括接收机器人周围的环境(10)内的空间的传感器数据(134)的三维点云。该方法包括接收指示在对应于空间的图像(300)中表示的目标对象的用户选择的选择输入。目标对象用于由机器人操纵器(126)的末端执行器(150)抓取。该方法包括通过将来自图像的所选择的目标对象的多条射线(218)投影到传感器数据的三维点云上来生成用于机器人操纵器的末端执行器的抓取区(216)。该方法包括确定用于机器人操纵器在抓取区内抓取目标对象的抓取几何形状(212)。该方法包括指示机器人操纵器的末端执行器基于抓取几何形状在抓取区内抓取目标对象。何形状在抓取区内抓取目标对象。何形状在抓取区内抓取目标对象。
技术研发人员:A
受保护的技术使用者:波士顿动力公司
技术研发日:2021.12.17
技术公布日:2023/8/24
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:分形储存器的制作方法 下一篇:太阳能电池的电极结构和制造方法与流程
