2025. december 27., szombat

A titkos megbízatás

 Azok a katonák, akik a felderítő drónokat programozzák, évtizedekig nem beszélhetnek arról mit csinálnak, ez nemzetbiztonsági kockázatot jelentene. A harcászati drón irányításához és vezérléséhez Python programozásával általában a DroneKit könyvtárat használjuk, ami MAVLink protokollon kommunikál a drónnal (pl. ArduPilot szoftveres platformon), lehetővé téve küldetések definiálását, telemetriai adatok gyűjtését és automata repülési útvonalak létrehozását. A fejlesztétst kipróbáljuk szimulált környezetben (SITL). A programok képesek GPS jeleket feldolgozni, valós idejű 5G hálózaton keresztül kommunikálni, és komplex felderítő feladatokat ellátni.
A  DroneKit: Python könyvtár a MAVLink protokoll feletti programozáshoz, a katonai drónok (mint a Pixhawk alapúak) vezérlésére használható.  A MAVLink: Kommunikációs protokoll a drón és a földi állomás (GCS) közötti kapcsolatért felelős.  Az ArduPilot / PX4 közismert autopilóta szoftver, amely a drón vezérlőjét futtatja, míg a MAVProxy: Parancssori földi vezérlő állomás (GCS), ami a DroneKit-hez is csatlakozik. A Python és DroneKit telepítése a fejlesztő gépre történik, a szimuláció (SITL):
ArduPilot indítása szimulált módban (Software In The Loop), így a drónt programozás közben nem kell fizikailag használni, kitenni veszélynek. A kapcsolódás is a Python szkripttel csatlakozik a szimulált (vagy valós) drónhoz a MAVLink-en keresztül titkos protokollal. Az útvonaltervezés és a waypoints meghatározása a GPS koordináták alapján történik, amik mentén a drón repülni fog. A valós idejű adatokat a telemetria vagy a pozíció, az akkumulátor, a sebesség monitorozása raltimban történik.
A felderítés során az automatikus útvonalak végrehajtása, kép/videó rögzítése, GPS koordináták gyűjtése, és 5G-n keresztüli továbbítása a feladat. Persze vabbak automatizált Küldetések: Célpontok felderítése, térképezés, felderítés. Pythonnal komplex, automatizált rendszerek építhetők, amelyek képesek katonai feladatok (felderítés, megfigyelés) végrehajtására, az adatok feldolgozására és továbbítására alkalmas. Többet nem árulhatok el, mert nemzetbiztonságot sértene.
Az elhárításban is kulcs szerepe van. A UAV (Unmanned Aerial Vehicle), egy olyan pilóta nélküli drón távolról irányítható, vagy előre programozott útvonalon repül, azaz autonóm, ami  lehet. katonai célú harci robot is. Felderités, fényképezés, felmérés, megfigyelés, szállítás, célzás, manőverezés. A LoRaWAN hálózati protokoll egy alacsony fogyasztású szabvány, amit kifejezetten IoT (Internet of Things) alkalmazásokhoz terveztünk, ami alacsony energiafogyasztású és a nagy hatótávolságú, amely akár több évre meghosszabbíthatja a szenzorok működését.
Az MQTT egy könnyített publish/subscribe üzenetküldő protokoll, amelyet kifejezetten erőforrás-korlátozott eszközökhöz és megbízhatatlan hálózatokhoz terveztek,  egyszerűség: könnyen megvalósítható és minimális hálózati forgalmat igényel, alacsony sávszélesség-igény: ideális IoT és gép-gép (M2M) kommunikációhoz, ahol alacsony sávszélességre és alacsony energiafogyasztásra van szükségünk. Egy adott MQTT-téma megfigyelésével a vezérlő számítógép elküldheti az adatokat az M12 UAV-nak. Programunk beindítja az UAV motorjait, elindítja a felszállást, a szenzor által kapott mozgásérzékelő koordinátákhoz repül, és megfigyeli a területet.
A felszállás után az UAV 360°-os fordulatot tesz és érzékeli, hogy a területre behatoló személy milyen irányba tart. Ha több jelet kap a rendszer, az UAV a jelek sorrendjében repül át a területen, majd további jelek hiányában visszatér a felszállási pontra. Könnyen belátható, hogy az UAV-ok ezt gyorsabban el tudják végezni, mint az emberek. A repülés bármikor leállítható, és egy pilóta átveheti az UAV irányítását, manuálisan repülhet vele. Több GPS-nyomkövető típust használunk vagy egy 15cm×8cm×1,5cm méretűt, személy nyomon követése céljából, és egy nagyobb (15cm×15cm×5cm), mágnessel felszerelt, jármű nyomkövetésre alkalmas eszközt. Mindkét nyomkövető 3–5 másodpercenként továbbítja MQTT üzeneteken keresztül az aktuális helyzetét, amint a beépített elektronika mozgást érzékel.
Abban az esetben, ha a GPS-nyomkövető helyzete nem változik 1–2 percig, akkor alvó állapotba kerül az eszköz. Ennek és az alacsony energiaigénynek köszönhetően a tracker képes nyolcórás üzemidőre. A python program indításakor a vezérlést végző számítógép 5G kommunikáción keresztül csatlakozik az UAV-hoz. Miután felszállt,  beáll a definiált magasságra és a célkoordináta fölé repül, miközben kameraképen követhető a repülés.
Ha az UAV elért a célkoordináta egyméteres környezetébe, és közben újabb jelzés érkezett a szerverre, tehát a megfigyelt személy vagy jármű mozgásban van, akkor a UAV módosítja a célkoordinátát és elkezdi követni a jelzést. Ha nem érkezett több koordináta akkor az UAV megkezdi a visszarepülést a kiindulási ponthoz. Ez a módszer alkalmas személyek észrevétlen követésére, különösen olyan esetekben, mikor a UAV-on egy olyan kamera van, amely 30-szoros zoomra képes, vagy ha a későbbiekben kisebb GPS tracker került kifejlesztésre. Személyek nyomon követése gépi látás segítségével az UAV egy manuálisan indított vagy egy automatizált repülést követően a gépi látás utasításai szerint folytatja az útját. Itt a cél, hogy folyamatos felügyelet alatt maradjon a kiválasztott személy.
Úgy terveztük meg a folyamatot, hogy az UAV magasságát ne változtassa meg, a többi két tengelyen pedig négy parancs segítségével manőverezzen. Ha a kijelölt célpont távolodna a pilóta nélküli légijárműhöz viszonyítva, akkor a gépi látás algoritmus becslést ad az elmozdulás nagyságára, melynek hatására az UAV x,y koordináta rendszerben megteszi a program által számított távolságot. Ha tovább távolodna a személy az UAV-hoz képest, akkor a UAV tovább követi a személyt. Ellenkező esetben, ha a célszemély közelít a UAV-hoz, akkor a gépi látás által kalkulált távolságot hátrafele teszi meg az UAV, hogy megtartsa az eredeti távolságot a célszemélyhez viszonyítva. Abban az esetben, ha a célszemély oldalirányba mozogna, akkor az algoritmus a célszemély korábbi helyzete és jelenlegi helyzete közötti szögeltérést is kiszámolja, melyet továbbít az UAV-nak, és ennek megfelelően elfordul a levegőben. De használjuk az államhatár védelmére: az illegális migráció elleni védelemre is, nem csak katonai célra.  Ha nagy területeket kell átvizsgálni, beleértve a nehezen megközelíthető szakaszokat is, kiváltva a rendőrök terepen végzendő munkáját, költséghatékonysági céllal, de a rendezvények biztosítása: kiemelt sport-, kulturális és gyülekezési rendezvények rendőri biztosítására használható, mivel a nagy területekről való képtovábbítással részben kiválthatók a földi kamerák. Lássunk egy python programot egy drón vezérlésére, ami egy megadott koordinátán fényképeket készít; a program DroneKit-Python környezetet használ, és egy adott helyre repül, majd fényképet készít. Feltétel, hogy a drón legyen képes GUIDED módra. Cél: megadott koordinátán (latitude, longitude, altitude) fényképek készítése. Követelmények: Python 3.x, dronekit, pymavlink, lehetőleg MAVProxy vagy SITL tesztkörnyezet, és egy kamera hozzáférés a Pythonból (például OpenCV vagy direct camera API).

