Bird
Raised Fist0
Drone Programmingprogramming~3 mins

Why Sending velocity commands in Drone Programming? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could make your drone glide like a bird instead of hopping from point to point?

The Scenario

Imagine you want to fly a drone smoothly in a specific direction. Without velocity commands, you might try to move it step-by-step by manually setting its position again and again.

The Problem

This manual way is slow and tricky. You have to calculate each position carefully, and any small mistake can make the drone jitter or move unpredictably. It's like trying to walk by telling your legs exactly where to be every second instead of just telling them how fast to move.

The Solution

Sending velocity commands lets you tell the drone how fast and in what direction to move. This is simpler and more natural, like saying "go forward at this speed" instead of "stand here, then here, then here." It makes flying smoother and easier to control.

Before vs After
✗ Before
set_position(x1, y1, z1)
set_position(x2, y2, z2)
set_position(x3, y3, z3)
✓ After
send_velocity(vx, vy, vz)
What It Enables

It enables smooth, continuous, and precise drone movement by controlling speed and direction directly.

Real Life Example

When filming a moving subject, sending velocity commands helps the drone follow smoothly without jerky stops or sudden jumps.

Key Takeaways

Manual position control is slow and error-prone.

Velocity commands simplify movement by focusing on speed and direction.

This leads to smoother and more natural drone flight.

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