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