I. Henrik
KÉPI INFORMÁCIÓ-FELDOLGOZÁS ÉS ÚTVONALOPTIMALIZÁCIÓ
MOBIL-ROBOT ÉPíTÉSE
Last modified on 7th, june, 1998.
                Horváth Milán, Novák Attila

 

TARTALOM:

Tartalmi összefoglaló
Fizikai felépítés
A szoftver részei
Halszem korrekció
Binarizálás Homogenizálás
Elérési gráf generálás
Parancslista generálás
Mûszaki összefoglaló
Táblázatok
Ábrák

 

TARTALMI ÖSSZEFOGLALÓ: A mesterséges intelligencia kutatásainak érdekes területe adott munkaterületen történõ tájékozódás és navigáció a környezetbõl felvett inputok alapján emberi interakció nélkül.
Olyan hatkerekû, számítógéppel összekötött mobil robotot építettünk, amely magas szintû utasítások segítségével vezérelhetõ. A munkaterületrõl a felette felfüggesztett panelkamera készít képet. A képfeldolgozás során felderítésre kerülnek az akadályok által elfoglalt, illetve a szabadon bejárható területek, megállapításra kerül a robot aktuális pozíciója és orientációja. Ha a kiválasztott célpozíció elérhetõ, akkor minimális költségû útonalat keresünk. A megoldást leíró parancssorozatot a PC párhuzamos portján keresztül csatlakoztatott robot léptetõmotorjainak meghajtó áramköreihez küldjük. A végrehajtás során fellépõ hibákat, megcsúszásokat folyamatos képvétellel és korrigáló parancsokkal ellensúlyozzuk.

KULCSSZAVAK: robotika, képi információ nyerés, útvonal-optimalizáció, pályatervezés, mobil robot

 

FIZIKAI FELÉPÍTÉS

Az általunk tervezett robot architectúráját az 1. ábra. szemlélteti. A pozícionálását két szimmetrikusan elhelyezett nagyteljesítményû, unipoláris négyfázisú léptetõmotor végzi, így biztosított a középpont körüli elfordulás, valamint a menetirány szerinti elõre és hátra irányú elmozdulás. Sík terepen tehát tetszõleges pozícióba eljuttatható a robot. A megfelelõ vezérlõ információk a PC felõl érkeznek és egy meghajtó áramkörön keresztül illeszkednek a meghajtó erõforrásokhoz (2. ábra. Kommunikációs interfész.). A kommunikációs interfész motoronként 4 bit információt fogad a párhuzamos portról nyitott kollektoros invertereken keresztül - amelyekre azért van szükség, mert a meghajtó áramkör mûködéséhez garantálni kell a 4.6 V. feletti feszültséget magas szint mellett. Ennek a kritériumnak a normál TTL kimenetek nem minden esetben tesznek eleget. Mivel a meghajtó fokozat kapcsoló üzemû teljesítmény tranzisztorokat tartalmaz (3. ábra. Meghajtó áramkör), megfelelõ húzóáramot is kell biztosítani, amely feladatra szintén a nyitott kollektoros kimenettel rendelkezõ áramkörök alkalmasak. A meghajtó áramkör minden tranzisztorán 750 mA áram folyik át aktív állapotban. A tranzisztorok be és kikapcsolását a számítógép végzi. Habár az alkalmazott motorok négyfázisúak, speciális vezérléssel elérhetõ a fél-lépésenkénti üzemelés, melynek hatására finomabb léptetés és nagyobb nyomaték érhetõ el (1. Tábla. Vezérlési táblázat.) A két motor külön külön is vezérelhetõ módot adva ezzel az esetleges aszimmetria-hibák kezelésére, ugyanis a haladás és fordulás pontosságat - adott tûréssel biztosítani kell.

A PC felõli vezérlõ információkat elõállító blokk magasszintû utasításokkal programozható (Az utasítások listáját lásd: 2. Tábla. Mobil robot vezérlõ parancsok c. táblázatban). A beépített parancs értelmezõ segítségével a robot végre tud hajtani leprogramozott parancs-szekvenciákat. Ezzel a módszerrel elõre megtervezett útvonal követése valósul meg.

