WPNAV_SPEED neden Mission Planner'da çıkmıyor
Mission Planner parametre listesinde WPNAV_SPEED bulunamıyorsa kart bozuk değil. Copter 4.7 bu adı WP_SPD yaptı ve birimi santimetreden metreye taşıdı.
Rotanın hızını düşürmek istiyorsun. Mission Planner'ı açıyorsun, parametre arama kutusuna hız parametresinin bildiğin adını yazıyorsun ve liste boş dönüyor. Kart bağlı, telemetri akıyor, diğer parametreler yerli yerinde.
Kartta bir sorun yok. O ad artık o firmware'de bulunmuyor.
Ekranda ne oluyor
ArduCopter 4.7 ile birlikte waypoint navigasyon parametrelerinin tamamı yeniden adlandırıldı. Grup öneki WPNAV_ iken WP_ oldu, adların kendisi kısaldı ve birimler santimetreden metreye geçti.
Eski ad 4.7'de tamamen kalktı; arama bu yüzden boş dönüyor. Otopilot bilmediği bir adı sorduğunda hata üretmez, hiç cevap vermez.
İki ayrı ekran iki ayrı cevap veriyor
Full Parameter List doğrudan otopilotun yayınladığı ham listeyi gösterir. Orada ne varsa firmware'de o vardır.
Extended Tuning ise sabit kutulardan oluşur ve her kutu belli bir ada bağlıdır. Yer istasyonu sürümü eskiyse kutular artık var olmayan adları arar, bulamaz ve gri kalır; bu durumda eksik olan parametre değil, yer istasyonudur.
Eski adın yenisi hangisi
Soldaki adlar 4.7'de artık yok, sağdakiler 4.6 ve öncesinde yok. Eşleme libraries/AC_WPNav/AC_WPNav.cpp içindeki dönüşüm tablosundan geliyor.
| Copter 4.6 ve öncesi | Birim | Copter 4.7 | Birim | Eski değerin karşılığı |
|---|---|---|---|---|
| WPNAV_SPEED | cm/s | WP_SPD | m/s | 500 → 5.0 |
| WPNAV_RADIUS | cm | WP_RADIUS_M | m | 200 → 2.0 |
| WPNAV_SPEED_UP | cm/s | WP_SPD_UP | m/s | 250 → 2.5 |
| WPNAV_SPEED_DN | cm/s | WP_SPD_DN | m/s | 150 → 1.5 |
| WPNAV_ACCEL | cm/s/s | WP_ACC | m/s/s | 250 → 2.5 |
| WPNAV_ACCEL_Z | cm/s/s | WP_ACC_Z | m/s/s | 100 → 1.0 |
| WPNAV_ACCEL_C | cm/s/s | WP_ACC_CNR | m/s/s | 0 → 0.0 |
Dönüşüm çarpanı 0.01. Eski değeri yeni alana olduğu gibi yazarsan 100 kat büyük olur.
En sık yapılan hata, eski bir eğitim videosundaki değeri yeni alana olduğu gibi yazmak. Eski WPNAV_SPEED 500 santimetre bölü saniyeydi; aynı 500'ü WP_SPD alanına yazarsan saniyede 500 metre istemiş olursun.
Hangi ada bakacağını nasıl anlarsın
Sürüm satırını okumak en hızlı yol, ama kartın kendisi de söyler. Aşağıdaki kod dört adı sırayla sorar ve hangisinin cevap verdiğine bakar. Cevap gelmeyen ad o firmware'de yoktur.
from pymavlink import mavutil
m = mavutil.mavlink_connection("tcp:127.0.0.1:5760")
m.wait_heartbeat()
def oku(ad, sure=4.0):
"""Parametreyi ada gore ister. Cevap gelmezse o ad bu firmware'de yok."""
m.mav.param_request_read_send(
m.target_system, m.target_component, ad.encode("ascii"), -1)
bitis = time.time() + sure
while time.time() < bitis:
msg = m.recv_match(type="PARAM_VALUE", blocking=True, timeout=1)
if msg and msg.param_id.strip("\x00") == ad:
return msg.param_value
return None
import time
for ad in ["WPNAV_SPEED", "WPNAV_RADIUS", "WP_SPD", "WP_RADIUS_M"]:
deger = oku(ad)
print(f"{ad:14s} -> {deger if deger is not None else 'cevap yok'}")Bağlantı adresini kendi kurulumuna göre değiştir. Şekilde iki isteğin farkına bak: otopilot tanıdığı ada PARAM_VALUE ile cevap veriyor, tanımadığı ada hiçbir şey göndermiyor. Kod bu yüzden dört saniye bekleyip cevap yok yazıyor.
Otopilot bilmediği ada sessiz kalır
4.7 yüklü bir karta bağlanırsan şuna benzer bir çıktı alırsın; sayılar kartındaki ayardır:
WPNAV_SPEED -> cevap yok
WPNAV_RADIUS -> cevap yok
WP_SPD -> 10.0
WP_RADIUS_M -> 2.0WPNAV_ ile başlayanlar cevap veriyorsa kartında 4.6 ya da öncesi var, eski adları kullanmaya devam et. WP_ ile başlayanlar cevap veriyorsa 4.7 ve üstündesin.
Yeni adı ayarladığında araç ona uyar. WP_SPD'yi 4.0 metre bölü saniyeye çekip aracı GUIDED modda bir hedefe gönderirsen seyir hızı 4 m/s çizgisinde kalır.
Örnek: Takımda iki araç var; birinde geçen yıldan kalan 4.6, ötekinde yeni yüklenmiş 4.7 duruyor ve ikisinin de rota hızını 3 metre bölü saniye yapmak istiyorsun. Kodu iki araçta sırayla çalıştır: birinde WPNAV_SPEED cevap verir, ötekinde WP_SPD. İlkine 300, ikincisine 3.0 yazarsın; iki araç da aynı hızda uçar.
Hata Mesajları ve Anlamları
Aranan parametre listede hiç görünmüyor
Otopilot bilmediği bir ada PARAM_VALUE ile cevap vermez ve reddettiğine dair bir mesaj da üretmez. Yer istasyonu bunu boş sonuç olarak gösterir. Sürümü kontrol et ve doğru öneki dene.
Kutu gri, değer sıfır görünüyor
Extended Tuning gibi sabit ekranlar eski ada bağlıdır. Firmware yeni, yer istasyonu eskiyse kutu dolduramaz. Full Parameter List'e bak; orada değer varsa yapman gereken yer istasyonunu güncellemek.
Değeri yazıyorsun ama araç davranışı değişmiyor
Yanlış ada yazmış olabilirsin. Yazdıktan sonra aynı adı geri oku; PARAM_VALUE dönmüyorsa o ada hiçbir şey yazılmamıştır.
WP_SPD gibi yeni bir adda 500 gibi büyük bir değer duruyor
Yükseltme sırasındaki birim dönüşümü tamamlanmamış ya da o değer sonradan elle yazılmış. Eski santimetre değerini 100'e böl ve yeni alana metre olarak yaz.
Bir adım ötesi
Sıfırdan Mission Planner eğitiminde parametre ekranı, rota planlama ve az bilinen ekranlar adım adım işleniyor; bu yazının devamı olan ders de o eğitimin içinde.
Bu yazı işinize yaradı mı?
Bu konuyu baştan sona öğrenin
Sezon: altı eğitimin hepsi 9 ay, ayda ₺790. Lise ve üniversite öğrencisine ayda ₺390, üye kodunuzla ilk ay ₺351. İstediğiniz ay bırakırsınız. Sezon'a başlayın · Öğrenciyim