Duckietown Duckiedrone DD24 Operation Manual

Hide thumbs Also See for Duckiedrone DD24:

Advertisement

Quick Links

The Duckiedrone Operation Manual
Contents
Preliminaries
Safety
Prerequisites
How to Use Multimeters
What's in the Box
Additional Materials for Building the Duckiedrone
Software Initialization
Drone handling
First boot
First connection
Initializing the Flight Controller
Configure motor spinning direction
Troubleshooting
Datasheets
Using the drone
Flight Controller PID Tuning
Common issues
Learning Experiences
Introduction to Learning Experiences
Supported Learning Experiences
Software Architecture
ROS
Software Architecture
Reference frames
Welcome to the Duckiedrone (
Raspberry Pi-based autonomous quadcopter.
The
is the third Duckietown drone hardware iteration. For more information about its
DD24
predecessors, check out the Duckiedrone (
This manual provides instructions on how to assemble, how to calibrate, how to operate, and what to
teach (and learn) with a Duckiedrone.
Note
Don't have one yet?
Get a
In this manual, you will learn how to build your Duckiedrone, test it, and have an introduction to its inner
workings. Are your duckies ready to fly?
) operation manual. The Duckiedrone is a do-it-yourself (DIY)
DD24
) and (
) manuals.
DD18
DD21
Duckiedrone.

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Duckiedrone DD24 and is the answer not in the manual?

Questions and answers

