CN116802020A - 用于监督式自主抓取的用户界面 - Google Patents

用于监督式自主抓取的用户界面 Download PDF

Info

Publication number
CN116802020A
CN116802020A CN202180092616.4A CN202180092616A CN116802020A CN 116802020 A CN116802020 A CN 116802020A CN 202180092616 A CN202180092616 A CN 202180092616A CN 116802020 A CN116802020 A CN 116802020A
Authority
CN
China
Prior art keywords
end effector
target object
robot
orientation
robotic manipulator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180092616.4A
Other languages
English (en)
Inventor
A·J·巴里
A·A·里兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boston Dynamics Inc
Original Assignee
Boston Dynamics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Boston Dynamics Inc filed Critical Boston Dynamics Inc
Publication of CN116802020A publication Critical patent/CN116802020A/zh
Pending legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39443Portable, adapted to handpalm, with joystick, function keys, display
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39444Display of position, of shape of robot and tool
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39476Orient hand relative to object
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39548Enter interactively parameter for gripper, then teach movement

Abstract

一种由机器人(100)的数据处理硬件(142)执行的方法(500)包括接收机器人周围的环境(10)内的空间的传感器数据(134)。该方法包括从用户界面(UI)(300)接收指示对空间的表示(312)内的位置的用户选择的用户输入。所述位置对应于所述空间内的目标对象(302)的位置。该方法包括从UI接收多个抓取输入(304),该多个抓取输入(304)指定机器人操纵器(126)的末端执行器(128H、150)抓取目标对象的取向和平移。该方法包括基于所接收的传感器数据和对应于用户输入的位置生成目标对象的三维(3D)位置。该方法包括使用所生成的3D位置和多个抓取输入来指示末端执行器抓取目标对象。

Description

