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