Robotics practicals
MICRO-453
Media
Robotics practicals
These robotics practicals aim to gain expertise with focused exercises on robotics. Here are some basic rules:
- All information about these practicals is available on this Moodle page.
- Practicals take place on Monday afternoon, between 13:15 and 17:00. The location depends on the practicals.
- The first session (February 17, 2025, 13:15, @ room CO2) is used to introduce the practicals and for organization purposes
- Please fill in the following link by indicating your group number (Gr_X):
- Indicate your group representative who will have to fill your wish using the “AGEPOLY Wish application”. The link will be shared later.
- Nota.. Only the group representative will use the wish application to choose from one of the program menus, as indicated on the program schedule on Moodle page, P1 to P51.
- Each exercise (practical) indicates the goals and the detailed criteria for evaluation of the student's work.
- Each exercise will specify the effort required in "theory", "design/programming", and "experimentation/analysis".
- Most exercises will be terminated by a report. The reports will be uploaded on Moodle not later than one week after the exercise.
- Each group of students will get remarks on their work and the corresponding mark on Moodle. The criteria and the related marks are summarized in a notation sheet. The mark can have a granularity of 0.1.
- Marks from TPs taking two weeks will be weighted by a factor of two. Marks from TPs taking three weeks will be weighted by a factor of three.
- The evaluation can consider differences between group members when applicable.
- The presence in the practical is mandatory and affects the final grade.
Selected programs for 2025.
Each group is assigned to one of these programs (P01 to P50). Planning (link):


Micro robots for Astrophysics surveys
----------------------------------------------------------------------------------------------------------
Person in charge: Maxime Rombach & Malak Galal & Sébastien Pernecker & Jonathan Wei
Room: MED 3 1715
Duration: 4 hours (only 1 session)
Effort required: 10% theory, 45% programming, 45% experimentation
Please prepare the questions for Part 1: SCARA theory before the TP
----------------------------------------------------------------------------------------------------------

Context: Telescopes use robotics for galaxy observations. The light from the stars needs to be properly received in order to be analyzed and build, for example, a 3D map of the observable universe. Precise positioning of optical fibers is one of the core aspects of such ambitious projects. Historically, it used to be realized by manually plugging hundreds of them onto a focal plate, different for each observation. The EPFL Astrobots team contributed to automatize this fastidious process by developing robotic fiber positioners.
Objective: In this robotics practical you will be introduced to the challenges of micro-robotics for astrophysics. Starting by a description and understanding of this robot and applications, you will then be introduced to the many challenges it has to tackle such as micro-precision & repeatability or hardware.
Structure: This practical has 2 parts:
- Introduction to the functionning of the robot & SCARA theory (geometry/error model etc)
- Experimental measurements of its characteristics (arm lengths, precision, repeatability etc) & grasping the challenges facing this robot
Prerequisite:
Basic Python programming
Materials:
1 SCARA robot fiber positioner
Optical bench for measurements
- Git repo for basic python functions
----------------------------------------------------------------------------------------------------------
For curiosity:
To understand the global picture of such astro-robots one can wander in this document which summarizes the SDSS project. Finally, have a look at this video for a tour of another ambitious astro-robotics project: DESI (Dark Energy Survey Instrument).
Teaching Robots to Accomplish a Manipulation Task
Persons in charge: Sthithpragya Gupta, Baiyu Peng, and Michael Bombile
Room: ME A3 484
Duration: 12 hours
Effort required: 40% theory, 20% programming, 40% experimentation
Objective: In this robotic practical, you will be teaching a robot to build a tower by stacking several objects on top of each other. Each group is provided with five objects of different shapes and sizes. In order to accomplish this task, the robot must be capable of 1) identifying the objects; 2) estimating the location and pose of the objects; 3) generating appropriate motion to pick up each object and stack these on top of other objects.
You will learn how you can teach a robot through human demonstration to acquire the first and third competence. The second competence, namely estimating the position and orientation of the object is beyond the scope of the practical, and hence, you will be provided with a ready-to-use package to perform this step.
Structure: The practical is composed of 3 main steps:
- Training your object identification model.
- Teaching the robot how to perform reaching and placing movements.
- Implement your code to let the robot build a stable and high tower.
Timeline: This practical lasts 12 hours (three weeks x 4 hours). Each week, you tackle one of the steps mentioned above.
Materials: Each student group will receive the following:
- A 6-DoF Katana Robot.
- 5 objects with different shapes and sizes to build your tower.
- Two web cameras for object recognition.
- Some tools (screw-driver, etc)
- Link to the course's website at LASA (URL)
- Theoretical material for the practical and the assignment sheet (File)
LiniX Linear Actuators

