Bird
Raised Fist0
Drone Programmingprogramming~15 mins

Sending velocity commands in Drone Programming - Mini Project: Build & Apply

Choose your learning style10 modes available
Sending velocity commands
📖 Scenario: You are programming a drone to move in a 3D space. To control the drone, you need to send velocity commands that tell it how fast to move in the forward/backward, left/right, and up/down directions.Think of it like controlling a remote-controlled car, but in the air. You will create commands that tell the drone how fast to go in each direction.
🎯 Goal: Build a simple program that creates velocity commands for the drone and sends them. You will start by setting up the velocity values, then prepare the command, and finally send it to the drone.
📋 What You'll Learn
Create a dictionary called velocity with keys 'x', 'y', and 'z' representing velocity in meters per second.
Create a variable called command that stores the velocity command as a formatted string.
Write a function called send_velocity_command that takes the command string and prints it to simulate sending to the drone.
Call the send_velocity_command function with the command variable.
💡 Why This Matters
🌍 Real World
Drones use velocity commands to move precisely in 3D space for tasks like delivery, photography, or inspection.
💼 Career
Understanding how to send velocity commands is essential for drone programmers and robotics engineers working on autonomous flying devices.
Progress0 / 4 steps
1
Set up the velocity dictionary
Create a dictionary called velocity with these exact key-value pairs: 'x': 1.5, 'y': 0.0, and 'z': -0.5.
Drone Programming
Hint

Use curly braces {} to create a dictionary. The keys are strings and the values are numbers.

2
Create the velocity command string
Create a variable called command that stores a string formatted exactly as: "Velocity command: x=1.5, y=0.0, z=-0.5" using the values from the velocity dictionary.
Drone Programming
Hint

Use an f-string to insert dictionary values into the string. Example: f"x={velocity['x']}"

3
Write the function to send the command
Write a function called send_velocity_command that takes one parameter called cmd and prints it.
Drone Programming
Hint

Define a function with def and use print(cmd) inside it.

4
Send the velocity command
Call the function send_velocity_command with the variable command to print the velocity command.
Drone Programming
Hint

Call the function by writing send_velocity_command(command).

Practice

(1/5)
1. What does sending a velocity command to a drone usually control?
send_velocity(x_speed, y_speed, z_speed, duration)
easy
A. The drone's battery level
B. The speed and direction the drone moves in each axis
C. The drone's camera angle
D. The drone's GPS coordinates

Solution

  1. Step 1: Understand velocity command parameters

    The parameters x_speed, y_speed, and z_speed represent how fast the drone moves along each axis.
  2. Step 2: Connect parameters to drone movement

    These speeds control the drone's direction and speed, while duration controls how long it moves.
  3. Final Answer:

    The speed and direction the drone moves in each axis -> Option B
  4. Quick Check:

    Velocity commands = speed and direction control [OK]
Hint: Velocity commands set speed and direction, not camera or battery [OK]
Common Mistakes:
  • Confusing velocity with camera control
  • Thinking velocity sets GPS location directly
  • Assuming velocity changes battery level
2. Which of the following is the correct syntax to send a velocity command moving the drone forward at 2 m/s for 5 seconds?
easy
A. send_velocity(5, 0, 0, 2)
B. send_velocity(0, 2, 0, 5)
C. send_velocity(0, 0, 2, 5)
D. send_velocity(2, 0, 0, 5)

Solution

  1. Step 1: Identify forward direction axis

    Forward movement is usually along the X-axis, so x_speed should be 2.
  2. Step 2: Check duration and other speeds

    Y and Z speeds are zero, duration is 5 seconds, matching the command.
  3. Final Answer:

    send_velocity(2, 0, 0, 5) -> Option D
  4. Quick Check:

    X-axis speed = 2, duration = 5 [OK]
Hint: Forward speed is X-axis; duration is last parameter [OK]
Common Mistakes:
  • Mixing up X and Y axes
  • Putting duration in wrong position
  • Setting speed on wrong axis
3. What will be the drone's movement after running this code?
send_velocity(0, -3, 0, 4)
medium
A. The drone moves left at 3 m/s for 4 seconds
B. The drone moves backward at 3 m/s for 4 seconds
C. The drone moves right at 3 m/s for 4 seconds
D. The drone moves upward at 3 m/s for 4 seconds

Solution

  1. Step 1: Identify axis for Y speed

    The Y-axis controls left-right movement; negative means left.
  2. Step 2: Interpret speed and duration

    Speed is 3 m/s left for 4 seconds, no movement on X or Z axes.
  3. Final Answer:

    The drone moves left at 3 m/s for 4 seconds -> Option A
  4. Quick Check:

    Negative Y speed = left movement [OK]
Hint: Negative Y speed means left movement [OK]
Common Mistakes:
  • Confusing negative Y with backward
  • Mixing Y and Z axes
  • Assuming negative means right
4. Identify the error in this velocity command code:
send_velocity(1, 0, 0)
medium
A. Missing duration parameter
B. Wrong order of speed parameters
C. Negative speed value not allowed
D. Extra parameter included

Solution

  1. Step 1: Check function parameters

    The function requires four parameters: x_speed, y_speed, z_speed, and duration.
  2. Step 2: Identify missing parameter

    Only three parameters are given; duration is missing, causing an error.
  3. Final Answer:

    Missing duration parameter -> Option A
  4. Quick Check:

    Duration required as 4th parameter [OK]
Hint: Velocity commands need 4 parameters: x, y, z, duration [OK]
Common Mistakes:
  • Forgetting duration parameter
  • Swapping speed and duration order
  • Using negative duration
5. You want the drone to move diagonally upward forward at 1 m/s on X and Z axes for 3 seconds, but keep Y speed zero. Which command is correct?
hard
A. send_velocity(1, 1, 0, 3)
B. send_velocity(0, 1, 1, 3)
C. send_velocity(1, 0, 1, 3)
D. send_velocity(1, 0, 0, 1)

Solution

  1. Step 1: Assign speeds to correct axes

    X speed = 1 (forward), Y speed = 0 (no sideways), Z speed = 1 (upward).
  2. Step 2: Check duration matches requirement

    Duration is 3 seconds, matching the problem statement.
  3. Final Answer:

    send_velocity(1, 0, 1, 3) -> Option C
  4. Quick Check:

    X=1, Y=0, Z=1, duration=3 [OK]
Hint: Set speeds on X and Z, zero on Y, duration last [OK]
Common Mistakes:
  • Mixing Y and Z speeds
  • Wrong duration value
  • Setting zero on wrong axis
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard