YJ Lim MathWorks
工业机器人需要许多工程领域的知识,包括机械设计、感知、决策、控制设计和嵌入式系统。了解完成拾取摆放机器人工作流程的关键部件和步骤。
拾取和放置机器人包括感知环境的基本初始化步骤,然后是两个主要步骤,如识别部件和执行拾取和放置工作流。与传统的工业机器人任务预先定义工作区域内的所有对象相比,计算机视觉扫描和构建环境过程对于高混合部件的选择和灵活操作具有重要意义。计算机视觉工具箱™和深度学习工具箱™用于目标检测。下一个任务是指导机器人通过避免与场景中的障碍物碰撞,从初始配置移动到期望的关节配置。运动规划包括路径规划和轨迹生成,提供光滑的关节轨迹,解决实际的工业机器人任务。在本视频中,您将看到为工业机器人操作器应用引入的双向快速探索随机树(RRT)算法。路径规划器提供的路径构成轨迹生成的输入。然后,轨迹生成器将生成一个基于时间的控制序列,用于随时间如何遵循给定的路径约束。您还将了解如何使用statflow®可用于安排高级任务,并为拾取和放置工作流从一个任务到另一个任务进行步骤。
有关本视频中使用的工具的更多信息,请参考以下资源:
在这个视频中,我将讨论如何设计工业机器人应用程序特别是用MATLAB进行机器人应用程序的开发。在本视频中,我将涉及以下主题。
首先,我将开始谈论工业机器人和每个应用程序。然后,我会讨论关键组件和步骤,以完成机器人工作流程的挑选和步骤,例如扫描和构建环境,检测和分类零件和路径规划和轨迹生成。我将通过指出额外的可用资源来得出结论。
在这里,我们看到一个模拟在左边和相应的视频在右边的机器人手臂执行捡和放置。装卸自动化可以加快拣起零件或物品的过程,并将它们放置在另一个位置,为最后一英里的工业应用。通常,这种应用程序使用先进的感知系统和自主肘部区域来识别、抓取和移动物体。
拾取放置机器人一般或包括感知、规划和控制的要素。全局机械手可以根据摄像机的输入对特定目标进行自主检测,并规划路径进行拾取。
正如您所能想到的,它涉及到几种不同的技术——如机器人、优化、计算机视觉、机器学习、控制器逻辑等等。在开始设计机器人应用程序时,我们可以先设计一个系统,它代表了我们需要在它们之间进行交互的组件。
在这种情况下,我们需要感知模块的对象检测器和崩溃文件,运动规划器和状态控制器,模拟器或加载条的原型,迭代和测试每个性能。
在幻灯片中,我进一步分解了整个拾取和放置工作流程。这个流程图解释了负载臂机械手如何与物体相互作用的细节。它可以包括一个感知环境的基本初始化步骤,然后是两个主要步骤——如识别部件和执行取放任务。
第一个关键步骤是更容易感知环境。通过利用计算机视觉的3D扫描和点云处理,自主工业机器人需要对动态环境做出响应,如零件位置的变化或动态障碍。与一切都是事先知道的传统拣放任务相比,这些步骤对于挑选高混合部分以及灵活的自动化非常重要。
这种方法将克服传统工业机器人应用中的局限性。因此,在开始拾取放置任务之前,机器人移动预定义的工作区域,利用机载传感器扫描场景并捕获一组环境点云。
一旦机器人扫描工作区区域,就进一步处理捕获的点云以被编码为碰撞网格,以便机器人可以在通过计划期间容易地识别障碍物和部分。此处示出了来自点云到碰撞网格的过程。几个点云处理工具将从MATLAB中的计算机视觉工具箱中使用 - 例如将点云变换,点云涌现和分段点云中的群集。最后,您可以从生成的点云段创建碰撞网格对象然后路径打印机将理解这些网格作为避免的障碍。
我们现在需要对物体进行检测和分类,这样机器人就能知道该捡哪个物体。我们可以创建一组用于训练的图像数据。在这里,我们移动一个机器人,从许多不同的相机角度捕捉图像流。然后我们可以使用深度学习对目标或图像进行分类和检测。
图像可以使用计算机Vision Toolbox的图像标记应用程序标记。这样您就可以为检测模型创建培训数据步骤。来自计算机视觉工具箱的检测功能可以在检测到的对象上为您的类提供边界框的图像位置。
在这个回收机器人的例子中,在露台模拟器中,我们有两个类系统对象——bottom和can——放置在桌子的不同位置。我们使用来自机器人的模拟摄像头,并应用预先训练的深度学习模型来检测可回收的部分。该模型以相机帧作为输入,然后输出物体的位置和需要回收的类型。
机器人现在知道避免碰撞的障碍,以及哪个对象拾取,以及将它们放在哪里。接下来的测试是通过操作碰撞来指示机器人从初始计算移动到所需的联合计算,以拾取对象并放置对象。
为了移动局部物体到达目标,我们需要运动规划器。让我们深入到路径规划和轨迹生成,提供平滑的关节轨迹解决实际机器人任务。机器人在环境中拾取和放置物体可能需要路径规划算法来找到机器人从一个配置到另一个计算的无碰撞路径。它是对运动的纯粹几何描述。考虑到避障,并在全球范围内处理一个复杂的场景。
它将初始配置,最终配置和环境作为输入。有趣的是有趣的是需要满足的约束。约束示例是机器人连接限制和障碍物。Path Planner将发现从启动配置,目标配置的碰撞预关节轨迹。根据您使用的应用程序,环境和机器人的特性,您可以使用优化理论或基于采样的路径规划仪启动它。
在这里,我想向您介绍机器人操纵器的双向爆炸库存算法。双向RRT规划器根据开始,创建两棵树,以及目标配置。它需要指定SUM属性。规划配置之间的第一个最大连接距离。和一个可选的,连接到启发式,以潜在地提高速度。要从启动和目标配置扩展每棵树,并且策划器会生成随机配置。如果有效,这意味着没有与环境发生冲突,请根据最大连接距离属性从列出的节点迈出。
扩建后,规划师试图连接两棵树。未将无效配置或与环境冲突的连接添加到树中。当EnableConnectHeuristic属性为true时,这将禁用最大连接距离属性的限制,并在两个节点看到对方时直接连接前二到三的碰撞。当环境不那么拥挤时,启发式连接对于更短的规划时间是有用的。
当我们将启用连接启发式属性设为false时,我们将扩展距离限制为连接2到3之间,即最大连接距离的值。这将导致更高的连续寻找有效计划的速率,但可能需要两条长路径。通过学习随机化器的缩短策略,我们可以使用路径缩短函数来缩短指定的路径。例如,这是初始传递。你可以选择两条不相邻的边,并在我们选择的边上选择中间配置。试着把它们联系起来。如果无效,跳过添加此边。但是我们重复另外两条不相邻的边。如果有效,添加此边。然后,我们可以删除另一条更长的边。
在这张幻灯片中,我将展示一个例子来展示如何在全局操纵器中使用双向RRT函数。正如我所讨论的,有几个属性可以调优机器人路径,以便缩短路径或提高路径规划时间。我在这里展示了两条路径,当将物体放置在墙上时,最大连接距离较大,最大连接距离较小。规划的计算时间——规划器与生成的配置的数量成比例。
为了提高规划时间,可以考虑增加验证距离或减小最大连接距离。路径规划器提供的路径,构成轨迹生成的输入。然后轨迹发生器将生成基于时间的序列,或者通过多项式函数类局部连接路径点来跟踪给定的位置、速度和加速度等约束条件下的路径。所以轨迹描述的是如何沿着时间的路径前进。我们现在可以知道路径规划和轨迹生成之间的区别。
有几种方法可以创建插值时间的轨迹。例如,梯形速度轨迹是恒定加速度,零加速度和恒定减速的轨迹轨迹。这导致梯形阶段一段时间。实现以防止诸如位置,速度和加速度限制等要求无效。您还可以使用多项式的各种顺序在两条点之间插值。实践中最常见的顺序是立方多项式和Quintic多项式。多项式轨迹可用于连续缝合零或非零速度和加速度的段,因为加速曲线与梯形速度轨迹不同。
所以我们需要不断地检测物体,把它们捡起来,并把它们放在正确的预备区域。为了做到这一点,可以使用稳定图来调度高层次的任务,并逐步从任务到任务的选择和位置的工作流。最后,通过将所有步骤组合到这个示例中,机器人识别出部分,并将它们回收到两个引脚中。在这个例子中,机器人正在Gazebo模拟器上学习,机器人上安装了一个模拟深度摄像机。
采用双向RRT路径规划和梯形速度剖面进行轨迹生成。这个例子使用了多个联合工具箱。利用机器人系统工具箱对机械手进行建模和仿真。ROS工具箱用于将MATLAB连接到Gazebo模拟器。计算机视觉工具箱和深度学习工具箱用于点云处理的目标检测。它开始扫描环境,使用点云处理构建场景。一旦扫描工作区域的完整场景可用,并建立环境步骤,机器人可以规划路径来挑选,并将零件放入回收箱。机器人继续工作,直到旧的部分被放置。这里展示的回收机器人的例子,可以是不同的场景的前传,如焊接,装配。
在这段视频中,用覆盖的挑选与matlab的少量应用程序开发。我们有很多例子可以开始使用。我在这里列出了一些例子,有关机械手动运动计划,轨迹生成和追随,以及从机器人工具箱中可以尝试的机器人工具箱碰撞检查。我鼓励您访问机器人系统工具箱网页。我们有一个关于我们网站上发布的研讨会多名,以帮助加快您的发展工作。此外,我们还有一个简短的视频,而GitHub存储库可以帮助您加快几个主题。我会请您探索这些资源,并查看这些资源是否可以帮助您的应用程序。感谢您的关注。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。