Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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

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!

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

The top bar 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 commands sent to each motor (m1, ... ,m4) by the flight controller, 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 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.

Protip: play with motor commands 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.

    • GOOD BUG ToF measures 1-2cm when the minimum should be 3

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

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

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

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.

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.