Algoritmus és kódvázlat;

Célkoordináta: target_lat, target_lon, target_alt
Folyamat: csatlakozás, repülés GUIDED módba, felhaszály a helyi koordinátákhoz (LocationGlobalRelative), felkapcsolás és fényképezés az adott pozíció felett vagy a helyszínen.
Példakód (kifejtése nélkül):
A tényleges futtatáshoz adaptáld a saját környezetednek megfelelő könyvtárakhoz és kamera-eléréshez.
Importok:
from dronekit import connect, VehicleMode, LocationGlobalRelative
import time
import cv2 # ha OpenCV-t használsz fényképezéshez
Konfigurációs pontok:
connection_string = "127.0.0.1:14550" # SITL vagy a drónod USB/MAVLink címe
target_lat = … # megadott koordináta lat
target_lon = … # megadott koordináta lon
target_alt = … # kívánt magasság (relative vagy abszolút)
Folyamat részletei:
vehicle = connect(connection_string, wait_ready=True)
def arm_and_takeoff(aTargetAltitude): kód, amely felkészíti a drónt és felemelkedik
rendezés a célpontra:
location = LocationGlobalRelative(target_lat, target_lon, target_alt)
vehicle.simple_goto(location)
várakozás, amíg a drón eléri a kívánt magasságot és pozíciót
fényképezés:
camera értelmezése, például:
ret, frame = camera.read()
cv2.imwrite("photo_at_target.jpg", frame)
landolás vagy visszatérés:
vehicle.mode = VehicleMode("RTL") vagy landolás végrehajtása
zárás: vehicle.close()

