Efficient Programming of Robot Tasks by Human Demonstration

Name of demonstration

Efficient Programming of Robot Tasks by Human Demonstration

Main objective

Traditional systems for robot programming are rather complex and rely on user knowledge about robotics. In this demonstrator, we address challenges of robot programming by providing software and hardware frameworks to integrate programming by demonstration paradigm into an effective system for programming of industrial production tasks, e.g. automated robot assembly, finishing operations, bimanual tasks, robot motion for visual quality control, etc.

Short description

Robot programming by demonstration (RPD) paradigm offers a much more intuitive approach to specify robot tasks than traditional robot programming systems, including simulation-based systems. It allows the user to show the desired operations using his own physical skills and does not require any expert knowledge about robotics. Our laboratory demonstrator comprises various approaches to robot programming by demonstration and their possible industrial applications: manual (kinesthetic) guidance to record robot motion and the arising forces and torques, manual guidance to specify bimanual assembly tasks, optical marker-based system to record human motion, sensorized tools equipped with markers and 6-D force-torque sensor to record tool motion, and mechanical digitizers. Software to convert the recorded data into executable robot motion is provided.

Owner of the demonstrator

Jožef Stefan Institute

Responsible person

Prof. Dr. Aleš Ude ales.ude@ijs.si



C - Manufacturing


Robot programming by demonstration, Human-robot cooperation, Human motion capture, Kinesthetic guidance, Bimanual systems.

Potential users

Manufacturing companies, System integrators

Benefits for the users

Ease of robot programming: With robot programming by demonstration, the programming of new robot operations becomes easier, more intuitive, and also much faster. In this demonstrator we provide both hardware and software interfaces for a variety of programming by demonstration approaches. By robot programming by demonstration, the user can program new robot operations or adapt the existing with ease. The developed Graphical User Interfaces further ease the programming process. 

Quick adaptation to product variations: If a new variation of the product is introduced, an existing robot operation can be quickly adapted based on the provided technologies.  

Automation of force-based operations: Robot operations that require force control are rarely used in industrial production. With the technologies included in this demonstrator, complex finishing operations (polishing, brushing, grinding) can be programmed quickly and efficiently.


Robot programming by demonstration (RPD) has shown great promise in many research projects but its utilization by industrial users is still limited. This is mainly due to the lack of effective user interfaces for programming by demonstration in industrial environments. In this demonstrator, we provide such interfaces for a variety of RPD systems that can be used for the specification of robot operations in industrial production tasks. The demonstrator shows that RPD is a viable paradigm to improve the programming of classic industrial production tasks such as autonomous robot assembly, as well as tasks that are rarely automated in industrial production, e.g. finishing operations and bimanual tasks that include force control. By making use of RPD, end-users can reduce their reliance on system integrators as it becomes possible to program many complex tasks without expert knowledge. On the other hand, system integrators can reduce the cost of their products by employing RPD.

Risks and limitations

Programming by human demonstrations is only possible if suitable robots and sensors are available. Sensorized tools require additional sensors that increase the price the robot programming. In order to manually guide a robot arm, it needs to support gravity compensation mode, where the weight of the robot is compensated by its motors and the robot arm can be guided with a minimal effort so that a user can focus on the demonstration. Gravity compensation requires the availability of torque values at each joint, which is best measured with torque sensors in each joint. This can significantly increase the price of the robot. Nevertheless. the recently introduced Framka Emika PANDA robot shows that low-cost robots with torque sensors in all jopints are possible.

As the user is demonstrating the skill as he sees fit, the quality of the recorded data and consequently the quality of robot programs rely on the quality of the performed demonstrations. Although programming by demonstration reduces the need for in-depth knowledge in robotics, know-how about the actual production process is still necessary.

Technology readiness level

6 - Safety approved sensors and systems are commercially available

Sectors of application

Manufacture of furniture, Treatment and coating of metals; machining, .

Potential sectors of application

Automotive industry, White goods industry, Aviation industry, Electronics industry, Shoe industry, Manufacturing of machinery

Patents / Licenses / Copyrights

The software package for programming by manual guidance including the GUI is freely accessible under a three-clause BSD license. It is available as one our modules and JSI can provide support. https://github.com/tgaspar/helping_hand/Our programming by demonstration system is integrated into ROSto accelerate the deployment of the programmed operations.https://www.ros.org

Hardware / Software


Robots with gravity compensation (Universal robot UR-10, Franka Emika Panda, and Kuka LWR-4 are available at JSI)

6-D force-torque sensors (JRC, ATI)

MicroScribe 3D digitizer

OptiTrack V120

CyberGlove with Polhemus electromagnetic tracker






The training material currently being prepared and will be announced when it is ready.


Manual guidance for the specification of key configurations in robotic assembly.


Specification of a complex trajectory by manual guidance


Programming by demonstration of a polishing operation


Programming by manual guidance of a polishing operation


Performance of the programmed polishing operation


Short description of the demonstrator


To learn more about the solution, click on the link below to access the training on the Moodle platform
Efficient programming of robot tasks by human demonstration

Back to LIST
Subscribe to newsletter

Please subscribe to our mailing list to be the first one informed about the new open calls, events and other hot news!

    Please check if the email you entered is correct
    All done!

    Your have successfully subscribed to Trinity newsletter.