A számítógép felé a visszacsatolást képi információ kiértékelésével kapjuk. A munkaterület képét egy panelkamera szolgáltatja, amely egy valós-idejû digitalizáló kártyához van kötve. A digitalizált kép feldolgozása után a felderített akadályok és a megadott cél-lokáció figyelembe vételével egy parancs scriptet generálunk, amely a már említett parancs értelmezõ bemenetét szolgáltatja.

A real time digitalizálásnak köszönhetõen figyelemmel kísérhetõ a robot pozíciójának és orientációjának változása. Ez módot ad a logikai és fizikai pozíció közötti eltérés korrigálására, vagyis visszacsatolást valósít meg. (A project fejlesztése jelen pillanatban is folyik, a fenti visszacsatolás megvalósítása része aktuális kutatásainknak.)

 

A SZOFTVER FUNKCIONÁLIS BLOKKDIAGRAMJA, A KÉPI INFORMÁCIÓ FELDOLGOZÁSA

4. ábra. A képfeldolgozás folyamata c. ábra blokkjainak részletes magyarázata a továbbiakban olvasható. A folyamat során a következõ feladatokat kell megoldani:

 

1. Bittérkép letöltése

2. Halszem korrekció

3. Binarizálás

4. Útvonal-gráf felépítése

5. Útvonal generálás

6. Parancs lista generálás

7. Parancs értelmezõ

8. Port[378] párhuzamos interfész

 

A kamera által vett képtõl a bináris képig a következõ tevékenységeket végezzük el :  

HALSZEM KORREKCIÓ

A kamera által vett képet egy egyszerû középpontos négyzetes torzítással korrigáljuk (1. Képlet):

1. Képlet

Hogy a korrigált képen ne legyenek a torzitásból adódó lyukak, ezért a korrigálást visszafelé végezzük: Azt állapítjuk meg, hogy az adott képpont az eredeti képen hol helyezkedett el, és az ott talált pixelt átmásoljuk a korrigált képre (2. Képlet)

2. Képlet

RosszTav és JoTav az adott pixel távolsága a középponttól korrekció elõt, illetve után. A képletben szereplõ a, b, c paramétereket egy teszt-képbõl nyertük (5. Ábra. A halszem korrekció paramétereinek meghatározásához felhasznált tesztkép)

Az egyes rácspontoknak a középponttól mért távolságát és a helyes távolságot állítottuk egyenlõségbe 2 pontpárra nézve, és az így nyert kétismeretlenes egyenletrendszer megoldásával megkaptuk a keresett konstansokat.

 

BINARIZÁLÁS

A teljes képet N*M kis képre osztjuk, s a következõ altevékenységeket mindegyikre elvégezzük :

 

 

A képrészlet minden pontjára elvégezzük :

 

 

Az eredeti illetve a binarizált kép a 6. ill. a 7. ábrán látható.

 

Mivel a sok kis részletre (ált. 10x10) való felbontás miatt az egyes képrészekre az algoritmus nem egyformán állapítja meg a háttér színét (a leggyakoribb szín az egyik részleten a háttér, a másikon az akadály egy színe lehet), ezért a kapott képrészletekbõl összeállított nagy képet homogenizálni kell.

 

 HOMOGENIZÁLÁS:

 A teljes képet ismét N*M kis képre osztjuk, és mindegyikre elvégezzük az alábbi algoritmust balról jobbra, ill. fentrõl lefele haladva.

 Ha a vizsgált képrészlet háttérszíne megegyezik a baloldali, ill. felsõ szomszédjának színével, akkor nem változtatjuk, ha nem, akkor invertáljuk a képrészletet.

Az összehasonlítás azon az ötleten alapszik, hogy a vizsgált képrészlet, ill a szomszédos képrészletek határos pontsorai nagy valószínûséggel nagy részben megegyeznek. A vizsgálatot következõ algoritmussal végezzük el:

Deklarálunk egy Has változót, mely a két képrészlet szomszédos határainak hasonlóságával arányos. Kezdetben Has-t nullázzuk

 

Ha a vizsgált pont és a vizsgált pont mellett egy pixellel balra helyezkedõ pont (a vizsgált képrészlet bal széle ill a vizgált képrészlet mellett eggyel balra helyezkedõ képrészlet jobb széle) színe egyezik, akkor Has:=Has+1, ha nem akkor Has:=Has-1

 

Ha a vizgált pont és a vizsgált pont felett egy pixellel elhelyezkedõ pont (a vizsgált képrészlet felsõ széle ill a vizsgált képrészlet felett elhelyezkedõ képrészlet alsó széle) színe egyezik, akkor Has:=Has+1, ha nem akkor Has:=Has-1

 

Ha az algoritmus végén Has értéke pozitív, a két szomszédos képrészletet hasonlónak tekintjük, Has negatív értéke esetén pedig az egyik részletet invertálju, hogy eggyezzenek a háttér és elõtér színek. A homogenizálás elõtti állapot a 8. ábrán, az algoritmus lefutása utáni állapot a 9. ábrán látható.

ELÉRÉSI GRÁF GENERÁLÁS

A térkép, ahol az utat keresni kell, nem más, mint egy mátrix, pontjaiban a következõ jellemzõkkel

  1. Tiltott-engedélyezett (akadály, talaj)
  2. Kor (Gyermek, Felnõtt, Öreg)
  3. Súly (A célponttól való távolság)
  4. Szülõ (Az a szomszéd, ahonnan a legrövidebb út vezet)
  5. Irány (az az irány, amerre a szülõ található)
 Az eljárás :   az apa súlya + az apától a fiúhoz vezetõ út súlya (1, vagy 1.4) . Mindez csak akkor történik meg, ha az új súly kisebb, mint: 11. ábrán a robot célpontja az A pont, és az A pontba vezetõ vonalak a legrövidebb utat jelölik a mátrix bármely pontjából kiindulva. A legrövidebb út a következõképpen kapható : a kezdõpontból kiindulva az aktuális pont szülõjéhez indulunk, majd a szülõ szölõjéhez és így tovább.

10. ábra szintén 3 különbözõ utat mutat 3 különbözõ kezdõpontból kiindulva. Megfigyelhetõ, hogy a robotnak teljesen más utat kell követnie a D pontból, mint a B pontból. A robot sok felesleges fordulást csinálna a felkiáltójelnél. Ennek elkerülésére az algoritmus kibõvettük a ‘fordulási súlyozással‘.

Eszerint, ha a robotnak fordulnia kell egy gyermek eléréséhez, akkor az adott gyermek súlyához még 0,5-öt hozzá kell

 

PARANCSLISTA ELÕÁLLÍTÁSA

 A robot adni. Amint a 11. Ábrán látható, a fordulások száma 12-rõl 5-re csökkent.

Érdekes látvány a legrövidebb út algorimtus eredménye negatív fordulási súly esetén: a robot mindenhol fordul, ahol csak tud (12.ábra).

Mivel a robotnak geometriai méretei vannak, a megtalált út könnyen túl közel lehet az akadályokhoz. Ezt a térkép alapjául szolgáló bináris kép akadályainak hízlalásával kerüljük el.kezdõkoordinátáiból kiindulva a fent leírt módon a célpont felé haladunk, minden lépésben végrehajtva a következõ eljárást :

Ha az aktuális pont Irány jellemzõje nem egyezik meg az elõzõ pont irány jellemzõjével, akkor egy TURN X utasítást kell beszúrni, ahol X a két irány közötti eltérés fokban, valamint egy GO N utasítást, ahol N a két pont közötti távolság miliméterben.

