Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The robot page is arguably the most important page in the Dashboard. It provides information across several tabs, accessible in the top navigation bar.

Mission Control

...

The Mission Control page gathers both sensing and actuation interaction channels of the Duckiedrone.

Each block in mission control can be resized and underlying properties edited through the menu accessible in the top right corner of each block.

Mission control graphs are a rendering of the underlying truth. E.g., camera images are rendered at 2 Hz but they are actually streamed at 30 Hz. To access the underlying truth, ask your instructor for developer’s access, or reach out to Duckietown staff on Slack.

...

Mission Control

...

Tip

The mission control page is fully configurable. Blocks can be rearranged, new ones created, and the properties of each easily edited and saved. Create your own missions at will!

Note

This page provides heartbeats to the drone. It needs to be open for the drone to fly.

The top bar of the mission control summarizes:

  • the hostname (“vehicle"),

  • the

...

  • “Mission", i.e., the particular layout of the blocks

...

  • and their properties

...

  • ; and

  • the “Bridge” status,

...

  • i.e., the connection between the drone and the base station. The bridge needs to be “connected” for

...

  • data to

...

  • be exchanged between Duckiedrone and the base station.

...

Sensing

  • Motors PWM signals: this graph shows the actual commands sent to each motor (m1, ... ,m4) by the flight controller. These , and is the closest thing we can do for measuring motor speeds (motors do not have embedded encoders). The y axis shows the intensity of the signal - the higher, the faster that motor spins. Bounds in default are (1000- 2000). The x axis shows time, with 0 on the right being the present instant.

    • The meaning of these commands might not be immediately

    discernable as we
    • relatable to the drone’s behavior, as humans are more familiar with higher-level representations such as Euler angles (roll, pitch, yaw), and thrust (the sum of all vertical components of lift from each motor) commands.

...

Info

Protip: play with motor commands

...

Heartbeat monitors:

...

Time-of-flight

...

IMU - Orientation

...

in a safe way by plugging in a wall charger to the Raspberry Pi and detaching the battery.

This configuration will allow the Raspberry Pi to power all the drone’s subsystems (flight controller, sensors, etc.) while not being able to provide enough power to actually spin the motors. It is the idea configuration for development, as the battery can be charged while having access to all subsystems, too.

When ready to fly, disarm the drone, plug in the battery, remove the Pi power cable, and enjoy a smooth power transition with no reboots!

  • Heartbeat monitors: the drone requires heartbeats to fly, as a safety measure. Heartbeats act as a “dead man switch”, i.e., if heartbeats are lost for any reason the drone disarms.

    Heartbeat monitoring can be disabled on each individual signal, but it might cause catastrophic outcomes. Don’t disable heartbeat monitoring unless you really know what you are doing.

...

  • Time-of-flight sensor: the time of flight sensor measures distance. It has a minimum range and maximum ranges associated with the mode of operation. Modes of operation can be switched from the driver files. Default settings provide measurements between (0.03-1.2) meters.

    • Status
      colourYellow
      titlegood bug
      ToF measures 1-2cm when the minimum should be 3

...

  • IMU - Orientation

Image Added

  • Camera

...

Actuation

  • Heartbeats: these signals are sent by each block in the pipeline (joystick, altitude, state (estimation), PID) to the flight controller, and are safety signals. If for any reason one of the heartbeats stops publishing, the drone will disarm. Heartbeats can be manually overridden, but this is not encouraged unless you know what you are doing.

...

Info

Remote control commands:

W: pitch forward

S: pitch backwards

A: yaw counter-clockwise

D: yaw clock-wise

Drag green ball with mouse: increase / decrease thrust

Drag green ball with mouse: roll left and right

  • Arm / Disarm: Drones (yes, even happy Duckiedrones) have spinning propellers, hence are inherently dangerous. To minimize the chance of accidents, the drone is equipped with 3 arming states:

    • disarmed (0): This is the safe state. When disarmed, the motors will never receive commands.

    • armed (1): This is a dangerous state: When armed, the propellers will spin with idle motor commands, but not receive inputs from external nodes (e.g., the PID control node). Don’t let this terminology fool you though: you don’t want to have your fingers anywhere near spinning propellers. Never arm a drone near you, or when other humans or pets are around it!

    • flight (2): This is the most dangerous state:

      and an additional browser-interface-inspired layer of security:

    • pre-check: this is not a state of the Duckiedrone but rather a human miss-clicking prevention system. Unless pre-check is set to clear, the interface will not allow toggling any other state. This mean two consecutive willful clicks are necessary to get the propellers spinning ( 1. pre-checkclear; 2. disarmed → armed

...