Mekanik Tasarım··9 dk okuma
Airdrop Mekanizması Tasarımı: Servo/Vinç Seçimi ve Bırakma Doğruluğu
Hedefin tam üstünde bıraktığınız yük neden 10 metre ileride yere düşer? Mekanizma seçiminden tork hesabına, DO_SET_SERVO'dan balistik kaymaya kadar airdrop tasarımının tamamı.
Sahadaki ilk otonom bırakma denememizde her şey planladığımız gibi gitti: araç hedefin GPS koordinatına geldi, servo tetiklendi, kilit açıldı, su şişesi düştü. Sonra şişeyi yerde ararken fark ettik ki hedef işaretinden epey ileride duruyordu. Mekanizma kusursuz çalışmıştı; hata mekanizmada değildi.
Airdrop, ilk bakışta bir mekanik problem gibi görünür — “yükü tutan bir kilit yap, komutla aç”. Pratikte ise üç ayrı problemin toplamıdır: yükü uçuş boyunca güvenle tutan bir mekanizma, o mekanizmayı doğru anda tetikleyen bir kontrol zinciri ve yükün bırakıldıktan sonra nereye gideceğini öngören bir balistik hesap. Üçünden biri eksikse sistem “çalışıyor” ama isabet etmiyor.
Bu yazıda dördünü de sırayla ele alıyoruz: mekanizma seçenekleri ve karşılaştırması, servo tork hesabı, ArduPilot tarafında tetikleme yöntemleri ve en çok göz ardı edilen kısım olan bırakma fiziği. Sayısal örnekleri kendi aracınıza uygulayabileceğiniz formüllerle veriyoruz.
Mekanizma seçenekleri
Dört ana yaklaşım var. Hepsinin çalıştığı bir senaryo ve tıkandığı bir senaryo mevcut.
| Mekanizma | Nasıl çalışır | Artıları | Eksileri | Ne zaman tercih edilir |
|---|---|---|---|---|
| Servo kilit | Servo bir pimi/mandalı çeker, yük serbest düşer | Basit, hafif, ucuz, hızlı (0,1–0,3 s) | Yük serbest düşer; kırılgan yük ve hassas iniş için uygun değil | Dayanıklı yük, düşük irtifa, hız öncelikli görev |
| Vinç / kablo ile indirme | Motorlu makara kabloyu salar, yük yavaşça iner | Yumuşak iniş, kırılgan yük, yüksek irtifadan hassas konumlandırma | Ağır, karmaşık, yavaş (onlarca saniye), kablo dolanma riski | Kırılgan yük, iniş yapılamayan alan, süre kısıtı gevşek |
| Elektromıknatıs / EPM | Manyetik tutuş; komutla bırakılır | Hareketli parça yok, aşınma yok; EPM sürekli akım çekmez | Yükün ferromanyetik ara plakaya ihtiyacı var; pusulaya manyetik girişim riski | Tekrarlı al-bırak görevleri, mekanik aşınmanın sorun olduğu yerler |
| Paraşüt | Yük serbest bırakılır, paraşüt açılır | Çarpma enerjisi düşük, kırılgan yük korunur | Rüzgârda sürüklenme çok artar, isabet ciddi biçimde bozulur | Yükün sağlam inmesi isabetten daha önemliyse |
Bizim SUAS 2026 aracımızda servo kilit tercih ettik: yük dayanıklı, görev süresi kısıtlı ve mekanizmanın kütle bütçesi dar. Vinç, isabet açısından en iyi seçenek — çünkü balistik problemi tamamen ortadan kaldırır — ama ~1 kg’lık ek kütle ve 20–40 saniyelik bırakma süresi bizim görev profilimize sığmıyordu.
Elektromıknatıs seçeneğinde iki uyarı: klasik elektromıknatıs tutuş boyunca sürekli akım çeker (güç kesintisinde yük düşer), elektrokalıcı mıknatıs (EPM — sadece durum değiştirirken enerji harcayan mıknatıs) ise durağan halde akım çekmez ama anahtarlama anında kısa süreli yüksek akım çeker; üretici ayrı bir besleme önerir. Her iki durumda da mıknatısı pusuladan mümkün olduğunca uzağa monte edin ve montaj sonrası pusula kalibrasyonunu tekrarlayın.
Servo seçimi: tork hesabı
Servo torku genelde kgf·cm cinsinden verilir. Dönüşüm:
1 kgf·cm = 0.0981 N·m (1 N·m = 10.2 kgf·cm)
Senaryo A — yükü doğrudan kol taşıyor. En kötü ama en yaygın tasarım: yükün ağırlığı servo horn’una bir kol mesafesinden biniyor.
T = n × m × g × r
n : dinamik yük katsayısı (manevra/iniş şoku için)
m : yük kütlesi [kg]
g : 9.81 m/s²
r : kuvvetin servo miline dik uzaklığı [m]
Örnek: m = 1.0 kg, r = 3 cm = 0.03 m, n = 1 (statik)
T = 1 × 1.0 × 9.81 × 0.03 = 0.294 N·m = 3.0 kgf·cm
Emniyet katsayısı 2.5 (sürtünme + dinamik yük) → en az ~7.5 kgf·cm
Senaryo B — kesme pimi (shear pin) mandalı. Yükün ağırlığı gövdeye aktarılır; servo sadece pimi sürtünmeye karşı çeker. Aynı yük için gereken tork bir mertebe düşer:
F_sürtünme = mu × N = 0.30 × (1.0 × 9.81) = 2.94 N
r_horn = 1.5 cm = 0.015 m
T = 2.94 × 0.015 = 0.044 N·m = 0.45 kgf·cm
Emniyet katsayısı 3 → ~1.4 kgf·cm yeterli
Buradaki asıl ders şu: servoya yükü taşıtmayın. Yükü yapıya aktaran, servoya yalnızca sürtünmeyi yendiren bir geometri (kesme pimi, üst-ölü-nokta mandalı) küçük ve hafif bir servoyla çalışır. Sürtünme katsayısı malzeme çiftine göre değişir, 0,3 muhafazakâr bir başlangıçtır; kesin değer için üreticinin veri sayfasına bakın.
Servo seçerken tork dışında bakılacaklar:
- Metal dişli: iniş şoku ve titreşim naylon dişliyi zamanla sıyırır. Airdrop için metal dişli tartışmasız.
- Hız: veri sayfasında
s/60°olarak verilir. 90°’lik bir hareket için süre = (90/60) × spec. Bu süre doğruluk hesabına doğrudan girer (aşağıda). - Besleme gerilimi: tork ve hız değerleri gerilime bağlıdır; 4,8 V ve 6,0 V satırları farklıdır. Hangi gerilimde çalıştıracaksanız o satırı okuyun.
- Akım: stall (kilitli rotor) akımı, boştaki akımın çok üzerindedir. Kesin değer için üreticinin veri sayfasına bakın.
Besleme ve güvenlik
Pixhawk sınıfı otopilotlar servo rayına güç vermez — ArduPilot dokümantasyonu bunu açıkça belirtir. Servo beslemesi ayrı bir BEC’ten gelmelidir.
Kritik uyarılar:
- Servo rayının normal çalışma aralığı 4,1–5,7 V’tur. Üzerine çıkmak otopilotun güç yönetimini tetikler.
- Otopilotu yalnızca servo rayından beslemek tehlikelidir; özellikle dijital servolarda oluşan gerilim sıçramaları 5,7 V’u aşarak uçuş sırasında FMU’nun yeniden başlamasına yol açabilir. ArduPilot, 5 V BEC ile yedek besleme yapılacaksa gerilimi sınırlamak için bir Zener diyot (1N5339) kullanılmasını önerir.
- Servo stall akımı BEC’i zorlarsa gerilim düşer ve alıcı/otopilot brownout yaşayabilir. Mekanizma testini pervaneler sökülmüş halde yapın ve BEC gerilimini yük altında ölçün.
- Yüksek akım çeken bir EPM veya vinç motorunu ana LiPo’ya bağlarken kablo kesitini ve konektör akım sınırını kontrol edin; ince kablo, kısa süreli yüksek akımda ısınıp yalıtımını kaybeder.
FC’den kontrol: DO_SET_SERVO ve alternatifleri
Görev içinde ham servo komutu. ArduPilot’ta DO_SET_SERVO (MAVLink komut no 183) bir çıkışı belirtilen PWM değerine götürür. Bir “do” komutudur: iki waypoint arasında çalışır, görevin ilk veya son satırı olamaz.
1 WAYPOINT bırakma noktası, 20 m
2 DO_SET_SERVO Ser No: 9 PWM: 1900
3 WAYPOINT çıkış noktası, 20 m
Önemli bir tuzak: DO_SET_SERVO yalnızca ilgili çıkışın SERVOx_FUNCTION değeri 0 (Disabled), 1 (RCPassThru), 22, 23 veya 51–66 (RCIN1–16) ise kabul edilir. Başka bir fonksiyon atanmışsa komut “channel conflict” ile reddedilir. Servoyu Copter’da AUX çıkışlarından birine bağlayın; ana çıkışlar motorlar için yüksek frekansta sürülür.
Gripper backend’i. Ham PWM yerine ArduPilot’un gripper altyapısını kullanmak daha temizdir; açık/kapalı PWM değerleri parametreye gömülür ve komut tarafı sadeleşir:
SERVO9_FUNCTION = 28 # Gripper
GRIP_ENABLE = 1
GRIP_TYPE = 1 # Servo (değişiklikten sonra reboot)
GRIP_GRAB = 1100 # yük tutuluyor
GRIP_NEUTRAL = 1100
GRIP_RELEASE = 1900 # bırak
RC9_OPTION = 19 # verici anahtarıyla yerde manuel test
Görev içinde DO_GRIPPER (komut no 211) kullanılır: param2 = 0 bırakır, 1 tutar.
Companion computer üzerinden. Hedefi görüntü işlemeyle bulup bırakma anına kendiniz karar veriyorsanız, komutu Jetson’dan pymavlink ile göndermek en esnek yol (companion computer ve MAVLink rehberimiz):
from pymavlink import mavutil
m = mavutil.mavlink_connection('udp:127.0.0.1:14550')
m.wait_heartbeat()
m.mav.command_long_send(
m.target_system, m.target_component,
mavutil.mavlink.MAV_CMD_DO_SET_SERVO, # 183
0, # confirmation
9, # param1: servo çıkış numarası
1900, # param2: PWM (us)
0, 0, 0, 0, 0)
print(m.recv_match(type='COMMAND_ACK', blocking=True, timeout=3))
COMMAND_ACK mesajını mutlaka okuyun — komutun reddedildiğini uçuş sonrası logdan öğrenmek pahalıya patlıyor. Bu akışı önce SITL’de doğrulayın (SITL + Gazebo rehberi).
Vinç kullanacaksanız ArduPilot’ta DO_WINCH komutu var (pozitif uzunluk kablo salar) ve NAV_PAYLOAD_PLACE görev komutu, motor çıkışındaki itki düşüşünden yükün yere değdiğini algılayıp gripper’ı açar. İlgili parametreler PLDP_SPEED_DN (iniş hızı), PLDP_THRESH (temas eşiği, itki düşüş yüzdesi), PLDP_RNG_MAX ve PLDP_DELAY.
Bırakma fiziği: yük nereye düşer
İşte ilk denememizde ıskaladığımız kısım. Yük bırakıldığı anda aracın yatay hızını taşır. Serbest düşerken bu hızla ilerlemeye devam eder.
Düşüş süresi: t = sqrt(2h / g)
Yatay kayma: x = v_yer × t
Dikey çarpma hızı: v_z = g × t
Somut örnek, bizim uçuş irtifamızla:
h = 20 m, g = 9.81 m/s², v_yer = 5 m/s
t = sqrt(2 × 20 / 9.81) = sqrt(4.08) = 2.02 s
x = 5 × 2.02 = 10.1 m
v_z = 9.81 × 2.02 = 19.8 m/s
Yani 20 metreden 5 m/s ile geçerken bıraktığınız yük, bırakma noktasının 10 metre ilerisine düşer. Bırakma komutunu hedefin 10 metre gerisinde vermeniz gerekir. Aynı hesap 3 m/s’de 6,1 m, 8 m/s’de 16,2 m verir — yatay kayma hıza doğrusal, irtifaya karekökle bağlıdır.
Buradaki v_yer yer hızıdır (GPS’ten okunan), hava hızı değil. Rüzgârda araç yengeç yaparken ikisi belirgin biçimde ayrışır; formüle yanlış olanı koyarsanız hata metrelerce olur.