Topic 4
Control of a parallel robot MicroDelta
Person in charge: Pierre Oppliger
Room: MED 2 2524
Duration: 4 hours
Effort required: 40% theory, 10% programming, 50% experimenting

This lab is divided into three parts:
- Theory (basics of parallel robotics and delta robots, to be done at home)
- Practical (the main part carried out during the lab session)
- Simulation (measurement of relevant physical values on a model and observation of similar phenomena, to be done at home)
Haptics
Persons in charge: Özge Orhan
Room: MED 2 2524
Duration: 4 hours
Effort required: 30% theory, 40% programming, 30% experimentation

Objective: This lab is closely linked to research projects in haptics and medical robotics. It will give you a brief overview of the haptic devices, problems that have to be addressed to render useful sensations, the type of sensations that can be produced, as well as how these devices can be programmed. We will look at the hardware components that make up a haptic device, discuss the importance and influence of each component, and investigate typical control schemes for haptic applications. You will get hands-on experience with programming a 2-DoF planar haptic interface (a pantograph) to render a simple virtual environment. It will be required to derive the kinematic and force relationships between joint space and task space, and use these relationships to implement the virtual environment.
Prerequisite: Basic C programming knowledge.
Topic 7
OMRON academy - Programming of an industrial Delta robot
People in charge: Yucef Grebici, William Galand
Room: CM 010 (theoretical session), ME A0 407 (practical session)
Duration: 8 hours
Effort required: 35% Theory, 65% Programming
![]() |
Objectives:
Format:
Grading:
|
- Demo of the task (File)
- Topic7_OMRON_DeltaRobot_Theory (File)
- OMRON_DeltaRobot_Template (File)
- Topic7_OMRON_Delta_robot_Worksheet (File)
Topic 8
Programming and characterization of a modular fish robot
Person in charge: Alessandro Crespi
Room: ME D-1 2124 (CAMIPRO needed for access, meeting point is the main entrance of MED building at 12:15)
Practical time: 12:15-16:00 ⚠️
Phone numbers: 36630 (Alessandro) or 34794 (practicals room ME D-1 2124)
Duration: 8 hours (two sessions)
Effort required: 30% theory,
45% programming, 25% experimentation/analysis
Prerequisites: C/C++ programming (at least the bases), using the command line
⚠️ IMPORTANT: it is not possible to finish this practical in time if you don't prepare it as you are supposed to (in particular exercise #2 only requires reading and understanding the source code)
This practical is aimed at programming and characterizing a swimming fish robot made using the
same modules used for the Salamandra robotica II and AmphiBot III robots. Students will first implement some simple programs on the on-board microcontroller, then implement a trajectory generator for swimming. Finally, the performance of the robot
and its dependency on the trajectory parameters will be characterized using a video tracking system.
Please note that the assignment source code for the robot can only be compiled using an ARM7TDMI compiler (arm-none-eabi-gcc), a POSIX compatible shell (e.g. bash) and GNU Make. Such an environment is provided on the computers available for this practical.
Topic 10
Artificial Muscles
Persons in charge: Bokeon Kwak, Shuhang Zhang
Room: MED 3 1122
Duration: Three sessions
Effort required: 30% theory, 30% hardware, 40% experimentation/analysis
This laboratory first provides a general overview of soft material technologies used as artificial muscles in robotics, laying particular emphasis on Dielectric Elastomer Actuators (DEAs). DEAs are a type of actuator that consists of a very soft elastomer film patterned with stretchable electrodes. This simple device is capable of generating very high stress and strain by exploiting electrostatic principles. The second phenomenon that students will learn about is electoahesion (EA). This is an electrostatic attraction between two surfaces in the presence of an electric field. The students will gain hands-on experience fabricating and testing DEAs and EA patches. Following this, the students will get a chance fabricate and analyze their first soft robot using these technologies.
Before the course: Please familiarize yourself with the theory of the course before attending the TP. Also, since you are going to fabricate your own soft robots please come up with ideas sketches and designs that can be applied to your first soft robot implementation.
Report: Please refer to the TP Instructions when writing your report. This document has plots and questions that should be included in your report.
Topic 11
ROS basics
People in charge: Manuel Bernal-Lecina, Valentina Ferraioli, Kunal Massé and Luca Sidoti Pinto Room: GC C3 30 Duration: 3 sessions * (4 h/session) = 12h Effort required: 25% theory, 50% programming, 25% exploration
Objectives:
The goal of this practical work is to introduce the student to ROS2 (Robot Operating System) and some of its basic capabilities.
- What ROS2 is and its role in robotics
- How to create and structure a ROS2 project
- Key ROS2 concepts: nodes, topics, publishers, subscribers, services, servers, clients, interfaces, parameters, launch files
- Basic debugging tools: ros2 CLI, rqt_graph
- What URDF is and how to design it with transforms (TFs)
- How to use RViz for visualization and Gazebo for simulation.
We will also be discussing the development paradigms adopted by the ROS community.
The course will be developed in Python and tested with unknown inputs at the end of the course.
Following the completion of the course, you will have to prepare a report summarising your implementation choices
Materials:
- All you need is your own laptop.
Structure:

Evaluation:
- 20% - In-class activities.
- 50% - Final project.
- 30% - Report.
IMPORTANT: Students are required to complete preliminary assignments (prep-work) prior to the laboratory sessions.
Topic 15
Noise
- Persons In charge: Théo Jean SanlavilleRoom: BM 32... (Text and media area)
- TP_Noise_2025_EN (File)
- Datasheet_EGG5182 (File)
- Datasheet_INA217 (File)
- Datasheet_OPA604 (File)
- Preparation:Please read the documentation ("TP_Noi... (Text and media area)
- Report:Please upload and submit your report not la... (Text and media area)
- Label (Text and media area)
- Label (Text and media area)
Topic 16
Basic Control of a Robotic Hand Prosthesis
Person in charge:
Aiden Xu
Location:
TNE Lab
Campus Biotech (Building B3)
Chemin des Mines 9
CH-1202 Geneva
Duration:
1 sessions (4 hours)
Effort required:
20% theory, 70% programming in C++, 10% experimentation
Objective:
Achieve basic control on a prosthetic hand.
Requirement:
This practical requires the understanding of C, especially on pointers.
Structure:
During the TP, you will implement basic position control on a prosthetic hand with a focus on low-level implementation.
Topic 18

Persons in charge: Shaohui Yang, Fenglong Song, Johannes Waibel, (Christophe Salzmann, Colin Jones)
Room: MED 2 1120
Duration: 2 x 4 hoursEffort required: 25% theory, 25% design/programming, and 35% experimentation/analysis, 15% creativity
Introduction:The AERO is a lab experiment that resembles a helicopter: one rotor is oriented horizontally, the other one vertically. As each rotor not only produces a thrust force but also a torque about the motor axis, the dynamics is coupled and it is necessary to control both motors simultaneously.
This experiment is complex enough to show challenges of real-world modeling and control and yet simple enough to understand it in two sessions. It will be simulated and controlled through Matlab/Simulink.
Content:
- Model the plant.
- Identify the model parameters.
- Design and tune LQR and MPC controllers to track the reference signal.
- Cope with real-world issues you could encounter outside the lab.
Requirements:
This practical assumes that you have followed the Control Systems (or equivalent course) + MPC courses.
Preparation (before coming to the first lab session):
Assignment: PDF
Code: source/zip
Topic 20
Acoustic Levitation Manipulator
Persons in charge: Junsun Hwang
Room: MED 2 2419
Duration: 2 x 4 hours
Effort required: 10% theory, 30% programming, 60% experimentation
Evaluation: Final report covering preliminary assignments and lab sessions
IMPORTANT: Students are required to complete preliminary assignments (homework) prior to the laboratory sessions. Students will need MATLAB on their computers.
Objective:
Acoustic levitators are utilized as robotic end-effectors for handling delicate objects while avoiding contamination. However, they possess an inherent limitation regarding the speed of manipulation. This practical sessions will introduce you to the basics of acoustic levitation. Subsequently, you will be tasked with characterizing the system and developing an open-loop control strategy, based on numerical simulations aimed at optimizing the manipulation of levitating styrofoam spheres.