Szimuláció

Mielőtt élesben használnák érdemes SITL/szimulátor környezetben tesztelni. A kamera-képfelvételhez (OpenCV vagy gyors kamera interfész kell...A használt könyvtárak: DroneKit (MAVLink alapú, általános célú), Danny’s vagy gyártói SDK-k. Cél az automatikus felszállás/landolás, útvonalterv, loiter/RTL mód, objektumkövetés vagy útvonalkövetés számottevő számítógépes látással (OpenCV) kombinálva. Ajánlott megközelítések és példa útvonalak Kezdés egy egyszerű szkripttel, amely: csatlakozik a drónhoz (például helyi vagy távoli modellhez), engedélyezi a repülést (arming/arming check), kiad egy egyszerű felszállási parancsot, majd egy fix magasságban tartás (stabil repülés),landolás. Ez ad egy stabil alapot a további fejlesztésekhez. Egyszerű útvonalkövetés: definálj egy lista koordinátáról vagy módot, amelyet a drón végrehajt a meghatározott sebességgel és sávval, miközben figyeli az akadályokat vagy a környezetet (esetleg OpenCV-vel). Ha cél a követés vagy felismerés, a Python+OpenCV képes képeket elemezni és a kezelő parancsokat ennek megfelelően kiadni (például tárgykövetés vagy személykövetés). Lehet API/SDK, Python oprendszer és környezetet, kell még MAVLink/DroneKit) vagy saját SDK, van-e célod például követés, waypoint alapú repülés. Kell még PID-szabályozás, szenzoradat-feldolgozás (gyroszkóp/akcelerométer), valamint a repülési parancsok megfelelő interfészének megértése, IDE-t (pl. VS Code, PyCharm) a fejlesztéshez. Ha ROS-alapú fejlesztést tervezel, készítsd elő a ROS-környezetet és a SITL-szimulációt Gazebo-val.

Javaslom még;



Apám azt mondta, a hamis barát olyan mint az árnyék amíg a fényben vagy ott van melletted, de ha beborúl, az árnyék hagy el elősször, könnyű ott ülni, ahol sül a hús, teli a hordó és szól a muzsika,
de becsüld meg azt aki az esőben is föléd tartja az ernyőt!





Nincsenek megjegyzések:

Megjegyzés küldése