Summary of Contents for Duckietown Duckiedrone DD24

  • Page 1 Welcome to the Duckiedrone ( ) operation manual. The Duckiedrone is a do-it-yourself (DIY) DD24 Raspberry Pi-based autonomous quadcopter. is the third Duckietown drone hardware iteration. For more information about its DD24 predecessors, check out the Duckiedrone ( ) and ( ) manuals.
  • Page 2 Safety Read carefully  Building your Duckiedrone can be lots of fun; however, you’ll be handling some tools that can be dangerous if used improperly. Read carefully this page to understand how to handle them correctly to minimize risks! Soldering A significant part of building your Duckiedrone involves soldering.
  • Page 3 Danger  Fly your drone in a spacious area free of people and fragile objects. Always wear safety goggles when flying. Verify that the correct propellers are on each motor, propellers are tightly fastened, and motors are securely attached to the drone frame. ...
  • Page 4: Troubleshooting

    How to tin a wire Note  Some parts may arrive pre-tinned by the manufacturer. You can identify pre-tinned wires by: 1. The “shininess” of the wire tip. 2. The inability to fray the wire strands at the tip. However, pre-tinned tips are often ineffective. Cut off pre-tinned tips, then strip and tin the wire yourself.
  • Page 5 Troubleshooting I put too much solder on my wire while tinning. SYMPTOM Remove excess solder using a solder sucker or copper wick. RESOLUTION Alternatively, use a soldering iron to pick up excess solder and clean it off with soldering wool. Troubleshooting My wire picks up random particles while tinning.
  • Page 6: Continuity Check

    See also  This tutorial provides a general overview of multimeters. Attention  Always turn off the multimeter by setting the dial to after completing your checks. Fig. 2 A multimeter used for electronics measurements Continuity Check In electronics, a continuity check tests whether two points in a circuit are electrically connected. Zero resistance between two points indicates a short, which can be hazardous as it may cause excessive current flow, potentially damaging the circuit.
  • Page 7 Continuity test dial position Continuity test mode Test the mode by touching the multimeter leads together. A continuous beep confirms the mode is active. Fig. 3 Multimeter leads touching together to test continuity mode 2. Perform the Continuity Check Place the leads on two points of the circuit to test. Fig.
  • Page 8: What's In The Box

    The Duckiedrone box includes all the components needed to build an autonomous drone. Some tools, like the soldering iron, are not included in the box and must be otherwise procured. Note  Duckiedrones, as well as all other Duckietown hardware, are available on the Duckietown project official shop. In particular, you can find the Duckiedrone here.
  • Page 9 Fig. 6 The Duckiedrone yellow box. Components included in the Duckiedrone DD24 box, including essential parts for building the drone. Fig. 7 Duckiedrone ( ) components. DD24 This section details the materials needed to build and fly your drone that are not included in the kit. To operate the drone, you must have a laptop or personal computer capable of connecting to the internet.
  • Page 10 Fig. 8 Soldering iron with base, sponge, and solder.
  • Page 11: Miscellaneous Tools

    Fig. 9 Wire strippers. Solder remover (solder sucker or desoldering wick) to fix mistakes Soldering mat Tweezers or pliers Flush cutters Miscellaneous Tools Double-sided tape Software Initialization What you will need  A computer (a.k.a. “base station”) with an internet connection Balena Etcher or similar program A micro SD card (32GB, U3, Class 10), e.g., that from your Duckiebox A micro SD card reader, e.g., that from your Duckiebox...
  • Page 12 2. If you have not already, on a base station, download the latest drone image: DD24 system image 3. Connect the micro SD card to the base station. Use the micro SD to USB card reader if the base station does not have a micro SD port. Fig.
  • Page 13 Warning  Double check that the “drive” is your micro SD card. You may be prompted to enter the base station password to proceed. This is normal: flashing an SD card deletes everything that is on it, so Etcher is making sure this process is OK with you.
  • Page 14 # NOTE: the following block is a template, use it to define connection to custom wifi networks network={ id_str="network_1" ssid="duckietown" psk="quackquack" key_mgmt=WPA-PSK : change it if you are not in the US (e.g., for Switzerland, for Canada; full list...
  • Page 15 Raspberry Pi OS Bookworm. You can flash the image through the dts, which you can set up following the instructions provided in the Duckiebot manual. The steps are the following: 1. Install the duckietown shell on your laptop according to these...
  • Page 16: First Boot

    2. After installing the duckietown shell, you can flash the sd card following the same procedure used duckiebots. Make sure to change the flags to --type --configuration --type . An example command to flash the sd card for a duckiedrone --configuration DD24...
  • Page 17: Getting Started

    During this process the Duckiedrone will require a stable power source. Attention  Make sure you have a wall outlet power adapter, e.g., a phone charger (5V, 2-3A) or a fully charged Duckiebattery before starting the process. Do not power the Raspberry Pi just yet. Getting started Warning ...
  • Page 18 Fig. 13 Pins & not shorted. 4. If you haven’t already, insert the initialized micro SD card inside the micro SD card slot of the Raspberry Pi, as shown here. Attention  Do not connect the SD card inside the adapter to a USB-A port of the Raspberry Pi. 5.
  • Page 19: First Connection

    Reboot the Duckiedrone duckietown-hostname-ap (with disconnected pins) to have it join the configured existing network. First connection You are now ready to connect to your Duckiedrone through the Duckietown Dashboard. A live (First Boot) DD24 What you will need...
  • Page 20 Default robot name: amelia Default ssh user name: duckie Default ssh user password: quackquack Ssh always possible: ssh duckie@amelia.local Default access point (AP) network configuration: SSID: duckietown-amelia-ap Password: quackquack Default client (CL) network configuration: SSID: duckietown Password: quackquack Troubleshooting Troubleshooting I cannot connect to my Duckiedrone in AP mode.
  • Page 21 Disconnect the USB cable connecting the Flight Controller to the Raspberry Pi and reconnect it while keeping the BOOT button on the side of the flight controller pressed.\ Fig. 15 SpeedyBee F405v3 BOOT button location. After a couple of seconds you can release the BOOT button. Execute the command , you should see a list of devices available to be sudo dfu-util -l...
  • Page 22 -a -s 0x08000000:leave -d 0483:df11 -D speedybeef4v3_bl.bin  Explanation of the command: dfu-util : Grants administrative privileges to run the command. sudo : The name of the utility used for flashing firmware.
  • Page 23 3. Go into the “Firmware Flasher” tab by clicking on “Firmware” in the left sidebar. 4. Connect the Flight Controller through USB and select the option for the firmware, Ardupilot ticking and then selecting . A file manager Advanced Settings Custom firmware file...
  • Page 24 Starting the drone software stack Now you will need to start the drone software stack, allowing you to connect to the flight controller from your laptop. To do so you need to use the Duckietown shell Attention  Make sure that the...
  • Page 25 StackOverflow, you can find the instructions on how to join it here. You can also contact us via Slack at the following channel: duckietown-sky-help Configure motor spinning direction Now you have to set up the motor spinning direction on the flight controller in QGroundControl.
  • Page 26 What you will need  A base station computer QGroundControl installed on your computer. Flight Controller with correct firmware and parameters. Your drone’s motors and ESCs connected properly to the flight controller. What you will get  A Flight Controller configured for flight. 1.
  • Page 27 Fig. 17 Motor testing tab Test each motor by clicking on the individual motor numbers (1, 2, 3, 4). Ensure each motor spins in the correct direction according to the BetaflightX frame diagram: Motor 1 (B): Clockwise (CW) Motor 2 (A): Counterclockwise (CCW) Motor 3 (C): Clockwise (CW)
  • Page 28: Power Issues

    Fig. 19 Configuration tab of the to reverse individual motors. SERVO_BLH_RVMASK Click on and when prompted reboot the flight controller. Save 4. Verify Motor Spin Direction After making any changes, retest each motor through the tab in QGroundControl to Motors ensure all motors are spinning in the correct direction.
  • Page 29 Troubleshooting My Raspberry Pi does not boot. SYMPTOM You should verify that each part of the drone is receiving power. The RESOLUTION Raspberry Pi indicates it has power with a red power LED. If your Raspberry Pi is not powering on, verify with a multimeter that the Raspberry Pi pins are receiving the right voltage on input.
  • Page 30: Flight Controller

    You can try and make sure it is enabled. Also it is very raspi-config common for the camera cable to be plugged in backwards, or plugged into the wrong slot on the Raspberry Pi. (There are two possible slots that fit the cable.) Make sure it is plugged into the slot marked , and that the cable is facing the right way.
  • Page 31 Fig. 20 The “OSD” version has the USB port on a separate PCB. SP Racing F3 Acro (USB port on the same PCB) Fig. 21 The “Acro” version has a mini USB port on the board. Camera Arducam 5mp 1080p OV5647 Time-of-Flight (ToF) [VL53L0X] (https://learn.adafruit.com/adafruit-vl53l0x-micro-lidar-distance-sensor-breakout)
  • Page 32: Power Distribution Board (Pdb)

    Fig. 22 ToF Sensor Raspberry Pi 3B+ Raspberry Pi 3B+ Power Distribution Board (PDB) PDB-XT60 Electronic Speed Controller XXD 30A 2-4S ESC Brushless Motor Speed Controller UBEC Hobbywing 5V 3A UBEC Flight Controller PID Tuning A fully operational DD24 What you will need that flies stably and responsively in manual mode DD24 What you will get...
  • Page 33: Common Issues

    Primarily, a proportional–integral–derivative controller (PID controller) is used on the FC to achieve these. Here are some materials helping explain the influence of terms, in the context of drones, and how should they be tuned based on the behaviors of the drone. FPV Drone PID Explaned by Oscar Liang Betaflight PID Tuning on OpenTXU by John Case A video on recognition of PID problems.
  • Page 34 does not turn on The Raspberry Pi is not receiving enough power. RESOLUTION Check that the voltage coming out of the UBEC is a constant 5V Make sure that the Raspberry Pi Hat is attached to the Raspberry Pi all the way (there is no gap between the GPIO pins and the Raspberry Pi Hat pin header).
  • Page 35 not, the micro USB port on the flight controller may be broken. try wiggling the micro USB end or using a different USB port on the Pi. If the flight controller never lights up, it may need to be replaced. Troubleshooting The PID controller node is not running.
  • Page 36 make sure you have no other programs using the same port as the Rosbridge server (9090) try rerunning the script. Troubleshooting The web interface does not say at the top. SYMPTOM connected try using Google Chrome to open the web interface RESOLUTION wait another 10 seconds and try refreshing again.
  • Page 37: General Components

    Make sure that when you spin up motor 1, the correct motor spins (the bottom right). Do this for all of the motors. Introduction to Learning Experiences This section lists all Duckietown learning experiences ( Supported: these are polished s that are actively maintained. You should be able to follow the instructions and obtain the expected outcomes.
  • Page 38: Software Architecture

    ROS nodes are programs that communicate with other programs via publishing and/or subscribing to ROS topics. A better and more detailed description of nodes is found on the ROS wiki site here this link includes a shorter description along with brief descriptions of other key ROS components. On the DuckieDrone, each window of the screen is a ROS node.
  • Page 39: Hardware Interfaces

    This section elaborates on all the DTPS and ROS nodes that run on the Duckiedrone to enable it to fly autonomously. Fig. 24 Nodes composing the Duckiedrone autonomous flight stack Hardware interfaces These nodes interface with the hardware and expose its functionality through DTPS topics. Camera driver The camera driver interfaces with the camera present on the drone, publishing compressed JPEG images and the camera calibration information.
  • Page 40 If there is only one topic with valid commands (i.e. commands that are not too old), it uses that. If both have valid inputs, depending on the specified in the function, masking is DTParams __init__ performed. By default, manual commands have higher priority. The parameters control which autonomous controls are passed through to the Flight Controller node.
  • Page 41 Duckiedrone) the preferred axis orientation is defined in REP 103 as having the body axis as: forward left In the image below you can see a comparison between the two reference frame conventions. [1](1,2) Source px4-docs By The Duckietown, Inc. © Copyright 2025.

Table of Contents