The July 2022 issue of IEEE Spectrum is here!

Close bar

Learn to Program Self-Driving Cars (and Help Duckies Commute) With Duckietown

Robotics researchers expand their Duckietown autonomous car course to Kickstarter

7 min read
Duckietown robot
Photo: Jason Dorfman/MIT CSAIL

There is a strong and natural relationship between robots and rubber duckies. Seriously. Being small, cheap, colorful, and pleasingly compliant, duckies became a sort of physical Stanford Bunny—when you want to show the scale of a robot or give a robot something to visually locate or grasp or something, just toss a duckie in there. This relationship was formalized through the 2016 ICRA conference, where duckies inspired a bunch of videos and some poetry that is surprisingly not terrible

Since then, duckies have been taking over in robotics—at this point, I’m fairly certain that Andrea Censi at ETH Zurich is held hostage by (and doing the bidding of) a small army of little yellow duckies. This would explain why an entire duckie village full of duckie-size autonomous cars that you can learn how to program is now on Kickstarter, with the hope that you’ll help them take over the entire world.

Duckietown is based on an MIT engineering course (2.166), first taught in 2016. It’s designed to be an affordable, modular, scalable, duckie-filled introduction to autonomous vehicles. 

Some quick facts about Duckietown: Duckietown is located in Duckieland, which is somewhere in Canada. Or at least, most of the duckies are of Canadian descent and therefore very polite. The initial population was 1,600 duckies as of 2016, but it’s been growing, because duckies are cheap and you can just buy more of them. The national sport of Duckieland is marine robotics competitions, obviously. Also, Duckietown is the No. 1 most livable city in the world, according to its creators: It’s a place full of squeaky yellow joy.

Unfortunately, duckies are terrible drivers, probably because they don’t have arms or legs and their insides are filled with squeakers instead of brains. So to get from place to place, the duckies depend on little autonomous cars, which are programmed by MIT students. And now you’ll be able to program them, too:

Duckietown kits are already being used to teach practical robots to students around the world, and the idea with the Kickstarter is to help them scale up, providing robots and classroom kits that can do more for less money. At the moment, a Duckiebox full of everything you need to make a single Duckiebot is US $150, while a starter kit (which also includes road tiles, road tape, signs, and extra duckies) is $400. Enough Duckieboxes for an entire classroom (12 robots plus a nice big town layout) is $3,500, which is really not that expensive for what you’re getting. And of course, there’s software plus a substantial and growing curriculum to back all of this up. Even homework assignments, hooray!

The Duckiebots may not look all kinds of fancy, but they’re very capable little platforms, especially in the environment for which they’re designed. Their only sensor is an HD camera, and all of the autonomous driving computation is done on board with a Raspberry Pi 3. With just a single Duckiebot, you can go through practical, experimental lessons including “Modern Robotic Systems,” “Architectures,” “Representations,” “Modeling,” “Calibration, “Signal Processing, “Computer Vision, “Estimation, and “Control.” Toss a second Duckiebot into the mix, and things get more complex, and if you want to get superfancy, you can even add an Intel Movidius neural compute stick for end-to-end imitation learning and sim2real reinforcement learning transfer.

Andrea Censi from ETH Zurich, who’s also director of research at nuTonomy and president of the Duckietown Foundation, bears a significant amount of responsibility for this whole Duckietown business, and he was kind enough to answer a few questions for us via email.

IEEE Spectrum: What made you decide to turn the initial Duckietown class into a much larger project?
Andrea Censi: We were driven by the enthusiasm of students, feedback of the collaborators, and general interest of the media. We found ourselves receiving emails from both independent learners and educational institutions all over the world showing interest in different forms. We realized that without “scaling up” our methods, it would have soon been impossible to manage all the people that wanted to be involved.
Why do a Kickstarter?
For the need to establish a one-click solution to obtain the hardware. One of the bottlenecks to the dissemination of the Duckietown platform is the accessibility of the hardware. By accessibility we mean: (a) the time and effort necessary to obtain Duckiebots and Duckietowns, (b) the price, (c) the inconsistent availability of the components from the sources and their geographical location and related shipping limitations.

Although most of the components are off-the-shelf, and we provide links to our vendors, the process is time consuming and cost-ineffective. Vendors do not guarantee the availability of the components, only ship to some parts of the world, and might at any time run out of inventory for specific components or change the prices.
The Kickstarter is a way to solve this problem by raising the funds to create the necessary pipeline to make hardware available, anywhere, at any time, with the ease of a single click. Once the hardware distribution pipeline is established, we can leverage economy of scale to purchase components in bulk and obtain lower prices.

You describe Duckietown as both a class in advanced autonomy, a research project, and a “role play exercise.” Why this approach?
Duckietown has a playful appearance but really is a complex platform, in the sense that its functionalities are the result of the interplay of hardware and many different software components. To make this complexity manageable, every Duckiebot runs the same code, and all new functionalities are either modifications or additions to this unique “master” code.

During courses, students and teachers are called upon to create new functionalities or improve existing ones. To do so, they need to change the existing master code. Often, the outcome of their projects affects or depends upon changes to the master code made by their peers–or really by anyone, either in the same class, or elsewhere in the world. Once the course is over, their contributions to the master code are now running on every other Duckiebot in the world.

