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 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).
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.
We use the following tags to discuss the projects:
Can we get assigned to a specific mentor/institution?
To facilitate communication, we will match students to the institutions in the same time zone.
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.
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.
Create a nice user interface to show:
This interface could be web based or running in a desktop environment.
Like the previous project, but target a phone/tablet device.
Ideally, it should be available for Android and iPhone.
Allow an instructor or teaching assistant to debug remote problems.
It should work for a Duckiebot that is behind a NAT.
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:
We make available many logs for research in perception and machine learning at the site http://logs.duckietown.org, however, they are not easy to search.
Add tag system.
Add commenting/voting systems for the logs.
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 http://logs.duckietown.org) shows which logs are being published.
The solution scales to hundreds of thousands of robots.
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.
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:
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.
Allow the robot to self-calibrate cameras and motors without human intervention.