End-User Robot Programming
- 又称: end-user programming, EUP
- 类别: Control › Human in the loop
- 标签: human-robot-interaction, robot-programming, usability, collaborative-robots, programming-by-demonstration
让没有机器人或编程专业知识的人,在需要的地点和时间自己创建、调整和重新分配机器人行为的方法和工具。
定义
终端用户机器人编程(end-user robot programming)是机器人学和人机交互中的一个领域,关注的是让真正使用机器人的人,例如工厂工人、技术员、教师或照护者,在不需要专门编程技能的情况下告诉机器人做什么。它把软件领域中终端用户开发的思想应用到机器人上,而在机器人上,程序还必须处理物理运动、传感、不确定性和安全。
方法有很多,而且常常结合使用。示范编程让用户把任务演示出来,例如通过动觉示教(用户用手移动机械臂),或通过遥操作。可视化编程环境,包括基于积木的编辑器以及流程图或时间线工具,让用户以图形方式组装动作。工业机械臂和协作机械臂上的示教器越来越多地提供向导式的任务模板。触发-动作规则、在现场显示规划运动的增强现实界面,以及自然语言界面(如今常建立在生成代码或任务计划的大语言模型之上),是另外一些选项。行为树和状态机常被用作底层的程序表示。
核心挑战在于:表达能力,使用户能够描述真实的任务;正确性,使他们创建的程序能实现他们的意图;以及安全性,使非专家编写的程序不会造成碰撞、违反关节限位、在人附近速度过高或出现夹点等危险。应对这些挑战的方法包括仿真预览、对程序的自动验证和检查、编码专家知识并给出反馈的评审器或验证器,以及让用户留在回路中确认或修正结果。本站上的动觉示教是终端用户编程中的一种输入方法;更广泛的领域还涵盖程序如何表示、编辑、检查和维护。
为何重要
小型工厂、实验室、家庭和护理场所中的机器人需要经常重新分配任务,而每次改动都聘请机器人专家并不现实。终端用户编程决定了一台机器人能否由与它一起工作的人来调整,也是可用性要求与安全要求最直接交汇的地方。
主要应用
- 在中小型制造企业中为协作机械臂重新分配任务
- 为特定场景给社交机器人和服务机器人编程
- 教育机器人和编程教学
- 由照护者或用户定制的辅助机器人
- 由科学家配置的实验室自动化
实际应用
一家小型电子作坊使用一台协作机械臂进行机床上下料。一名技术员用平实的语言描述一项新任务:从托盘中取出电路板,放入测试仪,再按结果把它们分拣到两个料箱中。一个语言模型把这段描述转换成机器人任务框架中的程序。执行之前,一组自动评审器在仿真中检查程序是否存在碰撞、可达性、操作员位置附近的速度,以及机械臂与测试仪之间的夹点等问题,并用平实的语言报告问题。技术员用手把机械臂移动到修正后的航点,以修正被标记的步骤,在 AR 视图中预览运动,然后在最初几个循环中以降低的速度运行它。
常见误解
- 终端用户编程只是一个更简单的用户界面 — 它还需要检查、调试并安全运行非专家所创建内容的方法
- 自然语言让机器人编程成为已解决的问题 — 生成的程序可能出错或不安全,仍然需要检查、反馈和用户确认
- 示范编程和终端用户编程是一回事 — 示范只是一种方法;其他方法包括可视化界面、基于规则的界面和语言界面
- 终端用户只需要录制动作 — 真实任务还需要条件、传感、错误处理和循环
谁需要了解
- 机器人编程工具和界面的开发者
- 与非专家操作员一起部署协作机器人的应用工程师
- HRI 和 HCI 研究人员
- 服务机器人和协作机器人的产品经理
相关技术
- 示范编程(Programming by Demonstration)
- 基于积木的可视化编程(Block-Based Visual Programming)
- 示教器(Teach Pendants)
- 增强现实界面(Augmented Reality Interfaces)
- 用于代码生成的大语言模型(Large Language Models for Code Generation)
- 触发-动作编程(Trigger-Action Programming)
相关术语
相关项目
- Reachy Mini: Open-source desktop robot from Pollen and Hugging Face with an expressive 6-DoF head
- RAI: Vendor-agnostic agent framework for ROS 2 robots and physical AI
- Assistive Gym: Physics simulation framework for training assistive robots in caregiving tasks