用于监督式自主抓取的用户界面
技术领域
本公开涉及一种用于监督式自主抓取的用户界面。
背景技术
机器人通常被定义为可重新编程和多功能的操纵器,其被设计为通过可变的编程运动来移动材料、部件、工具或专用设备以用于任务的执行。机器人可以是物理锚定的操纵器(例如,工业机器人臂)、在整个环境中移动的移动机器人(例如,使用腿、轮子或基于牵引的机构)、或操纵器和移动机器人的某种组合。机器人用于各种行业,包括例如制造、运输、危险环境、勘探和医疗保健。因此,针对各种行为以快速且有效的方式对机器人进行编程的能力为这些行业提供了额外的益处。
发明内容
本公开的一个方面提供了一种计算机实现的方法,该方法在由机器人的数据处理硬件执行时使数据处理硬件执行操作。该操作包括接收机器人周围的环境内的空间的传感器数据。该操作还包括从与数据处理硬件通信的用户界面(UI)接收用户输入,该用户输入指示对所述空间的二维(2D)表示内的位置的用户选择。该位置对应于所述空间内的目标对象的位置。该操作还包括从UI接收多个抓取输入,该多个抓取输入指定机器人操纵器的末端执行器抓取目标对象的取向和平移。此外,该操作包括基于所接收的传感器数据和对应于所述用户输入的所述位置来生成所述目标对象的三维(3D)位置。另外,该操作包括使用所生成的3D位置和指定机器人操纵器的末端执行器的取向和平移的多个抓取输入来指示机器人操纵器的末端执行器抓取目标对象。
本公开的方面可以包括以下可选特征中的一个或多个。在一些实施方式中,该操作还包括由机器人操纵器的末端执行器抓取目标对象。在一些实施例中,多个抓取输入对应于对机器人操纵器的末端执行器的一个或多个自由度的多个约束。在进一步的实施例中,一个或多个自由度包括末端执行器的俯仰、末端执行器的滚动、在x方向上的第一平移和在y方向上的第二平移。在更进一步的实施例中,一个或多个自由度还包括在z方向上的第三平移。
在一些示例中,接收指定机器人操纵器的末端执行器抓取目标对象的取向和平移的多个抓取输入包括接收指定机器人操纵器的末端执行器抓取目标对象的第一取向的第一抓取输入,以及基于机器人操纵器的末端执行器的所设计的第一取向指示修改UI处的包括目标对象的视口图像。在另外的示例中,第一取向包括用于机器人操纵器的末端执行器抓取目标对象的俯仰或滚动中的一个。在其他另外的示例中,UI包括第一窗口和与第一窗口分开的第二窗口。第一窗口包括视口图像,视口图像显示机器人周围的环境内的包括目标对象的空间的传感器数据。第二窗口包括表示末端执行器的图形图标。图形图标能够被用户操纵以指示第一抓取输入,该第一抓取输入指定用于机器人操纵器的末端执行器抓取目标对象的第一取向。在更进一步的示例中,图形图标包括末端执行器的线框表示和径向刻度盘,以指定俯仰作为机器人操纵器的末端执行器抓取目标对象的第一取向。在其他更进一步的示例中,操作还包括在视口图像上叠加处于由第一抓取输入指定的第一取向的末端执行器的表示,以及从UI接收第二抓取输入,该第二抓取输入指定机器人操纵器的末端执行器抓取目标对象的第二取向。
在另外的更进一步的示例中,第二取向对应于机器人操纵器的末端执行器抓取目标对象的滚动。在其他另外的甚至进一步的示例中,接收指定第二取向的第二抓取输入包括接收另一用户输入,所述另一用户输入指示图形图标的另一用户选择,所述另一用户选择指示机器人操纵器的末端执行器抓取目标对象的滚动。
本公开的另一方面提供了一种机器人。机器人包括主体、耦接到主体的机器人操纵器、与机器人操纵器通信的数据处理硬件以及与数据处理硬件通信的存储器硬件。机器人操纵器包括末端执行器,该末端执行器被配置为抓取机器人周围的环境内的对象。存储器硬件存储指令,当所述指令在数据处理硬件上执行时使数据处理硬件执行操作。该操作包括接收机器人周围的环境内的空间的传感器数据。该操作还包括从与数据处理硬件通信的用户界面(UI)接收用户输入,该用户输入指示对所述空间的二维(2D)表示内的位置的用户选择。该位置对应于所述空间内的目标对象的位置。该操作还包括从UI接收多个抓取输入,该多个抓取输入指定机器人操纵器的末端执行器抓取目标对象的取向和平移。此外,该操作包括基于所接收的传感器数据和对应于用户输入的位置来生成目标对象的三维(3D)位置。另外,该操作包括使用所生成的3D位置和指定机器人操纵器的末端执行器的取向和平移的多个抓取输入来指示机器人操纵器的末端执行器抓取目标对象。
本公开的方面可以包括以下可选特征中的一个或多个。在一些实施方式中,该操作还包括由机器人操纵器的末端执行器抓取目标对象。在一些实施例中,多个抓取输入对应于对机器人操纵器的末端执行器的一个或多个自由度的多个约束。在进一步的实施例中,一个或多个自由度包括末端执行器的俯仰、末端执行器的滚动、在x方向上的第一平移和在y方向上的第二平移。在更进一步的实施例中,一个或多个自由度还包括在z方向上的第三平移。
在一些示例中,接收指定机器人操纵器的末端执行器抓取目标对象的取向和平移的多个抓取输入包括接收指定机器人操纵器的末端执行器抓取目标对象的第一取向的第一抓取输入,以及基于机器人操纵器的末端执行器的所设计的第一取向指示修改UI处的包括目标对象的视口图像。在另外的示例中,第一取向包括用于机器人操纵器的末端执行器抓取目标对象的俯仰或滚动中的一个。在其他另外的示例中,UI包括第一窗口和与第一窗口分开的第二窗口。第一窗口包括视口图像,视口图像显示机器人周围的环境内的包括目标对象的空间的传感器数据,第二窗口包括表示末端执行器的图形图标。该图形图标能够被用户操纵以指示第一抓取输入,该第一抓取输入指定用于机器人操纵器的末端执行器抓取目标对象的第一取向。在更进一步的示例中,该图形图标包括末端执行器的线框表示和径向刻度盘,以指定俯仰作为机器人操纵器的末端执行器抓取目标对象的第一取向。在其他更进一步的示例中,操作还包括在视口图像上叠加处于由第一抓取输入指定的第一取向的末端执行器的表示,以及从UI接收第二抓取输入,该第二抓取输入指定机器人操纵器的末端执行器抓取目标对象的第二取向。
在另外的更进一步的示例中,第二取向对应于机器人操纵器的末端执行器抓取目标对象的滚动。在其他另外的甚至进一步的示例中,接收指定第二取向的第二抓取输入包括接收另一用户输入,所述另一用户输入指示图形图标的另一用户选择,所述另一用户选择指示机器人操纵器的末端执行器抓取目标对象的滚动。
在附图和下面的描述中阐述了本公开的一个或多个实施方式的细节。其他方面、特征和优点将从说明书和附图以及权利要求书中显而易见。
附图说明
图1A是能够抓取对象的示例机器人的透视图。
图1B是图1A的机器人的透视图,其中远程控制器与机器人通信。
图1C是图1A的机器人的示例系统的示意图。
图2A-图2C是用于图1A的机器人的示例抓取系统的示意图。
图3A是用于使用图1A的机器人抓取对象的用户界面的示例环境的示意图。
图3B-图3F是用于与图1A的机器人协调以抓取对象的示例用户界面的示意图。
图4是用于监督式自主抓取的方法的操作的示例布置的流程图。
图5是使用用户界面进行监督式自主抓取的方法的操作的示例布置的流程图。
图6是可以用于实现本文描述的系统和方法的示例计算设备的示意图。
各附图中相同的附图标记表示相同的元件。
具体实施方式
参考图1A-图1C,机器人100包括具有基于运动的结构的主体110,基于运动的结构诸如耦接到主体110的腿120a-d,腿120a-d使机器人100能够在环境10中四处移动。在一些示例中,每个腿120是可铰接结构,使得一个或多个关节J允许腿120的构件122移动。例如,每个腿120包括将腿120的上部构件122、122U耦接到主体110的髋关节JH和将腿120的上部构件122U耦接到腿120的下部构件122L的膝关节JK。尽管图1A描绘了具有四条腿120a-d的四足机器人,但是机器人100可以包括任何数量的腿或基于运动的结构(例如,具有两条腿的双足或类人机器人,或一条或多条腿的其他布置),其提供穿过环境10内的地形的手段。
为了穿过地形,每个腿120具有与地形的表面(即,牵引表面)接触的远端124。换句话说,腿120的远端124是腿120的由机器人100用于在机器人100的移动期间枢转、种植或通常提供牵引力的端部。例如,腿120的远端124对应于机器人100的脚。在一些示例中,尽管未示出,腿120的远端124包括踝关节JA,使得远端124可相对于腿120的下部构件122L铰接。
在所示的示例中,机器人100包括用作机器人操纵器的臂126。臂126可以被配置为围绕多个自由度移动,以便接合环境10的元素(例如,环境10内的对象)。在一些示例中,臂126包括一个或多个构件128,其中构件128通过关节J耦接,使得臂126可以围绕关节J枢转或旋转。例如,在具有多于一个构件128的情况下,臂126可以被配置成延伸或缩回。为了说明示例,图1A描绘了具有三个构件128的臂126,三个构件128对应于下部构件128L、上部构件128U和手构件128H(例如,示出为末端执行器150)。这里,下部构件128L可以围绕位于主体110附近的第一臂关节JA1旋转或枢转(例如,臂126连接到机器人100的主体110的位置)。下部构件128L在第二臂关节JA2处耦接到上部构件128U,并且上部构件128U在第三臂关节JA3处耦接到手构件128H。在一些示例中,诸如图1A和图1B,手构件128H或末端执行器150是机械夹持器,其包括被配置为执行环境10内的元素的不同类型的抓取的可移动钳爪和固定钳爪。可移动夹爪被配置成相对于固定夹爪移动,以便在夹持器的打开位置与夹持器的闭合位置(例如,围绕对象闭合)之间移动。在一些实施方式中,臂126另外包括第四关节JA4。第四关节JA4可以位于下部构件128L与上部构件128U的耦接附近,并且用于允许上部构件128U相对于下部构件128L扭转或旋转。换句话说,第四关节JA4可以用作类似于第三关节JA3的扭转关节或邻近手构件128H的臂126的腕关节。例如,作为扭转关节,耦接在关节J处的一个构件可以相对于耦接在关节J处的另一构件移动或旋转(例如,耦接在扭转关节处的第一构件是固定的,而耦接在扭转关节处的第二构件旋转)。在一些实施方式中,臂126在机器人100的主体110上的插座处连接到机器人100。在一些配置中,插座被配置为连接器,使得臂126可以附接到机器人100或从机器人100分开,这取决于臂126是否需要用于操作。
机器人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方向轴AX和y方向轴AY的方向上延伸而跨越X-Y平面。地平面是指地表面14,其中机器人100的腿120的远端124可以产生牵引力以帮助机器人100围绕环境30移动。机器人100的另一解剖平面是横跨机器人100的主体110延伸的额状平面(例如,从具有第一条腿120a的机器人100的左侧到具有第二条腿120b的机器人100的右侧)。额状平面通过在x方向轴线AX和z方向轴线AZ的方向上延伸而跨越X-Z平面。
为了围绕环境10操纵或使用臂126执行任务,机器人100包括具有一个或多个传感器132、132a-n(例如,示出为第一传感器132、132a和第二传感器132、132b)的传感器系统130。传感器132可以包括视觉/图像传感器、惯性传感器(例如,惯性测量单元(IMU))、力传感器和/或运动传感器。传感器132的一些示例包括相机,诸如立体相机、飞行时间(TOF)传感器、扫描光检测和测距(LIDAR)传感器或扫描激光检测和测距(LADAR)传感器。在一些示例中,传感器132具有限定对应于传感器132的感测范围或区域的对应视场FV。例如,图1A描绘了机器人100的视场FV。每个传感器132可以是可枢转的和/或可旋转的,使得传感器132可以例如围绕一个或多个轴(例如,相对于地平面的x轴、y轴或z轴)改变视场FV
当利用传感器132勘测视场FV时,传感器系统130生成对应于视场FV的传感器数据134(也称为图像数据)。传感器系统130可以利用安装在机器人100的主体110上或附近的传感器132(例如,传感器132a、132b)生成视场FV。传感器系统可以附加地和/或替代地利用安装在臂126的末端执行器150处或附近的传感器132(例如,(多个)传感器132c)来生成视场FV。一个或多个传感器132可以捕获定义围绕机器人100的环境10内的区域的三维点云的传感器数据134。在一些示例中,传感器数据134是对应于由三维体积图像传感器132生成的三维体积点云的图像数据。附加地或替代地,当机器人100在环境10周围操纵时,传感器系统130收集机器人100的姿势数据,其包括惯性测量数据(例如,由IMU测量)。在一些示例中,姿势数据包括关于机器人100的运动学数据和/或取向数据,例如,关于机器人100的腿120或臂126的关节J或其他部分的运动学数据和/或取向数据。利用传感器数据134,机器人100的各个系统可以使用传感器数据134来定义机器人100(例如,机器人100的运动学)的当前状态和/或围绕机器人100的环境30的当前状态。
在一些实施方式中,传感器系统130包括耦接到关节J的(多个)传感器132。此外,这些传感器132可以耦接到操作机器人100的关节J的马达M(例如,传感器132、132a-b)。这里,这些传感器132以基于关节的传感器数据134的形式生成关节动力学。被收集为基于关节的传感器数据134的关节动力学可以包括关节角度(例如,上部构件122U相对于下部构件122L或手构件126H相对于臂126或机器人100的另一构件)、关节速度(例如,关节角速度或关节角加速度)和/或在关节J处经历的力(也称为关节力)。由一个或多个传感器132生成的基于关节的传感器数据可以是原始传感器数据、被进一步处理以形成不同类型的关节动力学的数据,或两者的某种组合。例如,传感器132测量关节位置(或在关节J处耦接的构件122的位置),并且机器人100的系统执行进一步处理以从位置数据导出速度和/或加速度。在其他示例中,传感器132被配置为直接测量速度和/或加速度。
当传感器系统130收集传感器数据134时,计算系统140存储、处理传感器数据134和/或将传感器数据134传送到机器人100的各个系统(例如,控制系统170、抓取系统200和/或远程控制器20)。为了执行与传感器数据134相关的计算任务,机器人100的计算系统140包括数据处理硬件142和存储器硬件144。数据处理硬件142被配置为执行存储在存储器硬件144中的指令,以执行与机器人100的活动(例如,移动和/或基于移动的活动)相关的计算任务。一般而言,计算系统140是指数据处理硬件142和/或存储器硬件144的一个或多个位置。
在一些示例中,计算系统140是位于机器人100上的本地系统。当位于机器人100上时,计算系统140可以是集中式的(即,在机器人100上的单个位置/区域中,例如,机器人100的主体110)、分散式的(即,位于机器人100周围的各个位置处)或两者的混合组合(例如,其中大部分集中式硬件和少数分散式硬件)。为了说明一些差异,分散式计算系统140可以允许处理在活动位置处(例如,在移动腿120的关节的马达处)发生,而集中式计算系统140可以允许中央处理中枢与位于机器人100上的各个位置处的系统通信(例如,与移动腿120的关节的马达通信)。
附加地或替代地,计算系统140包括远离机器人100定位的计算资源。例如,计算系统140经由网络180与远程系统160(例如,远程服务器或基于云的环境)通信。非常类似于计算系统140,远程系统160包括远程计算资源,诸如远程数据处理硬件162和远程存储器硬件164。这里,传感器数据134或其他经处理的数据(例如,由计算系统140本地处理的数据)可以存储在远程系统160中,并且可以由计算系统140访问。在另外的示例中,计算系统140被配置为利用远程资源162、164作为计算资源142、144的扩展,使得计算系统140的资源可以驻留在远程系统160的资源上。
在一些实施方式中,如图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在远离固定钳口的方向上致动可移动钳口以打开夹持器。
给定控制器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。
现在参考图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。
用户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的二维图像表示。
在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中的所选择的目标对象执行动作。
在一些实施方式中,由用户选择的目标对象对应于机器人100的机器人操纵器的末端执行器150要抓取的相应对象。例如,制造环境10中的机器人100的传感器系统130为制造环境10内的区域生成传感器数据134的三维点云。UI 300显示与制造环境10内的传感器数据134的三维点云相对应的二维图像。用户12可以通过在UI 300上选择目标对象(例如,阀)来指示机器人100抓取制造环境10内的目标对象(例如,阀)。远程控制器20将所选择的目标对象发送给机器人100以对目标对象执行抓取。
抓取系统200接收用户选择的目标对象和传感器数据134。根据用户选择的目标对象和传感器数据134,抓取系统200标识三维环境10内目标对象所在的区域。例如,抓取系统200生成与三维环境10内目标对象实际所在的区域相对应的抓取区域,以便指定末端执行器150将抓取目标对象的位置。具体地,抓取系统200将用户选择的目标对象从二维图像变换到传感器数据134的三维点云上的抓取区域。通过生成抓取区域,抓取系统200允许来自二维图像的所选择的目标对象指示机器人100在三维环境10中抓取目标对象。在一些配置中,抓取系统200通过将来自图像的所选目标对象的多条射线投影到传感器数据134的三维点云上来生成抓取区域,如下面在图2C中更详细地讨论的。在确定抓取区域之后,抓取系统200确定用于机器人操纵器(即,机器人100的臂126)抓取目标对象的抓取几何形状212。抓取几何形状212指示机器人操纵器的末端执行器150的姿势,其中姿势表示末端执行器150的平移(例如,x坐标、y坐标和z坐标)和取向(例如,俯仰、偏航和滚动)。也就是说,抓取几何形状212指示机器人操纵器的末端执行器150用来抓取目标对象的姿势(例如,取向和平移)。
抓取系统200将初始抓取几何形状212I发送到一个或多个控制器172,控制器172指示机器人100在目标对象上执行抓取几何形状212。在一些实施方式中,抓取系统200包括一个或多个专用控制器172来指示机器人100执行抓取几何形状212。在其他实施方式中,抓取系统200将抓取几何形状212发送到控制系统170的一个或多个控制器172,控制器172指示机器人100执行抓取几何形状212。
现在参考图2A,在一些实施方式中,抓取系统200确定机器人操纵器的末端执行器150的抓取几何形状212以抓取由用户12选择的目标对象。也就是说,抓取系统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以抓取所选择的目标对象。
在一些实施方式中,用户12可以在远程控制器20处输入末端执行器约束,其中末端执行器约束约束末端执行器150的一个或多个自由度。自由度可以包括末端执行器150的平移(例如,x坐标、y坐标和z坐标)和/或取向(例如,俯仰、滚动和偏航)。换句话说,末端执行器150可以具有六个自由度,其中三个自由度涉及平移,三个自由度涉及取向。用户12可以指示末端执行器150利用包括末端执行器约束的抓取几何形状212来抓取目标对象,以便约束末端执行器150的自由度。例如,用户12可以指示机器人100以九十度的俯仰抓取目标对象。在该示例中,抓取系统200可以生成包括九十度的俯仰的任何抓取几何形状。在另一示例中,用户12指示机器人100利用包括特定高度(例如,z坐标)的抓取几何形状212来抓取目标对象。因此,抓取几何形状生成器210可以生成包括用户选择的z坐标的抓取几何形状212。用户12可以包括任何数量的末端执行器约束,以在抓取目标对象时约束末端执行器150。例如,组合两个示例,用户12可以输入针对俯仰和z坐标两者的末端执行器150约束(例如,当为末端执行器150分配目标对象来抓取时)。末端执行器约束允许用户12为末端执行器150定制任何数量的自由度来抓取目标对象。
在一些实施方式中,在机器人100开始执行初始抓取几何形状212I之后,抓取系统200可以确定新的抓取几何形状212N来抓取目标对象。在机器人100开始执行初始抓取几何形状212I之后,抓取系统200可以确定改进和/或细化正在执行的抓取几何形状212的新的抓取几何形状212N。这里,抓取几何形状212的改进或细化可以对应于当与初始抓取几何形状212I相比时更有效(例如,在能量或运动方面更具成本效益的抓取)、具有更高的成功可能性、具有更优的执行时间(例如,更快或更慢)等的抓取几何形状212来抓取目标对象。抓取系统200可以基于更新的传感器数据134U生成新的抓取几何形状212N,更新的传感器数据134U表示当机器人100在环境30内操纵以抓取目标对象时一个或多个传感器132的变化的视场Fv。也就是说,当机器人100在环境30内操纵以执行初始抓取几何形状212I以抓取目标对象时,一个或多个传感器132捕获环境10内的变化的视场Fv。基于变化的视场Fv(例如,更新的传感器数据134U),抓取系统确定新的抓取几何形状212N。例如,机器人100的传感器132(例如,安装在末端执行器150上或附近的传感器132)可以以某个感测频率生成传感器数据134。因此,当机器人100移动以执行初始抓取几何形状212I时,传感器132可以移动并且可以以感测频率生成新的传感器数据134(称为“更新的传感器数据134U”),其固有地可以包括能够改进或细化初始抓取几何形状212I的新信息。因此,当根据初始抓取几何形状212I执行末端执行器150的抓取时,抓取系统200可以利用该更新的传感器数据134U,以更新或修改初始抓取几何形状212I;从而导致确保目标对象被最佳地抓取的连续或周期性反馈回路。
作为示例,当机器人操纵器的末端执行器150移动以执行初始抓取几何形状212I时,传感器系统130接收指示目标对象附近的异物的更新的传感器数据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以成功抓取目标对象。
在一些实施方式中,在机器人操纵器的末端执行器150开始执行抓取几何形状212与完成在目标对象上执行抓取几何形状212之间的时间段期间,传感器系统130接收更新的传感器数据134U。也就是说,当机器人操纵器的末端执行器150移动以在目标对象上执行初始抓取几何形状212I时,传感器系统130接收更新的传感器数据134U。更新的传感器数据134U表示当机器人100在环境30内移动以抓取目标对象时的更新的视场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。
可选地,抓取系统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。
在一些示例中,调节器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。
现在参考图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。
在一些配置中,可以存在这样大量的潜在候选抓取几何形状212,使得生成器210可以与选择器220结合工作,以在特定时刻生成N个最佳数量的抓取几何形状212。在一些实施方式中,生成器210被预先配置为在任何特定时刻生成最大数量的候选抓取几何形状212。在一些示例中,可以基于生成器210生成抓取几何形状212的相对定时来减少、降低(discount)或衰减抓取几何形状212的数量。例如,生成器210可以生成大量抓取几何形状212以在第一时刻形成初始抓取几何形状212I,但是然后,在第二时刻,生成器210可以被配置为在机器人操纵器执行初始抓取几何形状212I时生成较少数量的抓取几何形状212。
选择器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。
抓取系统200将初始抓取几何形状212I发送到控制系统170,以启动一系列移动来根据初始抓取几何形状2121抓取目标对象。换句话说,为了执行初始抓取几何形状212I,控制系统170指示臂126从臂126的初始姿势移动到由初始抓取几何形状212I指定的抓取姿势。这里,臂126的初始姿势是指当控制器20从用户12接收到选择要由臂126的末端执行器150抓取的目标对象的输入时臂126的姿势或状态。在这方面,初始抓取几何形状212I可以基于机器人操纵器的末端执行器150的初始姿势。例如,当在控制器20处向用户12提供图像的传感器132来自末端执行器150处的传感器132时,与末端执行器150相关联的传感器132的视场Fv将用于定义初始抓取几何形状212I,并且该视场Fv基于臂126的初始姿势。
在一些实施方式中,在机器人100开始对初始抓取几何形状212I执行之后,抓取系统200确定多个新的候选抓取几何形状212N。也就是说,当机器人操纵器的末端执行器150基于初始抓取几何形状212I移动以抓取目标对象时,传感器系统130接收用于机器人操纵器的末端执行器150的第二姿势的更新的传感器数据134U。传感器系统130将更新的传感器数据134U发送到抓取系统200。抓取几何形状生成器210基于更新的传感器数据134确定新的一组候选抓取几何形状212N。新的一组候选抓取几何形状212N可以包括任何数量的新的候选抓取几何形状212N。抓取几何形状生成器210将每个新的候选抓取几何形状212N发送到评分器240。
对新的候选抓取几何形状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。
在一些实施方式中,当新的候选抓取几何形状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。
在一些实施方式中,当新的候选抓取几何形状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的变化。
现在参考图2C,在一些示例中,抓取几何形状生成器210生成抓取区域216。通过生成抓取区域216,抓取几何形状生成器210将用户选择的感兴趣的二维区域(例如,选择的目标对象)转换成传感器数据134的三维点云中的抓取区域216。具体地,抓取区域216的生成允许用户12与二维图像交互以指示机器人100在三维环境30中执行动作。抓取几何形状生成器210从UI 300和传感器数据134(例如,三维点云)接收用户选择的目标对象。用户12在UI 300上的二维图像上选择目标对象,其对应于机器人100的视场Fv的数据134的三维点云。抓取几何形状生成器210将来自二维图像的所选目标对象的多条射线投影到传感器数据134的三维点云上。因此,抓取区域216对应于由投影射线和传感器数据134的三维点云的相交形成的区域。
具体地,抓取几何形状生成器210投影来自所选择的目标对象的一个或多个像素的多条射线。从二维图像投影到三维点云的多条射线中的每条射线表示所选择的目标对象的像素。三维点云中的多条射线的集合表示抓取区域216。通过投影来自所选择的目标对象的每个像素的射线,抓取几何形状生成器210将用户12感兴趣的二维区域(例如,所选择的目标对象)转换为三维抓取区域216。换句话说,抓取区域216指定包括目标对象的三维区域,使得抓取系统200可以生成抓取几何形状212以抓取抓取区域216内的三维目标对象。这意味着抓取区域216指定机器人操纵器要抓取的感兴趣区域。从该标识的抓取区域216,抓取几何形状生成器210可以使用所标识的抓取区域216的边界内的传感器数据134来理解目标对象(例如,由3D点云传感器数据134表示的目标对象的轮廓)并确定抓取几何形状212。
在一些示例中,指示机器人操纵器的末端执行器150基于抓取几何形状212来抓取抓取区域216内的目标对象包括一个或多个控制器172指示机器人100的主体110朝向目标对象俯仰。也就是说,一个或多个控制器172可以指示机器人100的末端执行器150朝向目标对象操纵和机器人100的主体110朝向目标对象俯仰。通过指示末端执行器150和主体110两者,机器人100可以生成机器人操纵器的末端执行器150可以访问的更多自由度。
在其他示例中,一个或多个控制器172指示机器人100的第一条腿120围绕膝关节Jk朝向第一条腿120的下部构件122L旋转第一条腿120的上部构件122U。例如,一个或多个控制器172指示机器人100的每条腿120围绕膝关节Jk朝向下部构件122L旋转腿的上部构件122U以降低机器人100的主体110。在该示例中,当一个或多个控制器172指示机器人100的每条腿120时,机器人100的主体110降低,同时主体110的俯仰保持恒定。在另一示例中,一个或多个控制器172指示机器人100的腿120的子集使腿120的上部构件122U围绕膝关节Jk朝向下部构件122L旋转。这里,机器人100的主体110可以朝向目标对象俯仰,同时机器人的主体110朝向地表面14下降。
尽管机器人100的抓取系统200可以是自动抓取由用户12选择的对象的有效方式。如果用户12期望非常特定的抓取几何形状212来抓取目标对象,则该易用性特征可能具有限制。例如,用户12可以指示机器人100在执行初始动作之后对所选对象执行后续动作。例如,用户12首先指示机器人100抓取阀,然后指示机器人100转动阀。在另一示例中,用户12首先指示机器人100抓取开关,然后指示机器人100翻转开关。
在这些随后的动作示例中,用户12可能更愿意不受自动抓取系统的控制。也就是说,利用自动系统,机器人100的自动系统确定抓取对象的位置和取向可能无法执行用户12期望机器人100执行的后续动作。例如,机器人100的自动系统确定抓取阀的位置和取向,所述位置和取向不能执行转动阀的后续动作。这里,机器人100的有限的运动范围防止机器人100执行用自动系统生成的抓取位置和取向转动阀的后续动作。机器人100的自动系统可以不在允许机器人100随后转动阀的位置和取向上抓取阀,因为机器人100不知道当自动系统生成阀抓取操纵时用户12打算执行的后续动作。这些场景突出了以下事实:当用户12想要机器人操纵器在抓取目标对象时以特定方式表现时,自动化系统可能会有其挫折。
为了解决这些挫折,本文的实施方式涉及用于自主抓取的用户界面(UI),其允许用户12指示机器人100以特定位置和取向抓取对象。用户界面呈现了机器人操纵器的末端执行器150的位置和取向,以便以直观的方式抓取对象。这里,机器人100的传感器系统130接收对应于机器人100周围的环境10的传感器数据134。在用户界面上以二维表示为机器人100的用户12显示传感器数据134,该二维表示允许用户12选择机器人100的环境10内的目标对象。另外,用户12可以向用户界面提供抓取输入,该抓取输入约束机器人操纵器的末端执行器150的姿势。机器人操纵器的末端执行器150的姿势表示末端执行器150的位置(例如,x方向、y方向和z方向)和取向(例如,俯仰、滚动和偏航)。机器人100基于所接收的传感器数据134和对应于所选择的目标对象和抓取输入的位置来生成目标对象的三维位置。机器人100的控制系统170基于目标对象的三维位置指示机器人操纵器的末端执行器150以用户12提供位置和取向抓取目标对象。
现在参考图3A,在一些实施方式中,机器人100的传感器系统130接收机器人100周围的环境10内的区域的传感器数据134。机器人100将传感器数据134从传感器系统130发送到远程控制器20,远程控制器20在UI 300上显示对应于传感器数据134的图像。在UI 300上显示的图像是对应于机器人100周围的环境10内的区域的二维(2D)图像。具体地,图像是机器人100周围的三维(3D)环境10的2D表示。
用户12通过向UI 300提供选择区域的2D表示内的位置的用户输入来与UI 300交互。由用户12选择的位置对应于目标对象302在区域内的位置。另外,用户12通过为机器人100的末端执行器150提供多个抓取输入304来与UI 300交互。抓取输入304限定机器人操纵器的末端执行器150抓取目标对象302的平移和取向(例如,姿势)。在一些实施方式中,多个抓取输入304对应于对机器人操纵器的末端执行器150的一个或多个自由度的多个约束。一个或多个自由度可以包括末端执行器150的俯仰、末端执行器150的滚动、末端执行器150的偏航、在x方向上的第一平移和在y方向上的第二平移。一个或多个自由度还可以包括在z方向上的第三平移。这里,末端执行器150的平移(例如,在x方向、y方向和/或z方向上)和取向(俯仰、偏航和/或滚动)可以对应于末端执行器150本地的坐标系(例如,图1A所示)。远程控制器20将所选择的目标对象302和多个抓取输入304传送到机器人100。
机器人100的传感器系统130基于接收到的传感器数据134、对应于用户选择的目标对象302的位置和抓取输入304来生成目标对象302的3D位置。也就是说,机器人100基于用户12在UI 300上显示的传感器数据134的2D图像表示上选择目标对象302来生成目标对象302的3D位置。例如,机器人100从2D图像接收用户选择的目标对象302,并生成与环境10内的所选择的目标对象302的位置相对应的3D位置。机器人100的一个或多个控制器172基于指定机器人操纵器的末端执行器150的取向和平移(例如,姿势)的多个抓取输入304指示机器人操纵器的末端执行器150在所生成的3D位置处抓取目标对象302。
现在参考图3A-图3F,在一些示例中,UI 300包括第一窗口310和第二窗口320。UI300的第一窗口310包括视口,该视口显示与机器人100周围的环境10内的包括目标对象302的区域的传感器数据134相对应的2D图像312。第二窗口320包括表示机器人操纵器的末端执行器150的图形图标322。尽管图3C将第二窗口320示出为与第一窗口310分开,但是在一些示例中,第二窗口320的内容可以包括在第一窗口310内(例如,被配置为覆盖在第一窗口310中显示的2D图像312上)。在一些实施方式中,图形图标322表示为末端执行器150指定第一取向的手段。在图3B的具体示例中,图形图标322包括末端执行器150的线框表示,作为指定末端执行器150的第一取向的手段。这里,图形图标322还包括与末端执行器150的线框表示相关联的径向刻度盘,使得用户12可以通过将线框表示移动到径向刻度盘上的特定位置来生成第一取向。例如,在第一取向表示末端执行器150的俯仰的情况下,径向刻度盘指定机器人操纵器的末端执行器150的俯仰。图形图标322能够由用户12操纵(例如,沿着径向刻度盘旋转到特定程度)以指示指定机器人操纵器的末端执行器150的第一取向的第一抓取输入304。也就是说,用户12可以将径向刻度盘操纵到末端执行器150的期望俯仰,以将第一抓取输入304输入到UI 300中。在这方面,第一抓取输入304标识末端执行器150应当抓取目标对象302的第一取向。
在一些示例中,UI 300还包括具有选项菜单的第三窗口330,该选项菜单可以影响机器人操纵器的末端执行器150的功能的某个部分(例如,影响末端执行器150如何抓取目标对象302)。例如,用户12可以使用这些菜单选项来在控制器20处切换不同类型的抓取模式或各种抓取模式的特征。在一些配置中,诸如图3C,第三窗口330是与第一窗口310和第二窗口320两者完全分开的窗口。在一些实施方式中,菜单包括多个用户可选择选项。用户可选择选项可以包括用于启动抓取模式的第一选项(例如,第一可选择按钮)、用于启动末端执行器150的自定义抓取模式的第二选项(例如,第二可选择按钮)和/或用于启动对目标对象302的自动抓取的第三选项(例如,第三可选择按钮)。这里,用于自动抓取模式的可选择选项允许用户12选择目标对象302,并且机器人100自动抓取所选择的目标对象302(例如,使用抓取系统200的自动抓取过程)。相反,目标对象302的手动抓取模式的选项允许用户12启动自定义抓取过程,该自定义抓取过程使得用户12能够选择(或指定)控制机器人操纵器的末端执行器150如何抓取目标对象302的抓取输入304。
在一些示例中,UI 300在接收到每个抓取输入304之后更新在控制器20处向用户12显示的2D图像312。例如,在用户12输入抓取输入304之后,末端执行器150可以根据抓取输入304移动。末端执行器150的这种移动又可以生成新的或经更新的传感器数据134(例如,特别是当生成传感器数据134的传感器132位于末端执行器150上时),其在UI 300处被显示为新的或经更新的2D图像312。这里,当表示传感器数据134的2D图像被显示在第一窗口310的视口中时,用户12将能够在视口中可视化新的或更新的2D图像312。通过在接收到每个抓取输入304之后更新视口图像312,UI 300在机器人操纵器的末端执行器150操纵到每个抓取输入304(例如,在特定方向上俯仰、滚动、偏航或平移)之后向用户12提供视觉反馈。此外,允许用户12在UI 300处的2D图像312中(例如,在二维视口图像312处)选择或输入的每个抓取输入304可以允许用户12避免与更复杂的3D空间交互来指定抓取输入304。具体地,从三维表示中选择抓取输入304对于用户12来说通常是困难的,因为改变抓取输入304之一可能使先前提供的抓取输入304无效。在3D空间中,这对于用户12变得不太直观,尤其是可能不习惯于以三维方式思考或输入约束的用户12。例如,指示机器人100从顶部取向抓取目标对象302的抓取位置(例如,x方向、y方向和z方向)不同于指示机器人100从侧面取向抓取目标对象302的抓取位置。因此,如果用户12首先向末端执行器150提供位置,则末端执行器150的取向的后续改变可以使末端执行器150的先前提供的位置无效。相反,通过顺序地提示用户12在二维视口图像312中具有视觉反馈的同时提供每个抓取输入304,UI 300能够防止用户12无意地使任何先前提供的抓取输入304无效。此外,用户12可以能够快速和/或有效地识别抓取输入304是否以他或她预期的方式约束目标对象302的手动抓取。
在一些实施方式中,用户12通过提供第一抓取输入304来提供多个抓取输入304,第一抓取输入304指定机器人操纵器的末端执行器150抓取目标对象302的第一取向。这里,第一取向可以包括用于机器人操纵器的末端执行器150抓取目标对象302的俯仰或滚动中的一个。作为响应,末端执行器150操纵到第一取向,并且机器人100的一个或多个传感器132生成与第一取向处的视场Fv相对应的传感器数据134。机器人100将与第一取向处的视场Fv相对应的传感器数据134发送到UI 300,UI 300显示与第一取向处的第一视场Fv相对应的二维视口图像312。然后,用户12可以提供第二抓取输入304,第二抓取输入304基于第一取向处的修改后的视口图像312为机器人操纵器的末端执行器150指定第二取向。
例如,用户12向UI 300提供第一抓取输入304,该第一抓取输入304指定末端执行器150的二十度俯仰的第一取向。机器人100的控制系统170指示末端执行器150操纵到作为第一取向的二十度俯仰。当机器人操纵器的末端执行器150操纵到第一取向(例如,二十度俯仰)时,一个或多个传感器132生成与末端执行器150在第一取向处的视场Fv相对应的传感器数据134。机器人100将传感器数据发送到UI 300,UI 300显示与处于第一取向的末端执行器150的视场Fv相对应的视口图像312。然后,用户12可以基于以第一取向显示视场Fv的视口图像312向UI 300提供指定第二取向的第二抓取输入304。例如,用户12提供第二抓取输入304,该第二抓取输入304指定来自显示二十度俯仰的视口图像312的末端执行器150的六十五度滚动的第二取向。机器人100的控制系统170指示末端执行器150操纵到第二取向(例如,六十五度滚动),同时保持第一取向(例如,二十度俯仰)。也就是说,控制系统170执行第二抓取输入304而不使先前提供的第一抓取输入304无效。
在一些实施方式中,UI 300在视口图像312上叠加由第一抓取输入304指定的第一取向处的末端执行器150的表示(例如,末端执行器150的线框表示)。例如,在末端执行器150操纵到第一取向并且UI 300显示与第一取向处的视场Fv相对应的传感器数据134之后,UI 300将末端执行器150的线框表示叠加在视口图像312上。末端执行器150的重叠表示对应于末端执行器150相对于目标对象302的当前姿势(例如,在第一取向处)。用户12可以在第一窗口310处操纵末端执行器150的重叠表示以提供第二抓取输入304。具体地,用户12可以操纵重叠表示以为末端执行器150提供第二抓取输入304。通过在第一窗口310处操纵末端执行器150的表示,用户12获得针对第二抓取输入304的末端执行器150相对于目标对象302的2D视觉表示。
UI 300和/或抓取系统200可以导出一个或多个抓取输入304,而无需来自用户12的关于该特定抓取输入304的明确输入。在一些实施方式中,机器人100基于机器人100的位置导出一个或多个抓取输入304。具体地,机器人100基于机器人100相对于目标对象302的位置来导出抓取输入304。在一些示例中,在用户12选择目标对象302之前,机器人100基于机器人100相对于目标对象302的先前位置来导出抓取输入304。在其他示例中,在用户12选择目标对象302之后,机器人100基于机器人100相对于目标对象302的位置来导出一个或多个抓取输入304。也就是说,在用户12选择目标对象302之后,机器人100相对于目标对象302移动到新位置,并且机器人100使用新位置来导出抓取输入304。例如,用户12在UI 300上选择目标对象302,并且机器人100移动到相对于目标对象302的新位置。在该示例中,一旦机器人100相对于目标对象302移动到新位置,UI 300和/或抓取系统200就可以使用新位置来导出指定末端执行器150的偏航取向的抓取输入304。在任一种情况下,基于机器人100相对于目标对象302的位置,机器人100导出机器人操纵器的末端执行器150的偏航取向以抓取目标对象302。因此,当末端执行器150抓取目标对象302时,导出的偏航取向可以形成对与偏航相对应的自由度的约束。用户12可以在机器人100(例如,UI 300和/或抓取系统200)导出偏航取向之前或之后提供剩余的抓取输入304。末端执行器150的导出的取向是非限制性示例,机器人100可以基于机器人100相对于目标对象302的位置来导出多个抓取输入304中的任何抓取输入(例如,末端执行器150的任何位置或取向)。
参考图3B,机器人100的传感器系统130接收机器人100的环境10内的区域的传感器数据134。机器人100将传感器数据134发送到远程控制器20,远程控制器20将传感器数据134显示为二维表示。用户12从远程控制器20处的UI 300上显示的二维表示中选择目标对象302。具体地,用户12向2D表示提供选择与目标对象302的位置相对应的位置的用户输入。远程控制器20将所选择的目标对象302发送到机器人100(例如,发送到机器人100的抓取系统200)。机器人100基于机器人100相对于所选择的目标对象302的位置来导出末端执行器150的偏航取向。然后,用户12提供对应于机器人操纵器的末端执行器150的一个或多个自由度的多个抓取输入304。
参考图3C,用户12提供第一抓取输入304,该第一抓取输入304指定末端执行器150的俯仰的第一取向。例如,用户12操纵第二窗口320中的图形图标322的径向刻度盘以指定对应于末端执行器150的俯仰(例如,示出为87.7度的俯仰)的第一取向。远程控制器20将第一抓取输入304(例如,第一取向)发送到控制系统170,控制系统170指示机器人100将末端执行器150操纵到与第一抓取输入304相对应的位置(或姿势)。在末端执行器150操纵到与第一抓取输入304相对应的位置(或姿势)之后,机器人100将来自一个或多个传感器132的传感器数据134发送到远程控制器20,该传感器数据134与末端执行器150在第一取向处的视场Fv相对应。UI 300在第一窗口310中向用户12显示与第一取向处的传感器数据134相对应的视口图像312。
参考图3D,在一些示例中,用户12提供第二抓取输入304,该第二抓取输入304指定对应于末端执行器150的x方向和y方向的第一平移。在其他示例中,第二抓取输入304指定仅对应于x方向或仅对应于y方向的第一平移。用户12可以通过将末端执行器150在第一窗口310处的表示操纵到指定的第一平移(例如,x方向和y方向)来提供第二抓取输入304。末端执行器150的表示相对于第一窗口310处的视口图像312移动,以帮助用户12可视化末端执行器150相对于目标对象302的第一平移位置。远程控制器20将第二抓取输入304发送到控制系统170,控制系统170又指示机器人100将末端执行器150操纵到x方向和y方向的第一平移。控制系统170指示机器人100的末端执行器150操纵到第一平移,同时保持末端执行器150的第一取向。也就是说,在机器人操纵器的末端执行器150操纵到第一平移之后,末端执行器150处于包括第一取向(例如,末端执行器150的俯仰)和第一平移(例如,末端执行器150的x方向和y方向)的姿势。具体地,控制系统170指示机器人操纵器的末端执行器150在末端执行器150的第一取向(例如,第一抓取输入304)保持有效的同时操纵到第一平移(例如,第二抓取输入304)。机器人100将来自一个或多个传感器132的传感器数据134发送到远程控制器20,所述传感器数据134对应于末端执行器150在第一取向和第一平移处的视场Fv。UI 300向用户12显示与第一取向和第一平移处的传感器数据134相对应的视口图像312。当比较图3C和图3D时,这些图的组合指示所描述的序列,其中用户12首先使用图3C中的图形图标322的径向刻度盘来设置末端执行器150的俯仰,然后用户12使用叠加在图3D中的视口图像312上的末端执行器150的可选择图形表示来指示末端执行器150在特定俯仰处的x平移和y平移。
参考图3E,在一些实施方式中,用户12提供第三抓取输入304,第三抓取输入304指定对应于末端执行器150的旋转的第二取向。用户12通过在第一窗口310处操纵末端执行器150的重叠图形表示来提供指定第二取向的第三抓取输入304。当用户12操纵末端执行器150的表示以帮助用户12可视化末端执行器150相对于目标对象302的第二取向时,末端执行器150的重叠表示相对于视口图像312移动。远程控制器20将第三抓取输入304发送到控制系统170,控制系统170指示机器人100将末端执行器150操纵到整合第三抓取输入304的位置(或姿势),第三抓取输入304指定末端执行器150的第二取向(例如,末端执行器150的滚动)。控制系统170指示机器人100的末端执行器150操纵到整合第三抓取输入304的位置(或姿势),同时保持末端执行器150的第一取向和第一平移。也就是说,在机器人操纵器的末端执行器150操纵到包含第三抓取输入304的位置之后,末端执行器150处于包括第一取向(例如,末端执行器150的俯仰)、第一平移(例如,末端执行器150的x方向和y方向)和第二取向(例如,末端执行器150的滚动)的姿势。机器人100从一个或多个传感器132发送与末端执行器150在包括第一取向、第一平移和第二取向的姿势下的视场Fv相对应的传感器数据134。UI 300在控制器20处向用户12显示与第一取向、第一平移和第二取向处的传感器数据134相对应的视口图像312。
参考图3F,用户12可以提供第四抓取输入304,第四抓取输入304指定与末端执行器150的z方向相对应的第二平移。在一些示例中,用户12通过选择UI 300的第三窗口330中的选项(例如,按钮或图标)来选择手动提供对应于z方向的第二平移。当用户12通过选择手动选项来选择手动模式时,用户12通过操纵UI 300的第二窗口320中的图形图标322来提供对应于z方向的第二平移。也就是说,用户12可以与末端执行器150的图形图标322交互以提供末端执行器150的指定的z方向来抓取目标对象302。如将图3F的第二窗口320与图3C的第二窗口320进行比较可以看出的,第二窗口320可以显示帮助用户12输入末端执行器150的特定取向或平移的不同图形图标322。当用户12输入第四抓取输入304(例如,平移的z方向)时,远程控制器20将第四抓取输入304(例如,z方向)发送到控制系统170,控制系统170指示机器人100将末端执行器150操纵到包含第四抓取输入304的位置(或姿势)。远程控制器20将第四抓取输入304发送到控制系统170,控制系统170指示机器人100将末端执行器150操纵到整合第四抓取输入304的位置(或姿势),第四抓取输入304指定末端执行器150的z方向平移。控制系统170指示机器人的末端执行器150操纵到包含第四抓取输入304的位置或姿势,同时保持末端执行器150的第一取向、第一平移、第二取向和第二平移。也就是说,在机器人操纵器的末端执行器150操纵到体现第四抓取输入304的方位之后,末端执行器150处于包括第一取向(例如,末端执行器150的俯仰)、第一平移(例如,末端执行器150的x方向和y方向)和第二取向(例如,末端执行器150的滚动)的姿势。当末端执行器150采取该姿势时,机器人100将来自与末端执行器150的视场Fv相对应的一个或多个传感器132的传感器数据134发送到远程控制器20以供用户12可视化。例如,UI 300在第一窗口310的视口图像312中显示在假设的姿势下的视场Fv的传感器数据134。换句话说,视口图像312将显示与末端执行器150的第一取向、第一平移、第二取向和第二平移相对应的传感器数据134。
在接收到多个抓取输入304或者由UI 300的手动模式设计的序列完成之后,控制系统170指示机器人操纵器的末端执行器150抓取目标对象302。具体地,在机器人100导出末端执行器150的偏航并接收到所选择的目标对象302、第一取向(例如,末端执行器150的俯仰)、第一平移(例如,末端执行器150的x方向和y方向)、第二取向(例如,末端执行器150的滚动)和第二平移(例如,末端执行器150的z方向)之后,机器人操纵器的末端执行器150应该以用户12期望的抓取姿势定位。因此,机器人100的控制系统170指示末端执行器150使用该抓取姿势抓取目标对象302。
在一些示例中,用户12选择UI 300和/或抓取系统200以自动提供对应于末端执行器150的z方向的第二平移。在所描绘的UI 300中,用户12选择位于UI 300的第三窗口330中的“自动抓取”图标或按钮,以指示用户12想要抓取系统200自动提供对应于末端执行器150的z方向的第二平移。在一些示例中,自动选项被限制(即,用户12不能选择该选项),直到UI300已经从用户12接收到特定的一组抓取输入304。例如,在自动选项中,UI 300要求用户12已经提供了所选择的目标对象302,可以导出或可以不导出偏航取向)、末端执行器150的俯仰取向、末端执行器150的滚动取向、以及末端执行器150的x方向和y方向平移。给定已经接收或导出的多个这些抓取输入304,机器人100(例如,抓取系统200和/或UI 300)可以自动生成抓取所选择的目标对象302所需的z方向。
在一些实施方式中,用户12要求机器人操纵器的末端执行器150在末端执行器150的特定位置处抓取目标对象302。具体地,用户12指示末端执行器150在末端执行器150的端部(例如,指尖)处、在末端执行器150的中心(例如,手掌)处、或者在末端执行器150的指尖与末端执行器150的手掌之间的任何点处抓取目标对象302。为了指定末端执行器150上的特定抓取或接触位置,用户12可以使用包括在UI 300的第三窗口330中的图形图标。例如,图3F描绘了包括图形图标的第三窗口330,用户12可以选择该图形图标来调节器末端执行器150上的抓取位置。这里,第三窗口330包括可滑动图标,用户12可以在末端执行器150上的手掌位置到末端执行器上的指尖位置之间滑动该图标,以便指定末端执行器150与目标对象302接合的精确接触位置。例如,用户12朝向指尖抓取位置调节抓取位置调节器,使得抓取输入304(例如,取向和位置)对应于末端执行器150的指尖。在另一示例中,用户12朝向手掌抓取位置调节抓取位置调节器,使得抓取输入304对应于末端执行器150的手掌。具体地,抓取位置调节器允许用户12提供末端执行器150的哪个部分(例如,手掌或指尖)以用户提供的定向和位置与目标对象接合。
图4是用于监督式自主抓取的方法400的操作的示例布置的流程图。方法400可以是由机器人100的数据处理硬件142执行的计算机实现的方法,其使数据处理硬件142执行操作。在操作402处,方法400包括接收机器人100周围的环境30内的区域的传感器数据134的三维点云。在操作404处,方法400包括从机器人100的用户12接收选择在对应于该区域的图像中表示的目标对象的用户输入。由用户输入选择的目标对象对应于机器人100的机器人操纵器的末端执行器150要抓取的相应对象。在操作406处,该方法包括通过将来自图像的所选择的目标对象的多条射线218投影到传感器数据134的三维点云上来生成机器人操纵器的末端执行器150的抓取区域216。在操作408处,方法400包括确定用于机器人操纵器抓取抓取区域216内的目标对象的抓取几何形状212。在操作410处,方法400包括指示机器人操纵器的末端执行器150基于抓取几何形状212来抓取抓取区域216内的目标对象。
图5是用于使用用户界面300进行监督式自主抓取的方法500的操作的示例布置的流程图。方法500可以是由机器人100的数据处理硬件142执行的计算机实现的方法,其使数据处理硬件142执行操作。在操作502处,方法500包括接收机器人100周围的环境30内的区域的传感器数据134。在操作504处,方法500包括在与数据处理硬件142通信的用户界面(UI)300处从机器人100的用户12接收选择区域的二维(2D)表示内的位置的用户输入。该位置对应于目标对象302在该区域内的位置。在操作506处,方法500包括在与数据处理硬件142通信的用户界面300处接收多个抓取输入304,该多个抓取输入304指定机器人操纵器的末端执行器150抓取目标对象302的取向和平移。在操作508处,方法500包括基于所接收的传感器数据134和对应于用户输入的位置生成目标对象302的三维(3D)位置。在操作510处,方法500包括使用所生成的3D位置和指定机器人操纵器的末端执行器150的取向和平移的多个抓取输入304来指示机器人操纵器的末端执行器150抓取目标对象302。
图6是可以用于实现本文档中描述的系统和方法的示例计算设备600的示意图。计算设备600旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里示出的组件、它们的连接和关系以及它们的功能仅意在是示例性的,并不意在限制本文档中描述和/或要求保护的发明的实施方式。
计算设备600包括处理器610(例如,数据处理硬件)、存储器620(例如,存储器硬件)、存储设备630、连接到存储器620和高速扩展端口650的高速接口/控制器640,以及连接到低速总线670和存储设备630的低速接口/控制器660。组件610、620、630、640、660和660中的每一个使用各种总线互连,并且可以适当地安装在公共主板上或以其他方式安装。处理器610可以处理用于在计算设备600内执行的指令,包括存储在存储器620中或存储设备630上的指令,以在外部输入/输出设备(诸如耦合到高速接口640的显示器680)上显示图形用户界面(GUI)的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备600,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器620将信息非暂时性地存储在计算设备600内。存储器620可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器620可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备600使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备630能够为计算设备600提供大容量存储。在一些实施方式中,存储设备630是计算机可读介质。在各种不同的实施方式中,存储设备630可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备或设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,所述指令在被执行时执行一个或多个方法,诸如上面描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器620、存储设备630或处理器610上的存储器。
高速控制器640管理计算设备600的带宽密集型操作,而低速控制器660管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器640耦合到存储器620、显示器680(例如,通过图形处理器或加速器),并且耦合到高速扩展端口650,高速扩展端口650可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器660耦合到存储设备630和低速扩展端口670。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口670可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪或诸如交换机或路由器的联网设备。
计算设备600可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器600a或在一组这样的服务器600a中多次实现,实现为膝上型计算机600b,或者实现为机架服务器系统600c的一部分。
本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程式编程语言和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行。作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或者可操作地耦合以从其接收数据或向其传输数据或两者。然而,计算机不需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏)以及可选地键盘和指示设备(例如,鼠标或轨迹球),用户可以通过该键盘和指示设备向计算机提供输入。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求将网页发送到用户的客户端设备上的网络浏览器。
已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在所附权利要求的范围内。

