We have exciting new projects, not only for SA and MA students, but also other team members looking for a fun and interesting project next to ETH obligations. If you are interested in a SA or MA please contact one of our PhDs to discuss project ideas. For other projects, check out the list of current projects below and contact one of our TAs for more information.
If you are interested in previous projects, go to our Project Report site, where you can download multiple reports of previous projects.

Bachelor / Semester / Master Projects

Please get in contact with us if you would like to do a project with us during HS23. The list of available projects will be updated soon. Long Term Tracking for Similarly Looking Objects in RoboCup Soccer SPL Games Distributed Optimization for Multi-Robot Systems Cooperation in RoboCup [closed] If you are interested in one of the projects above, please do not hesitate to reach out to the corresponding supervisors. For general questions about projects, please send an email to nomadz@list.ee.ethz.ch or submit your application here.

Freelancer Projects

We are always looking for freelancers to help us with our projects. If you are interested in working with us, please send an email to This is a glance of the projects we have to deal with as members of the team. Every year new challenges arise and our job is to find solution to them exploiting our capabilities while implementing the newest technological advancements to made our robots work better and better.

If you are interested in one of those or have other ideas, please contact us for more information. You can also join the team to immediately dive into the RoboCup experience.



System Identification for Stabilization

Our walking controller is based on the inverse pendulum assumption. Given this first order model approximation, a PID controller is used to produce a joint command for the AnkleRoll and AnklePitch (check here for visual reference); however, this is purely model-free controller with heuristic tuning. The goal of this project is to improve the control effort by including model information.

Using both geometrical assumptions and system identification techniques, we plan to obtain an accurate model not only useful for control, but also to build a simulation based it. Obtaining a good mathematical model will then allow to adjust the controller from a model-free (PID) to a model-based one (Inverse-Dynamics + PID correction). Ground-truth is obtained wither with filtered IMU data or with an external MoCap system.

The model can be dependent on additional factors such as temperature, battery level, legs extension and so on, such that the model can be adapted online to various conditions.


Behavior & Decision-Making


The current behavior is relatively old and contains many issues that have yet to be solved, but until now there were many other more pressing issues that needed to be solved.

Now with the SelfLocator, Ball Detection, Robot Detection, and most basic motion working reasonably well, the implementation of more advanced behaviors starts to make sense.

The final goal of this project is to enable the robot to pass the ball to each other and incorporate this skill into offensive and defensive gameplay. Theoretically, this is fairly simple but in practice, it is very hard to execute since most kicks are inaccurate, opponents are usually all over the place when trying to execute this maneuver, and most importantly all estimated states and information you have are not 100% correct.


Computer Vision

Team Detection

Detecting robots is one of the main vision tasks in a robot soccer perception stack. Currently, our framework uses a single-stage object detector based on the SSD meta-architecture to detect robots but unfortunately at the moment we are not able to determine the team to which the robot belongs i.e. our own team or the opponent team. While this is already useful for obstacle avoidance, it is not good enough to implement collaborative behaviors.

In this project we are going to design and implement an approach to determine the team of a detected player based on its jersey color. We are going to start with classic computer vision techniques using color based heuristics and eventually move to a more robust learning-based approach.

Sim2Real Translation

Deep learning models have become the standard for perception in SPL, especially for tasks such as object detection and scene understanding. However, collecting high-quality data with the hardware of the NAO and annotating it is a tedious and time consuming task.

One possible workaround is to use synthetic data. State-of-the-art game engines such as Unreal are capable of rendering highly photorealistic scenes, which can then be used to generate synthetic dataset. However, training only on synthetic data might result in poor generalization.

In recent years, it has been shown that deep learning can be used to transfer the properties of a dataset to another one with the same labels but different domains e.g. real and synthetic robot soccer scenes. In particular, models belong to the CycleGAN family have shown very promising results.

The goal of this project is to set up a pipeline to automatically generate annotated synthetic training data for computer vision models from robot soccer scenes rendered e.g. using Unreal Engine and make it more “realistic” using a style transfer model training on publicly available datasets.