Skip to content
All work
Case study 04TEKNOFEST 2026

ENGEREK

An autonomous air-defense turret for TEKNOFEST 2026.

Role
Team captain · vision and targeting software
Year
2026
Simulation frame with YOLOv11 detections of helicopters, F-16s, missiles and drones
ENGEREK operator station: camera view with numbered targets, mode, zones and fire control

Overview

  • Python
  • YOLOv11
  • ByteTrack
  • OpenCV
  • NVIDIA Jetson
  • Teensy 4.1

Our entry for TEKNOFEST 2026's Steel Dome air-defense competition: a pan-tilt turret with an airsoft gun that finds target models, tells them apart and engages them, by hand or on its own. As team captain I led 13 people across software, electronics and mechanics, and worked on the vision and targeting software myself.

TEKNOFEST's Steel Dome competition asks for a system that finds red enemy models among blue friendly ones, classifies each by type and pops the balloon under it with an airsoft shot, within 15 metres, both manually and autonomously. The order and the range windows depend on the target type, so classification decides most of the score.

From frame to shot

  1. 1Camerastwo fixed cameras are undistorted and stitched into one panorama; the barrel camera watches the line of fire
  2. 2YOLOv11 + ByteTrackdetect the target models, classify them by type and keep their tracks
  3. 3Targetingreads friend or foe from the model's colour, checks range and zones, and orders the targets
  4. 4Teensy 4.1drives the pan-tilt motors in a closed loop from the main computer's commands
  5. 5Fire controlarms and fires only inside permitted zones; the emergency stop cuts both motion and fire

What I did

  • Captained a 13-person team across software, electronics and mechanics through the preliminary and critical design reports.
  • Built the real-time detection and tracking pipeline and integrated it with the turret's embedded control.

When synthetic data meets bright light

The detector was trained on synthetic images of the competition models. On the real turret it struggled in bright light, so we measured instead of guessing: live frames were far less saturated than anything in the training set, even its palest example.

The cause was an ordering bug in the renderer: scene lighting was applied to the background only and the models were drawn at full saturation on top, so the model learned "saturated blob = target". The same bug was quietly breaking the friend-or-foe colour check. Fixing the renderer fixed both.

Safety first

  • Emergency stop in software and in hardware, for motion and for fire separately.
  • No-move and no-fire zones the turret cannot enter, and protection for friendly targets.
  • Three modes, so a person can always take over: manual, semi-automatic and automatic.

What I took away

  • Measure before you guess: comparing live frames with the training set found the bright-light problem quickly.
  • Synthetic data is only as good as its lighting, and one bug can break more than one feature.

0