Sürükleme ve rüzgâr
Yukarıdaki formüller sürüklemeyi (hava direncini) ihmal eder. Ne kadar hata yaptığımızı terminal hızla kontrol edebiliriz:
v_t = sqrt( 2mg / (rho × Cd × A) )
0,5 L su şişesi: m = 0.5 kg, A ≈ 0.0044 m², Cd ≈ 0.9, rho = 1.225 kg/m³
v_t = sqrt(9.81 / 0.00485) ≈ 45 m/s
Çarpma hızımız 19,8 m/s, terminal hızın yarısından az. Bu bölgede sürükleme etkisi küçüktür: yoğun ve kompakt bir yük için vakum yaklaşımının yatay kaymayı birkaç yüzde fazla tahmin etmesini bekleriz — yani gerçek düşüş noktası hesaplananın biraz gerisindedir. Hafif ve hacimli yüklerde (köpük, karton, paraşütlü paket) bu fark hızla büyür ve formül kullanılamaz hale gelir; o durumda deneysel kalibrasyon şart.
Rüzgârın iki ayrı etkisi var ve büyük olan genelde beklenmedik olandır. Düşen yükün doğrudan rüzgârla sürüklenmesi, yoğun bir cisim ve ~2 saniyelik düşüş için sınırlıdır. Asıl hata kaynağı aracın kendisidir: rüzgârda konum tutma hatası artar, yer hızı dalgalanır ve bırakma anındaki gerçek hız planladığınızdan farklı olur. Hafif ve hacimli yüklerde ise sıralama tersine döner, yükün sürüklenmesi baskın hale gelir.
Doğruluğu artırmanın yolları
Yatay kaymayı sıfırlamanın en temiz yolu v_yer’i sıfırlamaktır. Hedefin üzerinde durup (LOITER/GUIDED ile konum tutarak) bırakırsanız x = 0 olur ve geriye yalnızca konum hatası + rüzgâr sürüklenmesi kalır. Bunun bedeli süredir: hover’a girip stabilize olmak on saniyeleri yer.
İrtifayı düşürmek iki kanaldan birden yardım eder: hem t küçülür (kayma azalır) hem de rüzgârın etki süresi kısalır. 20 m yerine 10 m’den bırakmak düşüş süresini 2,02 s’den 1,43 s’ye, 5 m/s’deki kaymayı 10,1 m’den 7,1 m’ye indirir.
Hedefi görüntü işlemeyle ortalamak, GPS koordinatının doğruluğuna bağımlılığı kaldırır. Gimbal kameradan gelen tespiti (YOLO eğitim rehberimiz) piksel merkezinden sapmaya çevirip konum düzeltmesi uygularsanız, hedef koordinatı birkaç metre kaymış olsa bile isabet edersiniz.
Son olarak gecikme bütçesini ölçün. Tespit → karar → MAVLink komutu → FC işleme → servo hareketi zincirinin toplam süresi ne ise, o süre boyunca araç yol alır:
gecikme kayması = v_yer × t_gecikme
5 m/s ve 0.3 s toplam gecikme → 1.5 m ek hata
Servonun kendi hareket süresi bu bütçenin ölçülebilir bir parçasıdır; veri sayfasındaki s/60° değerini hesaba katın. Kendi zincirinizi ölçmeden varsayılan bir rakam kullanmayın.
Bizim sonucumuz
SUAS 2026 aracımızla yaptığımız otonom bırakmalarda, yaklaşık 20 metre irtifadan bıraktığımız su şişesi hedefin ortalama 5 metre yakınına düştü. Servo kilit mekanizması her denemede açtı; kalan hata bırakma anındaki yer hızı belirsizliği, GPS konum hatası ve gecikme bütçesinin toplamıydı. Bir sonraki iterasyonda hover’da bırakmaya ve hedefi kameradan ortalamaya geçiyoruz.
Sık düşülen tuzaklar
- İleri hızı hesaba katmamak. En pahalı hata bu. Hedefin tam üstünde bırakırsanız yük 10 metre ileri düşer; formülü uygulayın.
- Yer hızı yerine hava hızı kullanmak. Rüzgârda ikisi ayrışır ve hata doğrudan metreye dönüşür.
- Servoya yükü taşıtmak. Doğrudan yük taşıyan kol, kesme pimi mandalına göre bir mertebe daha fazla tork ister; servo büyür, ağırlaşır, akımı artar.
- Naylon dişli. Titreşim ve iniş şoku altında dişliler sıyrılır ve bunu genelde yükü kaybettiğinizde fark edersiniz.
- Yükün takılması. Kilit açıldığı halde yük gövdeye, kabloya veya kendi ambalajına takılıp gecikmeli düşer. Mekanizmayı yükün tam boyutu ve tam ağırlığıyla, aracın uçuş açılarında (öne eğik, yana eğik) yerde defalarca test edin.
- Servo rayını otopilottan beslemeye çalışmak. Pixhawk servo rayına güç vermez; ayrı BEC kullanın ve gerilimi 5,7 V’un altında tutun.
SERVOx_FUNCTIONçakışması. Çıkışa başka bir fonksiyon atanmışsaDO_SET_SERVOsessizce reddedilir;COMMAND_ACK’i okuyun.
Pratik özet
- Mekanizmayı göreve göre seçin: dayanıklı yük + süre kısıtı → servo kilit; kırılgan yük + hassas iniş → vinç; tekrarlı al-bırak → EPM. Paraşütü yalnızca isabetten feragat edebiliyorsanız kullanın.
- Tork hesabını yapın ve geometriyi düzeltin:
T = n × m × g × r, ardından yükü yapıya aktaran bir mandal tasarlayarakr’yi ve gereken torku düşürün. Metal dişli, 2–3 kat emniyet katsayısı. - Balistiği görev planına gömün:
t = sqrt(2h/g),x = v_yer × t. Bırakma waypoint’ini hedefinxkadar gerisine koyun;v_yer’i GPS’ten alın. - Beslemeyi ayırın: servo için ayrı BEC, 4,1–5,7 V aralığı, yük altında gerilim ölçümü, pervanesiz yer testi.
- Doğruluğu adım adım artırın: önce ileri hız düzeltmesi, sonra irtifayı düşürme, sonra hover’da bırakma, en son görüntü işlemeyle ortalama. Her adımı SITL’de doğrulayıp sahada tekrarlı bırakmayla ölçün.
- airdrop
- servo
- ardupilot
- mekanik-tasarim
- balistik