Skip to main content
Gemstone için PX4 desteği henüz geliştirme aşamasındadır. Ana domain R5F çekirdeğinde çalışır ve kartın üzerindeki CAN Bus gibi bazı çevre birimleri henüz kullanılamamaktadır. Kartta barometre ve GPS de bulunmadığından irtifa ve mutlak konum kestirimi sınırlıdır.
PX4, dronlar ve diğer insansız araçlar için açık kaynaklı bir otopilot platformudur. Düşük seviyeli sensör sürücülerinden araç kontrolüne ve görev yürütmeye kadar uzanan eksiksiz bir uçuş kontrol yığını sunar. Gemstone kartında PX4, R5F çekirdeklerinde NuttX üzerinde, bare NuttX derlemesi için oluşturulan aynı özel t3-gem-o1 konfigürasyonu kullanılarak çalışır. Uçuş yazılımı kart açıldığında otomatik olarak başlar ve QGroundControl yer kontrol uygulaması araca ağ üzerinden bağlanır. Bağımsız bir NuttX derlemesinin aksine PX4, hem NuttX’i hem de uygulama framework’ünü git submodule olarak barındırır. Bu nedenle recursive bir klonlama, Gemstone’a uyarlanmış doğru NuttX’i otomatik olarak çeker; NuttX’i ayrıca indirmenize veya derlemenize gerek yoktur.

1. Derleme

1.1. Kaynak Kodları İndirme

Ubuntu/Debian sistemlerde önce indirme ve derleme için gereken araçları paket yöneticisi ile kurun:
PX4, Gemstone NuttX’ini ve NuttX‑apps’i git submodule olarak referans alır; bu nedenle kaynak kodlar tek bir recursive klonlama ile indirilir:
--recursive bayrağı, doğru NuttX’i (Gemstone px4 dalı) ve NuttX‑apps’i platforms/nuttx/NuttX dizinine yerleştirir; böylece ayrı bir NuttX indirmesi gerekmez. --recursive olmadan klonladıysanız, submodule’leri sonradan git submodule update --init --recursive ile çekebilirsiniz.

1.2. Python Ortamının Kurulumu

PX4’ün build sistemi kconfiglib, empy ve jinja2 gibi bir dizi Python aracına dayanır. Güncel Debian/Ubuntu sürümleri sistem genelinde pip kurulumunu kısıtladığından, bu araçları bir sanal ortama kurun (bölüm 1.1’de klonlanan PX4-Autopilot dizininden çalıştırın):
Derleme öncesinde her yeni terminalde ortamı source ~/px4-venv/bin/activate ile aktifleştirin.

1.3. Projeyi Derleme

PX4, belirli bir kart hedefini doğrudan derler; bu nedenle ayrı bir konfigürasyon adımı gerekmez. Bölüm 1.2’deki Python ortamı aktifken Gemstone kart imajını derleyin:
Bu komut paralel bir derleme yapar ve R5F çekirdeğine yüklenecek imaj olan build/t3gemstone_o1_default/t3gemstone_o1_default.elf dosyasını .bin ve .px4 dosyalarıyla birlikte üretir.

2. Çalıştırma

Bare NuttX imajında olduğu gibi PX4 de ana domain R5F çekirdeğinde çalışır ve Linux ya da U-Boot’tan remoteproc mekanizması ile yüklenir. PX4 R5F çekirdeğinde çalışırken A53 çekirdeklerinde Linux çalışmaya devam eder.
U-Boot’ta remoteproc mekanizması ile kullanabilmek için 2.8. Derlenmiş projenin U-Boot aşamasında çalıştırılması bölümünü inceleyebilirsiniz.
Remoteproc ile çekirdeklere yüklenecek program dosyaları /lib/firmware dizini altına önceden tanımlı isimlerde kopyalanmalıdır. Sistem başlangıcında, remoteproc mekanizması programları ilgili çekirdeklere otomatik olarak yükleyecektir. PX4’ü remoteproc ile çalıştırmak için aşağıdaki adımları takip edin.
  1. Derleme sonucu oluşan build/t3gemstone_o1_default/t3gemstone_o1_default.elf dosyasını /lib/firmware dizinine j722s-main-r5f0_0-fw isminde kopyalayın.
  2. Kartı yeniden başlatın.
  3. UART-MAIN1’in 40-pin HAT’te yer alan GPIO-14 (TX) ve GPIO-15 (RX) pinlerine USB-to-TTL cihazı bağlayarak NuttShell’e erişebilirsiniz.
  4. Açılan nsh konsolundan ver all, top ve uorb status gibi komutlarla çalışan sistemi inceleyebilirsiniz.

