Task Overview
You are given a drone model in SDF format.
Your task is divided into three main parts:
Part 1 — ArduPilot SITL + Gazebo Drone Integration
You must:
Set up ArduPilot SITL on your system [Link]
Load the provided drone SDF model into Gazebo (Citadel / Garden / Classic — your choice).
Establish bi-directional communication between ArduPilot SITL and the Gazebo drone:
SITL → Gazebo: motor outputs
Gazebo → SITL: IMU, GPS, barometer, etc.
Configure the model so that the drone can arm and take off using SITL commands.
Demonstrate a stable hover or basic mission command (e.g., TAKEOFF, LAND).
Expected output:
Gazebo simulation shows a drone responding to SITL autopilot commands.
Part 2 — Attach 1-DOF Gimbal + Camera in Gazebo
You must:
Add a 1-DOF gimbal joint (pitch or yaw) to the provided drone SDF model.
Mount a camera plugin on the gimbal.
Display the video feed from the camera inside a viewer:
Gazebo client window, OR
ROS2 image viewer (rqt, rviz), OR
Custom script that displays the camera stream
Expected output:
Camera feed clearly shows motion as the gimbal rotates.
Part 3 — Gimbal Control via MAVLink Commands
You must:
Create a MAVLink interface (using pymavlink / MAVSDK / custom script).
Use MAVLink commands such as:
MAV_CMD_DO_MOUNT_CONTROL
MAV_CMD_DO_MOUNT_CONFIGURE
Send commands to manipulate pitch/yaw of the 1-DOF gimbal.
Expected output:
Gimbal moves accurately when MAVLink commands are sent.
Deliverables
1. Documentation (Mandatory)
A short but clear document (PDF or Markdown) containing:
Approach and architecture
Diagram of SITL ↔ Gazebo data flow
Steps performed for each part
Any deviations or issues faced and how they were solved
2. Video Recording (Mandatory)
A screen recording showing:
SITL running
Gazebo showing the drone
Gimbal & camera working
MAVLink commands affecting the gimbal