Claims (24)

1.一种计算机实现的方法(500),其在由机器人(100)的数据处理硬件(142)执行时使所述数据处理硬件(142)执行操作,所述操作包括:
接收所述机器人(100)周围的环境(10)内的空间的传感器数据(134);
从与所述数据处理硬件(142)通信的用户界面(UI)(300)接收指示对所述空间的二维(2D)表示(312)内的位置的用户选择的用户输入,所述位置对应于所述空间内的目标对象(302)的位置;
从所述UI(300)接收多个抓取输入(304),所述多个抓取输入(304)指定机器人操纵器(126)的末端执行器(128H、150)抓取所述目标对象(302)的取向和平移;
基于所接收的传感器数据(134)和对应于所述用户输入的所述位置来生成所述目标对象(302)的三维(3D)位置;以及
使用所生成的3D位置和指定所述机器人操纵器(126)的所述末端执行器(128H、150)的取向和平移的所述多个抓取输入(304),指示所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)。
2.根据权利要求1所述的方法(500),其中,所述操作还包括由所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)。
3.根据权利要求1或权利要求2所述的方法(500),其中,所述多个抓取输入(304)对应于对所述机器人操纵器(126)的所述末端执行器(128H、150)的一个或多个自由度的多个约束。
4.根据权利要求3所述的方法(500),其中,所述一个或多个自由度包括所述末端执行器(128H、150)的俯仰、所述末端执行器(128H、150)的滚动、在x方向上的第一平移和在y方向上的第二平移。
5.根据权利要求4所述的方法(500),其中,所述一个或多个自由度还包括在z方向上的第三平移。
6.根据权利要求1-5中任一项所述的方法(500),其中,接收指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的所述取向和平移的所述多个抓取输入(304)包括:
接收第一抓取输入(304),所述第一抓取输入(304)指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的第一取向;以及
基于所述机器人操纵器(126)的所述末端执行器(128H、150)的所设计的第一取向,指示在所述UI(300)处修改包括所述目标对象(302)的视口图像(312)。
7.根据权利要求6所述的方法(500),其中,所述第一取向包括用于所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的俯仰或滚动中的一个。
8.根据权利要求6或权利要求7所述的方法(500),其中,所述UI(300)包括第一窗口(310)和与所述第一窗口(310)分开的第二窗口(320),所述第一窗口(310)包括所述视口图像(312),所述视口图像(312)显示所述机器人(100)周围的所述环境(10)内的包括所述目标对象(302)的空间的所述传感器数据(134),所述第二窗口(320)包括表示所述末端执行器(128H、150)的图形图标(322),所述图形图标(322)能够被用户操纵以指示所述第一抓取输入(304),所述第一抓取输入(304)指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的所述第一取向。
9.根据权利要求8所述的方法(500),其中,所述图形图标(322)包括所述末端执行器(128H、150)的线框表示和径向刻度盘,以指定俯仰作为所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的所述第一取向。
10.根据权利要求6-9中任一项所述的方法(500),其中,所述操作还包括:
在所述视口图像(312)上叠加处于由所述第一抓取输入(304)指定的所述第一取向的所述末端执行器(128H、150)的表示;以及
从所述UI(300)接收第二抓取输入(304),所述第二抓取输入(304)指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的第二取向。
11.根据权利要求10所述的方法(500),其中,所述第二取向对应于所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的滚动。
12.根据权利要求10或权利要求11所述的方法(500),其中,接收指定所述第二取向的所述第二抓取输入(304)包括接收另一用户输入,所述另一用户输入指示对所述图形图标(322)的另一用户选择,所述另一用户选择指示所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的滚动。
13.一种机器人(100),包括:
主体(110);
机器人操纵器(126),其耦接到所述主体(110),所述机器人操纵器(126)包括末端执行器(128H、150),所述末端执行器被配置为抓取所述机器人(100)周围的环境(10)内的对象;
与所述机器人操纵器(126)通信的数据处理硬件(142);以及
与所述数据处理硬件(142)通信的存储器硬件(144,164),所述存储器硬件(144,164)存储指令,当所述指令在所述数据处理硬件(142)上执行时使所述数据处理硬件(142)执行操作,所述操作包括:
接收所述机器人(100)周围的环境(10)内的空间的传感器数据(134);
从与所述数据处理硬件(142)通信的用户界面(UI)(300)接收指示对所述空间的二维(2D)表示(312)内的位置的用户选择的用户输入,所述位置对应于所述空间内的目标对象(302)的位置;
从所述UI(300)接收多个抓取输入(304),所述多个抓取输入指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的取向和平移;
基于所接收的传感器数据(134)和对应于所述用户输入的所述位置来生成所述目标对象(302)的三维(3D)位置;以及
使用所生成的3D位置和指定所述机器人操纵器(126)的所述末端执行器(128H、150)的取向和平移的所述多个抓取输入(304),指示所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)。
14.根据权利要求13所述的机器人(100),其中,所述操作还包括由所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)。
15.根据权利要求13或权利要求14所述的机器人(100),其中,所述多个抓取输入(304)对应于对所述机器人操纵器(126)的所述末端执行器(128H、150)的一个或多个自由度的多个约束。
16.根据权利要求15所述的机器人(100),其中,所述一个或多个自由度包括所述末端执行器(128H、150)的俯仰、所述末端执行器(128H、150)的滚动、在x方向上的第一平移和在y方向上的第二平移。
17.根据权利要求16所述的机器人(100),其中,所述一个或多个自由度还包括在z方向上的第三平移。
18.根据权利要求13-17中任一项所述的机器人(100),其中,接收指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的所述取向和平移的所述多个抓取输入(304)包括:
接收第一抓取输入(304),所述第一抓取输入(304)指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的第一取向;以及
基于所述机器人操纵器(126)的所述末端执行器(128H、150)的所设计的第一取向,指示在所述UI(300)处修改包括所述目标对象(302)的视口图像(312)。
19.根据权利要求18所述的机器人(100),其中,所述第一取向包括用于所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的俯仰或滚动中的一个。
20.根据权利要求18或权利要求19所述的机器人(100),其中,所述UI(300)包括第一窗口(310)和与所述第一窗口(310)分开的第二窗口(320),所述第一窗口(310)包括所述视口图像(312),所述视口图像(312)显示所述机器人(100)周围的所述环境(10)内的包括所述目标对象(302)的空间的所述传感器数据(134),所述第二窗口(320)包括表示所述末端执行器(128H、150)的图形图标(322),所述图形图标(322)能够被用户操纵以指示所述第一抓取输入(304),所述第一抓取输入(304)指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的所述第一取向。
21.根据权利要求20所述的机器人(100),其中,所述图形图标(322)包括所述末端执行器(128H、150)的线框表示和径向刻度盘,以指定俯仰作为所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的所述第一取向。
22.根据权利要求18-21中的任一项所述的机器人(100),其中,所述操作还包括:
在所述视口图像(312)上叠加处于由所述第一抓取输入(304)指定的所述第一取向的所述末端执行器(128H、150)的表示;以及
从所述UI(300)接收第二抓取输入(304),所述第二抓取输入(304)指定所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的第二取向。
23.根据权利要求22所述的机器人(100),其中,所述第二取向对应于所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的滚动。
24.根据权利要求22或权利要求23所述的机器人(100),其中,接收指定所述第二取向的所述第二抓取输入(304)包括接收另一用户输入,所述另一用户输入指示对所述图形图标(322)的另一用户选择,所述另一用户选择指示所述机器人操纵器(126)的所述末端执行器(128H、150)抓取所述目标对象(302)的滚动。
CN202180092616.4A 2020-12-21 2021-12-17 用于监督式自主抓取的用户界面 Pending CN116802020A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063128768P 2020-12-21 2020-12-21
US63/128,768 2020-12-21
PCT/US2021/064236 WO2022140205A1 (en) 2020-12-21 2021-12-17 User interface for supervised autonomous grasping

