本公开总体上涉及机器人运动规划和机器人控制,具体地涉及经由处理器电路执行碰撞检测以生成运动规划,以在共享工作空间中有效地驱动机器人等的系统和方法。
背景技术:
1、相关技术的描述
2、运动规划是机器人控制和机器人学中的基本问题。运动规划指定了机器人能够从起始状态或当前状态转换到目标状态所遵循的路径,通常是为了在不与操作环境中的任何障碍物碰撞,或者降低与操作环境中的任何障碍物碰撞的可能性下完成任务。运动规划的挑战涉及即使环境特征发生变化,也要以非常快的速度执行运动规划的能力。例如,在一个或多个机器人的运行时期间,环境中一个或更多个障碍物的一个或更多个特征(例如位置和/或方向)可能会随时间而变化。挑战还包括生成使机器人例如在完成任务的持续时间和/或完成任务所消耗的能量方面高效地完成任务的运动规划。挑战还包括使用相对低成本的设备,以相对低的能量消耗和有限的存储量(例如,存储器电路,例如在处理器芯片电路上)来执行运动规划。
3、机器人学中的一个问题是在例如在执行任务期间机器人或机器人的机器人附件可能会相互干扰的共享工作空间(工作空间通常称为工作单元或环境)中操作两个或更多个机器人。
4、一种在共同的工作空间中操作多机器人的方法能够被称为任务级方法。任务级方法可以采用教学和重复训练。工程师可以通过定义工作空间的共享部分,以及对各个机器人进行编程,使得在任何给定时间点只有一个机器人处于共享工作空间中,以确保机器人没有碰撞。例如,当第一机器人开始移动到工作空间时,第一机器人会设置标志。控制器(例如,编程逻辑控制器(plc))读取该标志,并阻止其它机器人进入该共享工作空间,直到第一机器人在退出该工作空间时取消该标志。这种方法直观、易于理解、实施和故障排除。然而,由于任务级消除冲突的使用通常会导致机器人中的至少一个在相当长的一段时间内处于空闲状态,因此这种方法必然具有较低的工作吞吐量,即使空闲的机器人在共享工作空间中执行有用的工作从技术上讲是可能的。
5、在公共工作空间中操作多机器人的另一种方法是采用离线规划(例如,在运行时前的配置时间内),以实现比上文描述的基于任务级消除冲突的方法更高的工作吞吐量。为此,系统可以尝试解决所有机器人或机器人附件的组合关节空间中的规划问题。例如,如果工作空间中有两个6自由度(dof)附件,则必须解决12dof规划问题。虽然这种方法允许更高的性能,但规划可能非常耗时。12dof问题对于传统的运动规划算法来说显得太大,以至于不能使用当前可用的架构来解决。
6、解决这些问题的一种策略是优化第一机器人/机器人附件的运动,然后手动优化第二机器人/机器附件的运动。这可以采用迭代模拟运动来确保机器人/机器人附件不会相互碰撞,这可能需要许多小时的计算时间。此外,如果对工作空间的修改导致其中一个机器人/机器人附件的轨迹发生变化,则必须重新验证整个工作流程。
技术实现思路
1、本文描述的结构和算法有利地采用分段姿态,以促进在共享工作空间或工作单元中操作的两个或更多个机器人的操作,防止或至少降低机器人或机器人的机器人附件在操作时相互碰撞的风险,以有效地将一个或更多个机器人分别移动到一个或更多个目标,以在共享工作空间中执行相应的任务。
2、本文描述的结构和算法使高自由度机器人能够避免碰撞,以及在变化的共享环境中继续高效地工作。有效的规划方法能够在有或没有硬件加速的情况下加速,以在几毫秒内产生无碰撞的运动规划。超快的“实时”运动规划允许在任务执行期间在运行时对机器人路径做出决策,而无需训练或时间密集型的路径优化。这能够有利地允许以有效的方式对共享工作空间中的多机器人进行协调。
3、在至少一些实施方式中,本文描述的结构和算法可以使机器人在多机器人共享的工作空间中高效、无碰撞地移动。机器人的所有部件(如底座、机器人附件、臂端工具、端部执行器)可以实现无碰撞运动,即使在高速运行时也是如此。
4、通过例如在一个或更多个机器人的运行时期间执行自主规划,本文描述的结构和算法可以有利地减少多机器人工作空间的编程工作量。在至少一些实施方式中,操作员不需要对任何安全区、时间同步或关节空间轨迹进行编程。输入可以限于对要执行的任务或机器人的目标姿态或目标和运动学模型的描述。此外,输入还可以包括固定对象的表示,或者可选地包括具有不可预测轨迹的对象(例如人)。
5、本文描述的结构和算法可以有利地动态执行运动规划,该算法包括识别(例如,选择、生成)对于给定机器人的一个或更多个分段姿态,以有利地定位或配置其路径被阻挡或将被阻挡(例如,被一个或更多个其它机器人阻挡)的给定机器人,监测其它机器人,以及响应于路径变得未被阻挡或畅通,时给定机器人朝向目标移动。分段姿态能够使用各种试探法(heuristics)来识别,以便一旦给定机器人的路径未被阻挡或畅通,就有效地定位或配置给定机器人来完成其任务。
6、在至少一些实施方式中,本文描述的结构和算法可以允许机器人共享信息,例如,经由非专有通信通道(例如,以太网连接),这可以有利地促进机器人(甚至是来自不同制造商的机器人)在共享工作空间中的集成。
7、在至少一些实施方式中,本文描述的结构和算法可以在没有相机或其它感测传感器的情况下运行。在至少一些实施方式中,机器人之间的协调依赖于机器人的运动学模型、机器人传达它们各自的运动规划的能力以及共享工作空间的几何模型。在其它实施方式中,可以可选地采用视觉或其它感测以例如避开可能进入或占用共享工作空间部分的人类或其它动态障碍物,例如,其它机器人。
8、可以使用各种各样的算法来解决运动规划问题。这些算法中的每个通常需要能够确定机器人的给定姿态或者是机器人从一个姿态到另一个姿态的移动是否会导致与该机器人自身或与环境中的障碍物的碰撞。能够使用处理器“在软件中”执行碰撞评估或检查,该处理器执行来自存储的一组处理器可执行指令中的处理器可执行指令,以执行算法。能够使用一组专用硬件电路(例如,在现场可编程门阵列(fpga)、专用集成电路(asic)中实现的碰撞检测电路)“在硬件中”执行碰撞评估或检查。例如,此类电路可以表示在在两个状态之间的相应运动或转换期间由机器人/机器人附件或者由其部分扫过的体积(即,扫掠体(swept volume))。例如,电路可以产生指示运动是否会与任何障碍物碰撞布尔评估,其中至少一些障碍物表示在共享工作空间中操作的其它机器人执行运动或者转换时扫过的体积。
1.一种操作控制一个或更多个机器人的基于处理器的系统的方法,所述方法包括:
2.根据权利要求1所述的方法,其中,评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,包括执行所述可行路径与所述第二机器人的当前姿态之间的碰撞检测。
3.根据权利要求1所述的方法,其中,评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,包括执行所述可行路径与所述第二机器人的路径之间的碰撞检测。
4.根据权利要求1所述的方法,其中,评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,包括执行所述第一机器人在定义的相应时间的至少一个姿态与所述第二机器人在定义的相应时间的至少一个姿态之间的碰撞检测。
5.根据权利要求1所述的方法,其中,评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,包括对所述第一机器人或其部分在沿所述可行路径转换时将会扫过的一个或更多个扫掠体执行碰撞检测。
6.根据权利要求1至5中任一项所述的方法,其中,评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,包括评估至少所述第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的两条或更多条可行路径中的每条路径。
7.根据权利要求6所述的方法,还包括:
8.根据权利要求1至5中任一项所述的方法,还包括:
9.根据权利要求8所述的方法,其中,自主地确定所述第一机器人的所述第一分段姿态,包括确定所述第一机器人的当前姿态与所述第一机器人的第一目标之间的所述可行路径上的分段姿态。
10.根据权利要求8所述的方法,其中,自主地确定所述第一机器人的所述第一分段姿态,包括确定不在所述第一机器人的当前姿态与所述第一机器人的第一目标之间的所述可行路径上的分段姿态。
11.根据权利要求8所述的方法,其中,自主地确定所述第一机器人的所述第一分段姿态,包括如果多个姿态中的每个姿态被选择为所述第一机器人的所述分段姿态,则至少部分地基于所述第一机器人随时间变得不被所述第二机器人阻挡的概率来评估相应姿态。
12.根据权利要求8所述的方法,其中,自主地确定所述第一机器人的所述第一分段姿态,包括至少部分地基于对于多个姿态中的每个姿态,所述第一机器人距所述第一目标的相应距离的评估来确定所述第一分段姿态。
13.根据权利要求8所述的方法,其中,自主地确定所述第一机器人的所述第一分段姿态,包括至少部分地基于至少所述第二机器人的预期的移动来确定所述第一分段姿态。
14.根据权利要求13所述的方法,其中,至少部分地基于至少所述第二机器人的预期移动以确定所述第一分段姿态,包括确定所述第一分段姿态,以将所述第一机器人定位在当所述第二机器人根据所预期的移动而移动时,使得其与所述第二机器人碰撞的概率最小化的位置。
15.根据权利要求13所述的方法,其中,至少部分地基于至少所述第二机器人的预期移动以确定所述第一分段姿态,包括如果多个姿态中的每个姿态被选择为所述第一机器人的所述分段姿态,则至少部分地基于所述第二机器人随时间变得不被所述第一机器人阻挡的概率来评估相应姿态。
16.根据权利要求1所述的方法,还包括:
17.根据权利要求1所述的方法,其中,响应于在所述第一机器人达到所述第一分段姿态之前确定所述第二机器人没有阻挡或将不会阻挡所述第一机器人的当前姿态与所述第一机器人的第一目标之间的可行路径,使得所述第一机器人经由所述第一机器人的当前姿态与所述第一机器人的第一目标之间的可行路径朝向所述第一目标移动,而不到达所述第一分段姿态。
18.根据权利要求1至17中任一项所述的方法,还包括:
19.根据权利要求18所述的方法,其中一个、更多个或所有动作在至少所述第一机器人的运行时期间发生。
20.根据权利要求1至19中任一项所述的方法,还包括:
21.一种控制一个或更多个机器人的基于处理器的系统,所述系统包括:
22.一种控制一个或更多个机器人的基于处理器的系统,所述系统包括:
23.根据权利要求22所述的基于处理器的系统,其中,为了评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,所述至少一个处理器执行所述可行路径与所述第二机器人的当前姿态之间的碰撞检测。
24.根据权利要求22所述的基于处理器的系统,其中,为了评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,所述至少一个处理器执行所述可行路径与所述第二机器人的路径之间的碰撞检测。
25.根据权利要求22所述的基于处理器的系统,其中,为了评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,所述至少一个处理器执行所述第一机器人在定义的相应时间的至少一个姿态与所述第二机器人在定义的相应时间的至少一个姿态之间的碰撞检测。
26.根据权利要求22所述的基于处理器的系统,其中,为了评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,所述至少一个处理器对所述第一机器人或其部分在沿所述可行路径转换时将会扫过的一个或更多个扫掠体执行碰撞检测。
27.根据权利要求22至26中任一项所述的基于处理器的系统,其中,为了评估所述一个或更多个机器人中的至少第二机器人是否正在阻挡或将会阻挡所述第一机器人朝向第一目标的可行路径,所述至少一个处理器评估至少所述第二机器人是否正在阻挡或将会阻挡第一机器人朝向第一目标的两条或更多条可行路径中的每条路径。
28.根据权利要求26所述的基于处理器的系统,其中,所述处理器可执行指令在由所述至少一个处理器执行时,使得所述至少一个处理器进一步执行:
29.根据权利要求22至26中任一项所述的基于处理器的系统,其中,所述处理器可执行指令在由所述至少一个处理器执行时,使得所述至少一个处理器进一步执行:
30.根据权利要求29所述的基于处理器的系统,其中,为了自主地确定所述第一机器人的所述第一分段姿态,所述至少一个处理器确定所述第一机器人的当前姿态与所述第一机器人的第一目标之间的所述可行路径上的分段姿态。
31.根据权利要求29所述的基于处理器的系统,其中,为了自主地确定所述第一机器人的所述第一分段姿态,所述至少一个处理器确定不在所述第一机器人的当前姿态与所述第一机器人的第一目标之间的所述可行路径上的分段姿态。
32.根据权利要求29所述的基于处理器的系统,其中,为了自主地确定所述第一机器人的所述第一分段姿态,在多个姿态中的每个姿态被选择为所述第一机器人的所述分段姿态的情况下,所述至少一个处理器至少部分地基于所述第一机器人随时间变得不被所述第二机器人阻挡的概率来评估相应姿态。
33.根据权利要求29所述的基于处理器的系统,其中,为了自主地确定所述第一机器人的所述第一分段姿态,所述至少一个处理器至少部分地基于对于多个姿态中的每个姿态,所述第一机器人距所述第一目标的相应距离的评估来确定所述第一分段姿态。
34.根据权利要求29所述的基于处理器的系统,其中,为了自主地确定所述第一机器人的所述第一分段姿态,所述至少一个处理器至少部分地基于至少所述第二机器人的预期的移动来确定所述第一分段姿态。
35.根据权利要求34所述的基于处理器的系统,其中,为了至少部分地基于至少所述第二机器人的预期移动以确定所述第一分段姿态,所述至少一个处理器确定所述第一分段姿态,以将所述第一机器人定位在当所述第二机器人根据所预期的移动而移动时,使得其与所述第二机器人碰撞的概率最小化的位置。
36.根据权利要求34所述的基于处理器的系统,其中,为了至少部分地基于至少所述至少第二机器人的预期移动以确定所述第一分段姿态,在多个姿态中的每个姿态被选择为所述第一机器人的分段姿态的情况下,所述至少一个处理器至少部分地基于所述第二机器人随时间变得不被所述第一机器人阻挡的概率来评估相应姿态。
37.根据权利要求22所述的基于处理器的系统,其中,所述处理器可执行指令在由所述至少一个处理器执行时,使得所述至少一个处理器进一步执行:
38.根据权利要求22所述的基于处理器的系统,其中,响应于在所述第一机器人达到所述第一分段姿态之前确定所述第二机器人没有阻挡或将不会阻挡所述第一机器人的当前姿态与所述第一机器人的第一目标之间的可行路径,所述至少一个处理器使得所述第一机器人经由所述第一机器人的当前姿态与所述第一机器人的第一目标之间的可行路径朝向所述第一目标移动,而不到达所述第一分段姿态。
39.根据权利要求22至38中任一项所述的基于处理器的系统,其中,所述处理器可执行指令在由所述至少一个处理器执行时,使得所述至少一个处理器进一步执行:
40.根据权利要求39所述的基于处理器的系统,其中一个、更多个或所有动作在至少所述第一机器人的运行时期间发生。
41.根据权利要求22至40中任一项所述的基于处理器的系统,其中,所述处理器可执行指令在由所述至少一个处理器执行时,使得所述至少一个处理器进一步执行:
42.根据权利要求22至41中任一项所述的基于处理器的系统,还包括: