top of page
Eğitim Paneli

Raspberry Pi verisi Mission Planner'da yok, sysid'e bak

3 gün önce
3 dakikada okunur

Raspberry Pi'deki kodun hedefi buluyor, koordinatı Pixhawk'a gönderiyor ve terminalde tek hata yok. Mission Planner'ın Messages sekmesi ise boş kalıyor, Quick sekmesinde de yeni bir değer çıkmıyor.

Pixhawk paketi ya hiç kabul etmiyor ya da Mission Planner'a başka bir aracın verisi olarak teslim ediyor. Hangisinin olacağını Pi kodundaki iki sayı belirler.

Pixhawk, Pi'den gelen paketi neye göre iletir

Pi'yi TELEM2'ye taktığında Pixhawk iki hat arasında yönlendirici gibi çalışır. Pi'nin gönderdiği her paketin başında göndericinin kimliği yazar: sistem numarası (sysid) ve bileşen numarası (compid). Otopilot bu kimliğe bakar, paketi siler ya da öteki portlara aktarır.

Şekildeki dört satırdan yalnızca 1 / 191 ile başlayan ve portu açık olanı drone'un kendi ekranına ulaşır.



1 / 1 yazarsan Pixhawk paketi kendi yankısı sayar ve hiçbir uyarı göstermeden siler. Bu kural, yanlış bağlanmış bir seri hattın kendi mesajlarını geri getirip döngüye sokmasını engellemek için var.

255 / 0, pymavlink'te kimlik vermediğinde kullanılan değer. Bu paketler Mission Planner'a kadar gider. Program onları 255 numaralı ayrı bir sistemin altına kaydeder, drone'un Messages listesine ve Quick kutularına koymaz.

Doğru kimlik, drone ile aynı sysid ve otopilottan farklı bir compid taşır. Yardımcı bilgisayar için ayrılmış bileşen numarası 191'dir.



Örnek: kilitlenme bilgisini yer istasyonunda görmek

Savaşan İHA görevinde Pi'deki tespit kodu rakip İHA'yı kare içine aldığında, yer istasyonundaki takım arkadaşın bunu o anda görmek ister. Kod her karede hedefin piksel koordinatını HEDEF_X ve HEDEF_Y adıyla, kilit olayını da kısa bir metin mesajıyla gönderebilir.

Sürekli değişen sayılar için NAMED_VALUE_FLOAT, ara sıra yaşanan olaylar için STATUSTEXT uygundur. Metin mesajı Messages listesine yeni satır ekler; her karede metin gönderirsen liste okunmaz hâle gelir.



En sık yapılan hata


Pi kodu açılışta ilk yakaladığı HEARTBEAT'in sysid'ini kopyalıyor. Pixhawk yer istasyonunun HEARTBEAT'ini de TELEM2'ye aktarır. İlk yakalanan paket Mission Planner'ın 255'iyse kod kendini yer istasyonu sanır ve verisi drone'un ekranına hiç düşmez.

Aşağıdaki kod bu yüzden yalnızca otopilot alanı dolu olan HEARTBEAT'i kabul ediyor.



Çözüm

Kimliği koda elle yazma, drone'dan oku. Kod otopilotun HEARTBEAT'ini bekler, onun sysid'ini kendine alır ve bileşen numarası olarak 191'i kullanır. Pixhawk tarafında TELEM2 için SERIAL2_PROTOCOL = 2 ve SERIAL2_BAUD = 921 olmalı.



Kod çalıştığı hâlde ekranda hâlâ bir şey yoksa sıradaki adaylar şunlar:

  • Gir: Mission Planner'da Config > Full Parameter List'te MAV3_OPTIONS değerini oku (TELEM2 üçüncü MAVLink portuysa). Gör: 0. Değilse: 0 yap ve otopilotu yeniden başlat; 2 değeri bu portu iletime kapatır.

  • Gir: Mission Planner yerine kendi yazdığın bir yer istasyonu kullanıyorsan, bağlanır bağlanmaz saniyede bir HEARTBEAT göndersin. Gör: Pi'nin mesajları akmaya başlar. Değilse: hattı ve kimliği yukarıdaki şekle göre yeniden kontrol et.

Pixhawk, Pi'nin yayınını yalnızca kendisine daha önce paket göndermiş portlara aktarır; kendi telemetrisini ise bu kontrol olmadan her porta yollar. Sessiz kalan bir yer istasyonu bu yüzden drone verisini alır, Pi'nin satırlarını hiç görmez.



Ne göreceksin

Kodu Pi'de çalıştırdığında terminaldeki ilk satır şudur:


Otopilot sysid: 1 | Pi compid: 191

Mission Planner'da DATA ekranının Messages sekmesine geç. Pi'den gelen satırlar bileşen numarasıyla başlar:


191 : Hedef x=412 y=230 guven=0.87

Sayılar için Quick sekmesinde bir kutuya çift tıkla; açılan listede MAV_HEDEF_X ve MAV_HEDEF_Y adlarını görürsün. Mission Planner adın başına MAV_ ekler ve harfleri büyütür.

Ad alanı en fazla 10 karakter alır. hedef_x_piksel gönderirsen fazlası kesilir ve listede MAV_HEDEF_X_PI çıkar.

Mesajın HUD'da da belirmesini istiyorsan önem düzeyini MAV_SEVERITY_WARNING yap. Mission Planner varsayılan ayarda HUD'a yalnızca uyarı ve daha ciddi mesajları taşır; INFO düzeyi Messages listesinde kalır.



Hata Mesajları ve Anlamları

PreArm: SERIAL2_OPTIONS bit 10 ('no forward mavlink') must not be set; use MAVn_OPTIONS bit 1 instead

ArduPilot 4.7 ile iletimi kapatma ayarı seri port seçeneklerinden MAVn_OPTIONS'a taşındı. Eski sürümden kalma bir parametre dosyasını yüklediğinde SERIAL2_OPTIONS'ta 10. bit açık kalabilir ve otopilot ARM izni vermez.

SERIAL2_OPTIONS değerinden 1024'ü çıkar. Portu gerçekten kapatmak istiyorsan bunu MAVn_OPTIONS'ın 1. bitiyle yap.

Arm: SERIAL2_OPTIONS bit 10 ('no forward mavlink') must not be set; use MAVn_OPTIONS bit 1 instead

Aynı kontrol, ARM komutunu gönderdiğin anda Arm: önekiyle tekrar gelir ve komut reddedilir. Düzeltme bir önceki mesajla aynıdır.



Bu hattı baştan sona kurmak

Pi ile Pixhawk arasındaki seri hattı ve MAVLink paketinin otopilotta hangi sırayla elendiğini İHA Haberleşme Teknolojileri eğitiminde adım adım çalışabilirsin.

İNDİRİM KUPONU

Kupon kodu: SOFTIVATION15

Eğitimi alırken ödeme ekranındaki "Kupon kodu" kutusuna bu kodu yaz, %15 iner.

Yorumlar


bottom of page