Publications (1)

Publication Number Publication Date
CN116802020A true CN116802020A (zh) 2023-09-22

Family

ID=79730362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180092616.4A Pending CN116802020A (zh) 2020-12-21 2021-12-17 用于监督式自主抓取的用户界面

Country Status (5)

Country Link
US (1) US20220193906A1 (zh)
EP (1) EP4263153A1 (zh)
KR (1) KR20230124658A (zh)
CN (1) CN116802020A (zh)
WO (1) WO2022140205A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9259838B1 (en) * 2014-07-24 2016-02-16 Google Inc. Systems and methods for ground plane estimation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088628A (en) * 1996-07-24 2000-07-11 Fanuc, Ltd. Jog feeding method for robots
US8781629B2 (en) * 2010-09-22 2014-07-15 Toyota Motor Engineering & Manufacturing North America, Inc. Human-robot interface apparatuses and methods of controlling robots
US9031697B2 (en) * 2011-04-15 2015-05-12 Irobot Corporation Auto-reach method for a remote vehicle
KR20130000496A (ko) * 2011-06-23 2013-01-03 현대중공업 주식회사 가속도센서와 자이로센서를 구비한 로봇 교시장치와 이를 이용한 로봇제어방법
US9687983B1 (en) * 2016-05-11 2017-06-27 X Development Llc Generating a grasp pose for grasping of an object by a grasping end effector of a robot
JP6889574B2 (ja) * 2017-03-03 2021-06-18 株式会社キーエンス ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
US11279044B2 (en) * 2018-08-03 2022-03-22 Yaskawa America, Inc. Robot instructing apparatus, teaching pendant, and method of instructing a robot

