Felvehető kurzusok

6. hét – Haladó szenzorok

A 6. hét célja, hogy bemutassa a haladó szenzorok alkalmazását a robotokban, valamint azok programozását. Itt a fókusz a Camera (kamera), GPS, Compass, és InertialUnit (IMU) szenzorok használatán van, valamint a szenzorfúzió alapjainak megértésén. Ezen szenzorok integrálása lehetővé teszi a robot számára, hogy környezetét érzékelje, navigáljon, és pontos információkat nyújtson a helyzetéről és mozgásáról.

1. Camera használata

A robot kamera szenzora lehetővé teszi a környezetének vizuális érzékelését. A kamera segítségével képeket vagy videókat készíthetünk, amelyeket később feldolgozhatunk a robot navigálásához, objektumok felismeréséhez vagy más feladatokhoz.

Hogyan működik a Camera?

  • A Webots szimulátorban a kamera szögletes látószöggel rendelkezik, és folyamatosan képeket készít, amelyeket ki tudunk olvasni.

  • A kamera képeit általában RGB színskálán (vörös, zöld, kék) tárolja.

Példa kód kamera használatához (Webots Python):

from controller import Robot, Camera

# Robot vezérlő példány létrehozása
robot = Robot()

# Alap időintervallum
timestep = int(robot.getBasicTimeStep())

# Kamera inicializálása
camera = robot.getCamera('camera')  # A kamera neve
camera.enable(timestep)  # Kamera engedélyezése, hogy folyamatosan képeket készítsen

# Végtelen ciklus a kamera képeinek kiolvasására
while robot.step(timestep) != -1:
    image = camera.getImage()  # A kamera képe
    width = camera.getWidth()  # A kép szélessége
    height = camera.getHeight()  # A kép magassága
    
    # A képet képpontok tömbjeként lehet kiolvasni
    pixel = camera.getImageArray()  # Képpontok tömbje (RGB)
    print(f"Image size: {width}x{height}")

  • A getImageArray() metódus segítségével a képpontok tömbjét tudjuk kiolvasni, amelyet további feldolgozásokra, például objektumfelismerésre használhatunk.

2. GPS és Compass

A GPS és Compass szenzorok lehetővé teszik a robot számára, hogy meghatározza a saját helyzetét és irányát. A GPS segít a földrajzi helymeghatározásban, míg a Compass a robot irányát határozza meg a térben.

GPS használata:

A GPS szenzor folyamatosan mérni tudja a robot pozícióját 3D térben (x, y, z koordináták).

Compass használata:

A Compass szenzor meghatározza a robot irányát (az északhoz viszonyítva). Ez különösen fontos akkor, ha a robotnak pontos irányt kell tartania egy adott cél felé.

Példa kód GPS és Compass használatára (Webots Python):

from controller import Robot, GPS, Compass

# Robot vezérlő példány létrehozása
robot = Robot()

# Alap időintervallum
timestep = int(robot.getBasicTimeStep())

# GPS és Compass inicializálása
gps = robot.getGPS('gps')  # GPS szenzor
compass = robot.getCompass('compass')  # Compass szenzor

# Engedélyezzük a GPS és Compass adatokat
gps.enable(timestep)
compass.enable(timestep)

# Végtelen ciklus a robot helyzetének és irányának kiolvasására
while robot.step(timestep) != -1:
    # GPS koordináták kiolvasása
    gps_coordinates = gps.getValues()  # [x, y, z]
    print(f"GPS Coordinates: {gps_coordinates}")
    
    # Compass irány kiolvasása
    compass_direction = compass.getValues()  # [x, y, z] irányvektor
    print(f"Compass Direction: {compass_direction}")

  • GPS a robot 3D pozícióját adja meg, míg a Compass az irányvektort adja meg, amely az északhoz viszonyított irányt jelzi.

3. InertialUnit (IMU)

Az IMU (Inertial Measurement Unit) egy olyan szenzor, amely gyorsulást, forgási sebességet és irányt mér. Az IMU használata lehetővé teszi a robot számára, hogy érzékelje saját mozgását és orientációját anélkül, hogy külső referenciapontokra lenne szüksége (mint a GPS vagy a Compass).

Hogyan működik az IMU?

  • Az IMU három fő komponensből áll: gyorsulásmérő (accelerometer), giroszkóp (gyroscope), és iránytű (magnetometer).

  • A gyorsulásmérő mérni tudja a robot gyorsulását három tengelyen (x, y, z).

  • A giroszkóp a robot forgási sebességét méri.

  • Az iránytű segítségével meghatározhatjuk a robot irányát a föld mágneses teréhez viszonyítva.

Példa kód IMU használatára (Webots Python):

from controller import Robot, InertialUnit

# Robot vezérlő példány létrehozása
robot = Robot()

# Alap időintervallum
timestep = int(robot.getBasicTimeStep())

# IMU inicializálása
imu = robot.getInertialUnit('inertial_unit')  # IMU szenzor
imu.enable(timestep)  # Engedélyezzük az IMU működését

# Végtelen ciklus az IMU adatainak kiolvasására
while robot.step(timestep) != -1:
    imu_data = imu.getRollPitchYaw()  # [roll, pitch, yaw] adatok
    print(f"IMU Data: Roll={imu_data[0]}, Pitch={imu_data[1]}, Yaw={imu_data[2]}")

  • Az IMU adatokat a getRollPitchYaw() metódussal olvashatjuk ki, amely visszaadja a robot három tengely mentén mért elfordulásait (roll, pitch, yaw).

4. Szenzorfúzió alapjai

A szenzorfúzió azt jelenti, hogy több különböző szenzort és azok adatait kombináljuk, hogy pontosabb és megbízhatóbb információkat kapjunk a robot helyzetéről és állapotáról. A különböző szenzorok különböző típusú zajokat tartalmazhatnak, és együttes használatukkal csökkenthetjük az egyes szenzorok hibáját.

Alapvető szenzorfúziós technikák:

  1. Kalman szűrő: A leggyakrabban használt módszer a szenzorfúzióban, amely lehetővé teszi a mért adatok hibáinak korrigálását és a predikciók javítását.

  2. Párhuzamos szenzorfúzió: Az egyes szenzorok külön-külön történő feldolgozása, majd az eredmények együttes felhasználása.

  3. Véletlen mozgásmodellek: A robot mozgását modellezhetjük véletlen változókkal, amelyeket a szenzorok adataival korrigálhatunk.

Egyszerű szenzorfúziós példák:

Egy egyszerű példa lehet, amikor a GPS és a Compass adatait fúzionáljuk össze, hogy meghatározzuk a robot pontos irányát és helyzetét.

Összegzés

A 6. hét anyaga a haladó szenzorok használatára összpontosít. A kamera, GPS, Compass, és IMU szenzorok mind segítenek a robot környezetének érzékelésében és mozgásának irányításában. A szenzorfúzió alkalmazásával pedig a robot helyzetének és mozgásának pontosabb meghatározása válik lehetővé. A különböző szenzorok integrálásával és azok adataival dolgozva képesek vagyunk fejlettebb és megbí

 

Tervezett kurzus hálózat modellezés szimulátorban és a 10. osztály ágazati vizsgához felkészítés. 

A kurzus bemutatja a python programozási nyelv alapjait, aminek segítségével gyakorlatorientált ismeretre tehetünk szert. A képzés végén tanusítvány állítunk ki, amely igazolva az online tanfolyamon való részvételt.