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.

The robot page has several tabs, each accessible from the top navigation bar.

Info

...

The “Info” tab shows high-level robot diagnostics, including static information, live data, and status information.

Static information:

  • hostname: the name of your robot

  • Robot type: there are many kinds of robots in the Duckietown ecosystem; Duckiedrone is one type.

  • Configuration: there are several “editions” of each robot type. The latest Duckiedrone is DD21.

  • Firmware: software version installed on your Duckiedrone.

  • Board: Raspberry Pi or Jetson Nano (should be Raspberry Pi)

  • Model: Board version.


Live data:

  • Temperature: current Raspberry Pi temperature. It should never go over 80C. Start getting worried around 75C. Excessive temperature will trigger Throttling (see below).

  • Disk: available hard disk space (default capacity is 32GB);

  • CPU: current processor load;

  • RAM: current temporary memory load;

  • Frequency: CPU clock (maximum is 1.4GHz for Raspberry Pi 3B+)

  • Battery: this feature is currently only available for Duckiebots (DB21).


Status Information:

And history and current status information (green status represents healthy condition):

  • Under-voltage: green represents healthy status. This warning will trigger when the input voltage to the Raspberry Pi is too low. Make sure your UBEC is properly installed if you are getting this warning.

  • Frequency-capped: this status implies the computation capability of the Raspberry Pi is limited, e.g. because of high temperature.

  • Throttling: this warning will turn on when the Raspberry Pi is limiting its cycles due to unsuitable voltage conditions.

Finally, in the top right corner “Power” icon, you will find a convenient way to soft-shutdown (or reboot) the Raspberry Pi.

...

Mission Control

This page plays a determinant role and it gathers both sensing and actuation interaction channels.

Info

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 name of the “Mission", i.e., the layout of the blocks on this page and their properties, and the “Bridge” status, representing connectivity between the drone and the base station. The bridge needs to be “connected” for any data to populate.

...


Sensing

  • Motors PWM: this graph shows the actual commands sent to each motor (m1, ... ,m4) by the flight controller. These commands might not be immediately discernable as we are more familiar with higher-level roll, pitch, yaw, and thrust commands.

...

  • Heartbeat monitors:

  • Time-of-flight

  • IMU - Orientation

  • 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.

...

  • Remote control: this is a virtual joystick used to manually control the drone. It can be used to control all robot “axis” (roll, pitch, yaw, thrust) or just a subset of these, based on the selection of the “Override” parameters.

Info

Override = On → the input to the flight controller for that axis comes from the joystick

Override = Off → the input to the flight controller does not come from the joystick

...

Note

Remote control commands are sensitive. Go slowly, be cautious, get familiar with the interface and always look directly at the drone while operating it!

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

  • IMU calibration:

  • PID reset:

Health

Architecture

Troubleshooting

Problem: The power button does not generate the intended outcome.

Solution: The power button currently only works through the Info page of the Dashboard. If you find it unresponsive on other pages, just navigate back to Robot > Info.