Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

End-User Robot Programming

  • Also called: end-user programming, EUP
  • Category: Control › Human in the loop
  • Tags: human-robot-interaction, robot-programming, usability, collaborative-robots, programming-by-demonstration

Methods and tools that let people without robotics or programming expertise create, adapt and re-task robot behaviors themselves, where and when they need them.

Definition

End-user robot programming is the area of robotics and human-computer interaction concerned with letting the people who actually use robots, such as factory workers, technicians, teachers or caregivers, tell a robot what to do without needing specialist programming skills. It applies ideas from end-user development in software to robots, where programs also have to deal with physical motion, sensing, uncertainty and safety.

Many approaches exist and are often combined. Programming by demonstration lets users show the task, for example through kinesthetic teaching, where they move the arm by hand, or through teleoperation. Visual programming environments, including block-based editors and flowchart or timeline tools, let users assemble actions graphically. Teach pendants on industrial and collaborative arms increasingly offer wizard-style task templates. Trigger-action rules, augmented reality interfaces that show planned motions in place, and natural language interfaces, now often built on large language models that generate code or task plans, are further options. Behavior trees and state machines frequently serve as the underlying program representation.

The central challenges are expressiveness, so that users can describe real tasks; correctness, so that what they create does what they intended; and safety, so that a program written by a non-expert does not create hazards such as collisions, joint-limit violations, excessive speed near people or pinch points. Approaches to these challenges include simulation previews, automated verification and checking of programs, critics or validators that encode expert knowledge and give feedback, and keeping the user in the loop to confirm or correct the result. Kinesthetic teaching on this site is one input method within end-user programming; the broader field also covers how programs are represented, edited, checked and maintained.

Why it matters

Robots in small factories, labs, homes and care settings need to be re-tasked often, and hiring robotics specialists for every change is not practical. End-user programming determines whether a robot can be adapted by the people who work with it, and it is where usability and safety requirements meet most directly.

Key applications

  • Re-tasking collaborative arms in small and medium manufacturing
  • Programming social and service robots for specific settings
  • Educational robotics and teaching programming
  • Assistive robots customized by caregivers or users
  • Laboratory automation configured by scientists

In practice

A small electronics workshop uses a collaborative arm for machine tending. A technician describes a new task in plain language: pick boards from a tray, place them in a tester, and sort them into two bins by result. A language model turns the description into a program in the robot's task framework. Before execution, a set of automated critics checks the program in simulation for collisions, reachability, speed near the operator's position and pinch points between the arm and the tester, and reports problems in plain language. The technician fixes the flagged steps by moving the arm to corrected waypoints by hand, previews the motion in an AR view, and then runs it at reduced speed for the first cycles.

Common misconceptions

  • End-user programming is just a simpler user interface — it also needs ways to check, debug and safely run what non-experts create
  • Natural language makes robot programming solved — generated programs can be wrong or unsafe and still need checking, feedback and user confirmation
  • Programming by demonstration and end-user programming are the same — demonstration is one approach; others include visual, rule-based and language interfaces
  • End users only need to record motions — real tasks also require conditions, sensing, error handling and loops

Who should know this

  • Developers of robot programming tools and interfaces
  • Application engineers deploying cobots with non-expert operators
  • HRI and HCI researchers
  • Product managers for service and collaborative robots

Related technologies

  • Programming by Demonstration
  • Block-Based Visual Programming
  • Teach Pendants
  • Augmented Reality Interfaces
  • Large Language Models for Code Generation
  • Trigger-Action Programming

Related terms

  • Kinesthetic Teaching
  • Cobot
  • Behavior Tree
  • Imitation Learning
  • Pinch Point
  • Foundation Model

Related projects

  • 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

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.