# Quadrotor Visual Servoing Eval

> Evaluates a drone's ability to autonomously navigate to a target vehicle using marker-free visual servoing. It measures tracking accuracy, localization precision, and flight efficiency in both simulation and real-world environments. Use when the user wants to benchmark on Custom Simulation & Real-World Flight Dataset, or asks about evaluating this task. Reports NormError.

- Skill: `qhjqhj00/quadrotor-visual-servoing-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/quadrotor-visual-servoing-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/quadrotor-visual-servoing-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/quadrotor-visual-servoing-eval

---


# quadrotor-visual-servoing-eval

> Efficient Self-Supervised Neuro-Analytic Visual Servoing for Real-time Quadrotor Control — Mocanu et al. (2025) (arXiv:2507.19878, 2025)

## What this evaluates

Evaluates a drone's ability to autonomously navigate to a target vehicle using marker-free visual servoing. It measures tracking accuracy, localization precision, and flight efficiency in both simulation and real-world environments.

## Datasets

- **Custom Simulation & Real-World Flight Dataset** — total 880; splits: train (240), test_sim (800), test_real (80)

## Metrics

- `NormError` **(primary)** — range: pixels
  - L2 norm of the vector containing raw pixel values for 4 corner points, computed over the last 3 seconds before landing.
- `IoU` — range: [0, 1]
  - Intersection over Union between goal points and current points in the image, computed over the last 3 seconds before landing.
- `FlightTime` — range: seconds
  - Total flight duration from take-off to landing.
- `FlightDistance` — range: meters
  - Total distance traveled from take-off to landing.
- `InferenceTime` — range: milliseconds
  - Average per-frame inference time over 30 repeated trials.

## Input / output format

**Input**: RGB camera frames (640x360 resolution) capturing the target vehicle from various drone poses.

**Output**: Normalized velocity commands: linear velocities vx, vy, and angular velocity ωz.

## Scoring recipe

```python
# Extract last 3 seconds of trajectory data
last_3s_frames = trajectory[-3s:]
# Compute error norm (L2 norm of pixel error vector for 4 corners)
error_vector = [pixel_error_1, pixel_error_2, pixel_error_3, pixel_error_4]
norm_error = np.linalg.norm(error_vector)
# Compute IoU between goal and current bounding boxes
iou = compute_iou(goal_box, current_box)
# Compute flight metrics
flight_time = landing_time - takeoff_time
flight_distance = sum(np.linalg.norm(velocity_commands) * dt)
```

## Common pitfalls

- Metrics are only computed over the final 3 seconds before landing, not the full trajectory.
- Termination conditions differ between teacher/student and sim/real, which can shift the evaluation window.
- Real-world performance heavily depends on fine-tuning data volume (80 scenes), which is significantly less than simulation training data (240 runs).

## Evidence (verbatim from paper)

> The primary metrics were error norm and Intersection over Union (IoU) between the goal points and current points in the image during the last three seconds before landing. Furthermore, we measured the total flight duration and distance traveled from the point where tracking began (drone take-off with camera angled 45 degrees downward) until the point of landing.

## Citation

```bibtex
@misc{mocanu2025neuroanalytic,
  title={Efficient Self-Supervised Neuro-Analytic Visual Servoing for Real-time Quadrotor Control},
  author={Mocanu et al. (2025)},
  year={2025},
  note={arXiv:2507.19878}
}
```

- arXiv: 2507.19878

