The robot page is arguably the most important page in the Dashboard. It provides information across several tabs, accessible in the top navigation bar.
...
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). They
axis shows the intensity of the signal - the higher, the faster that motor spins. Bounds in default are (1000
-2000
). Thex
axis shows time, with0
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.
...
Info |
---|
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. |
...
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 (ToF) sensor: the time of flight sensor measures distance.
It has a minimum range and maximum ranges associated with the mode of operation.
The default settings provide measurements between (0.03-1.2) meters.
ToF measures 1-2cm when the minimum should be 3Status colour Yellow title good bug
ToF data is collected at 30 Hz. Mission control streams at 5 Hz by default.
...
Inertial Measurement Unit (IMU) - Orientation: the IMU includes an accelerometer and gyroscope, measuring linear and angular accelerations. This data is combined to show the drone's orientation (roll, pitch, yaw), expressed in degrees.
IMU data is measured in the 2-3 kHz range on the flight controller, provided to the Raspberry Pi at 22 Hz, and rendered in Mission Control at 5 Hz.
The “Calibrate IMU” button can be used to reset and remove bias from the measurements. The data will be saved in the configurations folder and propagated to autonomous nodes too.
...
Camera: the camera streams 640x480 resolution images at 30 Hz, rendered by default at 2 Hz in Mission Control.
...
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 toclear
, the interface will not allow toggling any other state. This mean means two consecutive willful clicks are necessary to get the propellers spinning ( 1.pre-check
→clear
; 2.disarmed
→ armed
IMU calibration:
PID reset:
Health
...
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).
When used concurrently to autonomous mode, the “Override” parameters allow maintaining manual control on all or a subset of the axis.
Info |
---|
Override = On → the input to the flight controller for that axis comes from the joystick Override = Off → the input to the flight controller comes from the autonomy pipeline if present, if not still 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: roll left D: roll right Drag green ball ↕ with mouse: increase / decrease thrust Drag green ball ↔ with mouse: yaw counter-clockwise and clock-wise Spacebar: emergency stop (disarms the drone) |
...
Troubleshooting
Problem: The power button does not generate the intended outcome.
...