Autonomous multirotor UAV mission system for airdrop and reconnaissance competitions.
Refactored and integrated from repos: drone | cv_py | cv_cpp By AGENTS(Claude Opus 4.6) which is FOR REFERENCE ONLY.
ROS 2 Humble / C++20 / NVIDIA Jetson / ArduPilot
# Build (Docker)
./scripts/build.sh
# Simulation (Gazebo SITL)
./scripts/sim.sh
# Run on hardware
source install/setup.bash
ros2 launch drone drone.launch.pySingle C++ process on NVIDIA Jetson. Camera capture, TensorRT YOLO inference, detection filtering, position control, and mission logic all execute in one ROS 2 node with zero network hops.
Camera -> TensorRT YOLO -> Kalman Filter -> Clustering -> Mission Handlers
|
PosControl (PID cascade)
|
MAVROS -> ArduPilot
See docs/ARCHITECTURE.md for the full module dependency graph, data flow, coordinate frames, and CMake target layout.
Defined in docs/PROBLEM.md:
- Take off autonomously
- Fly to the drop zone, detect three containers, drop two payloads
- Fly to the reconnaissance zone, identify ground markers
- Return and land on the H-marker using visual servo
include/drone/
utils/ readyaml, timer, keyboard, rotate
math/ pid, basic_pid, scurve, types, utils
perception/ camera_model, detection_filter, clustering, detector (TensorRT)
control/ pos_control, velocity/cascade/trajectory controllers, mavros_commander
drivers/ node_base, motors, inertial_nav, servo, gimbal
mission/ drone_node, handlers (takeoff, airdrop, recon, landing), target_tracker
src/ Matching .cpp implementations + main.cpp
test/ 22 test suites, 251 tests
config/ 6 YAML config files
launch/ ROS 2 launch file
scripts/ build.sh, sim.sh, build_engine.sh
model/ TensorRT engine files (not tracked, see scripts/build_engine.sh)
./scripts/build.sh # Docker build + test (251 tests)
./scripts/build.sh shell # Interactive shell in container
colcon test --packages-select drone # Run tests natively./scripts/build_engine.sh export model/best_circle.pt # PyTorch -> ONNX
./scripts/build_engine.sh onnx model/best_circle.onnx --fp16 # ONNX -> TensorRT- NVIDIA Jetson Orin/Xavier (onboard compute)
- ArduPilot flight controller (via MAVROS)
- Camera (V4L2/CSI)
- Servo-actuated payload release mechanism
- Architecture: module graph, data flow, coordinate frames
- Usage Guide: build, simulation, run, configuration, testing
- Mission Specification: competition rules
- Dependency Analysis: MAVROS topic graph
- Refactoring Roadmap: 8-phase migration plan
- Progress: phase-by-phase completion status
MPL-2.0. Copyright (c) 2024-2026 HDU-DXY-Team.