
ŞEK. 01
KAYIT KÜNYESİ
Kategori
Mekanik
TARİH
Sahadaki ilk otonom bırakışımızda her şey planladığımız gibi gitti: araç hedefin GPS koordinatına uçtu, servo tetiklendi, mandal açıldı, su şişesi düştü. Sonra şişeyi yerde ararken onu hedef işaretinin epeyce ötesinde bulduk. Mekanizma kusursuz çalışmıştı; hata mekanizmada değildi.
İlk bakışta airdrop mekanik bir problem gibi görünür: "yükü tutan bir mandal yap, komutla aç." Pratikte ise üç ayrı problemin toplamıdır: yükü tüm uçuş boyunca güvenle tutan bir mekanizma, o mekanizmayı doğru anda tetikleyen bir kontrol zinciri ve bırakıldıktan sonra yükün nereye gideceğini öngören bir balistik hesap. Üçünden biri eksik kalırsa sistem "çalışır" ama hiçbir şeyi vuramaz.
Bu yazıda dördünü de sırayla ele alıyoruz: mekanizma seçenekleri ve karşılaştırmaları, servo tork hesabı, ArduPilot tarafındaki tetikleme yöntemleri ve en çok göz ardı edilen kısım (bırakma anının fiziği). Her sayısal örneğin arkasında duran formülü de veriyoruz ki kendi aracınıza uyarlayabilesiniz.
Mekanizma seçenekleri
Dört ana yaklaşım var. Her birinin iyi çalıştığı bir senaryo ve tamamen çöktüğü bir senaryo mevcut.
Mekanizma | Nasıl çalışır | Artıları | Eksileri | Ne zaman tercih edilir |
|---|---|---|---|---|
Servo mandal | Bir servo pimi ya da mandalı çeker, yük serbest düşüşe geçer | Basit, hafif, ucuz, hızlı (0.1–0.3 s) | Yük serbest düşer; kırılgan yükler ya da yumuşak iniş için uygun değil | Dayanıklı yük, düşük irtifa, hızın önce geldiği görevler |
Vinç / halatla indirme | Motorlu bir makara halatı salar, yük yavaşça aşağı iner | Yumuşak iniş, kırılgan yükleri kaldırır, yüksek irtifadan hassas yerleştirme | Ağır, karmaşık, yavaş (onlarca saniye), halatın dolaşma riski | Kırılgan yük, iniş yapılamayan arazi, geniş zaman bütçesi |
Elektromıknatıs / EPM | Manyetik tutma, komutla bırakma | Hareketli parça yok, aşınma yok; EPM sürekli akım çekmez | Yükün ferromanyetik bir arayüz plakasına ihtiyacı var; pusulayla manyetik girişim riski | Tekrarlı al-bırak görevleri, mekanik aşınmanın sorun olduğu durumlar |
Paraşüt | Yük bırakılır ve bir paraşüt açılır | Düşük çarpma enerjisi, kırılgan yükü korur | Rüzgâr sürüklenmesi çarpıcı biçimde büyür, isabet ciddi şekilde bozulur | Yükü sağlam indirmek, hedefi tutturmaktan daha önemliyse |
SUAS 2026 aracımızda servo mandalı tercih ettik: yük dayanıklı, görev süresi dar ve mekanizmaya ayrılan kütle bütçesi sınırlı. İsabet açısından en iyi seçenek vinç, çünkü balistik problemini tamamen ortadan kaldırıyor; ama ~1 kg ek kütle ve 20–40 saniyelik bırakma çevrimi görev profilimize sığmadı.
Elektromıknatıs seçeneği için iki uyarı. Klasik bir elektromıknatıs tuttuğu sürece akım çeker (gücü kaybederseniz yükü de kaybedersiniz); elektrokalıcı mıknatıs (EPM, yalnızca durum değiştirirken enerji harcayan mıknatıs) ise beklerken hiç akım çekmez, ancak anahtarlama anında kısa süreli yüksek akım çeker ve üretici bunun için ayrı bir besleme öneriyor. Her iki durumda da mıknatısı pusuladan olabildiğince uzağa yerleştirin ve montajdan sonra pusula kalibrasyonunu yenileyin.
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: kolu yükü doğrudan taşıyor. En kötü tasarım ve aynı zamanda en yaygın olanı: yükün ağırlığı bir kol mesafesinde servo hornuna biniyor.
T = n × m × g × r
Sembol | Anlamı |
|---|---|
| dinamik yük katsayısı (manevrayı ve iniş şokunu kapsar) |
| yük kütlesi [kg] |
| 9.81 m/s² |
| kuvvetin servo miline olan 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·cm2.5 emniyet katsayısı (sürtünme + dinamik yük) → en az ~7.5 kgf·cm
Senaryo B: kesme pimli mandal. Yükün ağırlığı gövdeye aktarılır ve servonun tek işi pimi sürtünmeye karşı çekmektir. Aynı yük için ihtiyaç duyduğunuz tork bir büyüklük mertebesi düşer:
F_friction = 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·cm3 emniyet katsayısı → ~1.4 kgf·cm yeterli
Buradaki asıl ders şu: yükü servoya taşıtmayın. Yükü yapıya aktaran ve servoya yenmesi gereken tek şey olarak sürtünmeyi bırakan bir geometri (kesme pimi, ölü nokta üstü mandal) küçük ve hafif bir servoyla çalışır. Sürtünme katsayısı malzeme çiftine bağlıdır; 0.3 muhafazakâr bir başlangıç noktasıdır, kesin değer için üreticinin veri sayfasına bakın.
Torkun ötesinde, servo seçerken bakmanız gerekenler:
Metal dişli: iniş şoku ve titreşim naylon dişlileri zamanla sıyırır. Airdrop için metal dişli pazarlık konusu değil.
Hız: veri sayfaları bunu
s/60°olarak verir. 90°'lik bir hareket için süre (90/60) × değerdir. Bu süre doğrudan isabet hesabına girer (aşağıda ayrıntısı var).Besleme gerilimi: tork da hız da gerilime bağlıdır; 4.8 V ve 6.0 V satırları farklı sayılar verir. Gerçekte kullanacağınız gerilimin satırını okuyun.
Akım: stall (rotor kilitli) akımı boştaki çekişin çok üzerindedir. Kesin değer için üreticinin veri sayfasına bakın.
Güç ve güvenlik
Pixhawk sınıfı otopilotlar servo rayını beslemez; ArduPilot dokümantasyonu bunu açıkça yazıyor. Servo gücü ayrı bir BEC'ten gelmek zorunda.
Kritik uyarılar:
Servo rayının normal çalışma aralığı 4.1–5.7 V. Bunun üzerine çıkmak otopilotun güç yönetimini devreye sokar.
Otopilotu yalnızca servo rayından beslemek tehlikelidir; özellikle dijital servoların ürettiği gerilim sıçramaları 5.7 V'u aşıp uçuş sırasında FMU'yu yeniden başlatabilir. Yedek besleme olarak 5 V BEC kullanacaksanız ArduPilot, gerilimi sınırlamak için bir Zener diyot (1N5339) öneriyor.
Servo stall akımı BEC'i aşırı yüklerse gerilim çöker, alıcı ya da otopilot brown-out (gerilim düşmesiyle kilitlenme) yaşayabilir. Mekanizmayı pervaneler sökülmüş halde test edin ve yük altındaki BEC gerilimini ölçün.
Yüksek akımlı bir EPM'i ya da vinç motorunu ana LiPo'ya bağlarken kablo kesitini ve konnektörün akım değerini kontrol edin; ince kalan kablo kısa süreli yüksek akım darbelerinde ısınır ve yalıtımını kaybeder.
FC üzerinden kontrol: DO_SET_SERVO ve alternatifleri
Görev içinde ham servo komutu. ArduPilot'ta DO_SET_SERVO (MAVLink komut 183) bir çıkışı verilen PWM değerine sürer. Bu bir "do" komutudur: iki waypoint arasında çalışır ve bir görevin ilk ya da son satırı olamaz.
# | Komut | Ayrıntı |
|---|---|---|
1 |
| bırakma noktası, 20 m |
2 |
| Ser No: 9, PWM: 1900 |
3 |
| çıkış noktası, 20 m |
Önemli bir tuzak: DO_SET_SERVO yalnızca o çıkışın SERVOx_FUNCTION değeri 0 (Disabled), 1 (RCPassThru), 22, 23 ya da 51–66 (RCIN1–16) ise kabul edilir. Başka bir fonksiyon atanmışsa komut "channel conflict" (kanal çakışması) hatasıyla reddedilir. Copter'da servoyu AUX çıkışlarından birine bağlayın; ana çıkışlar motorlar için yüksek frekansta sürülür.
Gripper altyapısı. Ham PWM yerine ArduPilot'un gripper altyapısını kullanmak daha temiz: açık ve kapalı PWM değerleri parametrelerde durur, komut tarafı çok daha basitleşir:
Görev içinde DO_GRIPPER (komut 211) kullanılır: param2 = 0 bırakır, 1 tutar.
Görev bilgisayarından. Hedefi bilgisayarlı görüyle buluyor ve bırakma anına kendiniz karar veriyorsanız, komutu Jetson üzerinden pymavlink ile göndermek en esnek yol (görev bilgisayarı ve MAVLink rehberimiz):
COMMAND_ACK mesajını mutlaka okuyun: komutunuzun reddedildiğini uçuş sonrası logdan öğrenmek pahalı bir öğrenme yöntemidir. Bu akışı önce SITL'de doğrulayın (SITL + Gazebo rehberi).
Vinç tarafına geçerseniz, ArduPilot'ta bir DO_WINCH komutu var (pozitif uzunluk halatı salar) ve NAV_PAYLOAD_PLACE görev komutu, motor çıkışları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 azalmasının yüzdesi olarak), PLDP_RNG_MAX ve PLDP_DELAY.
Bırakma fiziği: yük nereye düşer
İlk denememizde atladığımız kısım tam olarak burası. Bırakma anında yük, aracın yatay hızını da beraberinde taşır ve düşüş boyunca o hızla ilerlemeye devam eder.
Düşüş süresi:
t = sqrt(2h / g)Yatay sürüklenme:
x = v_ground × tDikey çarpma hızı:
v_z = g × t
Uçuş irtifamızdan somut bir örnek:
h= 20 m,g= 9.81 m/s²,v_ground= 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, üzerinden 5 m/s ile geçerken bıraktığınız bir yük, bırakma noktasının 10 metre ötesine düşer. Bırakma komutunu hedefin 10 metre öncesinde vermeniz gerekir. Aynı hesap 3 m/s'de 6.1 m, 8 m/s'de 16.2 m veriyor; yatay sürüklenme hızla doğrusal, irtifanın kareköküyle orantılı büyür.
Buradaki v_ground, hava hızı değil yer hızıdır (GPS'ten okunur). Rüzgârda araç yan yatarak (crab) uçtuğunda ikisi belirgin biçimde ayrışır; formüle yanlış olanı koyarsanız hata metrelerle ölçülür.

Sürükleme ve rüzgâr
Yukarıdaki formüller sürüklemeyi yok sayıyor. Bunun bize ne kadar hataya mal olduğunu limit hız üzerinden 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
Bizim çarpma hızımız 19.8 m/s, yani limit hızın yarısından az. Bu rejimde sürükleme küçük bir etki: yoğun ve kompakt bir yük için vakum yaklaşımının yatay sürüklenmeyi yüzde birkaç fazla tahmin etmesini bekleriz; yani gerçek çarpma noktası hesaplananın biraz gerisinde kalır. Hafif ve hacimli yüklerde (köpük, karton, paraşüt altındaki bir paket) bu fark hızla büyür ve formül kullanılamaz hale gelir; o noktada deneysel kalibrasyon zorunludur.
Rüzgârın iki ayrı etkisi var ve büyük olanı genellikle beklemediğiniz taraftan geliyor. Düşen yükün doğrudan rüzgârla sürüklenmesi, yoğun bir cisim için ~2 saniyelik düşüşte sınırlı kalır. Asıl hata kaynağı aracın kendisidir: rüzgârda konum tutma hatası büyür, yer hızı dalgalanır ve bırakma anındaki gerçek hız planladığınızdan farklı olur. Hafif ve hacimli yüklerde sıralama tersine döner, yükün sürüklenmesi baskın hale gelir.
İsabeti artırmanın yolları
Yatay sürüklenmeyi sıfırlamanın en temiz yolu v_ground değerini sıfırlamaktır. Hedefin üzerinde durup (LOITER ya da GUIDED ile konum tutarak) orada bırakırsanız x = 0 olur; geriye yalnızca konum hatası ve rüzgâr sürüklenmesi kalır. Bedeli zaman: kararlı bir hover'a oturmak onlarca saniye yiyor.
Bırakma irtifasını düşürmek aynı anda iki kanaldan fayda sağlar: t kısalır (daha az sürüklenme) ve rüzgârın etki etmek için daha az zamanı olur. 20 m yerine 10 m'den bırakmak düşüş süresini 2.02 s'den 1.43 s'ye, 5 m/s'deki sürüklenmeyi de 10.1 m'den 7.1 m'ye indiriyor.
Hedefi bilgisayarlı görüyle merkeze almak, GPS koordinatının doğruluğuna olan bağımlılığı ortadan kaldırır. Tespiti gimbal kamerasından alın (YOLO eğitim rehberimiz), görüntü merkezine göre bir sapmaya çevirip konum düzeltmesi uygulayın; hedefin koordinatı birkaç metre şaşsa bile yine de tutturursunuz.
Son olarak gecikme bütçenizi ölçün. Tespit → karar → MAVLink komutu → FC işleme → servo hareketi zincirinin toplam süresi ne çıkarsa çıksın, araç o süre boyunca yol almaya devam eder:
latency drift = v_ground × t_latency5 m/s ve 0.3 s toplam gecikme → 1.5 m ek hata
Servonun kendi hareket süresi de bu bütçenin ölçülebilir bir parçası; veri sayfasındaki s/60° değerini hesaba katın. Kendi zincirinizi ölçmeden hazır bir sayı kullanmayın.
Bizim sonucumuz
SUAS 2026 aracımızla yaptığımız otonom bırakışlarda, yaklaşık 20 metreden bıraktığımız su şişesi hedefe ortalama 5 metre uzağa düştü. Servo mandal mekanizması her denemede açıldı; 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'dan bırakmaya ve hedefi kamerayla merkeze almaya geçiyoruz.
Sık düşülen hatalar
İleri hızı yok saymak. Hepsinin içinde en pahalı hata bu. Doğrudan hedefin üzerinde bırakırsanız yük 10 metre ötesine düşer; formülü uygulayın.
Yer hızı yerine hava hızını kullanmak. Rüzgârda ikisi ayrışır ve fark doğrudan metrelerce ıskaya dönüşür.
Yükü servoya taşıtmak. Yükü doğrudan taşıyan bir kol, kesme pimli mandala kıyasla bir büyüklük mertebesi daha fazla tork ister; servo büyür, ağırlaşır ve daha çok akım çeker.
Naylon dişli. Titreşim ve iniş şoku altında dişliler sıyrılır ve bunu genellikle tam da yükü kaybettiğiniz anda fark edersiniz.
Yükün takılması. Mandal açılır ama yük gövdeye, bir kabloya ya da kendi ambalajına takılıp geç düşer. Mekanizmayı yerde, tam ölçüsünde ve tam ağırlığındaki yükle, aracın gerçekte uçtuğu duruşlarda (öne yatık, yatışta) defalarca test edin.
Servo rayını otopilottan beslemeye çalışmak. Pixhawk servo rayını beslemez; ayrı bir BEC kullanın ve gerilimi 5.7 V'un altında tutun.
SERVOx_FUNCTIONçakışmaları. Çıkışa başka bir fonksiyon atanmışsaDO_SET_SERVOsessizce reddedilir;COMMAND_ACKmesajını okuyun.
Pratik özet
Mekanizmayı göreve göre seçin: dayanıklı yük + zaman baskısı → servo mandal; kırılgan yük + yumuşak iniş → vinç; tekrarlı al-bırak → EPM. Paraşütü yalnızca isabetten vazgeçmeyi göze alabiliyorsanız kullanın.
Tork hesabını yapın, sonra geometriyi düzeltin:
T = n × m × g × r; ardından yükü yapıya aktaran bir mandal tasarlayarakrdeğerini ve ihtiyacınız olan torku küçültün. Metal dişli, 2–3 emniyet katsayısı.Balistiği görev planına gömün:
t = sqrt(2h/g),x = v_ground × t. Bırakma waypoint'ini hedeftenxkadar önceye koyun vev_grounddeğerini GPS'ten alın.Gücü ayırın: servo için ayrı bir BEC, 4.1–5.7 V aralığı, yük altında gerilim ölçümü, pervaneler sökülü halde yer testi.
İsabeti adım adım artırın: önce ileri hız düzeltmesi, sonra daha düşük bırakma irtifası, ardından hover'dan bırakma ve en son görü tabanlı merkezleme. Her adımı SITL'de doğrulayın, sonra sahada tekrarlı bırakışlarla ölçün.
KOMŞU KAYITLAR