Also Published As

Publication number Publication date
WO2022140205A1 (en) 2022-06-30
KR20230124658A (ko) 2023-08-25
US20220193906A1 (en) 2022-06-23
EP4263153A1 (en) 2023-10-25

Similar Documents

Publication Publication Date Title
Bagnell et al. An integrated system for autonomous robotics manipulation
JP4835616B2 (ja) 動作教示システム及び動作教示方法
US10166673B2 (en) Portable apparatus for controlling robot and method thereof
CN116635193A (zh) 监督式自主抓取
JP2019018272A (ja) モーション生成方法、モーション生成装置、システム及びコンピュータプログラム
JP2012218119A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
Kamali et al. Real-time motion planning for robotic teleoperation using dynamic-goal deep reinforcement learning
KR20220080080A (ko) 동적 계획 제어기
Zubrycki et al. Using integrated vision systems: three gears and leap motion, to control a 3-finger dexterous gripper
US20180085920A1 (en) Robot control device, robot, and robot system
CN116830061A (zh) 动态站点上的机器人自主的语义模型
CN116802020A (zh) 用于监督式自主抓取的用户界面
Nandikolla et al. Teleoperation robot control of a hybrid eeg-based bci arm manipulator using ros
Puljiz et al. Concepts for end-to-end augmented reality based human-robot interaction systems
US20220241980A1 (en) Object-Based Robot Control
Du et al. A novel natural mobile human-machine interaction method with augmented reality
Savatekar et al. Design of control system for articulated robot using leap motion sensor
US20220193898A1 (en) Constrained Manipulation of Objects
US20240058963A1 (en) Multi-mode robot programming
US20230294275A1 (en) Robot programming
Nandikolla et al. Research Article Teleoperation Robot Control of a Hybrid EEG-Based BCI Arm Manipulator Using ROS
CN116723916A (zh) 臂和身体协调
CN117769484A (zh) 指向移动机器人的自主和远程操作传感器
Jadhav et al. Leap Motion Sensor Technology Based Robo-Control System
Wang et al. Robot teaching playback based on machine vision and human hand demonstration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination