论文笔记(十):Virtual Reality for Offline Programming of Robotic Applications with Online Teaching Methods

Virtual Reality for Offline Programming of Robotic Applications with Online Teaching Methods



文章概括

作者:Gabriele Bolano,Arne Roennau,Ruediger Dillmann,Albert Groz
来源:G. Bolano, A. Roennau, R. Dillmann and A. Groz, “Virtual Reality for Offline Programming of Robotic Applications with Online Teaching Methods,” 2020 17th International Conference on Ubiquitous Robots (UR), Kyoto, Japan, 2020, pp. 625-630, doi: 10.1109/UR49135.2020.9144806.
原文:https://ieeexplore.ieee.org/document/9144806
代码、数据和视频:暂无
系列文章目录:
上一篇:
论文笔记(九):Assessing the Suitability and … Mixed Reality Interfaces for Accurate Robot Teleoperation
下一篇:
论文笔记(十一):Learning to Track with Object Permanence


摘要

机器人系统是复杂的,通常需要专家对所有不同组件之间的运动和互动进行编程。通常需要具有编程技能的操作人员来使机器人执行一项新的任务,甚至在其当前行为中应用小的变化。为此,人们开发了许多工具来简化机器人系统的编程。在线编程方法依赖于机器人的使用,以便将其移动到所需的配置。另一方面,基于仿真的方法可以实现所需程序的离线教学,而不涉及实际的硬件设置。另一方面,基于模拟的方法可以实现所需程序的离线教学,而不涉及实际的硬件设置。虚拟现实(VR)允许用户安全、轻松地对机器人进行编程,而不需要移动真实的操纵器。然而,在线编程方法需要现场调整,但这两种方法之间通常没有共同的接口。在这项工作中,我们提出了一个基于VR的机器人任务编程框架。所部署的系统架构允许将定义的程序集成到现有的工具中,用于在线教学和在真实硬件上执行。所提出的虚拟环境能够直观地定义整个任务工作流程,而不需要涉及真实的设置。该组件与机器人硬件之间的双边通信允许用户在虚拟环境中引入变化,也允许用户在真实系统中引入变化。这样,它们都可以根据最新的变化进行更新,并以互换的方式使用,以灵活的方式利用两种方法的优势。


1. 介绍

机器人系统是复杂的,它们通常需要技术专家来编程。此外,在确定的行为中应用变化是一个耗时的过程。在过去的几年里,机器人解决方案的广泛传播导致不同背景的人使用机器人,包括没有编程经验的用户[1]。出于这个原因,现在重要的是为他们提供直观的工具来改变和适应机器人程序,不需要漫长的编程阶段,也不需要涉及编码[2],[3]。

在线编程方法依靠使用机器人来生成程序。教挂件使用户能够使用手持设备定义所需轨迹的航点来移动机械手的轨迹。但它们一般允许在关节空间或笛卡尔空间中定义所需的点,这对轨迹航点的微调很有好处,但对整个路径的快速定义却没有好处。引导式编程方法非常简单,用户可以手动引导机器人完成所需配置。但是,生成的程序缺乏灵活性,即使在定义的路径上有细微的差异,也必须重复整个操作。此外,为了将机器人设置在所需的配置中,用户需要靠近机器人工作或实际接触机器人,与机械手接触。根据应用情况和安全原因,这并不总是可能的。这些方法的另一个缺点是,它们必须与真实的机器人在线执行,然后在教学过程中不能操作机器人执行其他任务。此外,教学挂件通常由机器人制造商提供,它们不包括对整个机器人任务进行编程和定义的可能性,这可能包括对附加硬件的操作,如抓手、传感器或传送带。


图1

图1:用于直观地离线编程机器人轨迹和任务工作流程的VR环境。用户可以通过虚拟环境中提供的菜单和按钮来指定需要的机器人操作。

仿真和VR[4]工具使用户能够以安全的方式,不费力地移动和教导一个虚拟机器人。所需的航点可以在虚拟环境中直观地定义和检查,并通过按钮和菜单存储。这些解决方案允许轻松地对机器人进行编程,但它们并不适合应用轨迹航点的微小变化,有时可能需要在部署真实机器人期间进行微调阶段。

采用连接离线和在线编程方法的系统架构,可以发挥两种方法的优势。通过这种方式,用户能够在仿真中离线定义机器人轨迹,设置所需的航点。程序定义完成后,仍可与实际机器人进行微调阶段,并在仿真环境中导入更新后的程序,对过程进行进一步的离线修改,这样就不需要停止机器人。

为了定义涉及不同硬件组件的整个任务,基于GUI的编程方法允许定义整个任务和不同组件之间的协调,将预定义的构件连接在一起。每个模块通常确定任务中的一个基本步骤,例如执行一个特定的定义轨迹,启用或禁用一个抓手或等待来自传感器的信号。然后可以在真实的机器人上执行定义的程序。包括在VR环境中的整个设置,也可以定义整个任务的顺序。所需的操作可以直观地指定,部署一个用户友好的界面来选择所需的硬件组件并定义其行为。VR系统与基于GUI的方法的通信,也可以灵活地定义任务,而不需要依赖特定的技术进行较小的调整,并将程序以一种可以用于实际设置上执行的格式导出。

这项工作的主要贡献是开发了一个基于VR的环境,使用一组预定义的操作来定义高级机器人任务,而不需要复杂的编程。另一个重要的方面是定义了一个接口,以方便地从标准机器人框架中获取相关信息,以便在真实的硬件组件上执行程序。通过所提出的系统,用户可以很容易地定义机器人的轨迹和不同的操作,从而在VR环境中定义所需的任务。另一方面,在线编程方法可以用于机器人轨迹的微调适应和程序工作流程的微小变化,而不需要访问虚拟环境。这些变化可以在所提出的两个组件中进行,并且它们被存储在一个共享的数据库中,从而使程序始终处于最新状态,并以一种灵活的方式进行调整。

本文的结构如下。在第二节,我们介绍了直观机器人编程领域的相关工作。在第三节中,我们描述了所提出的系统,利用虚拟现实和现有的在线编程框架,以直观和灵活的方式对机器人任务进行编程。在第四节中,我们描述了评估实验所部署的应用场景。最后,我们在第五节中提供结论和观点。


2. 相关工作

由于机器人系统的复杂性,许多研究者都在研究如何简化机器人系统的编程,以使没有经验的用户能够实现这一点[5],[6]。另一个重要的方面是加快定义所需机器人轨迹和任务工作流程的配置过程,同时不失去定义的精确性和灵活性。

在机器人机械手教学中,使用最多的方法是利用教坠进行轨迹的点定义[7]。这种装置从机器人技术的早期就开始使用,以方便机器人手臂的移动和编程[8]。这种编程方法可以对机器人轨迹进行精确定义,定义机器人在关节或笛卡尔空间中的理想位置。这种方法的缺点是对新配置的定义很耗时[9]。基于关节的教学是一个繁琐的过程,同时在笛卡尔空间中,用户需要时刻检查用于表达位置坐标的机器人参考框架。出于这个原因,现在很多机器人都提供了一种引导式的教学模式,以使用户能够手动按下教学挂件上的按钮来移动它们,这可以比用于在程序中存储机械手的所需配置。这种方法的缺点是,用手移动机器人,用户需要与机器人接触,这在一些应用中可能是不允许的,而且可能需要付出体力。此外,这些在线编程方法需要部署机器人来定义程序,在此期间,机器人可以用来执行当前的任务或用于其他目的。

仿真工具允许用户对机器人的虚拟表现进行编程,而不需要与真实的机器人进行实际接触。此外,它们使用户能够离线或远程教导机器人,而不需要在现场或停止机器人执行的当前任务。VR是一种很有前途的工具,为了远程操作机器人,使用机器人的模拟表示,在许多作品中已经进行了研究[10],[11],[12]。直接与机器人的真实模拟进行交互的可能性,也被用来简化机器人编程,通过使用用户友好的界面和可视化的菜单来存储所需的配置,使之尽可能的直观[13]。例如,用户可以与机器人的虚拟表示进行交互,将所需的链接拖动到所需的位置。例如,用户可以与机器人的虚拟表现进行互动,将所需的链接拖到所需的位置。按钮、菜单和文本信息可以显示在需要的位置,以便让没有经验的用户能够直观地进行编程。增强现实(AR)是另一种技术,在许多机器人应用中越来越受到关注[14],[15]。这是由于近年来的技术进步,使得在机器人编程中得到了应用[16],[17],[7]。在Ong等人的工作中,提出了一种基于AR的工业应用编程系统[18]。通过使用手持指针,用户可以定义航点和真实机器人必须遵循的路径。该方法包括使用传感器数据,以便包括路径规划和碰撞检测算法。不幸的是,这些方法不允许在定义机器人轨迹的高精度。事实上,这依赖于模拟的准确性,这可能会在有这种要求的任务中导致问题。

这些方法的结合可以实现高效、灵活、直观、精确的机器人编程方式。离线方法可用于快速、直观地定义机器人程序。然后,真正的硬件可以只用于小范围的调整,这些调整需要在线进行。在现有的文献中,缺乏关于这个问题的工作。只有少数作品研究了如何将VR工具与现有的常用于控制机器人系统的开源框架进行整合[19]。Codd-Downey等人提出了一个利用基于yaml的网络套接字通信协议[22]整合Unity[20]和ROS(机器人操作系统)[21]的系统。作者针对一个涉及移动机器人的远程操作任务开发了该系统。目前的技术现状是缺少如何将机器人编程的离线和在线方法双向连接在一起的工作。仿真环境的精度决定了对真实机器人的适应性需求,而这些修改是否能在仿真环境中也能存储和更新是非常重要的。这样就可以进一步在仿真环境中进行离线修改,保持使用真实机器人进行更新。


图2

图2:系统架构概述。虚拟现实编程框架和直观的编程软件和机器人控制通过共享数据库进行通信。从后者中,信息可以存储在具有适当格式的文件中,这些文件被Motion Pipeline和FlexBE使用。

我们发现,在更复杂任务的编程方面也缺乏研究,其中包括不同的机器人轨迹和额外硬件的操作。包括其他操作的定义,例如操作抓手或移动传送带,使用户能够定义整个机器人任务,涉及不同的硬件和所涉及的组件之间的同步。Schillinger等人的工作提出了FlexBE,这是一个用户友好的高级行为引擎,它允许定义所需的任务工作流程,将简单的构件连接在一起[23]。这些代表了基本步骤,如执行一个特定的轨迹,启用一个抓手或等待一个传感器的信号。

在本文中,我们提出了一个VR框架来直观快速地定义机器人程序。这包括所需轨迹的定义,以及整个任务的定义,其中也包括涉及其他硬件组件的操作。所提出的系统架构旨在填补在线和离线编程之间的空白。通过这种方式,用户可以在VR中轻松快速地定义所需的程序。如果需要调整机器人的轨迹,这可以在真实的机器人上完成,使用提供的GUI,它可以与教学挂件相结合。两个组件之间使用共享数据库,可以根据用户的需求,对双方的程序进行更改和更新。


3. 方法

这项工作中提出的系统包括一个VR框架,它允许用户轻松定义机器人轨迹和定义任务的操作顺序,部署设置的虚拟表示。VR环境已在Unity中实现。机器人系统的虚拟表示允许用户拥有一个真实的环境,在这个环境中可以离线定义所需的机器人程序。使用VR头显,用户可以体验到身临其境的模拟,并使用VR控制器在模拟环境中自由移动。通过这种方式,可以从所需的角度定义所需的机器人配置。为了能够简单直观地移动机器人TCP,机器人末端执行器以绿色球体高亮显示,如图3所示。在此区域移动虚拟手,并点击控制器触发器,用户就能将机器人TCP拖动到所需的位置和方向。之后,释放控制器触发器,机器人会保持定义的配置。使用模拟中提供的菜单,用户可以检查机器人关节的值和当前TCP位置的笛卡尔坐标。包括一个虚拟激光笔,以便选择虚拟界面中显示的按钮。位置可以通过按钮存储,将机器人配置作为当前轨迹中的一个航点。该界面还提供了一个按钮来回放已保存的配置,在将其导出到真正的机器人上执行之前,给用户一个关于定义轨迹正确性的反馈。


图3

图3:在定义机器人轨迹的过程中,机器人TCP用绿色球体高亮。在此区域移动VR控制器,用户能够直观地拖动虚拟机器人,将其末端效果器定位在需要的配置中。

