Project ideas

This is the list of ideas for projects that contribute to Duckietown for Google Summer of Code 2018.

They are calibrated for about 12 weeks of almost-full-time (35 hours/week) work.

Mentors for GSoC

Mentors will be professors, postdoctoral researchers, and senior Ph.D. students at the universities in which the Duckietown development took place.

The senior mentors and contact persons are: prof. Liam Paull (University of Montréal), Dr. Andrea Censi (ETH Zürich), Dr. Jacopo Tani (ETH Zürich), prof. Nick Wang (National Chiao Tung University, Taiwan), prof. Matthew Walter (Toyota Technological Institute at Chicago, USA). In addition, we have 2-3 mentors at each of the above institutions.

We plan to assign the students to mentors based on a combination of interest matches and time zones (so that they can easily communicate over chat).

Onboarding and communication

We use a Slack site as the main communication platform.

We will onboard you after the proposals have been accepted, to reduce the noise on the channels.

Description of pre-requisites and skills

We use the following tags to discuss the projects:

  • : These are projects for which it is necessary to have good Python skills.
  • : These are infrastructure projects that require having advanced software engineering background, including knowledge of continuous integration.
  • : For these, you need to know or learn the required AI/robotics/computer vision techniques. At least an advanced undergraduate preparation is necessary.
  • : These are projects that are close to the state of the art. A graduate-level education in CS, EE, machine learning, or similar discipline is required.
  • : For these projects, it is essential to work with a physical Duckiebot.
  • : For these projects, it is essential to work with a physical Duckiebot, and it is necessary to have some space to build a Duckietown or portions thereof.
  • : These projects are tailored to improving the educational contribution.

FAQ from students

Can we get assigned to a specific mentor/institution?

To facilitate communication, we will match students to the institutions in the same time zone.

Projects on the User Interface

Building monitoring platform for teachers

Motivation: Imagine a class with 20 people and 20 robots: how can the teacher know that everything is ready for the next experience?

The teacher can see which robots are online.

The teacher can see which robots are properly configured for each stage of the class.

The teacher can collect statistics about how Duckiebots are used and where the students get stuck most often.

Scratch interface

Motivation: To make a Duckiebot the first robot for all kids around the world, the interface can't be too hard to learn. Currently we can only interact with robots through command line interfaces, and it requires a level of coding skills. We hope to build a Scratch interface for beginners of programming language and robotics. We also wish that such interfaces will make robots accessible and easy-to-learn for everyone, all ages and all backgrounds.

User interface for creating maps

Create a nice way to create Duckietown maps.

1980s Simcity level of quality: fixed tiles library.

Possibility of creating custom tiles.

Cities: Skyline level of quality.

User interface for operator (laptop/web version)

Create a nice user interface to show:

  1. health statistics for the various modules;
  2. cpu and network consumption;
  3. current state of the robot;

This interface could be web based or running in a desktop environment.

User interface for operator (mobile version)

Like the previous project, but target a phone/tablet device.

Ideally, it should be available for Android and iPhone.

Remote debug console / interface

Allow an instructor or teaching assistant to debug remote problems.

It should work for a Duckiebot that is behind a NAT.

Projects about the infrastructure

Improving backend

The Duckietown project relies on several backend tools for cloud-based integration tests and regression tests. These tools can be greatly improved. Some of the examples are:

  • Improving log database, adding automatic submissions;
  • Improving the regression tests.

Javascript interactive interface for our log repository

We make available many logs for research in perception and machine learning at the site, however, they are not easy to search.

Search/sort/filter the logs using Javascript.

Add tag system.

Add commenting/voting systems for the logs.

Worldwide log collection

Find a way to collect all Duckiebot logs in the world in a scalable way.

One possibility is using the Inter Planetary File System.

Robots can publish their logs using IPFS or analogous system.

A centralized system (like shows which logs are being published.

The solution scales to hundreds of thousands of robots.

Worldwide telemetry collection

Allow the telemetry of Duckiebots to be collected worldwide.

The telemetry is small data (not full images) that can be used to diagnose the problems with algorithms / controllers, especially when updates are made.

Projects about performance optimization

Performance optimization projects are relatively easy. You have some functionality already implemented. You need to make it more efficient, while the unit tests continue to pass. Easy!

Just choose one of the many components.

Examples of components:

  • illumination invariance module;
  • line detector;
  • lane localizer;
  • global localization;

Projects to implement new functionality or behaviors

Intersection Coordination

  • Motivation: In an urban context, crossings of vehicles at intersections are very common. A vehicle that wants to engage an intersection needs to do so guaranteeing safety in the different traffic conditions. Coordination is therefore necessary whether done by a centralised administrator or between the vehicles themselves. Some approaches are already implemented: explicit coordination, based on LED communication and implicit coordination, based on vehicle detection and tracking. The next step is to deal with an hybrid situation where not all the vehicles have LEDs and make the coordination more efficient still guaranteeing the same level of safety.

  • Suggested approach: Peer to peer network communication for hybrid intersection coordination and traffic information propagation.

Centralised intelligent coordinator, e.g. smart traffic light, to optimise the clearing time based on which directions the vehicles want to go (multiple vehicles crossing at the same time if the trajectories are compatible).

Replace the intelligent centralised coordinator with one of the vehicles at the intersection.

Peer to peer network communication.

When Duckiebot meets RobotX Challenge

RobotX challenge is the competition for autonomous surface and underwater vehicles initiated by the Office of Naval Research (ONR) and ran by the Association of Unmanned Vehicle System International (AUVSI). The next competition will be in Hawaii in Dec 2018. Can we use Duckietown to train students to get ready for RobotX? We aim to design RobotX-like scenarios for a Duckiebot to accomplish!

Self calibration

Allow the robot to self-calibrate cameras and motors without human intervention.

Duckiebots Taking on Driving Tests

Human novice drivers need to pass the driving road tests in order to get a license. Can a self-driving vehicle achieve the same tasks? We will use a 1/16 sized testing environment including various tasks, such as parking, S-shaped curved road, stop sign, ramp, and etc. Such environments allow us to examine the level of autonomy and robustness of a self- driving vehicle.

Multi-Duckiebot Patrolling

It is known that multi-robot experiments are typically performed in simulation or with limited amount of real robots. Nevertheless, in real world the location of each robot may be uncertain, and each of them may encounter unexpected delays, making the patrolling problem challenging. We wish to use a fleet of Duckiebots to work together and achieve a goal autonomously in semi-structured environments.