Ha nincs fordulás, akkor az elõzõ script utasítás (ami egy GO utasítás) paraméteréhez hozzá kell adni az N aktuális távolságot.

Az algoritmust az inputon lefuttatva az alábbi otputot kaptuk. A 13. ábra mutatja a legenerált útvonalat. Az akadályok fehér színnel láthatóak, a geometriai kiterjedésük tartalmazza a robot fizikai méretébõl adódó többletet is.

A kimenetként szolgáltatott parancs szekvencia a 3. táblában látható. A parancssorozat hatására a robot a 13. ábrán látható útvonalat járja be.

 

MÛSZAKI ÖSSZEFOGLALÓ

4. Tábla tartalmazza a robot mûszaki jellemzõit.

 

TÁBLÁZATOK


 
Fázis
Vezérlö kivezetés
A
B
C
D
1
+
-
-
-
2
+
+
-
-
3
-
+
-
-
4
-
+
+
-
5
-
-
+
-
6
-
-
+
+
7
-
-
-
+
8
+
-
-
+
1. Tábla - Vezérlési táblázat [Vissza a hivatkozáshoz]

 



 
Parancs
Par
Funkcionalitás
HELP   Parancsok listája.
START   Mozgásba hozza a robotot az alábbi beállításoknak megfelelõen.
STOP   Megállítja a robotot.
FORWARD   A mozgásirányt ELÕRE-re állítja.
BACKWARD   A mozgásirányt HÁTRA-ra állítja.
RIGHT   A mozgásirányt FORDUL JOBBRA-ra állítja.
LEFT   A mozgásirányt FORDUL BALRA-ra állítja.
TIMESTEP N Meghatározza a robot sebességét. 
GO N Egyenesvonalú adott mértékû elmozdulás.
TURN N Adott szögelfordulás.
ROUND N M Köríven történõ adott szögû elfordulás
DELAY Parancsértelmezés felfüggesztése.
2. Tábla - Mobil robot vezérlõ parancsok [Vissza a hivatkozáshoz]
 



 
GO 1000
TURN –45
GO 1300
TURN –45
GO 200
TURN 45
GO 800
TURN 45
GO 400
TURN 45
GO 900
3. Tábla - Utasítássorozat [Vissza a hivatkozáshoz]
 



 
Fizikai méret 310*200*90
Tömeg  1.8 kg.
Sebesség 160 mm/s
Mozgatási egység 1 mm
Forgatási egység 1 fok
Pozícionálási hiba <1%
4. Tábla - Mûszaki paraméterek [Vissza a hivatkozáshoz]


ÁBRÁK

1. Ábra - A robot architectúrája [Vissza a hivatkozáshoz]


 

2. Ábra - Kommunikációs interface [Vissza a hivatkozáshoz]


 

3. Ábra - Meghajtó áramkör [Vissza a hivatkozáshoz]


 

4. Ábra - A képfeldolgozás folyamata [Vissza a hivatkozáshoz]


5. Ábra - A halszem korrekció paramétereinek meghatározásához felhasznált tesztkép [Vissza a hivatkozáshoz]


 

6. Ábra - A kamera által vett kép binarizálás elõtt [Vissza a hivatkozáshoz]


 

7. Ábra - A binarizálás eredménye [Vissza a hivatkozáshoz]

 


 

8. Ábra - Homogenizálás elõtti állapot a szürkeségi értékek feltüntetésével [Vissza a hivatkozáshoz]

 


 

9. Ábra - A homogenizálás utáni állapot [Vissza a hivatkozáshoz]


 

10. Ábra - Különbözõ utak "A" pontból kiindulva [Vissza a hivatkozáshoz]


 

11. Ábra - Útkeresés végeredménye korrigált fordulási súlyozással [Vissza a hivatkozáshoz]


 

12. Ábra - Útkeresés negatív fordulási súlyokkal [Vissza a hivatkozáshoz]


 

13. Ábra - A robot által bejárandó útvonal [Vissza a hivatkozáshoz]


 
 
Fõ oldal
Angol oldal