Bird
Raised Fist0
Drone Programmingprogramming~5 mins

How motor speed controls movement in Drone Programming - Performance & Efficiency

Choose your learning style10 modes available
Time Complexity: How motor speed controls movement
O(n)
Understanding Time Complexity

We want to understand how the time it takes to control a drone's movement changes as we adjust motor speeds.

Specifically, how does the program's work grow when we change motor speed inputs?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


for motor in motors:
    motor.set_speed(desired_speed)
    motor.update_position()
    wait(10)  # wait 10 milliseconds

This code sets each motor's speed and updates the drone's position accordingly.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Looping through each motor to set speed and update position.
  • How many times: Once for each motor in the motors list.
How Execution Grows With Input

As the number of motors increases, the program does more work in a straight line.

Input Size (n)Approx. Operations
4 motors4 sets and updates
8 motors8 sets and updates
16 motors16 sets and updates

Pattern observation: The work grows directly with the number of motors.

Final Time Complexity

Time Complexity: O(n)

This means the time to control movement grows in direct proportion to the number of motors.

Common Mistake

[X] Wrong: "Changing motor speed happens instantly and does not depend on the number of motors."

[OK] Correct: Each motor must be set and updated separately, so more motors mean more work.

Interview Connect

Understanding how motor control scales helps you think about real drone programming challenges and efficient code design.

Self-Check

"What if we added nested loops to control motor groups separately? How would the time complexity change?"

Practice

(1/5)
1. What happens when all four drone motors run at the same speed?
easy
A. The drone spins rapidly in place
B. The drone hovers or moves straight up or down
C. The drone moves sideways
D. The drone immediately lands

Solution

  1. Step 1: Understand motor speed effect on lift

    When all motors run at the same speed, they produce equal lift, balancing the drone.
  2. Step 2: Determine movement from equal lift

    Equal lift means the drone either stays in place (hover) or moves straight up/down if speed changes.
  3. Final Answer:

    The drone hovers or moves straight up or down -> Option B
  4. Quick Check:

    Equal motor speeds = hover/up/down [OK]
Hint: Same speed on all motors means hover or vertical move [OK]
Common Mistakes:
  • Thinking equal speeds cause spinning
  • Assuming sideways movement with equal speeds
  • Confusing motor speed with drone landing
2. Which of the following is the correct way to set motor speeds in code to make the drone hover?
easy
A. setMotorSpeeds(100, 90, 100, 90);
B. setMotorSpeeds(0, 0, 0, 0);
C. setMotorSpeeds(100, 100, 100, 100);
D. setMotorSpeeds(100, 110, 90, 100);

Solution

  1. Step 1: Identify equal motor speeds for hover

    Hover requires all motors to run at the same speed to balance lift.
  2. Step 2: Check each option for equal speeds

    Only setMotorSpeeds(100, 100, 100, 100); has all motors set to 100, equal speeds for hover.
  3. Final Answer:

    setMotorSpeeds(100, 100, 100, 100); -> Option C
  4. Quick Check:

    Equal speeds in code = hover [OK]
Hint: Equal values in all motor speed parameters mean hover [OK]
Common Mistakes:
  • Using different speeds thinking it still hovers
  • Setting all speeds to zero which stops motors
  • Mixing up parameter order
3. Given this code snippet:
setMotorSpeeds(120, 100, 120, 100);

What movement will the drone most likely perform?
medium
A. Move forward
B. Hover in place
C. Tilt sideways and move right
D. Rotate clockwise

Solution

  1. Step 1: Analyze motor speed differences

    Motors 1 and 3 run faster (120) than motors 2 and 4 (100), creating torque imbalance.
  2. Step 2: Understand effect of torque imbalance

    This imbalance causes the drone to rotate (yaw) clockwise due to uneven motor speeds.
  3. Final Answer:

    Rotate clockwise -> Option D
  4. Quick Check:

    Unequal opposite motors speed = rotation [OK]
Hint: Faster opposite motors cause rotation [OK]
Common Mistakes:
  • Assuming forward movement from speed difference
  • Thinking drone hovers with different speeds
  • Confusing rotation direction
4. This code is intended to make the drone move forward:
setMotorSpeeds(110, 110, 90, 90);

But the drone spins instead. What is the likely error?
medium
A. Left and right motors have different speeds causing spin
B. Front motors are slower than rear motors
C. Motors on opposite sides have same speeds causing rotation
D. All motors have equal speeds causing hover

Solution

  1. Step 1: Identify motor speed pairs

    Motors 1 and 2 are 110, motors 3 and 4 are 90; left and right sides differ.
  2. Step 2: Understand effect of left-right speed difference

    Different speeds on left vs right cause the drone to spin (yaw), not move forward.
  3. Final Answer:

    Left and right motors have different speeds causing spin -> Option A
  4. Quick Check:

    Unequal left-right speeds = spin [OK]
Hint: Left-right speed difference causes spin, not forward move [OK]
Common Mistakes:
  • Thinking front-rear speed difference causes spin
  • Assuming equal speeds cause spin
  • Mixing motor numbering sides
5. You want the drone to tilt forward and move forward smoothly. Which motor speed setting is best?
setMotorSpeeds(95, 95, 105, 105);

Why does this work?
hard
A. Front motors slower than rear motors tilt drone forward
B. Rear motors slower than front motors tilt drone backward
C. Left motors faster than right motors cause forward tilt
D. All motors equal speed cause forward movement

Solution

  1. Step 1: Identify motor speed distribution

    Motors 1 and 2 (front) run at 95, motors 3 and 4 (rear) at 105; front motors slower than rear.
  2. Step 2: Understand tilt direction from speed difference

    Slower front motors provide less lift upfront, tilting the nose down for forward movement.
  3. Final Answer:

    Front motors slower than rear motors tilt drone forward -> Option A
  4. Quick Check:

    Slower front motors = forward tilt [OK]
Hint: Slower front motors than rear tilt drone forward [OK]
Common Mistakes:
  • Thinking faster front motors tilt forward
  • Confusing left-right with front-rear speeds
  • Assuming equal speeds cause tilt
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