一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用视觉数据的机器人的运动路径的优化的制作方法

2022-07-10 16:13:20 来源:中国专利 TAG:


1.本公开总体上涉及机器人或机器人设备的操作,更具体地涉及基于(例如)捕获环境特征的视觉数据来确定对正在该环境中操作的机器人的移动的已编程轨迹的调整。


背景技术:

2.在工业或商业设置中,机器人往往被预编程为重复执行特定任务。例如,机器人可以被预编程为在组装线中重复地向特定组装部件施加紧固件。而且,例如,机器人可以被预编程为重复地从固定的第一位置抓取特定组装部件并且将其移动到固定的第二位置。在抓取对象时,机器人可以使用抓取末端执行器,诸如“冲击式”末端执行器(例如,使用“爪”或其他抓取指对对象的区域施加力)、“进入式”末端执行器(例如,使用销、针等物理穿入对象)、“束缚式”末端执行器(例如,使用抽吸或真空来拾取对象)以及/或者一种或多种“邻接式”末端执行器(例如,使用表面张力、冷冻或者粘合剂来拾取对象)。
3.在对有限群组的部件重复地执行有限的动作的环境中,这样的方案能够很好地工作。然而,在机器人负责执行很大范围的各种各样的动作和/或对多样性的部件群组(可选包括新的部件,而机器人尚未受到过针对新部件的预先编程)执行动作的环境时,此类方案可能失败。此外,此类方案在对机器人预编程时需要做大量的工程设计工作(以及相关联的计算资源的使用)。
4.对于机器人的预编程而言,将机器人(或机器人臂)编程为根据配置文件(profile)按照规定速度和规定加速度通过一系列路途点移动。一般而言,准备使循环时间降至最低的包括路途点的配置文件。然而,并不是简单地将编程速度和加速度设定到最大值,因为这样的程度在某些情况下可能是危险的或者不稳定或者可能给正在移动的对象造成损坏。因而,配置文件由人来人工生成,以改变路途点之间的运动配置文件,从而尽量缩短时间,但是出于安全起见,要保持在已知的约束内。


技术实现要素:

5.例如,本文公开的实施方式涉及用于确定对正在一个环境中进行操作的机器人的移动的已编程轨迹的调整的方法。例如,所述方法是至少部分地由计算机或计算设备执行的计算机实施方法。
6.本文公开的一些实施方式额外或者替代性地涉及用于使机器人根据对该机器人的移动的已编程轨迹的调整执行任务的特定技术。
7.尽管本文参考包括对象的抓取和/或放置的操纵描述了一些示例,但是应当理解本文描述的技术可以用于各种各样的对对象的机器人操纵或者用于各种各样的机器人移动。例如,所述技术可以用于包括对对象进行推和/或拉从而将其移动到不同位置和/或使其与另一对象配合的操纵。而且,例如,所述技术可以用于包括抓取第一对象,抓取第二对象,使第一对象和第二对象耦接到一起,并且将耦接后的对象置于特定位置的操纵。作为又一示例,所述技术可以用于包括采用具有蚀刻工具、螺丝刀工具、切割工具和/或其他工具
的末端执行器对对象进行操作的操纵。
8.提供了上文的描述作为本公开的一些实施方式的概括。下文将更详细地给出对这些实施方式以及其他实施方式的进一步描述。
9.其他实施方式可以包括存储着指令的暂态或非暂态计算机可读介质,所述指令可由一个或多个处理器(例如,中央处理单元(cpu)、图形处理单元(gpu)和/或张量处理单元(tpu))执行,以实施诸如上文和/或本文别处描述的方法中的一者或多者的方法。又一些实施方式可以包括一种系统,该系统具有一个或多个计算机或计算设备以及/或者一个或多个机器人或机器人设备,它们包括一个或多个处理器,所述处理器可通过操作执行存储指令,以执行诸如上文和/或本文别处描述的方法中的一者或多者的方法。
10.应当认识到,上述概念以及本文更详细地描述的其他概念的所有组合应当被视为本文公开的主题的部分。例如,本公开末尾出现的所主张保护的主题的所有组合应当被视为本文公开的主题的部分。因而,可以在各种示例中单独实现已经讨论的特征、功能和优点,或者可以在又一些示例中对它们进行组合。此外,可以参考下文的描述和附图来获得示例的额外细节。
附图说明
11.在所附权利要求中阐述了说明性示例的新颖特征的所确信特点。然而,在结合附图阅读时,通过参考下文对本公开的说明性示例的详细描述能够最佳地理解这些说明性示例以及本公开的优选使用模式、其他目标及其描述,其中:
12.图1示出了能够实施本文描述的实施方式的环境的示例。
13.图2示意性地示出了根据示例性实施方式的机器人的示例性架构。
14.图3是根据示例性实施方式的可以选择地用于执行本文描述的技术的一个或多个方面的系统的示例的框图。
15.图4示出了根据示例性实施方式的在该环境中正在执行任务的机器人的示例。
16.图5示出了根据示例性实施方式的在该环境中正在按照优化方式执行任务的机器人的示例。
17.图6示出了根据示例性实施方式的计算机实施方法的另一示例的流程图。
具体实施方式
18.现在将在下文中参考附图更充分地描述所公开的示例,在附图中仅示出了一些而非全部的所公开示例。实际上,可能描述几个不同示例,但是不应将其解释为对本文阐述的示例构成限制。相反,描述这些示例是为了使得本公开透彻并且完整,并且将向本领域技术人员充分传达本公开的范围。
19.在示例之内,系统和方法利用机器人的环境的数据(例如,包括对象的几何结构、对象的类型、环境的场景等)来根据优化参数改变机器人的移动的已编程轨迹。传感器(例如,相机)被安装到机器人上或者机器人的环境内,以捕获环境的数据,该数据用于使机器人能够决定修改该机器人的移动的已编程轨迹(例如,如何更有效率地完成一轮操作)。因而,本公开的各个方面提供了用于使机器人进行操作以传送对象的改进方法和系统。
20.示例性系统和方法能够在机器人完成任务时对机器人运动路径做出改进。例如,
当机器人正在执行某一任务时,有可能根据优化参数逐渐优化运动路径(例如,减少急促运动,降低功耗,提高速度以减少循环时间等)。为了达到这一目的,采用现实世界机器人数据以准确地模拟动态移动期间的功耗或惯性。
21.机器人上的传感器捕获机器人周围的全三维(3d)场景,从而能够实时地决定对将带来安全/不安全后果的移动做出调整。例如,所述调整可以包括做出偏离已编程路途点的弧线或者曲线移动,而非直线移动。调整还可以包括对加速度和速度配置文件的改变。
22.对机器人的运动路径的优化能够带来机器人操作效率的提高。运动路径的优化能够在完成任务的速度方面提高机器人的操作的效率,例如,如果针对时间对运动路径进行优化的话。运动路径的优化还能够在机器人的功耗方面提高机器人的操作的效率。运动路径优化还能够带来延长的机器人寿命,例如,从减少电动机或机械磨损的角度来讲。此外,可以利用有效载荷的输入和关于末端执行器的信息执行进一步的优化。
23.就有效载荷而言,通过使用相机捕获的图像,能够确定有效载荷的信息。例如,可以使用相机图像分析、雷达和/或来自抓爪的触觉信息来执行对象检测和对象识别,从而识别出有效载荷的特性,所述特性可用于估算出其能够应对的安全最大加速度或最大急动。所述信息还可以用于估算有效载荷的重量和有效载荷能够承受的最大力。例如,从机器人的能力和球能够应对的移动的角度二者来讲,可以按照不同于二十磅的球的方式移动一磅的球。
24.就末端执行器而言,可以按照不同于吸盘的方式移动和使用抓爪。因而,将末端执行器的信息与有效载荷的信息结合使用能够实现进一步的路径优化。作为具体示例,对于包括锤子的对象和包括抓爪的末端执行器而言,如果抓爪拾取锤子的头部,那么锤子的移动可能引起锤子摆动。因而,运动的动态受到抓握在锤子上的放置的影响。这将给机器人的移动的速度和加速度带来限制。因此,要想获得优化的移动,可能希望在锤子的重心处抓取锤子手柄,使得机器人能够在移动期间取得更高的加速度和更高的速度,以缩短执行任务的时间。因此,抓爪的放置和对象的姿态是确定对路径和沿路径的移动的调整所要考虑的有用信息。
25.因此,包括末端执行器的特性和对象的抓握/姿态在内的轨迹优化是有相关优势的,作为所要考虑的输入。
26.最初可以使用预定或者预设约束条件以内(例如,已编程路途点的20cm以内)的最小变化执行调整,之后采用机器学习进一步优化移动配置文件。迭代技术可用于进行朝向目标功能的优化。例如,为了针对时间进行优化,可以采用增强机器学习算法来调整移动配置文件。
27.因而,本文描述的示例性系统和方法有利于提高机器人的操作效率并且缩短执行任务的执行时间。因而,本公开的实施方式提供了计算机技术所特有的技术改进,例如,那些关于机器人的计算机操作、视觉数据和运动路径的分析以及要对运动路径做出的调整的自动确定的技术改进。
28.现在参考附图,图1示出了能够实施本文描述的实施方式的环境100的示例。图1包括第一机器人102a和视觉部件104a、第二机器人102b和视觉部件104b以及额外视觉部件104c。
29.机器人102a和102b、视觉部件104a和104b以及额外视觉部件104c全都部署在环境
100中,例如,该环境是制造设施、包装设施或其他环境。尽管环境100还可以包括额外的机器人和/或额外的视觉部件,但是在图1中为了简单起见仅示出了机器人102a和102b以及额外视觉部件104c。
30.机器人102a和102b每者是“机器人臂”,其具有多个自由度,从而使末端执行器106a和106b能够沿多个可能的移动路径或轨迹中的任何路径或轨迹通行,以便将抓取末端执行器置于预期位置上。机器人102a和102b每者进一步控制它们的对应抓取末端执行器106a和106b的两个相对的“爪”,从而至少对所述爪进行打开位置和闭合位置(和/或可选的多个“部分闭合”位置)之间的致动。尽管在图1中示出了这些类型的机器人,但是可以采用额外的和/或替代的机器人,包括与机器人102a和102b类似的额外机器人臂、具有其他机器人臂形式的机器人、具有仿人形式的机器人、具有仿动物形式的机器人、通过一个或多个轮子移动的机器人、无人机(uav)等。而且,尽管图1示出了特定抓取末端执行器,但是可以采用额外的和/或替代的末端执行器(乃至不采用末端执行器),诸如替代的冲击式抓取末端执行器(例如,具有抓取“板”的那些、具有更多或更少的“抓取指/爪”的那些)、“进入式”抓取末端执行器、“束缚式”抓取末端执行器或“邻接式”抓取末端执行器或者非抓取末端执行器(例如,焊接工具、切割工具等)。
31.视觉部件104a和104b可以是(例如)各种视觉传感器,诸如专题相机(monographic camera)(例如,生成2d rgb图像)、立体摄影相机(例如,生成2.5d rgb图像)、激光扫描仪(例如,生成2.5d“点云”),并且可以由其向对应的机器人102a和102b提供被所述机器人所用的视觉数据,如本文所述。尽管在图1中被示为与机器人102a和102b相邻,但是在其他实施方式中,视觉部件104a和104b可以替代性地耦接或者附接至机器人102a和102b(例如,附接到臂的部分上或者末端执行器附近)。
32.额外视觉部件104c可以是(例如)专题相机、立体摄影相机、激光扫描仪和/或其他视觉部件,并且可以操作地连接至本文公开的一个或多个系统或计算设备(例如,系统300或计算设备302)。可选地,可以提供多个额外的视觉部件,并且可以如本文所述利用来自每者的视觉数据。
33.机器人102a能够触及环境100中的工作空间108a,在图1中,工作空间108a包括位于传送带系统的传送带部分112a上的对象110a(例如,订书机),还包括容器114a。机器人102a能够采用如本文所述确定的对象操纵参数来抓取对象110a并且将对象110a适当地放置在容器114a中。更一般而言,可以使机器人102a在环境100中工作,以执行(例如)将对象110a从第一区域(例如,传动带部分112a上)传送至第二区域(例如,容器114a中)的任务。在其他时间上,可以有其他对象位于工作空间108a中的传动带部分112a上,也可以有不同容器(例如,容器可以是由单独系统放置的或者可以位于单独的传送带系统上)。例如,随着传送带系统移动,其他对象将被传送到工作空间108a内,并且能够在位于工作空间108a当中的同时被机器人102a操纵。机器人102a能够类似地利用对应的对象操纵参数来拾取和放置此类对象,并且/或者对此类对象执行其他操纵。
34.机器人102b能够触及环境100中的机器人工作空间108b,在图1中,工作空间108b包括位于传送带系统的传送带部分112b上的对象110b(例如,太阳镜),还包括容器114b。机器人102b能够采用如本文所述确定的对象操纵参数来抓取对象110b并且将其适当地放置在容器114b中。更一般而言,可以使机器人102b在环境100中工作,以执行(例如)将对象
110b从第一区域(例如,传动带部分112b上)传送至第二区域(例如,容器114b中)的任务。在不同时间上可以有不同对象位于工作空间108b中的传动带部分112b上,也可以有不同容器。机器人102b能够类似地利用对应的对象操纵参数来拾取和放置此类对象,并且/或者对此类对象执行其他操纵。
35.额外视觉部件104c具有环境100的区域108c的视场,区域108c与工作空间108a截然不同并且与工作空间108b截然不同。在图1中,区域108c包括传送带系统的传送带部分112c,并且还包括对象110c(例如,抹刀)。区域108c可以是工作空间108a和/或工作空间108b的“上游”,因为所要操纵的对象首先通过区域108c,而后再被传送至工作空间108a或工作空间108b。例如,传送带系统可以首先使对象通过区域108c,而后这些对象再被传送带系统路由至工作空间108a或工作空间108b。例如,在图1中,区域108c中的抹刀尚未被传送至工作空间108a或工作空间108b。
36.如本文详细所述,在各种实施方式中,视觉部件104a和104b以及额外视觉部件104c可以每者捕获视觉数据,这些视觉数据捕获包括对象110a-c的对象特征在内的环境100的特征。此外,这些视觉数据可以被系统或计算设备(下文所述)用于确定使机器人102a或机器人102b能够操纵(例如,取放)对象110a-c的对象操纵参数。此外,这些视觉数据能够用于确定对正在环境100中进行操作以执行将对象110a-b从第一区域传送至第二区域的任务的机器人102a和/或102b的编程移动轨迹的至少一项第一调整,使得第一调整促使机器人102a-b的移动基于优化参数令对象110a-b偏离已编程轨迹。随后,还可以利用包括对象110a-b的对象特征的视觉数据确定对正在环境100中进行操作以执行该任务的机器人102a-b的已编程移动轨迹的至少一项第二调整,并且在基于所述优化参数将该对象操纵为偏离已编程轨迹之后,由所述至少一项第二调整引起机器人102a-b的移动。例如,按照这些和其他方式,机器人102a和102b能够更有效率地工作,因为能够快速确定用于操纵对象的对象操纵参数,甚至可选地在对象抵达机器人工作空间108a和108b之前就确定,并且能够对机器人102a-b的移动进行优化,而不是严格使其遵循预先存储的已编程轨迹。
37.可以在机器人102a-b操纵对象110a-b之前利用视觉数据确定调整,从而能够在触发移动之前预先生成优化。
38.环境100还可以包括位于环境100中的一个或多个额外传感器,以提供额外传感器数据。所述额外传感器可以包括机器人102a-b的扭矩传感器116a-b或者在环境100中位于传送带部分112a-b的下面的重量传感器118a-b。可以利用额外传感器数据进一步确定对机器人102a-b的已编程移动轨迹的第二调整,例如,基于对对象110a-b的重量以及机器人102a-b上的应变的了解。
39.图2示意性地示出了根据示例性实施方式的机器人200的示例性架构。例如,机器人200可以具有在图1中针对机器人102a-b示出的形式,并且图2中的图示是对机器人102a-b的示例性框图表示。机器人200包括机器人控制系统202、一个或多个操作部件204a-n以及一个或多个传感器206a-m。传感器206a-m可以包括(例如)视觉部件、光传感器、压力传感器、压力波传感器(例如,麦克风)、接近传感器、加速度计、陀螺仪、温度计、气压计等。尽管传感器206a-m被示为与机器人200一体,但这不意味着构成限制。在一些实施方式中,传感器206a-m可以位于机器人200外部,例如,作为独立的单元。
40.操作部件204a-n可以包括(例如)一个或多个末端执行器以及/或者一个或多个伺
服电动机或其他实现机器人200的一个或多个部件的移动的致动器。例如,机器人200可以具有多个自由度,并且致动器的每者可以响应于控制命令在一个或多个自由度内控制机器人200的致动。如本文所用,术语致动器包含建立运动的机械或电设备(例如,电动机),此外还有任何可以与该致动器相关联并且将接收到的命令翻译成一个或多个用于驱动该致动器的信号的驱动器。相应地,向致动器提供控制命令可以包括将该控制命令提供给驱动器,驱动器将该控制命令翻译成适当信号,以驱动电或机械设备,从而建立预期运动。
41.机器人控制系统202可以被实施到机器人200的诸如cpu、gpu的一个或多个处理器和/或其他控制器当中。在一些实施方式中,机器人200可以包括“电脑(brain box)”,其可以包括控制系统202的全部或若干方面。例如,该电脑可以向操作部件204a-n提供数据的实时脉冲串,其中,实时脉冲串的每者包括一组的一个或多个控制命令,所述命令尤其决定着操作部件204a-n中的一个或多个的每者的运动(如果有的话)的参数。在一些实施方式中,机器人控制系统202可以执行本文描述的一种或多种方法的一个或多个方面。
42.如本文所述,在一些实施方式中,由机器人控制系统202生成的控制命令的全部或若干方面可以是在根据本文描述的技术生成的对象操纵参数的基础上生成的。尽管在图2中将机器人控制系统202示为机器人200的一体部分,但是在一些实施方式中,机器人控制系统202的全部或若干方面可以被实施到与机器人200分开但是与机器人200通信的部件当中。例如,机器人控制系统202的全部或若干方面可以被实施到与机器人200有线和/或无线通信的一个或多个计算设备上。
43.在图2中,例如,机器人控制系统202、传感器202a-m和操作部件204a-n每者耦接至通信总线208,以实现数据传达。
44.图3是根据示例性实施方式的可以可选用于执行本文描述的技术的一个或多个方面的系统300的示例的框图。系统300包括计算设备302,计算设备302可以进一步用于执行本文描述的技术的一个或多个方面。
45.计算设备302与机器人102a-b、视觉部件104a-b、额外视觉部件104c和额外传感器(例如,扭矩传感器116a-b和重量传感器118a-b)通信(例如,通过有线或无线通信链路),从而从这些元件接收信息或者向这些元件传达信息。
46.计算设备302包括经由总线子系统306与若干外围设备通信的至少一个处理器304。这些外围设备可以包括存储子系统308(包括(例如)存储器子系统310和文件存储子系统312)、用户接口输出设备314、用户接口输入设备316以及网络接口子系统318。输入和输出设备允许与计算设备302的用户交互。网络接口子系统318提供与外部网络的接口,并且耦接至其他计算设备中的对应接口设备。
47.用户接口输入设备316可以包括键盘、诸如鼠标、跟踪球、触控板或图形输入板的定点装置、扫描器、被结合到显示器当中的触摸屏、诸如语音识别系统、麦克风的音频输入设备和/或其他类型的输入设备。一般来讲,“输入设备”一词的使用意在包含用以向计算设备302内或者向通信网络上输入信息的所有可能类型的设备和方式。
48.用户接口输出设备314可以包括显示子系统、打印机、传真机或者非视觉显示器,例如,音频输出装置。显示子系统可以包括阴极射线管(crt)、平板装置(例如,液晶显示器(lcd))、投影设备或者用于创建可视图像的其他机制。显示子系统还可以提供非视觉显示,例如,通过音频输出设备。一般来讲,“输出设备”一词的使用意在包含用以从计算设备302
向用户或者另一机器或计算设备输出信息的所有可能类型的设备和方式。
49.用户接口输入设备316和用户接口输出设备314还可以更一般地包括诸如无线接口以及/或者一个或多个线路接口的通信接口,所述通信接口既允许短程通信,又允许与一个或多个网络或者与一个或多个远程设备的长程通信。这样的无线接口可以被提供为根据一种或多种无线通信协议进行通信,诸如蓝牙、wifi(例如,电气和电子工程师协会(ieee)802.11协议)、长期演进(lte)、蜂窝通信、近场通信(nfc)和/或其他其他无线通信协议。这样的线路接口可以包括以太网接口、通用串行总线(usb)接口或者类似接口,从而经由导线、双绞线、同轴电缆、光学链路、光纤链路或者与线路网络的其他物理连接进行通信。因而,此类通信接口可以被配置为接收来自一个或多个设备的输入数据,并且还可以被配置为向其他设备发送输出数据。
50.处理器304可以是通用处理器或者专用处理器(例如,数字信号处理器、专用集成电路等)。处理器304可以接收来自用户接口输入设备316的输入,并且对所述输入进行处理,以生成被存储到存储子系统308中的输出。处理器304可以被配置为执行存储在存储子系统308中并且可执行的指令(例如,计算机可读程序指令),以提供本文描述的计算设备302的功能。
51.存储子系统308存储提供本文描述的一些或全部模块的功能的编程和数据结构。例如,存储子系统308可以包括执行本文描述的一种或多种方法的选定方面的逻辑。存储子系统308可以包括具有存储于其上的指令的非暂态计算机可读介质,所述指令在被计算设备302的处理器304执行时使得计算设备302执行本文描述的方法的功能。
52.这些软件模块一般由处理器304单独执行或者与其他处理器相结合来执行。存储子系统308中使用的存储器310可以包括若干存储器,包括:用于在程序执行期间存储指令和数据的主随机存取存储器(ram)320和存储有固定指令的只读存储器(rom)322。文件存储子系统312可以提供对程序和数据文件的永久性存储,并且可包括硬盘驱动器、软盘驱动器连同相关联的可移除介质、cd-rom驱动器、光驱或者可移除介质盒。实施某些实施方式的功能的模块可以被文件存储子系统312存储到存储子系统308当中,或者可以被存储到可由处理器304访问的其他机器当中。例如,存储子系统308可以因而包括或者可以被视为非暂态计算机可读介质。
53.总线子系统306提供了用于允许计算设备302的各种部件和子系统按预期相互通信的机制。尽管总线子系统306被示意性地示为单条总线,但是总线子系统的备选实施方式可使用多条总线。
54.计算设备302可以具有各种类型,包括工作站、服务器、计算群集、刀片服务器、服务器场或者任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质的原因,对图3中描绘的计算设备302的描述旨在仅作为具体示例来达到对一些实施方式举例说明的目的。计算设备302的具有比图3中描绘的计算设备302更多或更少的部件的很多其他配置也是可能的。
55.在示例之内,计算设备302还可以是机器人102a的部件,而不是单独的部件。
56.图4示出了根据示例性实施方式的在环境100中正在执行任务的机器人102a的示例。在图4中,机器人102a被编程为拾取位置a上的对象110a并且将对象110a移到位置b。为了达到这一目的,机器人102a被编程为通过一系列路途点移动,从而经过位置p0抵达位置
p1,再到位置p2,之后使末端执行器106a(例如,抓爪)下降至位置p3,使抓爪闭合以抓取对象110a,使抓爪升高到位置p4,移转到位置p5,使抓爪下降至位置p6,打开抓爪,从而在位置b释放对象110a,使抓爪升高到位置p7,之后返回至位置p0,从而完成了该任务。位置p1到p7上的路途点是机器人102a的已编程移动轨迹。此外,每次移动具有用于该移动的相关联的速度和加速度。通过路途点的每次移动需要抓爪的起动和停止。
57.在示例内,视觉部件104(例如,相机)被包含到环境100中(或者可以被安装到机器人102a上),以捕获环境100的数据以及关于要移动的对象110a的数据。所述数据可以用于确定要对通过p0到p7的路径所做的可能调整。也可以根据优化参数做出调整。
58.在示例内,计算设备302可以从环境100中的视觉部件104a接收捕获环境100的特征(包括位于环境100的第一区域(位置a)中的对象110a的对象特征)的视觉数据,并且在机器人120a操纵对象110a之前,计算设备302可以确定对已编程移动轨迹(例如,通过p0到p7的路径)的两项单独调整,从而优化执行该任务的机器人102a的操作。首先,计算设备302可以利用这些视觉数据确定对正在环境100中进行操作以执行将对象110a从第一区域(位置a)传送至第二区域(位置b)的任务的机器人102a的编程移动轨迹的至少一项第一调整,并且第一调整促使机器人102a的移动基于优化参数令对象110a偏离已编程轨迹。其次,计算设备302可以利用对象110a的对象特征(响应于视觉数据生成的)确定对正在环境100中进行操作以执行该任务的机器人102a的已编程移动轨迹的至少一项第二调整,并且在基于所述优化参数将该对象操纵为偏离已编程轨迹之后,由所述至少一项第二调整引起机器人102a的移动。在一些示例中,可以由计算设备302对视觉数据进行处理,以生成对象110a的对象特征,从而生成或确定标识对象110的信息,例如,包括指示对象110a的尺寸的信息和指示对象110a的估计重量的信息。之后,计算设备302根据对机器人102a的已编程移动轨迹的至少一项第一调整和至少一项第二调整向机器人102发送指令,从而使机器人102a执行该任务。
59.图5示出了根据示例性实施方式的在环境100中正在按照优化方式执行任务的机器人102a的示例。在图5中,已经将该路径(例如,通过p0到p7的路径)缩减到了四个路途点(p0到p3),并且按照弧形轨迹而非图4中所示的直线移动来执行路途点之间的移动。例如,遵循图5中的路径(p0到p3)减少了完成该任务的时间。因而,优化了路径(p0到p3),并且可以做出进一步的移动改变,以实现额外的优化,例如,还可以调整机器人102a沿这些路途点的移动速度。利用来自视觉部件104a的信息,可以判断从p0到p1的路径是否没有任何障碍物,之后,由于没有安全顾虑可以提高机器人102a的速度或者还可以去除路途点,从而使机器人102a直接移动到盒子。
60.可以对很多优化参数做出选择,使之作为对已编程路径做出调整的约束条件。此外,还可以使用多个优化参数。示例性优化参数包括(i)时间、(ii)功率和(iii)机器人寿命。时间是指要用多长时间来执行任务,其可以基于所采取的路径以及机器人102a沿该路径的速度和加速度。功率是指需要多少能量来执行该任务。机器人寿命是指机器人102a的电动机、致动器或其他部件的寿命,并且基于机器人寿命的优化将按照使电动机的功用最大化的方式对移动配置文件做出调整,例如,使运动跨越多个电动机分布,从而使它们更均匀地承担负荷。
61.在图5中,例如,所实施的示例性优化参数是时间,并且最初在中间路途点上做出
调整(有可能有高达20cm的偏移),从而(例如)使位置p1和p2(图4中)之间的路径圆化,以形成从位置p0到p1的弧线。可以对路径做出进一步调整,以去除向下、向上、向左等的运动,并且以弧线替代,如图5中所示。因而,在这样做时,去除了如图4中所示的初始路途点p0、p2、p4和p5,并且保留了新的位置路途点p0到p3。
62.例如,在机器人102a正在遵循或者正在起动以遵循已编程移动轨迹,但是尚未开始操纵对象110a时,由计算设备302实时地确定(并且计算)对机器人102a的已编程移动轨迹的调整。
63.对机器人102a的已编程移动轨迹的调整可以包括对机器人102a沿已编程移动轨迹的移动速度的改变、对机器人102a沿已编程移动轨迹的移动加速度的改变、去除沿已编程移动轨迹的多个路途点中的一个、对路途点中的一个的位置的改变(例如,将直线修改为弧线)或其任何组合,例如,去除所述多个路途点中的至少一个,并且将各条基本上的直线中的至少一条调整为弧线,以减少机器人102a的起动和停止移动。
64.在可从扭矩传感器116a-b、重量传感器118a-b或者其他传感器获得额外传感器数据的示例中,计算设备302可以利用额外传感器数据进一步确定对机器人102a的已编程移动轨迹的至少一项第二调整。例如,在机器人102a操纵对象之前,一旦对象110的重量是已知的,就可以确定由机器人102a据以操纵对象110a的对象操纵参数。对于超过阈值重量的对象而言,机器人102a可以具有关于机器人102a能够以多快的速度移动该对象的限制。
65.这样的对象操纵参数还可以包括用于抓取对象110a的抓取姿态,并且计算设备302可以利用视觉数据确定对象110a在传送带部分112a上的姿态,之后使机器人102a的末端执行器106a根据所述的一个或多个对象操纵参数转动至所述抓取姿态并且在转动至该抓取姿态之后尝试抓取对象110a,以操纵对象110a。因而,图1中的对象110a是订书机,并且如果订书机具有如图所示的定位(例如,沿传送带部分112a横向定位),那么机器人102a有机会抓住订书机的两侧,并且能够在订书机随传送带部分112a一起移动时这样做。如果订书机是按照(例如)对角线姿态定位的,那么机器人102a可能必须旋转末端执行器106,以匹配订书机的姿态。因而,例如,视觉数据包括环境100的3d表示,并且允许确定末端执行器的几何结构和对象110a的表面的位置,使得计算设备302能够确定从其他角度对对象110a的接近。因而,能够由计算设备302利用视觉数据确定此类对象操纵参数。
66.因而,在机器人102a操纵对象110a之前,计算设备302能够基于视觉数据和机器人102a的末端执行器106a的类型确定用于由机器人102a操纵对象110a的一个或多个对象操纵参数。在一些示例中,一种有效率的做法可以是将末端执行器106a放置为抓取对象110a的大致重心。
67.此外,在机器人102a操纵对象110a(例如,尝试抓取或开始抓取对象)之后,机器人102a可以包括位于末端执行器106a上的传感器,以确定所捕获的对象110a的触觉特性。之后,计算设备302可以基于对象的触觉特性确定对正在环境100中进行操作以执行该任务的机器人102a的已编程移动轨迹的至少一项第三调整。
68.图6示出了根据示例性实施方式的计算机实施方法400的另一示例的流程图。例如,图6中所示的方法400介绍了可以与图1-3中所示的机器人102a-b、机器人200、系统300或者计算设备302一起使用的方法的示例。此外,设备或系统可以被用于或者可以被配置为执行图6中介绍的逻辑功能。在一些情况下,设备和/或系统的部件可以被配置为执行所述
功能,因而所述部件被实际配置和结构化(采用硬件和/或软件)为实现这样的执行。在其他示例中,设备和/或系统的部件可以被布置为适于,能够或者适合执行所述功能,例如,在使其按照特殊方式工作时。方法400可以包括由块402-408中的一者或多者例示的一项或多项操作、功能或动作。尽管这些块是按照一定顺序示出的,但是这些块也可以并行执行或者可以按照不同于本文描述的那些顺序的顺序执行。而且,在预期实施方式的基础上,所述的各种块可以被合并成较少的块,被拆分成额外的块,并且/或者可以被去除。
69.应当理解,对于本文公开的这个以及其他过程和方法而言,流程图示出了本示例的一种可能实施方式的功能和操作。就此而言,每一块或者每一块的部分可以表示程序代码的模块、片段或部分,其包括可由处理器执行以实施该过程中的具体逻辑功能或步骤的一条或多条指令。所述程序代码可以存储在任何类型的计算机可读介质或数据存储设备(例如,包括盘或硬盘驱动器在内的存储设备)上。此外,所述程序代码可以被按照机器可读格式编码到计算机可读存储介质上或者被编码到其他非暂态介质或制品上。计算机可读介质可以包括非暂态计算机可读介质或存储器,例如,用于在短时间段内存储数据的计算机可读介质,比如寄存器存储器、处理器高速缓存和随机存取存储器(ram)。例如,计算机可读介质还可以包括非暂态介质,例如,辅助或永久性长期存储设备,比如只读存储器(rom)、光盘或磁盘、紧致盘只读存储器(cd-rom)。计算机可读介质还可以是任何其他易失性或非易失性存储系统。例如,计算机可读介质可以被视为有形计算机可读存储介质。
70.此外,图6中(以及本文公开的其他过程和方法)的每一块或者每一块的部分可以表示被线路设计为执行所述过程中的具体逻辑功能的电路系统。替代性实施方式被包含到本公开的示例的范围内,其中,可以按照不同于所示或者所讨论的顺序的顺序执行这些功能,包括按照基本上同时的顺序或者逆顺序,具体取决于所涉及的功能性,这是本领域技术人员将理解的。
71.在块402中,方法400包括从环境中的一个或多个视觉部件接收视觉数据,所述视觉数据捕获环境的特征,包括位于环境的第一区域中的对象的对象特征。例如,这一操作可以包括从附接至机器人的一个或多个视觉部件接收视觉数据。在示例内,对象的对象特征包括接收标识对象的信息、指示对象的尺寸的信息和指示对象的估计重量的信息。
72.在块404中,方法400包括在机器人操纵对象之前基于视觉数据确定对正在该环境中进行操作以执行将该对象从第一区域传送至第二区域的任务的机器人的已编程移动轨迹的至少一项第一调整,并且所述至少一项第一调整促使机器人的移动基于优化参数令该对象偏离已编程轨迹。
73.在示例内,优化参数包括(i)功率、(ii)时间和(iii)机器人寿命中的一者或多者。
74.对机器人102a的已编程移动轨迹的第一调整可以是在机器人正遵循已编程移动轨迹时实时确定的,并且可以包括如下示例:确定对机器人102a沿已编程移动轨迹的移动速度的改变,确定对机器人102a沿已编程移动轨迹的移动加速度的改变,确定对沿已编程轨迹的路途点中的一个的位置的改变,去除所述多个路途点中的一个,以及去除所述多个路途点中的至少一个并且将基本为直线的线中的至少一条调整为弧线,以减少机器人的起动和停止移动。第一调整可以是上文描述的这些示例中的任何一个或其组合。
75.例如,运动路径已被描述为具有路途点,并且具体的速度和加速度可以与每一路途点相关联。因而,可以确定对从路途点p0到路途点p1的速度和加速度的调整,与此同时不
对沿该路径的其他部分的速度和加速度做出任何调整。在一些情况下,还可能希望避免机器人102a在每一路途点处停止,以减少完成该任务的时间。
76.在块406中,方法400包括在机器人操纵该对象之前基于对象的对象特征确定对正在该环境中进行操作以执行该任务的机器人的已编程移动轨迹的至少一项第二调整,并且在基于所述优化参数将该对象操纵为偏离已编程轨迹之后,由所述至少一项第二调整引起机器人的移动。在一些示例中,计算设备302可以从该环境中的包括机器人的扭矩传感器或者该环境中的重量传感器在内的一个或多个额外传感器接收额外传感器数据,并且能够基于所述额外传感器数据确定对机器人的移动的已编程轨迹的至少一项第二调整。
77.在块408中,方法400包括根据对机器人的已编程移动轨迹的所述至少一项第一调整和至少一项第二调整使机器人执行该任务。
78.在示例内,在机器人操纵对象之前,计算设备302进一步基于所述视觉数据确定用于由机器人操纵该对象的一个或多个对象操纵参数。所述的一个或多个对象操纵参数可以包括用于抓取对象的抓取姿态,并且计算设备302可以使机器人的末端执行器根据所述的一个或多个对象操纵参数转动至所述抓取姿态并且在转动至该抓取姿态之后尝试抓取对象,以操纵该对象。
79.在其他示例中,在机器人操纵对象之前,计算设备302能够基于视觉数据和机器人的末端执行器的类型确定用于由机器人操纵对象的一个或多个对象操纵参数。随后,基于对象的姿态,计算设备302可以确定一个或多个对象操纵参数,包括用于该对象的抓取以及对末端执行器的放置,以抓取该对象的大致重心。
80.在又一些示例中,计算设备302可以确定在机器人操纵对象之后捕获的该对象的触觉特性,并且基于该对象的触觉特性确定对正在该环境中进行操作以执行该任务的机器人的已编程移动轨迹的至少一项第三调整。
81.照此,在上文的任何示例中,可以利用关于有效载荷(例如,对象110a)的信息和关于机器人102a的末端执行器/抓爪的信息,从而能够确定对预先编程轨迹的进一步调整。作为具体示例,包括海绵的对象重量轻而且能够在不必过多地担心对对象造成损坏的情况下进行操纵,对于这样的对象而言,机器人可以沿该路径相对较快地移动。然而,对于包括大包污物的对象而言,可能就不是这种情况了。视觉数据允许计算设备进行对象识别和检测(例如,要么是本地执行的,要么是通过对网络的访问执行的),以确定有效载荷的属性,从而估算出其能够应对的安全最大加速度或者最大急动。可以联系所估计的对象重量或者所估计的对象能够承受的最大力做出相同的计算。具体地,例如,机器人能够按照比移动二十磅的球高得多的力和加速度来移动一磅的球。
82.就针对末端执行器的示例而言,例如,当末端执行器是与抓爪相对照的吸盘时,可能采取不同的速度和加速度。此外,对对象的抓取也可能决定能够做出的可能调整。作为具体的示例,如果对象是锤子,并且如果末端执行器抓取锤子的顶部,那么锤子的移动可能导致锤子摆动并且有可能变得不稳定。然而,如果末端执行器抓取大致的重心(例如,沿手柄),那么能够更有控制地进行移动。此外,如果抓取在重心处,甚至能够进一步加速。抓取对象的方式能够提供在运动学上更积极的方式来执行更高的加速度,乃至采用更小的抓爪来执行。
83.由计算设备302进一步确定对机器人的移动的已编程轨迹的调整,该调整受机器
人的能力制约。机器人的能力可以包括在处理各种重量的对象时的最大速度、扭矩、加速度等。
84.使用方法400使计算设备302能够根据某些优化参数在完成一项任务时逐渐优化预编程运动路径。已经描述了很多优化参数,并且可以包括另一些优化参数,从而(例如)减少急促或摇晃运动以及降低功耗。通过利用视觉数据,计算设备302能够在现实世界环境中实时地确定对预先编程的轨迹的调整。
85.利用优化参数,而不是通过将速度和加速度设置到最大量来缩短时间,例如,这是因为一些速度、加速度或者修改路径可能是不稳定的,或者可能对对象110造成损坏。
86.在本文描述的示例中的任何示例之内,对预编程轨迹的调整可以局限于对于这些轨迹而言的某些参数当中的最大允许变化量。例如,可以只允许高达大约10-20cm的变化的调整或者处于10-20cm的变化以内的调整,或者当周围区域内未检测到障碍物时可以允许大约20cm-50cm的范围内的调整。作为其他示例,在一些情况下可以允许高达2m/s或者高达5m/s的变化的速度调整。
87.此外,在本文描述的示例中的任何示例之内,计算设备302可以基于优化参数以迭代方式调整对路途点中的一个的位置的改变,以实现获得优化目标的持续改进。迭代调整可以是借助于在该路径的后续路途点上发生的进一步的变化做出的,或者是以迭代方式做出的,从而在该任务的后续执行中做出进一步调整。
88.迭代调整可以包括使用先前运动路径作为训练实例(例如,基于视觉数据、操纵参数、使时间或功耗发生了超过阈值的减少的对应成功措施),以供训练引擎用来训练机器学习模型中的一者或多者。训练引擎利用对应的训练实例来训练机器学习模型。之后,经训练的机器学习模型可以被计算设备302至少选择性地用于预测一个或多个对应的对象操纵参数或者预测对预编程路径的一项或多项调整,之后所述参数或调整至少被选择性地用于控制机器人。在一些实施方式中,仅在训练引擎确定满足了一个或多个条件之后利用经训练的机器学习模型。所述一个或多个条件至少可以包括(例如)训练的阈值量和/或经训练的机器学习模型的验证,如本文所述的。
89.因而,机器学习模型可以根据被分类到几个类别当中的机器学习任务进行工作。在监督学习中,机器学习算法从既包含输入又包含预期输出的一组数据中建立数学模型。该组数据是被称为“训练数据”的采样数据,其用以在无需明确编程的情况下做出预测或判决,以执行该任务。例如,为了确定对速度的调整,用于监督学习算法的训练数据将包括机器人的在持握各种对象的同时对于各种速度而言的限制。
90.在被称为半监督学习的另一类别中,机器学习算法从不完整的训练数据开发出数学模型,其中,采样输入的部分不具有标签或相关联的限制。之后,在输出被局限于有限的一组值时,可以使用分类算法。
91.在被称为无监督学习的另一类别中,机器学习算法从仅包含输入但不包含预期输出标签的一组数据中建立数学模型。无监督学习算法用于在产生了成功的变化的路径调整当中寻找结构或者发现模式。
92.因而,机器学习能够用来优化正在对运动路径所做的调整。
93.此外,机器人仿真器可以用于对机器人的全部或部分以及/或者工作空间的全部或部分进行仿真,并且可以采用对预编程轨迹的调整来渲染正在由机器人移动的对象的仿
真。机器人仿真器可以用于对包括对应对象的环境进行仿真,对在受到仿真的环境中工作的机器人的全部或部分(例如,至少机器人的末端执行器)进行仿真,以及响应于仿真的机器人动作对受到仿真的机器人和受到仿真的环境对象之间的相互作用进行可选地仿真。可以使用各种仿真器,例如,对碰撞检测、软体和刚体动态等进行仿真的物理引擎。此类仿真器的一个非限制性示例是bullet物理引擎。
94.本文使用的词语“基本上”和“大约”是指所引述的特点、参数或值未必是确切地获得的,而是可能存在偏差或方差,包括(例如)容差、测量误差、测量精确度限制或本领域已知的其他因素,但所述偏差或方差的量不妨碍该特点预计提供的效果。
95.本文公开的系统、设备和方法的不同示例包括各种各样的部件、特征和功能。应当理解,本文公开的系统、设备和方法的各种示例可以包括本文公开的系统、设备和方法的任何其他示例的任何部件、特征和功能(处于任意组合或者任意子组合当中),并且所有此类可能性都意在被包含到本公开的范围内。
96.出于例示和说明的目的介绍了对不同有利布置的描述,但是无意使其具有排他性或者局限于所公开的示例。很多修改和变化对于本领域技术人员而言是显而易见的。此外,不同的有利示例与其他有利示例相比可能描述了不同的优点。选择并且描述所选的一个或多个实施例是为了对示例的原理和实际应用做出最佳阐释,并且使本领域技术人员能够理解本公开,以获得具有适于所设想的特定用途的各种修改的示例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献