The Duckietown Engineering role-playing experience is a startup simulation. It is about communicating this sense of interdependency, as one would expect in a newly funded company, where the “engineers in training” as well as the “department heads” are all focused towards the common greater objective, and where the success of the whole depends on the success of all. Since the platform really is one, the team in the same way needs to feel like one.  This is in stark contrast with the typical classroom learning experience, where students work to create their own project, that is independent from the projects of their peers and has a lifespan limited to the duration of the course.

“By just following the instructions, learners will experience the hardware assembly of a robot, the basics of Linux and ROS, the need to calibrate the camera, and be able to ‘play around’ with fundamental car behaviors like lane following, obstacle avoidance, and stopping at a red light”

Duckiebots are vision based. How much of a constraint is this for students interested in learning about autonomy, which often uses many other types of sensors?
In order to keep Duckiebots affordable, we looked at designing a platform that had the minimum amount of hardware while still being able to do “scientifically interesting” things. Vision provides so much data that it allows Duckiebots to have only one sensor and do most of the things a real self-driving car would do. At the same time, it introduces some of the relevant scientific challenges a real self-driving car would face. The exclusive use of vision in Duckietown is not a constraint, quite the opposite. It is an opportunity to play with serious science rather than work with toy sensors, while keeping the platform affordable.

How much experience with robotics or writing code do students (or teachers) need to be able to use a Duckietown kit? Can you highlight a few things that students will learn?
In order to use the Duckietown kit, learners (whether students or teachers) will be able to follow step-by-step instructions detailed in our open source Duckietown book (or Duckiebook). Not much robotics or coding experience is necessary to follow these  instructions, although they are just the tip of an iceberg, that the more experience might choose to explore. By just following the instructions, learners will experience the hardware assembly of a robot (need for sensing, actuation, power and computation), the basics of Linux and ROS (Robotic Operating System) operations, the need to calibrate the camera, and be able to “play around” (tune high level parameters) with fundamental car behaviors like lane following, obstacle (i.e. duckie and Duckiebot) avoidance, intersection navigation, and stopping at a red light.
How is the Duckietown experience different for students of different ages and abilities, and how can Duckietown grow with them?
At undergraduate level, students using Duckietown learn the fundamentals of autonomy (perception, estimation, decision making, actuation, the relevance of environmental disturbances, modeling, etc.), robotics (system level interplay of functionalities), and computer vision (line detection). Moving up to graduate school, students can touch with hand the lower level implementation, see how the difference is everything “working” or not really lies in the details. Graduate student will appreciate the modularity of the platform (hardware and software) and find it easy to completely remove “blocks” of existing functionalities and replace them with their own.

Duckietown at MITPhoto: Jason Dorfman/MIT CSAIL

Where do you hope that Duckietown will be in five years?
From an education standpoint, we envision Duckietown becoming a milestone learning experience in the fields of robotics and autonomy education for everybody, regardless if one is affiliated with an educational institution or a stay-at-home “makademics” (makers with the spirit of academics). We envision it to be an educational experience that will be automatically tailored to each learner, providing an international community with which to relate and a local community with which to share the enthusiasm. 

From a research standpoint, we envision Duckietown to become a standardized research test bed for embodied autonomy. This is the main goal of the AI Driving Olympics (AI-DO), whose first edition is at NIPS 2018, and the second edition is at ICRA 2019.

Duckietown is already most of the way funded on its Kickstarter, and they have some pretty cool stretch goals if they make it to $500k. If they hit $1 million, the rumor that I’m starting right now is that they’ll be replacing all of the rubber duckies with actual ducklings. Also, as Andrea mentioned, we’ll be seeing Duckietown as part of the The AI Driving Olympics (AI-DO) later this year at NIPS, and then at ICRA 2019 in Montreal, and shout-outs to both AWS and nuTonomy for helping to make that happen!

[ Duckietown ]

The Conversation (0)

How the U.S. Army Is Turning Robots Into Team Players

Engineers battle the limits of deep learning for battlefield bots

11 min read
Robot with threads near a fallen branch

RoMan, the Army Research Laboratory's robotic manipulator, considers the best way to grasp and move a tree branch at the Adelphi Laboratory Center, in Maryland.

Evan Ackerman

“I should probably not be standing this close," I think to myself, as the robot slowly approaches a large tree branch on the floor in front of me. It's not the size of the branch that makes me nervous—it's that the robot is operating autonomously, and that while I know what it's supposed to do, I'm not entirely sure what it will do. If everything works the way the roboticists at the U.S. Army Research Laboratory (ARL) in Adelphi, Md., expect, the robot will identify the branch, grasp it, and drag it out of the way. These folks know what they're doing, but I've spent enough time around robots that I take a small step backwards anyway.

This article is part of our special report on AI, “The Great AI Reckoning.”

The robot, named RoMan, for Robotic Manipulator, is about the size of a large lawn mower, with a tracked base that helps it handle most kinds of terrain. At the front, it has a squat torso equipped with cameras and depth sensors, as well as a pair of arms that were harvested from a prototype disaster-response robot originally developed at NASA's Jet Propulsion Laboratory for a DARPA robotics competition. RoMan's job today is roadway clearing, a multistep task that ARL wants the robot to complete as autonomously as possible. Instead of instructing the robot to grasp specific objects in specific ways and move them to specific places, the operators tell RoMan to "go clear a path." It's then up to the robot to make all the decisions necessary to achieve that objective.

Keep Reading ↓Show less