Robotics practicals

MICRO-453

Media

This file is part of the content downloaded from Robotics practicals.
Course summary

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. 
          Some practicals are on campus, and some are on the Geneva campus (GC). The travel costs to Geneva are covered by EPFL (the section is paying them).

  • 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):
           https://docs.google.com/spreadsheets/d/18fI8dPsucrI98XHxg1phqVB79rDsR2tp_xeHxneGse8/edit?gid=0#gid=0 

Rules on the evaluation of the student work:

  • 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):

Program robotics practicals_2025
List of the practicals:


 


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

----------------------------------------------------------------------------------------------------------

light path through telescope

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:

  1. Introduction to the functionning of the robot & SCARA theory (geometry/error model etc)
  2. 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

ObjReg.jpgObjective: 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)
Click to see a [Demo]

LiniX Linear Actuators

Person in charge : Nicolas Furrer
Room : MED 2 2524
Duration : 4 hours
Effort required : 20% theory, 20% programming, 60% experimentation



Objectives : This lab provides an introduction to linear guides solutions and let you assemble a belt driven linear actuator with v-slot guiding wheels. You will control a brushless motor using moteus controller and take a look on the connectic and commutation. Some position control will be implemented based on PID controller with and without feed forward at different angular position. The position of the carriage will be measured with different sensor and their result will be compare. Experimentation on this setup will show you different position measure with their precision and the impact of a feed forward on gravity compensation.

Prerequisite: Basic python3 programming knowledge.

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

Delta Practical

Objectives : 
The aim of this lab is to provide an introduction to parallel robotics using a micro delta robot.
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)
During the lab session, students will have the opportunity to use, configure and operate a real Delta robot.




Haptics

Persons in charge: Özge Orhan


Room: MED 2 2524
Duration: 4 hours
Effort required: 30% theory, 40% programming, 30% experimentation

Haptic pantograph system architechture overview

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


Photo of the Omron Delta Robot
  Objectives:
  • Understand the standard requirements and programming environment for an industrial robotic cell.
  • Learn how to program basic tasks for the delta robot using OMRON's integrated development environment
  • Implement and test a program of "laser cutting" with conveyor tracking on the cell.

  Format:

  • 3h - Theoretical session with the OMRON Engineer
  • 3h - Preparation of the code at home, with submission
  • 2h - Testing and debugging the code with the cell

  Grading:

  • Code preparation (homework)
  • Work during the session (code comprehension and debugging)
  • Quiz after the session (homework)




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)

Robot poissonThis 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.
Throughout the course, we will be discussing the architecture of ROS2.
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


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

 2DoF Helicopter (AERO) modeling, control and implementation

Quanser AERO

Persons in charge: Shaohui Yang, Fenglong SongJohannes Waibel, (Christophe Salzmann, Colin Jones)

Room: MED 2 1120
Duration: 2 x 4 hours

Effort 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.

Prerequisites: Basic MATLAB programming knowledge.