The great diversity of end-user tasks ranging from manufacturing environments to personal homes makes pre-programming robots for general purpose applications extremely challenging. In fact, teaching robots new actions from scratch that can be reused for previously unseen tasks remains a difficult challenge and is generally left up to robotics experts. In this work, we present iRoPro, an interactive Robot Programming framework that allows end-users with little to no technical background to teach a robot new reusable actions. We combine Programming by Demonstration and Automated Planning techniques to allow the user to construct the robot's knowledge base by teaching new actions by kinesthetic demonstration. The actions are generalised and reused with a task planner to solve previously unseen problems defined by the user. We implement iRoPro as an end-to-end system on a Baxter Research Robot to simultaneously teach low- and high-level actions by demonstration that the user can customise via a Graphical User Interface to adapt to their specific use case. To evaluate the feasibility of our approach, we first conducted pre-design experiments to better understand the user's adoption of involved concepts and the proposed robot programming process. We compare results with post-design experiments, where we conducted a user study to validate the usability of our approach with real end-users. Overall, we showed that users with different programming levels and educational backgrounds can easily learn and use iRoPro and its robot programming process.
翻译:从制造环境到个人住宅,终端用户的任务多种多样,从制造环境到个人住宅等,这使得为一般用途应用而预先编程的机器人变得极具挑战性。事实上,教机器人从零开始的新行动,从零开始,可以重新用于先前的不可见的任务,这仍然是一项艰巨的挑战,通常留给机器人专家来完成。在这项工作中,我们提出了一个互动机器人编程框架iRoPro,这个框架允许很少或没有技术背景的用户通过图形用户界面定制来教授机器人新的可再使用的行动。我们通过演示和自动化规划技术,使用户能够通过传感学演示来建立机器人的知识库。这些行动被概括化,再利用一个任务规划员来解决用户以前未见的问题。我们把iRoPro作为巴克研究机器人的端对端系统,同时教授低级和高级行动,通过演示,用户可以通过图形用户界面接口来适应他们的具体用途。为了评价我们的方法的可行性,我们首先进行了预设计实验,以便让用户更好地了解用户采用相关概念和拟议的机器人编程过程。我们用一个任务规划过程,我们把结果与设计过程与设计过程的用户背景对比,我们进行真正的设计实验,我们是如何进行。我们用不同的用户和最后的用户的实验,我们用一个学习过程,我们进行。我们用一个学习过程来验证。