在VR中定义的轨迹在真实机器人上的执行是使用FZI Motion Pipeline来完成的,FZI Motion Pipeline是我们开发的一个ROS软件栈,用于在具有标准ROS接口的机器人上更容易和灵活地执行轨迹。由于它的模块化,机器人轨迹的执行和在线修改可以从机械手提供的特定硬件接口中抽象出来。该组件负责平滑轨迹,并将其作为目标发送给机器人控制器。还支持笛卡尔运动的执行,将笛卡尔航点提供给在ROS控制中实现的笛卡尔控制器[24]。该控制器基于前向动力学权衡,以避免奇异性,并对所需配置的机械手的逆运动学有一个稳健和安全的计算。FZI运动管道为用户提供了一个图形用户界面,它的开发是为了方便没有经验的用户执行和调整轨迹。可用的轨迹通过界面列出,用户可以使用简单的按钮来加载、执行或修改它们。如果需要调整航点,用户可以输入所需的配置值,或者使用机器人教学挂件设置改变后的位置,并将其存储在所需轨迹中。

对于高级任务的定义,我们集成了开源的高级行为引擎FlexBE[25],也是在ROS中实现的。它负责调节任务的执行,任务被建模为一个状态机,触发所需轨迹和操作的执行。FlexBE还提供了一个GUI,用户可以轻松定义机器人任务的工作流程,将构件连接在一起,无需编程。一旦定义好,就可以使用界面提供的按钮在真实的机器人上执行所产生的行为,然后显示当前的执行状态。唯一涉及的编程是定义程序的基本步骤,例如执行特定的轨迹或打开抓手。然而,这些都只需要定义一次,以便与FZI运动管道接口,然后负责抽象到具体的硬件。

VR框架和ROS组件之间的通信是基于共享数据库的。一旦用户在虚拟环境中保存了所需的程序,它就可以被FZI运动管道和FlexBE组件导入和访问。如果在线进行修改,也会发生同样的情况:修改的内容被上传到数据库中,更新的内容被导入到VR环境中,以实现进一步的离线编程阶段。这样一来,用户可以根据需求使用首选的编程方法,在需要的时候能够随时切换方法。例如一般程序可以在VR环境中定义,一旦导出到真实的机器人上,就可以进行调整,以更精确地达到所需的位置。反过来说,更新后的程序也会被导出到共享数据库中,以允许在VR端进一步离线修改,保持程序在每个部件上的更新。图2描述了系统的整体架构。将程序信息存储在共享数据库中,其优点是可以独立使用离线VR编程或在线编程。例如,如果机器人在运行中需要执行一些其他任务,用户可以在VR环境中离线创建一个新的程序。另一方面,如果用户想使用真实的机器人修改轨迹,他可以在不需要VR应用启动和运行的情况下进行修改。对于这两种方法,共享数据库可以让这两个组件始终保持更新,随时可以互换使用。

在VR编程组件中,我们包含了一个定义一般机器人操作的接口,这些操作可以组合在一起,指定一个完整的机器人任务的工作流程。我们包含了控制机器人抓手和移动传送带的操作。一个操作和后续操作之间所需的等待时间也可以在任务定义中添加。图4显示了用户可用于定义所需操作的菜单。


图4

图4:VR环境中的菜单可以让用户快速直观地定义所需的机器人程序。只要选择所需的操作,整个任务工作流程就可以在模拟中离线编程。

存储在数据库中的程序信息由轨迹/程序解析器模块解析,然后用于创建行为文件,FlexBE使用ROS在真实组件上执行。数据库的结构包括定义机器人任务的相关字段。每个操作都有一个唯一的ID,用于识别它和一组与其执行相关的字段。例如,执行机器人轨迹的操作包括关节配置和末端执行器的笛卡尔姿态。实现所需的FlexBE状态来操作机器人、抓手和传送带,无需进一步编程,提供输入参数来定义所需的配置和速度,这些参数也是从数据库中提取的。


4. 实验

该系统已被测试为一个机器人系统的编程组成的机器人配备了两个手指抓取。所部署的装置包括一条传送带,以便测试额外硬件的使用情况,而不仅仅是一个机械手。图5报告了用于测试编程系统的硬件设置。

首先,我们给出了一个简单轨迹的规划。这是在虚拟现实环境中完成的,目的是在不涉及真实机器人的情况下,快速地离线定义所需的航路点。由于抓取对象小,最终机器人配置要使其拾取非常精确,需要在实际设备上使用实际装置进行。无论如何,一旦在数据库中导出,程序就会自动转换并导入到FZI运动管道中,准备在真正的机器人上执行。如图7所示,所定义的程序已经准备好执行,并且可以使用真实的机器人在GUI上调整所需的航路点。

