logo

The Duckietown Manual - ente

  • The Duckietown Manual

Part 1 - Duckiebots, Duckiedrones, and Duckietowns

  • Initial Setup
    • Your Computer
    • Accounts
      • GitHub Account
      • Docker Account
      • Duckietown Account
      • Joining the Duckietown Slack
      • Joining the Duckietown Archives
    • Software
      • Software Dependencies
      • Docker
      • GitHub and Git LFS
      • Duckietown Shell ( dts )
    • Simulation and the Duckiematrix
      • Installing and Running the Duckiematrix
      • Virtual Duckiebots
      • OpenGL-based Gym Environment (legacy)
  • Getting Started with your Duckiebot
    • Overview
    • On Lithium-Ion Batteries
    • Duckiebot SD Card Initialization
      • The Fast Way
      • The Complete Way
    • What’s in the Box ( DB21-J4 )?
    • Assembly Instructions ( DB21J )
    • Network Configuration in Duckietown
    • First Boot
    • Dashboard Setup
    • How to Get Help
  • Using Your Duckiebot
    • Overview ( DB21 )
    • Duckiebot Dashboard
    • Power Management
    • Software Update
    • Duckiebot Subsystems
      • Keyboard Control (Make it Move!)
      • Image Streaming (Make it See!)
      • LED control (Make it Shine!)
    • Calibrating your Duckiebot
      • Camera Calibration
      • Wheel Calibration
  • Duckiebot Testing and Debugging
    • Testing the Hardware Components
    • Re-flashing the “HUT”
    • Duckiebattery Software Update
    • GUI Tools and ROS
    • Network troubleshooting
    • Reflashing Jetson Nano Development Kit 4GB
    • The Duckiebattery
    • Frequently Asked Questions (FAQs)
  • Building Duckietowns
    • Overview
    • Introduction to Duckietown Appearance Specifications
      • Layer - Tilemap
      • Layer - Traffic Signs
        • Traffic Signs - Street Name Signs
      • Layer - Infrastructure
        • Infrastructure - Traffic Lights
      • Layer - Parking Lots {bdg-warning} ( BETA )
      • Decorations
    • Duckietown Assembly Instructions
      • Assembly - Road Tiles
      • Assembly - Traffic Signs
      • Assembly - Traffic Light
        • Assembly - Traffic Light DT21-TL
        • Assembly - (Legacy) Traffic Light DT18-TL
  • Duckiebot Demos
    • General Procedure for Running Demos
    • Lane Following
  • Duckiebot Learning Experiences (LXs)
    • What is a Duckietown LX?
    • LX Features and Activities
    • General Procedure for Running Learning Experiences
  • Duckiedrone

Part 2 - Developing with Duckietown

  • Basics
    • The Linux Terminal
    • ISO/IEC 9126
    • Linux distributions
    • Git
    • Docker
  • Creating New Demos
    • Overview of the DTProject
    • Creating a New DTProject
    • Adding your Code
    • Defining dependencies
    • Running a DTproject on your Duckiebot
    • Launchers
    • Project Templates
  • ROS
    • New ROS DTProject
    • Catkin Packages
    • ROS Publisher
    • ROS Subscriber
    • Faster Development Workflow
    • Subscribe to the Camera
    • Subscribe to the Wheel Encoders
    • Publish to the Wheels
    • Publish Chassis-level Commands
  • Python Libraries
  • Code Documentation
    • Writing Code Documentation
    • Building Code Documentation
  • The DTROS class
  • Diagnostics
    • Introduction to the Diagnostics Tool
    • Get Started with Diagnostics
    • Diagnostics Command Reference
  • Code Hierarchy
  • Developing with the Duckiematrix
    • Architecture
    • The World and Matrix Sides
    • DTPS interfaces
    • Maps
    • Customizing Maps
    • Links
    • Modes
    • Engine Reachability Domains
  • Duckiebot Learning Experiences
    • Creating New Learning Experiences
    • Tips for Building LXs
    • Testing Your LX
  • Contributing to this Book
    • Overview
      • The simple way: Github
      • The right way: Local editor
    • Style guide
    • MyST syntax cheat sheet
  • Duckietown Postal Service ( DTPS )