3. Sensörlerin Kullanımı

Kart üzerindeki InvenSense ICM‑20948 bir ivmeölçer, jiroskop ve entegre AK09916 manyetometre içeren 9 eksenli bir IMU R5F’ye SPI üzerinden bağlıdır. Açılış betiği (bölüm 4) sürücüyü uçuş yığınının geri kalanıyla birlikte zaten başlatır; aşağıdaki komutlar sürücüyle tek başına deney yaparken kullanışlıdır:
Burada -s SPI arayüzünü, -b 1 SPI hattını, -c 3 chip-select’i seçer ve -M ek olarak manyetometreyi etkinleştirir. Sürücü çalışmaya başladıktan sonra, canlı sensör verilerini PX4’ün uORB ara katmanı üzerinden listener komutuyla izleyebilirsiniz:
Genel sistemi gözlemlemek için uorb top tüm aktif topic’lerin yayın oranlarını, work_queue status ise sürücünün iş kuyruğunun zamanlamasını gösterir.

4. Uçuş Yazılımının Otomatik Başlatılması

R5F açıldığında PX4 tüm bileşenlerini otomatik olarak başlatır: sensör sürücüsü, duruş (attitude) kestirimi, uçuş kontrolcüleri ve telemetri bağlantısı. Kart, Generic Quadcopter X gövdesi olarak yapılandırılmıştır. Elle başlatma komutlarına gerek yoktur. Sistemin çalıştığını nsh konsolundan doğrulayabilirsiniz. uorb top komutu, PX4 bileşenlerinin yayınladığı veri topic’lerini güncelleme oranlarıyla birlikte listeler; sensör ve duruş topic’lerinin düzenli bir hızda güncelleniyor olması uçuş yazılımının çalıştığı anlamına gelir:
listener komutu bir topic’in canlı içeriğini yazdırır. Örneğin aracın anlık duruşu:

5. Ağ Bağlantısı ve QGroundControl

PX4 ile Linux tarafı bir ağ bağlantısıyla birbirine bağlıdır: NuttX tarafında eth0, Linux tarafında eth1.
  • NuttX IP’si: 192.168.10.2
  • Linux eth1 IP’si: 192.168.10.1
  • MAVLink Portu: UDP 14550

5.1. Ağ Modülünün Kurulumu

Ağ modülü paketini kurun ve kartı yeniden başlatın:

5.2. Bağlantının Yapılandırılması

Bağlantının Linux tarafını yapılandırın (her açılıştan sonra gereklidir):
NuttX tarafını nsh konsolundan yapılandırın ve bağlantıyı doğrulayın:

5.3. Kart Ağına PC’den Erişim

Gemstone kartını USB Type-C kablosu ile bilgisayarınıza bağlayın ve 192.168.10.0/24 ağına kart üzerinden erişilebilmesi için bir rota ekleyin:
PC’nizin kart ağındaki kendi adresini bulun; bu adres bir sonraki adımda MAVLink hedefi olarak kullanılacaktır:

5.4. QGroundControl Bağlantısı

QGroundControl (QGC), aracı PC üzerinden izlemek ve kontrol etmek için kullanılan uygulamadır. qgroundcontrol.com adresinden kurun ve başlatın. 192.168.7.60 adresini bir önceki adımda bulduğunuz PC adresinizle değiştirerek telemetri bağlantısını nsh konsolundan başlatın:
QGC, UDP otomatik bağlantı etkinse (varsayılan ayar) aracı otomatik olarak algılayacak ve bağlanacaktır.

6. Sorun Giderme

6.1. Linux Tarafında eth1 Arayüzü Yok

virtio_net modülünün yüklü olduğunu kontrol edin:
Komut hiçbir şey yazdırmıyorsa modülü elle yükleyin ve tekrar kontrol edin:
PC’den ağ yapılandırmasını doğrulayın; kart yanıt vermelidir:
Yanıt yoksa Ağ Bağlantısı ve QGroundControl bölümündeki adımları tekrarlayın. Telemetri bağlantısının NuttX tarafında çalıştığını ve veri gönderdiğini kontrol edin; tx rate değeri sıfırdan büyük olmalıdır:
QGC’de Application Settings altında UDP otomatik bağlantının etkin olduğundan emin olun.