在这个例子中,唯一需要更精确定义的点是轨迹的最后一点。手动调整机器人与教学挂件,所需的配置就可以更精确地定义,并可以使用图形界面进行存储。与在VR编程中的方式一样,修改后的轨迹被存储在数据库中,可以用于进一步的离线修改,或者作为一个更复杂的轨迹或程序的基础。作为进一步的测试,我们决定将程序扩展到包括整个拣选和放置任务,使用已经存储的轨迹进行拣选操作。这样做的目的是为了说明用户可以重复使用在真实设置上定义的更新轨迹,利用VR环境进一步离线开发任务工作流和其他轨迹。在模拟环境中,可以部署之前的轨迹,进一步指定任务定义与缺失的操作。其中包括抓取零件的抓手关闭,将物体带到放置位置的轨迹定义,以及打开抓手释放物体的轨迹定义。 为了保证精确的抓取,在抓取操作前有两秒钟的等待时间。传送带的速度也进行了修改,使其在抓取前停止并在抓取后重新启动。所有这些不同的操作都可以通过虚拟环境中提供的菜单轻松快速地指定。一旦通过相应的按钮保存了任务,程序也会被存储在数据库中,并转换为运动管道所需的轨迹文件和包含整个程序行为定义的文件,这些文件被FlexBE使用。图8描述了FlexBE GUI中的任务定义结果。通过这个界面,可以在真实的硬件上按相应的按钮执行整个程序。GUI还向用户展示了执行的各个阶段,可以用来监控或改变当前的行为。不同的执行步骤的名称与VR环境中定义的名称相同,因此在执行过程中很容易识别程序的不同阶段。


图5

图5:用于评估实验的整体硬件设置。这包括一个通用机器人UR10,一个Weiss WSG-25抓手和一个传送带。编程任务包括在VR中定义机器人轨迹,以及启用抓取器和传送带的操作。然后将程序导入到真实的机器人上执行,并进一步进行在线适配。

图6

图6:(a)描绘了在VR中定义的轨迹的最后一个航点,以便在传送带上挑选物体。在(b)中,我们可以看到用户定义的航点,以定义将物体放在桌子上。



5. 结论

该框架中提出的系统可以结合离线和在线编程方法,更容易、更高效地定义机器人程序。我们提出了一个基于VR的框架,让没有经验的用户可以在不需要机器人专业知识的情况下轻松地对机器人进行编程。通过这种方式可以离线定义程序,而无需在真实的机器人硬件上操作。所需轨迹的航点可以通过简单而轻松地拖动虚拟机器人到所需位置来定义。将机器人的轨迹和操作存储在数据库中,使程序能够以与负责控制真实机器人的开源软件兼容的格式导出。所部署的组件提供了一个用户友好的图形用户界面,并能在真实的机器人上轻松执行和监控程序。他们还可以直观地对程序进行在线修改,而不需要进入虚拟环境进行需要在实际设置中执行的小修改。使得在线进行的修改也存储在共享数据库中,用户也可以在虚拟环境中部署更新的程序。如果定义的轨迹需要进一步的修改,而这些修改可以在离线状态下完成,或者如果用户想将其用于定义更复杂的程序,这一点非常有用。在VR环境中提供的不同操作包括使用不同的硬件,以显示系统的灵活性,可以用来定义涉及不同硬件组件的一般任务。


图7

图7:运动管道提供的GUI界面显示了VR环境中离线定义的机器人轨迹。利用这个界面,可以在真实的机器人上执行程序,如果需要对机器人TCP进行更精确的定位,可以使用教挂件在线调整航点。

图8

图8:在VR环境中离线定义的程序的FlexBE表示。一旦在FlexBE中导入程序,就可以使用表示的GUI直接在真实硬件上执行。

所开发的系统可以使用增强现实工具进行改进,使所定义的程序更加直观和真实的可视化,允许在真实机器人上叠加虚拟机器人进行在线修改。此外,虚拟环境还可以扩展到包括更多的硬件组件,这些组件可以被编程并包含在任务定义中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值