Part 3 - Teaching with Duckietown

  • Becoming a Duckietown Instructor
    • Who Should Read This?
    • How to Get Started
    • How to Use This Book
    • Quickstart Guide
    • The Professor’s journey
  • Resources
    • Lecture Slides and Recordings
      • Introductions to Duckietown
        • Getting started
        • Autonomy and Automation
        • Autonomous Vehicles
        • Robots
        • Architectures in Robotics
        • Testing
        • Signal Processing
        • Networking
        • Full Introductory Lectures
      • Tools
        • Containerization
        • Middlewares and the Robot Operating System (ROS)
        • Git
      • Modeling
        • Robot Representations
        • Modeling a Differential Drive Robot
        • Full Lecture on Modeling
      • Control Systems
        • Introduction to Control Systems
        • Odometry
        • PID Control
        • Full Lecture on Control
      • Computer Vision
        • Projective Geometry
        • Camera Calibration
        • Image Filtering
        • Full Lectures on Computer Vision
      • Visual Perception
        • Introduction to Visual Perception
        • Introduction to Neural Networks
        • Deep Convolutional Neural Networks
        • Object Detection
        • Full Lectures on Visual Perception
      • State Estimation
        • Probabilistic Representations
        • Bayes Filter
        • Kalman Filter
        • Particle Filter
        • Histogram Filter
        • Full Lecture on Filtering
        • Robust Estimation
        • Full Lecture on Simultaneous Localization and Mapping
      • Planning
        • Motion Planning
        • Planning on Graphs
        • Sampling-based Planning
        • Full Lecture on Planning
      • End-to-End Learning Approaches
        • Markov Decision Processes
        • Policy Iteration
        • Q Learning
        • Simulation and Sim-to-real
        • Full Lecture on Reinforcement Learning
        • Imitation Learning
      • Advanced Topics
        • Multi-vehicle Planning
        • Safety
        • Estimating Uncertainty
        • Estimation from Motion Blur
    • Activities and Exercises: Learning Experiences (LXs)
    • Evaluation
    • Duckietown Simulator
    • The Code Structure
    • Duckietown Hardware
    • Projects
      • Student Project Ideas
    • Support
  • Course Design Considerations
    • Prerequisites
      • Instructor background
      • Student background
      • Space, infrastructure and equipment
    • Class Composition
    • Intended Learning Outcomes
    • Course Structure
    • Common Pitfalls
    • Getting Student Feedback
    • Duckietown Spirit
  • Sample Courses
    • Graduate level
      • Autonomous Vehicles (IFT 6757) at the University of Montreal / Mila
      • ETH Zurich
    • Undergraduate level
      • EECE 5560 at the University of Massachusetts Lowell
    • High School level
    • Self-Driving Cars with Duckietown (MOOC)

Further Reading

  • Remote Duckiebot control with ZeroTier
  • Duckiebot Models
  • Secure shell (SSH)
  • repository
  • open issue
  • suggest edit
  • .md
Contents
  • Introduction
  • What is a Link?
  • How to Link a Matrix and World entity

Links

Contents

  • Introduction
  • What is a Link?
  • How to Link a Matrix and World entity

Links#

{"description": "Duckiematrix Links.", "keywords": "Duckietown, Duckiematrix, Links"}

This chapter describes Duckiematrix Links.

What you will need

  • Completed Installing and Running the Duckiematrix

What you will get

  • Knowledge on Duckiematrix Links

Introduction#

In previous chapters, we saw how to run an instance of the Duckiematrix. However, you may have noticed that the robots were not doing much more than sitting and waiting. This is because we did not tell the Engine where to get robot commands from. We can tell the Engine to setup a communication channel with one of those robots and return to us the other end of the line, using Links, or more properly World Links.

What is a Link?#

A Link is a bidirectional communication channel between a Matrix and World entity.

An example of `Links` between two `Matrix` and `World` entities.

Fig. 151 An example of Links between two Matrix and World entities.#

How to Link a Matrix and World entity#

To Link a Matrix and World entity, run the following command, where MATRIX is the Matrix key (e.g., map_0/vehicle_0) and WORLD is the World side proxy name (e.g., duckiebot):

dts matrix run --standalone --embedded --map sandbox --link MATRIX WORLD

previous

Customizing Maps

next

Modes

By Duckietown, Inc.
© Copyright 2025.