Duckiematrix with Virtual Duckiedrone and Duckiebot

New Software Release – Ente Changelog

New Software Release – Ente Changelog

The Duckietown platform has been evolving since its creation back at MIT in 2016. The main code base has undergone four major revisions, with the current release named daffy (d: fourth letter of the alphabet). 

We are now happy to announce the new major Duckietown software release: ente

Why ente?

First things first: why is it called ente?

Among the various meanings of this word in different languages, Ente is the German word for “duck”. We chose this name as a tribute of Duckietown to ETH Zürich, and the German-speaking part of Switzerland, for their influence on Duckietown’s evolution over the last years.

But why did we need ente

We built ente to streamline the code base, especially the autonomy code running on Duckietown robots, make the development process quicker and more efficient, and to prime the platform for easier updates, maintenance, and future improvements. 

The Duckietown codebase had evolved, historically, from a classroom experience, resulting in a improvable autonomy stack. The ente initiative grew to include infrastructural upgrades, e.g., the introduction of the Duckietown Postal System (DTPS), to better support reproducible robotics learning experiences in light of new developments in the fields of robotics and AI, e.g., the release of ROS2.

What is new in ente?

Here is a non-exhaustive list of changes introduced by ente into Duckietown.

The Duckiematrix virtual environment

With ente comes the Duckiematrix, a photorealistic Unity-based virtual environment supporting virtual Duckietown robots. 

The Duckiematrix allows simulating the physics and aesthetics of a physical Duckietown environment, as well as the sensing and acting capabilities of virtual Duckietown robots within that environment.

The Duckiematrix is programmable, lightweight, ROS compatible, and supports “multiplayer” features, where multiple learners can join the same city with their Duckiebots and learn & practice together.

Duckiematrix logo 2
Virtual Duckiebots: digital twins for Duckietown robots

Virtual Duckietown robots allow for a Duckietown robot’s full software stack to be run on a local machine in its own Docker environment, and allowing for the full simulation of any aspect of that Duckietown robot within the Duckiematrix, simplifying testing and improving portability to the real world Duckiebots.

Code refactoring for faster development

The code in the autonomy stack has been refactored so that the key algorithms are moved into libraries. This facilitates the creation of notebooks for experimentation and learning, as well as enabling the code to be more portable and disentangled from the ROS infrastructure, setting the stage for using other middleware (e.g., ROS2).

The Duckietown Manual: all information in a single place

All documentation and information have been consolidated in the Duckietown Manual, a single, authoritative, and searchable source. 

The new Duckietown Manual is a great place to get started, as it contains step-by-step instructions on how to set up your computer,
assemble, calibrate, and operate a Duckiebot, along with troubleshooting tips. It moreover includes information for advanced users who wish to develop using Duckietown, pointers to code Documentation, as well as an instructor manual with pedagogical insights for teachers. 

Duckietown Postal Service (DTPS) and new development workflow

The Duckietown Postal Service (DTPS) is an HTTP/2 compatible message-passing system that bridges between the Duckietown robots and the environment, whether physical or digital. DTPS enables upgrading from ROS to ROS2, or the use of any other similar middleware, and makes Duckietown more compatible with all OSs.  

In addition, a new development workflow has been implemented. The API for working with learning experiences (dts code) has been significantly improved over the previous version. 

Duckiebot UI improvements

 

A few actuator and sensor interfaces were updated for improved usability and robot management, for example: 

 

 

Duckiebot Apps 4

Where are we going from here?

Coming soon: Self-Driving Cars with Duckietown 2025

A new edition of Self-Driving Cars with Duckietown MOOC, the world’s first robot autonomy massive open online course (MOOC) with hardware, will soon be announced.  This new edition will be ente-based, support the Duckiematrix and be instructor-paced.

Self Driving Cars with Duckietown MOOC
ROS 2 autonomy baseline and Python SDK interface

With DTPS enabling support for any middleware, translating the current ROS lane following pipeline into a ROS2 one is now a fun project. Coming out soon!

A Python SDK to interface Duckietown robots and the Duckiematrix is in the works as well.

Duckiematrix updates in development

Duckiematrix map editor

An app for creating and editing maps for the Duckiematrix.

Duckiematrix Gym

The integration of the Duckiematrix with Gymnasium.

Duckiedrone support for the Duckiematrix

The addition of Virtual Duckiedrones and the integration of Duckiedrones with the Duckiematrix.

DD24 Duckiedrone holding position in the Duckiematrix

How to get started with Duckietown?

While the legacy daffy version of Duckietown will stay up and be supported for the time being, it will not receive further updates. To upgrade your environment and your Duckiebots to the new ente version and start experiencing all the new features for free, see our guide here

About Duckietown

Duckietown is a platform for creating and disseminating robotics and AI learning experiences.

It is modular, customizable and state-of-the-art, and designed to teach, learn, and do research. From exploring the fundamentals of computer science and automation to pushing the boundaries of knowledge, Duckietown evolves with the skills of the user.