Bird
Raised Fist0
Drone Programmingprogramming~20 mins

Camera gimbal control in Drone Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Gimbal Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Gimbal pitch angle adjustment output
What is the output of this code controlling the gimbal pitch angle?
Drone Programming
gimbal_pitch = 10
command = 'up'
if command == 'up':
    gimbal_pitch += 5
elif command == 'down':
    gimbal_pitch -= 5
print(gimbal_pitch)
A15
B5
CError
D10
Attempts:
2 left
💡 Hint
Check how the pitch angle changes when the command is 'up'.
🧠 Conceptual
intermediate
1:30remaining
Understanding gimbal stabilization purpose
Why do camera gimbals stabilize the camera during drone flight?
ATo keep the camera steady despite drone movements
BTo increase drone speed
CTo reduce battery consumption
DTo improve drone GPS accuracy
Attempts:
2 left
💡 Hint
Think about what happens to a camera when the drone moves suddenly.
🔧 Debug
advanced
2:30remaining
Fix the gimbal yaw control error
What error does this code produce when trying to set the gimbal yaw angle?
Drone Programming
gimbal_yaw = 0
def set_yaw(angle):
    if angle >= -90 and angle <= 90:
        gimbal_yaw = angle
set_yaw(45)
print(gimbal_yaw)
ATypeError because of wrong variable type
BSyntaxError due to missing colon
CNameError because gimbal_yaw is not defined
DNo error, prints 45
Attempts:
2 left
💡 Hint
Check the if statement syntax carefully.
📝 Syntax
advanced
2:30remaining
Identify the correct gimbal pitch control syntax
Which option correctly sets the gimbal pitch to 30 degrees using a function?
A
def set_pitch(angle):
    pitch == angle
set_pitch(30)
print(pitch)
B
def set_pitch(angle):
    pitch = angle
set_pitch(30)
print(pitch)
C
def set_pitch(angle):
    global pitch
    pitch = angle
set_pitch(30)
print(pitch)
D
def set_pitch(angle):
    pitch = angle
print(pitch)
set_pitch(30)
Attempts:
2 left
💡 Hint
Consider variable scope inside and outside the function.
🚀 Application
expert
3:00remaining
Calculate final gimbal roll angle after commands
Given the initial roll angle is 0, and the commands ['left', 'left', 'right', 'left'] change the roll by -10, -10, +10, -10 degrees respectively, what is the final roll angle?
A0
B-10
C-30
D-20
Attempts:
2 left
💡 Hint
Add each command's effect step by step starting from 0.

Practice

(1/5)
1. What does the pitch control in a drone's camera gimbal?
easy
A. Moves the camera up and down
B. Rotates the camera left and right
C. Tilts the camera diagonally
D. Zooms the camera in and out

Solution

  1. Step 1: Understand gimbal axes

    The gimbal controls three main movements: pitch, yaw, and roll.
  2. Step 2: Identify pitch movement

    Pitch moves the camera up and down, changing its vertical angle.
  3. Final Answer:

    Moves the camera up and down -> Option A
  4. Quick Check:

    Pitch = up/down movement [OK]
Hint: Pitch always means up/down tilt [OK]
Common Mistakes:
  • Confusing pitch with yaw
  • Thinking pitch controls zoom
  • Mixing pitch with roll
2. Which of the following is the correct syntax to set the yaw angle to 45 degrees in a drone gimbal control API?
easy
A. gimbal.setYaw(45)
B. gimbal.yaw = 45
C. gimbal.set_yaw(45)
D. gimbal.yaw(45)

Solution

  1. Step 1: Identify common method naming

    In many drone APIs, methods use snake_case like set_yaw() to set angles.
  2. Step 2: Check syntax correctness

    gimbal.set_yaw(45) uses gimbal.set_yaw(45), which is a valid method call with correct syntax.
  3. Final Answer:

    gimbal.set_yaw(45) -> Option C
  4. Quick Check:

    Method calls use parentheses and snake_case [OK]
Hint: Look for method call with parentheses and snake_case [OK]
Common Mistakes:
  • Using dot assignment instead of method call
  • Missing parentheses
  • Using camelCase instead of snake_case
3. What will be the output of this code snippet controlling the gimbal pitch?
gimbal.set_pitch(10)
gimbal.set_pitch(gimbal.get_pitch() + 15)
print(gimbal.get_pitch())
medium
A. 10
B. 25
C. Error
D. 15

Solution

  1. Step 1: Analyze first pitch set

    The first line sets pitch to 10 degrees.
  2. Step 2: Analyze second pitch set

    The second line adds 15 to current pitch (10 + 15 = 25) and sets it.
  3. Step 3: Print current pitch

    Printing pitch outputs 25.
  4. Final Answer:

    25 -> Option B
  5. Quick Check:

    10 + 15 = 25 [OK]
Hint: Add increments to current pitch before printing [OK]
Common Mistakes:
  • Ignoring addition in second set
  • Assuming print shows first set value
  • Syntax errors in method calls
4. Identify the error in this code snippet for resetting the gimbal:
def reset_gimbal():
    gimbal.set_pitch = 0
    gimbal.set_yaw = 0
    gimbal.set_roll = 0
reset_gimbal()
medium
A. Using assignment instead of method calls
B. Missing parentheses in function call
C. Incorrect function definition syntax
D. No error, code is correct

Solution

  1. Step 1: Check how gimbal angles are set

    Angles should be set by calling methods like gimbal.set_pitch(0), not by assignment.
  2. Step 2: Identify incorrect assignments

    The code uses gimbal.set_pitch = 0, which overwrites the method with an integer, causing errors.
  3. Final Answer:

    Using assignment instead of method calls -> Option A
  4. Quick Check:

    Methods need parentheses, not assignment [OK]
Hint: Use parentheses to call methods, not '=' assignment [OK]
Common Mistakes:
  • Assigning values to methods
  • Forgetting parentheses
  • Assuming functions are variables
5. You want to smoothly move the camera gimbal from pitch 0 to 30 degrees in 3 steps. Which code correctly implements this using a loop?
hard
A. for angle in range(0, 30): gimbal.set_pitch(angle * 10)
B. for angle in [10, 20, 30]: gimbal.set_pitch(angle)
C. for angle in range(0, 30, 10): gimbal.set_pitch(angle)
D. for angle in range(0, 31, 10): gimbal.set_pitch(angle)

Solution

  1. Step 1: Understand the target angles

    The pitch should move through 0, 10, 20, and 30 degrees in steps.
  2. Step 2: Check each option's range

    for angle in range(0, 31, 10): gimbal.set_pitch(angle) produces angles 0, 10, 20, 30, which smoothly moves from 0 to 30 in 4 steps.
  3. Step 3: Verify other options

    for angle in [10, 20, 30]: gimbal.set_pitch(angle) -> misses starting at 0. for angle in range(0, 30, 10): gimbal.set_pitch(angle) -> stops at 20, missing 30. for angle in range(0, 30): gimbal.set_pitch(angle * 10) -> incorrect values (0 to 290).
  4. Final Answer:

    for angle in range(0, 31, 10): gimbal.set_pitch(angle) -> Option D
  5. Quick Check:

    Range includes 0 to 30 in steps of 10 [OK]
Hint: Use range with correct start, stop, and step for smooth movement [OK]
Common Mistakes:
  • Off-by-one in range end
  • Wrong step size in range
  • Incorrect multiplication inside loop