Fórum témák
» Több friss téma |
Megnéztem, és ez sem rossz. Azért Giants kolléga ízletesebben tálal
Üdvözlök minden látogatót az új évben ? a kitartóakat is , és a véletlenül idevetődőket is. Nem fogok mentegetőzni a hosszas hallgatás miatt, már csak azért sem mert azt gondolom, hogy mit sem veszített a témakör aktualitásából. Remélhetőleg a következő érintett területek sok olvasónak hordoznak újdonságot, vagy éppen kiegészíti eddigi ismereteit.
Annyira ezért elkalandoznék a privát szférámba, hogy elmondjam, az elmúlt időszakot egy nagyobb lélegzetű munkával töltöttem. Lényege, hogy területileg nagy kiterjedésű ipari, szolgáltatói hálózat telemetriai kiszolgálását fejlesztettem munkatársaimmal együtt. Miben kapcsolódik ez a ?hír? a topik eredeti célkitűzéséhez? Elsőre mintegy szókapcsolati szinten, a telemetria ködös jelentése által? Ezen túl ezer szállal? Legutóbb akkor hagytam abba a robot felépítésének tárgyalását, amikor a környezet érzékelésével foglalkoztam. Közvetlenül előtte szó esett a robot ?intelligenciájának? architektúrális felépítéséről, amelyet vázoltam néhány ábrán. Az időközben szerzett tapasztalatok újabb adalékot szolgáltattak, hogy mielőtt tovább haladnánk a megvalósítás konkrét kifejtésében, tekintsük át ismét a rendszertechnikai felépítést, és ha szükséges módosítsunk az elképzelésen. Ezt pedig az indukálja, hogy egy sor eszközt, módszert próbáltam ki időközben. Ezek olyan IT technológiák amelyeket szervesen integráltam a hardver közeli struktúrákba, és ezek a robot felépítése kapcsán is aktuálisak. Mint már a leírások elején jeleztem, egy komplex, rendszerszemléletű folyamatot mutatok be. Ez hordozza azt a tulajdonságot is, hogy a rendszer bármely elemének megváltozása kihatással van az összes egyéb részre. Tudom, már megint kihagytam a lényeget ? A lényege, hogy a robot kontrollálásának, kommunikációjának fontos eleme a távoli kapcsolatok kialakítása, a annak mikéntje a külvilág felé. Ezért gondoltam, hogy visszatérhetnénk, újra tárgyalhatnánk a rendszertechnikai felépítést, különös tekintettel a külvilággal történő kommunikációra. Még nagyon régen Fizikus jelezte, hogy érdekelné ez a rész. Remélem ez az érdeklődése töretlen és mások is csatlakoznak hozzá. Mi a véleményetek? Az előbb említett részletek ismertetésével folytassam, vagy először fejezzem be a környezet érzékelésének problémakörét? Mondhatnátok, hogy elég gyakran változtatok a gondolataimon? ? én inkább úgy fogalmaznám meg ezt, hogy ?fejlődöm? és szeretném beépíteni a legújabb ismereteket a projectbe is.
Legutóbbi hozzászólásom óta változott a fórum, így egy sereg kérdőjel került a szövegbe. Remélem ettől még érthető, igyekszem javítani.
G
Bele-bele olvasgattam az írásaidba. Sajnos időm nem volt részletesen elolvasni és értelmezni. Viszont visszamenőleg el fogom olvasni, és nagyon érdekelnek a további írásaid. Véleményem szerint fejezd be mit elékezdtél és utána térj át az új témára.
Azt látom, hogy sok energiát fektetsz a hozzászólásaidba, de ezeket mért nem cikk formájában publikálod?
Erről már volt szó. Azért, mert még nincs készen a rendszer, így publikálni sem lehet, meg így interaktív a kialakulása, ami szempont volt.
Giants! Üdv újra! Örülök hogy látlak! Szerintem az alapokat kellene előbb rendbe rakni, ennyi kihagyással már úgysem fog senkit összezavarni. Aztán ha kész, akkor jöhet a cikk ;D
Szia Giants!
Szerintem is jo lenne eloszor befejezni a kornyezet erzekelesenek a megtargyalasat. En most jutottam el oda, hogy az egyszeru robotjaimon levo erzekelok (IR tavolsagmero, ultrahangos tavolsagmero) jeleinek a beolvasasa mar minden gond nelkul megy, de azok ertelmezese mar problemasabb. Altalaban egy szervora rakom a szenzort, es azzal pasztazok jobbra-balra. A mert tavolsagertekeket grafikusan meg is jelenitem. De a neheze, a kornyezet terkepezese, csak innen kezdik. Ez meg tul nagy falat szamomra, ezert (sajnos) maradok a taviranyitasnal... Ezutan a kisse hosszura nyult felvezeto utan johet a kerdesem: Giants, te hogyan tervezed a kornyezetet erzekelo szenzorok jeleinek a felhasznalasat? (tudom hogy korabban mar roviden vazoltad) A kerdesem arra vonatkozik, hogy a robot a terepet teljesen ismeretlennek fogja tekinteni, es azt fel is terkepezi? Vagy csak a celkent megadott pont fele igyekszik menni az akadalyokat kikerulve? Esetleg a memoriaban egy elore eltarolt terkepet fog hasznalni? (hasonloan ahogyan a cirkaloraketak navigalnak) Mert ahhoz hogy el tudjon navigalni a kiindulasi pontbol (A pont) a megadott B pontba, ahhoz mindenkeppen ismerni kell a B pont A-hoz viszonyitott relativ helyzetet. Az utvonalkereseshez mindenkeppen kell a kornyezet terkepe az akadalyokkal. Udv.: Gabor
Igaz már röviden kitértem a szenzorok felhasználására, de a konkrét módszerekről nem beszéltem. Hajlok én is arra, hogy először a környezet érzékelését tárgyaljuk aztán a globálisabb dolgokat. Mégis a kérdésed kapcsán, félbeszakítva az optikai érzékelés leírását, először nézzük a mozgástervezés problémakörét.
A robot szabad térben való mozgásával kapcsolatban a hardvert funkcionális szempontból részekre bonthatjuk. Ez most nem a jelfeldolgozás strukturális elhelyezkedésből következő tagolást jelent, hanem a feladat szerintit. Mi a feladat? A feladatmeghatározásban már rögzítetem, de ismételten leírom: a robot feladata, hogy egy ismeretlen terepen A kezdőpontból B célpontba jusson. A és B poziciója ismert (a pontok kordinátái egy általunk definiált mozgástérben). Vagyis a a feladat a célirányos mozgás. Ehhez szükséges egy mozgató mechanizmus, esetünkben egy háromkerekű felépítmény két független hajtású kerékkel. Ehhez kapcsolódik a hajtásszabályozás. Ez alkotja az egyik fő részt. A másik fő rész az érzékelők és az útvonaltevező együttese. Mint látjátok a részegységek funkcionálisan tagoltak, nem pedig hardver, szoftver csoportba osztott. A hajtással és a pályán maradás problémakörével nagyjából foglalkoztam, az útvonaltervezéssel nem. Éppen ezzel kapcsolatos a kérdésed. Az útvonaltervezés ugyanolyan fontos része a feladatnak, mint a mozgás generálása. Nézzük az ember tájékozódását egy ismeretlen térben. Csináljunk végig egy gndolatkisérletet. Tételezzük fel, hogy egy dombon állunk a távoli völgyben pedig egy város látható. Célunk, hogy eljussunk a város egyik részén magasodó jellegzetes alakú toronyhoz. Idealizáljuk a helyzetet és feltételezzük azt is, hogy útközben nem találkozunk leküzdhetetlen akadályokkal és nem fáradunk. Nem tudjuk a világ mely részén vagyunk és térkép sincs birtokunkban. A predefiniciós fázisban máris cáfolhatom egyik megállapításod: Az utvonalkereseshez mindenkeppen kell a kornyezet terkepe az akadalyokkal. Kell térkép? Nem. Hogyan kezdünk a megoldáshoz? Nagyon egyszerű a válasz: elindulunk toronyiránt a cél felé. Hogy működünk? Mi szükséges ehhez? Az ember a külvilággal észlelés által érintkezik. Nehéz tudomásul vennünk, hogy a környezeti hatások egy nagyon szűk spektrumára léteznek érzékszerveink, ezen belül is a látás a domináns. A környezet felől érkező információk több mint 75%-a vizuális eredetű. Ezt a képességet rendkívül hatékonyan alkalmazzuk. Csak ezen keresztül egy olyan komplex folyamatot képesek vagyunk kontrollálni , mint a célbajutás. Az érzékelés és mozgáskordináció együttese eljuttat a célhoz. Elég a vizuális érzékelés? Nyilván nem. Nem csak érzékelni kell, hanem feldolgozni a külvilág jeleit. Az ?optikai érzékelőnk? szerves része ennek a folyamatnak, de az agyunk különböző területeinek összehangolt munkájára van szükség. A szem az egyetlen olyan testrészünk amely idegpályái szinte közvetlenül érintkeznek a külvilággal. Lényegileg az adatfeldolgozás azonnal elkezdődik amint a fény eléri az ideghártyát. Az Idézet: több területhez kapcsolódik az agyon belül. Csak néhányat említve: az első állomás az elsődleges látókéreg, innen a ventrális és dorzális pálya a kövekező állomás. Előbbi a tárgyak azonosításában, utóbbi a tárgyak helyzetének meghatározásában játszik szerepet. (Közvetett kapcsolat van a beszédközpont felé is.) Tehát az érzékelt optikai jellemzők feldolgozása után a perceptuális rendszer visszacsatolódik a motoros kéreghez. Ezen kersztül irányítódik a mozgató mechanizmusunk, koordinált mozgásunk közelebb visz a célunkhoz. Érzékelve az akadályokat a toronyiránt haladás módosul, kerülő mozgásba kezdünk. A visszacsatolás folytonos?és nem csak a látásunk kapcsán amikor a célt szem előtt tartva próbálunk hozzá közel kerülni. Akkor, amikor vizuálisan nem észleljük a cél objektumot, egyéb érzékszerveink pótolják az időszakos jelkiesést. Így az irányérzékünkre hagyatkozva, a különböző irányba futó utcákon egyre közelebb kerülünk a tornyhoz. Valahol belül, kialakult egy „adatbusz” Idézet: , amely jól szabályozottan visz előre, mígnem megoldjuk a feladatot: megérkeztünk. „terv” Egy elég komplex folyamat bontakozik ki az előbbiek alapján. Sokkal bonyolultabb, mint ahogyan azt elsőre feltételezhettük volna. Az útvonaltevezés problémaköre a lokalizációig nyulik vissza. Globális lokalizációs kérdésről beszélhetünk, ha nem ismert a robot abszolút poziciója és ennek alapján kell mozognia. Második eset a relatív lokalizáció, amikor egy általunk definiált mozgástérben található robotunk és a start/cél pozíció. A globális pozicionálás esetünkben érdeltelen. A robot ismeretlenként kezeli a terepet ? bár a mozgástér főbb koordinátáira szük van -, mint ahogyan számunkra is ismeretlen volt a terep az előbbi kisérletben. Nem fogok térképezni és nem tárolt térkép alapján navigál a robot. A teljes mozgás koordinálás a robot autonóm képességén alapul. Konkrétan, csak a szenzorokból nyert információkra támaszkodva halad a robot a cél felé. Az útvonakereséshez számtalan módszert dolgoztak ki. Néhányat említek: térkép alapú navigáció, marker bázisú navigáció ? ezeket nem fogom használni. Skeletoniztion ? csontváz generálás: létrehozunk egy csontvázat a szabad térre amely tartalmazza a helyes útvonalat. Ennek két ismertebb megvalósítási algoritmusa a láthatósági gráf és a voronoi diaram. Ezek egy speciális esete az real-time gráf generálás. Potenciáltér algoritmus, ebben a környezetet egy virtuális potenciálként képezzük le ahol az akadályok taszító, a cél pedig vonzó potenciált jelentenek. Ezen kívül a folaltsági rács, hullám továbbterjesztés módszere is használatos. Természetesen sokkal több módszer létezik, de csak azt érintem amelyet felhasználok, vagy amelynek a megoldásomban gyakorlati haszna mutatkozik. A legvalószínűbb eljárás a potenciáltér és az real-time gráf generálás (mohó algoritmus) kombinációja lesz. Tehát, abból következően, hogy nem ismert a mozgástér a robot számára real-time navigációt valósítok meg. Fontos része az útvonaltervező mechanizmusnak a szenzorfúzió, az érzékelés eredményeinek összegzése (pozíció meghatározás). A sajátosan meghatározott körülmények miatt odometriai, kinetikai, szonár ill. optikai érzékelőkből nyert adatok felhasználásával kívánom meghatározni a poziciót, a lehető legnagyobb pontossággal. A szenzorfúzió eredményeként kapott adatok alapján korrigálja az útvonalat az útvonaltervező. Idézet: „Szabadon, mint az ember.”
Szia Fizikus,
sikerült válaszolnom a kérdésedre? Tudnátok segíteni? Hiányolom az idézőjelt, kötőjelet és és társait. Hogy tudom ezeket használni? Az előző írásaimban sikerült egy sereg formai hibát vétenem. Köszönettel: G
Szia, először is a segítségnyújtás: keress meg egy moderátort és ő majd megoldja remélhetőleg a szintaktikai és egyéb jelölési hibákat.
Másodsorban, örülök hogy ráakadtam erre a témára. Az egészet végigolvastam és rengeteg forrást letároltam későbbi tanulmányozás céljára. A sors fintora hogy én is épp egy nagyon hasonló projekten dolgozom. (Én elsőnek építek egy univerzális játszós hardvert, amibe a legtöbb dolgot már előre beépítem és könnyen fejleszthetővé teszem.) Nekem a kamerakép feldolgozás és a képanalizálás megtanulása a fő célom. (Remélem erről is lesz még szó a témában.) Az "A pontból B pontba eljutok" dolognál lenne egy ötletem. Ha csak magunkból indulunk ki, és azt vesszük alapul, hogy egy ismeretlen helyen vagyunk és el akarunk jutni egy olyan pontra, amiről valamilyen információnk van. (Látjuk, halljuk, melegebbnek érezzük, magasabban van....stb.) Akkor nem csak a látást vesszük figyelembe, hanem rengeteg egyéb információt is. Pl. ha utcákon közlekedünk és tudjuk a végcélt, de nem tudunk nyíl egyenesen odajutni, akkor a megtett útnál tárolunk bizonyos információkat és az alapján hozzuk meg a további közlekedéshez szükséges döntéseket. (Vagyis ha balra a céliránytól elfordultunk 30°-ot és megtettünk 50m-ert, akkor ezt belevesszük az abszolút helymeghatározásnál, majd korrigáljuk.) És elég sok ilyen külső információt kell feldolgozni a végcél eléréséhez. De a téma címe AI. Vagyis ez magában hordozza a tanulás képességét. Tehát ne azt programozzuk le, hogy ha ez a szenzor ezt érzékeli, akkor ezt kell csinálni, hanem döntési képességeket. Vagyis engedjük hogy megtapasztalja a végleteket, és ez alapján hozzon döntéseket. Majd a következő próbálkozásnál korrigáljon. És tanuljon meg magától eljutni az adott pontba. (Az AI kialakulását nagyon jól meg lehet figyelni egy kisgyermeken, vagy bármely emberen.) De a csecsemőkornál nagyon jól érzékelhető hogyan működik a tanulási folyamat. (Elsőnek tapasztalatokat gyűjt, felméri az adottságait, majd próbálkozik.) Én is sokat töprengtem már az emberi intelligencián és megmondom őszintén hogy magát a tanulási folyamatot nem is tartom túl komplikáltnak. Ha a saját gépemnél leszek, akkor tudok is majd csatolni általam írt doksikat és blokkvázlatokat. De a témára visszatérve én is nagyon várom a folytatást. És jól látszik az átgondolt mérnöki munka a projekt vezetésnél. (Az elmúlt pár hónapban nekem is lehetőségem nyílt az ilyen alapos projektkészítésre. És bár meglehetősen sok munkába kerül, de megéri.) És még az elején valaki említette Dr T. nevét. (Nos az elmúlt pár hónapban alkalmam nyílt egy nagyszabású vacsorán látni. És rengeteg levelét olvasni.) Az NI igen komoly fejlesztői munkát végez ezen a területen is, amelynek az egyik kis robotját pont én mutattam be az Óbudai Egyetemen. (Szívesen leülnék pár sör mellett erről beszélgetni.)(Az AI-re gondolok, mint beszélgetés téma) Akinek esetleg lenne még ilyen szándéka, azt privátban szervezzük meg. Mert ez tipikusan olyan téma, amit szerintem szóban sokkal jobban ki lehet vesézni. Akit érdekel az én projektem, az itt talál képeket róla: Bővebben: Link (Pár nap múlva otthon leszek és lesz pár napom folytatni a kis játékszerem. Képeket folyamatosan töltök fel.) Üdv.: Miki
üdvözletem!
a héten olvastam a tápegységes és ezzel a témával foglalkozó témádat. nagyon tetszik, és még jobban az összefoglaló , amiben ( a tápegységes rész vége felé ) az egészet 1 pdf-ben közölted mint egy cikk szerűen. kérlek ha ez a téma is kivesézésre kerül , tedd meg hogy ezt is cikkesíted. nagyon színvonalas és hiánypótló - számomra- művet sikerült alkotnod. köszönet érte. várom a témában a további részeket. ui. pályakövető roboton már én is gondolkoztam , egyik kollégámmal beszélgetés szintjén, ami nekem (bár megvalósulása nem történt meg) elvi oldalról kitaláltam a z volt h optikai érzékelő az auto elején - 4 darab- ha a 2 középső lát akkor mindkét motor kap vezérlést, ha csak a (valamelyik )szélső , az az oldali motor 50% kap , ha nem lát valamelyik oldali érzékelő , akkor az az oldali motor áll, és ez egy kibelezett cd házába lett volna összeépítve. eddig jutottunk el , mindez logikai icvel 1 db 4093-al lett volna csinálva. üdv csaba
Véleményem szerint azért nem volna baj, ha definiálnánk, hogy kb mit is várunk el a leendő robotunktól! Tehát mekkora mozgástérről beszélünk, mi alapján választ referenciapontot magának, milyen bonyolultságú eseménytérben kell mozognia, stb. Ha ez nincs meg, akkor nem lesz továbblépés. Bár téged ismerve ez már nagyon is megvan, csak még nem volt érkezésed leírni
Szia Giants!
Bocsi, hogy kicsit kesve reagalok a valaszodra, de koltozes miatt meg nincs otthon netem, csak a munkahelyemrol tudok irni... Koszonom a valaszod, nehany dolgot megvalaszolt, de termeszetesen meg tobb kerdest vetett fel. Mivel nem vagyok mernok, ezert lehet hogy fogalmi zavarban vagyok, es nem ugyanazt ertek bizonyos megnevezesek alatt mint te. Utvonaltervezesen en szerintem teljesen mast ertek mint te (2 pont kozott a leheto legcelszerubb/legrovidebb utvonal megkeresese). Szerintem ehhez egy durva terkep ismerete elkerulhetetlen. Az altalad felvazolt robot maximum utvonalkeresest fog vegrehajtani. El fog jutni A-bol B-be, de nem biztos hogy a legmegfelelobb utvonalon (mondjuk a feladat kituzesenel ez nem is volt kovetelmeny). En ugy ertelemezem a feladatot, hogy letesszuk a robotot az A pontba ugy, hogy pl. nezzen eszak fele, es megadjuk hogy menjen el az A ponthoz viszonyitva pl. eszaknyugati iranyba 50 metert. A peldamban legyen a roboton pl. egy iranytu es 3 db ultrahangos erzekelo (elore, jobbra, balra nezo). Ha a robot akadalyt erzekel, akkor probalja meg ugy megkerulni, hogy az lehetoleg a bal oldalan legyen (ez az egyik legyszerubb labirintuskereso algoritmus). Ha utvonalkeresest vegez a robot, akkor az alabbi abran lathato akadaly eseten az 1-es utvonalat jarja be. Lathato, hogy a 2-es es a 3-as utvonal celszerubb lenne. Ezen utvonalak megtalalasahoz mar kell az utvonaltervezes es a kornyezet terkepe. Tudom hogy a fenti pelda igen sarkitott, de a lenyeget szemlelteti. Udv.: Gabor
Kozben rajottem, hogy elirtam a kettovel ezelotti hozzaszolasom vegen. Utvonaltervezesre gondoltam nem utvonalkeresesre. Utvonalkereseshez tenyleg nem kell terkep...
Szia Csaba,
örülök, hogy tetszett az előző témakör összefoglalása. Mindenképpen megcsinálom az összefoglaló dokumentumot a "robot agyról" is. Remélem hasznos lesz sok olvasó számára, mert részletesen és reprodukálhatóan áttekinti az érintett témakört. G
Szia,
az előzőekben már néhány alkalommal körbeírtam, hogy mit is várunk el a robottól. Semmi újat nem tudok mondani, legfeljebb más módon mondom el ismételten. Egyelőre teljesen lényegtelen a mozgástér minőségi felépítése. Akkora térben fog mozogni a robot, amelyben a méreteihez mérten képes az összes mozgásformát megvalósítani. Tehát nem lehet a robottal összemérhető méretű, mert ott meg sem tud mozdulni - mintha egy szűk cellában lenne. Szükségtelen nagyon nagyra választani, mert a mozgástér kiterjedése egy határon túl nem hordoz lényegi lehetőséget. A robot pontos méreteinek ismerete nélkül is becsülhető egy kényelmes terület: azt hiszem teljesen megfelelő egy 3-5 m oldalhosszúságú téglalap alakú terület. És persze a továbblépés is megvan . A 27. ábrán láthatjátok egy ilyen mozgástér koordinátáit. 27. ábra Látható, hogy egy vonatkoztatási rendszerben vizsgáljuk az eseményeket. Maga a mozgástér négy ponttal definiálható - P1,P2,P3,P4. Mi alapján választ magának referencia pontot a robot? Nem a robot választ. A kezdeti feltételeket mi adjuk meg a robotnak. A minimálisan szükséges feltételek a következőek: - P1,P2,P3,P4 pontok koordinátái - A, B pontok koordinátái - a robot kiindulási pontjának koordinátái - a robot orientációja a definiált mozgástérben - A, B pontok és a robot kiindulási pontja a P1,P2,P3,P4 pontok által határolt területen belül helyezkedjenek el. G
még egyszer köszönet a doksiért.
ha lehetne egy apró kérésem ezzel kapcsolatban: ha lehet monokrómban (is) lécci feltenni a pdf filét, mert ha kinyomtatom, a rajzok nem jönnek át. (sajna csak mono lézerem van ) köszönet a doksikért.
Mint ahogyan már érintettem, az észlelés egyik - talán legfontosabb - érzékszerve a szem. Minden igyekezetünk, hogy optikai elven működő gépi látást hozzunk létre, az élőlények látószerveinek modellezéséig vezet vissza. Lényegében kivétel nélkül azonos módon próbáljuk érzékelni a külvilágot, mint ahogyan azt az evolúció kialakította. Így érthető, hogy mielőtt konkrétan a "gépi látással" foglalkoznék, kicsit fel kell elevenítenem az emberi látás elméletét. Valójában inkább annak leegyszerűsített formáját írom le.
A látás egy adott tér objektumairól gyüjti össze a szóródó fényt és egy kétdimenziós képet alkot egy képsíkon, a retinán. A képsíkon fotoreceptorok érzékelik a ráeső fényt. A receptorokban (csapok és pálcikák) az ideghártyára eső fény intenzitásával és hullámhosszával arányos ingerületek jönnek létre és innen már idegi impulzusok sorozataként kerülnek továbbvezetésre. A mai technológiák felépítése szinte lemásolja ezt. Egy optikai eszköz leképezi a jelenetet és a képsíkban elhelyezett érzékelőn keletkezik maga a kép. Ez az érzékelő többnyire egy CCD lapka. Tapasztalataink alapján a kép minősége erősen függ az érzékelő elemi celláinak számától, ami a kép felbontását határozza meg. Tipikusan az emberi szem kb 100 millió receptort tartalmaz, egy CCD pedig néhány millió képpontból áll. A retinán a csapok és pálcikák hexagonális mozaikba, a CCD-n a pixelek négyzethálós rácsba szervezve helyezkednek el. A folyamat egyik legszembetűnőbb tulajdonsága, hogy a jelenet nagy, a képsík pedig meglehetősen kicsi. A helyes leképezéshez szükség van valamilyen módszerre, ami a nagy méretű képet a kicsi képsíkra transzformálja. A gépi látás szempontjából is lényeges tudnunk, hogy a valós környezet képpontjai, hová kerülnek a képsíkon. Ehhez a leképezéshez optikai rendszert alkalmazunk. A képalkotás legelemibb eszköze a camera obscura, más néven lyukkamera. Egy ilyen eszköz stilizált ábrája látható a 28. ábrán. 28. ábra A lyukkamera működési elvének leírása fontos a sztereo kamerán alapuló navigáció megértésében. Vizsgáljuk meg a lyukkamera működését. A lyukkamera egy dobozból áll, melynek az elején egy apró, pontszerű lyuk van, a hátsó részén pedig a képsík. Az optikai rendszerek működésének leírásával az optikai geometria foglalkozik. Így a vonatkoztatási pontok rögzítéséhez egy háromdimenziós koordináta rendszert fogunk használni, amelynek az origója (O) a lyuk középpontjában van. A jelenet P pontját X,Y,Z koordinátákkal reprezentáljuk és a képsíkon P' pontban képezzül le x,y,z koordinátákkal. Amennyiben O pontszerű lyuknak a képsíktól mért távolsága f, úgy a 28.ábrán látható egyenletek vezethetőek le. Ezek az egyenletek a perspektivikus vetítés alapösszefüggéseit definiálják. Az egyenlet értelmezéséből következik, hogy minél távolabb van egy objektum annál kisebb lesz a képe. A másik következmény, hogy a keletkezett kép az eredetihez viszonyítva fel-le és bal-jobb irányban megfordított és kétdimenziós.
Szia bankimajki
Örülök, hogy a leírás inspirál. Az észlelés kapcsán nagyjából szó esett a "látjuk, halljuk, melegebbnek érezzük.." dolgokról is. Mire gondolsz? Milyen kiegészítéseket tennél? Van valamilyen konkrét ötleted? Valahol a ködös múltba veszett a topik címe: AI - Artificial Intelligence, avagy a robot agya. Valójában kissé többértelműnek szántam, jelezni akartam egyrészt azt, hogy egy mesterséges objektum kvázi "agy" szerepet tölt be egy általunk készített szerkezetben. Másrészt az óvatos előretekintés ironikus megnyilvánulása volt a mesterséges inteligenci megvalósulását illetően. Hozzáteszem, hogy bizakodó vagyok a technológiák fejlődésével kapcsolatosan. Mindenesetre teljesen jogos a felvetésed, hogy AI-ről beszélve némi inteligenciával is felvértezzük a robotot. Hogyan gondolod? Ha lehetséges, ne csak ötletszinten mond el a gondolataidat, hanem az esetleges megvalósítás mikéntjére is kiváncsi (ak) vagyok(unk). Ha megvalósítható és újabb adalékot képez a robot építésében, miért is ne csinálnánk meg?! Azonban ne felejtsd el, hogy az eddig vázolt képességek kialakítása is elég kiterjedt feladat. A tanulás egy külön fejezetet jelenthet a későbbiekben. "Én is sokat töprengtem már az emberi intelligencián és megmondom őszintén hogy magát a tanulási folyamatot nem is tartom túl komplikáltnak." Amit ebben a mondatban megfogalmaztál én másként látom. És rögtön helyesbítem is egyik mondatod is: "Az AI kialakulását nagyon jól meg lehet figyelni egy kisgyermeken, vagy bármely emberen." A kisgyemek vagy bármely ember nem AI-vel rendelkezik, hanem valós, emberi intelligenciával. Feltételezem az előző mondatod folytatásaként a tanulás következményeire gondoltál. Az egyedfejlődés minden élőlénynél rendkívül összetett folyamat. Különösen az az ember esetében, ahol egy egyelőre egyedülállónak ismert jelenség is társul: a tudat. Valóban lélegzetelállító egy gyerek fejlődése (túl az emocionális kötődésen). De az egyszerűségtől nagyon távol áll. Egyelőre csak teóriák léteznek arról az útról amely megtétele során egy "tiszta" gyermekből - értem itt elsősorban a "white paper" vagy "tabula rasa" jelenséget - a hosszú évekig tartó tanulás eredményeként egy kiteljesedett elme válik. Ha megengedet kis kitérőt teszek. Szeretek néha elkalandozni ? A tanulás folyamatának kérdései nem csak az újkor emberének gondolataiban jelent meg. Már az ókori filozófusokat is foglalkoztaták az ismeretelmélet alapproblémái, bár akkor még nem fogalmazódtak meg olyan konkrétan mint korunkban. Hihetetlen, de sokáig csak elmélkedési szinten foglalkoztatta az ősi filozófusokat a tanulás képessége. Azért hihetetlen, mert a kézenfekvő "eszközök" már őket is körülvették, melyen keresztül megfigyeléseket végezhettek volna. Nevezetesen a gyerekek. Valahogy hosszú ideig senkinek sem jutott eszébe, hogy a tanulási folyamatot megfigyelje a születéstől kezdődően. De zsenik már akkor is éltek. Egy hosszú meleg délután Szókratész barátaival borozgatott Mennón otthonában és akkortájt divatos fennkölt vitában múlatták az időt. Éppen az erény kérdéseit vitatták. Arról folyt a beszélgetés, hogy az erény fogalma ? amely a legelvontabbak közé tartozik ? miként érthető meg kellő tapasztalat nélkül. Szókratész úgy gondolta, hogy az erény fogalmát nem tanuljuk, hanem születésünktől fogva tudjuk. Szerinte a korábbi életeinkből emlékezünk rá. Ezt követően a bor fogytával előkerültek a geometria még elvontabb fogalmai. Elhatározta, hogy egy kisérletet csinál, a borosfiút választva kiséréleti alanynak megpróbál megértetni vele egy geometriai bizonyítást. Egy bizonyítást, amellyel soha életében nem találkozhatott a fiú, lévén iskolázatlan. A kisérlet sikerült, a fiú sorra belátta a logikai lépések igazságát, majd végül a tételt is. Ez úgy lehetséges, mondta Szókratész, hogy valahonnan mégis csak a fiú bírtokában van a bizonyítás logikája. Másképp nem ismerhette volna fel egy-egy állítás igazságát. A filozófusok még hosszú évezredekig fáradságos elmélkedést szenteltek az ismeretszerzés - tanulás - problémakörének, de nem jutott senkinek eszébe megisméteni Szókratész módszerét. Tehát nem próbálkoztak kideríteni maguktól a gyerekektől, hogy mit tudnak és amit tudnak, honnan tudják. Egészen az 1930-as évekig nem történt áttörés, mígnem Piaget és Vigotszkij egymástól függetlenül felelevenítete Szókratész módszerét. Piaget biológus volt és a tudás problémáira kereset magyarázatot, a bölcsellőkkel szemben biológiai alapon. A század eleji kutatások világossá tették, hogy az elme az agyban fészkel és valamiképp a tudásnak is ott kell lennie, mint biológiai jelenség. Elhatározta, hogy gyerekei fejlődését részletes naplókban rögzíti. Piageték rájöttek - a felesége pszichológus volt - hogy a gyerekek valójában sokkal többet tudnak mint gondolnánk. Kiderült, hogy csecsemőkoruktól kezdődően jól szervezett és bonyolult világképpel rendelkeznek, de másként szerveződik és bonyolult mint a felnőtteké. Például tipikusan úgy képzelik, hogy egy tárgy kikerülve látóterükből megszűnik létezni. Piaget nem kevesebet állított megfigyelései alapján mint, hogy az újszülött agyában ott van az a néhány hatékony tanulási mechanizmus amellyel az érzékszervi tapasztalatai alapján képet tud alkotni az őt körülvevő világról. Bár kezdetben ez még nem olyan mint a felnőtteké. Még visszatérve az előbb említet példához bonyolult folyamat vezet odáig, hogy a kisgyerekeknek megváltozzon a látóterükből kikerült tárgyról alkotott képük. Az észlelés nem elégséges önmagában a külvilágról alkotott kép modellezéséhez. Féléves korukig a csecsemők különös érdeklődést mutatnak csillogó, csörgő tárgyak iránt. Piaget felfedezte, hogy egy ilyen kívánatos kulcscsomó felkelti az érdeklődését a féléves babának és ennek mindenféle kéz- lábmozgással tanujelét adta. Azonban amint letakarta egy kendővel rögtön alábbhagyott a "mutatvány". Amint leemelte a kedőt, folytatódott a tetszésnyilvánítás. Felmerült bene a kérdés, ha ilyen kívánatos a kulcscsomó, miért nem emeli le róla a kendőt a csecsemő? Nem elég ügyes? Megismételve a kisérletet egy átlátszó fóliával bizony lesöpörte róla a fóliát. Esetleg elfelejti, hogy hová kerültek a kulcsok? Ez sem valószínű, mert sok dologra már napokig, hetekig emlékszik ebben a korban. Egy kézenfekvő magyarázat lehetséges, egyszerűen nem tudja a kulcsok hová lettek. A hangsúlyos szó: "tudja". Egyszerűen ebben a korban a világról alkotott képük még nem konzisztens a tér, idő tekintetében. Ennek új szerveződésnek tanulás, tapasztalat útján kell kialakulnia és nem öröktől fogva adott. Nem komplikált a tanulási folyamat? Hát.. nem tudom? Van valami ötleted hogyan lehetne tanulásra képessé tenni a robotot?
Szia, én is kalandozok az elején egy kicsit. Elég különös, de amit azok a filozófusok teszteltek már én leteszteltem a keresztfiamon. (Tudom kicsit hülyén hangzik, de a legjobb alany ilyen célra, ha már úgy is sok időt vele töltök, akkor ez belefér.) Főleg a kulccsomós dolog, az nagyon szórakoztató tud lenni, mert ha ott van ő, a keresztfiam és én aki egy-egy tárgy mögé elbújok, majd előbújok, akkor ugyanezt figyeltem meg, hogy amíg lát addig örül és nevet, amint nem lát egyből mintha mi sem történt volna. Nem jut eszébe megkeresni, és pár pillanatig figyel még, ha nincs újabb előbújás, akkor folytatja egy korábban megkezdett dologgal. (Mintha csak egy kis szubrutin lenne a dolog.) De a prioritási sorrendet felállítja magában. (Főleg ha mondjuk játék és kaja között kell választani.) Mivel lassan már 2 éves lesz, ezért egyre több alprogramot futtat és egyre komplikáltabb szubrutinokra figyel. (De hülyén hangzik ez így.) Én ezt nevezem tanulásnak. gondolom egyre több dologgal kapcsolatban jegyez meg összefüggéseket és ez az ami miatt egyre komplexebb dolgokra figyel, majd lemásolja azokat. (Most tanul beszélni is és ott is miután kimondott valamit, várja a visszacsatolást és újra próbálkozik.) Az elkalandozásomnak vége. 2007-ben elkezdtem én is komolyabb gondolkodni az AI-en. És akkor ezt készítettem. (Csatolmány.) Azóta rengeteg új dolgot megfigyeltem és tanulmányoztam mind magamat, mind másokat. Ezekről még itt nem írnék, mivel annyira még nem állt össze a fejemben ez a dolog. Illetve vannak korábbi félbemaradt projektekből ötletek a tanulási algoritmus fejlesztésére. Ezek nem mind saját ötletek, hanem volt osztálytársammal ötleteltünk rajtuk. pl. Építsünk több egyforma kis eszközt, amiken vannak színérzékelők RGB LED-ek és tudnak mozogni, majd engedjük össze őket és a kiadott szín és érzékelt szín alapján döntsék el hogy melyik társukkal szimpatizálnak. (Ez csak ötlet szintjén maradt a részemről legalábbis.) De a te témádhoz visszatérve a robotba, mint egy DNS szerű alprogramot kellene írni, ill. egy másikat ami az ösztönt jelképezi. Ezek kellenek szerintem a tanulás megkezdéséhez. Az ösztönben definiáljuk neki a rossz és a jó dolgot. A DNS-ben alap rutinokat. (mozgás, érzékelés...) majd, mint egy normál kis lény kezdjen el próbálkozni. Neki megy valaminek--> A szenzor érzékel (fájdalom receptorsejt), akkor az rossz, a következő módosított próbánál figyelembe veszi az előbb letárolt információkat, valamelyik paraméteren módosít és újra próbálkozik. Ha ismét rosszat érzékel, akkor újra módosít. Ha meg mondjuk sikerült megtenni 1m-ert rossz érzékelés nélkül, akkor letárolja az adott infókat. (A kamera ezt látta, az UH-os szenzor ezt érzékelte...stb.) ezt egyébként jó érzésként könyveli el. És ismét próbálkozik, módosít valamit és megpróbál úgy módosítani, hogy ismét jó érzése legyen, vagyis elér még egy szintet rossz érzés nélkül. A csatolt doksikban található rövid leírást is fel lehetne használni, persze nem konkrétan, hanem csak az elvet. Én legalábbis a saját lánctalpasomnál ilyen irányban indulok el majd. Csak még sok a meló a hardverrel.
Üdv.: Miki
Szia,
ugye nem haragszol, ha a mellékelt dokumentumokra azt mondom: semmivel nem visznek közelebb a megoldáshoz. A vázolt elképzelésed egy keresőmotorra és adatok halmazára egyszerűsíti az elmét. A tanulást pedig szubrutinok számának növekedésével teszed egyenlővé. Évtizedek óta használok számítógépeket, számítógép rendszereket amelyekben mindez megvan. Mégsem ébredtem még olyan reggelre, amikor az egyik számítógépem saját jószántából a kedves egészségem felől érdeklődött volna. Nem akarom letörni lelkesedésed, mert a gondolatok szárnyalása felemelő érzés, de az algoritmusok halmaza nem egyenlő az intelligenciával. Sokan estek már abba a hibába, hogy intelligens tevékenységnek véltek puszta automatizmust. Az intelligencia sokkal több, mint például egy Hashfüggvény outputja. Sokkal globálisabb a kérdéskör. A sok próbálkozás, elmélet ellenére még mindíg kulcsszerepet játszik a Turing-tesz az intelligens ágens azonosításában. Eddig nem sikerült olyan mesterséges objektumot létrehozni amely megfelelt volna ezen kritériumoknak. És ez csak a felszín apró foltja. Az intelligenciával foglalkozva olyan kérdéseket kell megválaszolni amelyek többek között a kiszámíthatósággal, a véges automatákkal kapcsolatos. És ez csak a kivitelezés lehetőségének problémaköréhez kapcsolódik, egy sor tudományágat még nem is érintettünk. Ez a témakör "csak" arra vállalkozott, hogy egy, vagy több módszert mutat egy robot kialakítására. És nem igértem intelligenciát. Sokszor hiányolom a hozzászólásokban azt, amit most is (és ezt nem csak a fórum hozzászólásaira értem): nem mutatsz megoldási utakat. Mondj konkrétumot! Mit és hogyan kell csinálni? Én, saját részemről éppen a gépi látás egy lehetséges és működő megvalósításáról írok.
Szia, nem haragszom, miért is tenném. Természetesen a korábbi hozzászólásomban leírtak csak kiindulási pontként szolgáltak volna. (Én, mint korábban is írtam ebben az irányban akarok elindulni.) Annál konkrétabban pedig nem tudom leírni hogy mit és hogyan kell megvalósítani, mert én is csak ötletelgetek még. Számomra a legnagyobb kihívás, az a jó és rossz közötti mérlegelés és a végcél tudatása. (Hiszen végcél nélkül nincs semmi kiindulópont.)
Én is régóta használok számítógépeket, amelyek futtatnak ennél lényegesen komolyabb szoftvereket is, csak senki nem írt még olyan programot, ami úgy működött volna, mint ahogy leírtam. (Legalábbis nem tudok róla.) Egyszer volt alkalmam találkozni egy különös robottal, ami már emlékeket tárolt, alap szinten tudott kommunikálni, de abból is hiányzott még valami, ami ahhoz kell hogy a megszerzett tudását felhasználva azt saját ill. mások javára fordítsa. Hiszen a tanulásnak szerintem az a fő célja, hogy a megszerzett tudást felhasználva a következő döntéshozatalnál bölcsebben tudjon mérlegelni. Egy szó, mint száz: azért nem tudok konkrétumot írni, mivel ez még nem egy kitaposott út. És nem olyan egyszerű, amelyet csak úgy le lehetne írni pár hozzászólásban. Üdv.: Miki
Hú, srácok! Ez nagyon messzire visz, ha így folytatjátok! Eddig az volt nagyon jó ebben a sorozatban, hogy jó sokat lehetett belőle okulni, mindenki számára. Volt ötlet, volt elmélet, és megvalósítás. De véleményem szerint most kicsit elment a dolog a filozofálgatás irányába, és eddigi tapasztalataim szerint ebből még kézzelfogható dolog nem nagyon jött ki.
Ha robotot építünk, akkor ne akarjunk mesterséges életet alkotni! Szerintem. Egyébként a mesterséges élet is jó téma, akár lehetne nyitni is egy topicot neki Ellenben nagyon szeretnék visszatérni a látásra, mert ez abbamaradt az emberi látás fizikájánál, és pont most jönne az érdekes rész!
Nyugalom, nincs szándékomban az alkalmazott tudományokat elcserélni filozófiára. Hiszen éppen erről próbáltam meggyőzni a hozzászólót.. Azért néha kalandozhatok?
Szia, nem kell meggyőzni, mert én is az alkalmazott tudományok mellett vagyok, még ha a hozzászólásaimból nem is ez jött le. A néha elkalandozás pedig csak feldobja egy kicsit a dolgokat és érdekesebbé illetve átláthatóbbá teheti, tehát szerintem mindnyájunk nevében mondhatom hogy kalandozz csak nyugodtan, amikor úgy látod hogy szükséges. Egyébként most akkor melyik részt is fogod tárgyalni? A gépi látást? (Az nekem teljesen új, úgyhogy nagyon várom.)
Üdv.: Miki
Ez annyira ebbe a témába passzol, hogy kötelezőnek érzem belinkelni ide: Bővebben: Link
Visszatérve a környezet érzékeléséhez, mit kezdünk a jelenet kétdimenziós képével? Hogyan fogunk ez alapján háromdimenziós térben mozogni?
Az előző ábra egykamerás optikai modellje alapján megkaptuk a perspektivikus vetítés alapösszefüggéseit. Azonban a gerincesek többségnek, így az embernek is két szeme van. A természet elsősorban nem redundáns szerepre hozta létre, hanem többek között a tájékozódás hatékony segédeszközeként. A ragadozók és az ember fejének elülső részén helyezkednek el a szemek, hogy térbeli látást valósítsanak meg. A háromdimenziós észlelés nagy előnyt jelent a túlélésben ? természetesen evolúciós szempontokat vizsgálva. A két szem "kétkamerás" térbeli látást valósít meg. Ettől a pillanattól kezdődően elszakadunk a szem működésétől és elsősorban annak modelezését vizsgáljuk. A térbeli látás egyik alapgondolata szerinti modell látható a 30. ábrán. 30. ábra Az ábra bal és jobb oldalán található az egyik és másik oldalhoz tartozó képsík. A térbeli objektumot perspektivikus vetítéssel leképezve, a képsíkokon előáll annak kétdimenziós képe. Megfigyelhetjük, hogy a bal oldali képsíkon a gúla legközelebbi pontja jobbra mozdult el, a jobb oldali képen pedig balra. A két projekció eltérését diszparitásnak nevezték el. Vagyis, kétkamerás rendszerben a képsíkokon előállt képek a képjellemzők tekintetében különbséget fognak mutani. Az emberi szem tengelye nem párhuzamos, vagyis a jelenetben lennie kell egy olyan pontnak, amelyben a két optikai tengely metszi egymást. Ezt jelöltem a piros képsíkkal. A modell egyszerűsítése miatt a továbbiakban feltételezzük, hogy a két képsík egy síkban helyezkedik el. 31. ábra Talán már látható az eddigi ábrákból, hogy a térbeli mélység kifejezéséhez a diszparitást fogjuk felhasználni. Vizsgáljuk meg részletesebben a jelenséget. A 31. ábrán rögzítetünk egy bal és egy jobb oldali képsíkot. A jelenet vizsgált objektumának egy pontja legyen M. C1 és C2 a bal és jobb oldali képsík vetítési pontja, m1 és m2 pedig M pont bal és a jobb oldali képsíkon található projekciója. Az M pontot úgy választottuk meg, hogy eleme a bal oldali c1 ponton áthaladó képsíkra merőleges egyenesnek. A speciálisan megválasztott pozíció miatt a bal oldali m1 pont egybeesik a c1 ponton kersztülhaladó, vetitősikra merőleges egyenes beesési pontjával. A jobb oldalon az m2 pont nem esik egybe a c2 ponton áthaladó vetítősíkra merőleges egyenes beesési pontjával. Ebben az esetben az optikai tengely beesési pontja, valamint az m2 pont közötti távolság fejezi ki a diszparitást. Ez az általános model. Nézzük meg az előbbi ábra síkbeli elhelyezkedését egy tetszőlegesen felvett pont esetében. A modelből kiindulva trigonometriai függvényekkel kifejezhető a vizsgált objektum M pontjának mélységi információja. 32. ábra M pont vetülete m1 és m2, c1 és c2 a bal és jobb oldali kamera fókuszpontja, f a fókusztávolság, b a két optikai tengely távolsága és d az objektum M pontjának távolsága a bázisvonaltól. A bázisvonal a fókuszpontokat összekötő egyenes. A vetített képek helyzetéből adódó diszparitás, D=U2+U1. Ha feltételként szabjuk, hogy mindkét oldali vetítési kép a képmező közepére esik és függőleges irányban is illesztettek, akkor az ábra alján látható egyenletet írhatjuk fel. Az egyenlet azt fejezi ki, hogy a jelenet egy kitüntetett pontjának távolsága (d) a bázisvonaltól egyenesen arányos a fókuszpontok távolságával (b) és a fókusztávolsággal (f), valamint fordítottan arányos a diszparitással (D). Mi következik ebből?
Remélem valóban érdekes a folytatás. Néha kérek egy kis türelmet, mert egyrészt nem akarok butaságot írni, másrészt a rajzokat is el kell készíteni. A későbbiekben pedig minden egyes fázishoz tartozó műveletet megcsinálok mielőtt feltenném a fórumra.
Nagy hallgatásba burkolóztok. A visszajelzés hiánya egy másodpercre elbizonytalanított (de csak egy másodpercre) a témakor kifejtésének iránya tekintetében. Nem tudom eldönteni, hogy folytassam-e ilyen részletességgel, vagy maradjak globális ismertetésnél?!
Az előbbi esetben bizony az unalmasabb elméleti részt is át kell vészelnetek, de bárki által reprodukálható lesz a folyamat. Az utóbbi esetben pedig egy olyan helyzetbe kerülünk, mint amikor egy barátunk mesél a nyaralásáról... csak képeken nézzük az egyes elkapott pillanatokat, de nem fogjuk érezni a napsütötte, fövenyes vízparton fúvó szél érintését. Egyébként a további részekről röviden: a "gépi látás" még néhány részben folytatódna, benne a mélységi mátrix kialakítása, felhasználása a potenciáltér alapú útvonaltervezésben. Aztán ismertetem a fejlesztői környezetet, annak telepítését és konkrét alkalmazását. Ezek után lesz szó a szonárok és inerciális érzékelők szerepéről. Majd következik az egyes részegységek integrálása, szenzorfúzió: felhasznált számítógép és operációs rendszere (a robot agya), illeszkedés a hajtáshoz és az érzékelőkhöz, kommunikácó. Mi a véleményetek? Van olyan rész amelyet szükségtelennek tartotok, vagy amelyről részletesebben írjak? Az elhangzottakkal kapcsolatosan van-e észrevételetek, kérdésetek? G
Szerintem reszletesen folytasd... (a kepeken alapulo potencialter kialakitasanak modja nagyon erdekel)
Lehet hogy azert nem erkezett reakcio az elozo hozzaszolasodra, mert nagyon hirtelen vege lett, vartuk a folytatast... Az altalad kozolt 3 abra nagyon szemleletes, de bennem tobb kerdest is felvetett. Az abrakon a celtargy tul kozel van a 2 kamera tavolsagahoz kepest, ezert jol latszik a 2 kep kozotti, a lekepezes geometriajabol kovetkezo kulonbseg. A valosagban viszont a 2 kamera kozotti tavolsag gondolom a 10-20 cm-es tartomanyba fog esni, a celtargyakat viszont joval nagyobb tavolsagbol szeretnenk erzekelni. Ezert a 2 kep kozotti kulonbseg (eltolodas) szerintem csak nehany pixel lesz. Es itt jutottam el a kerdesemhez: Hogyan fogod a 2 kepet osszehasonlitani? A peldakban 1-2 keppont szerepel, de a valosagban a 2 kepen a celtargy adott a pontjahoz tartozo 2 keppontot kell megtalalni es azt osszehasonlitani. Ez nekem eleg komplikalt feladatnak tunik. A 2 kepen hogyan lehet megtalalni a tobb ezer pixel kozul azt a kettot ami osszetartozik?
Természetesen az ábrák erősen idealizáltak és torzítottak a szemléletesség kedvéért. Mégpedig azért, hogy átlátható legyen a működési elv. A valóságban a robot és a mozgástér nagysága megköveteli, hogy legalább 200 mm és 1500 mm között jól "lásson" a robot, vagyis ilyen tatományon belül a kép kiértékelhető legyen. Valójában a kamera tulajdonságai meghatározóak. A két kamera közötti távolságot jól becsülted, 100 mm. A jelenet pontjainak távolsága a tesztek alkalmával kb 1500 mm-en belül helyekedtek el. A kamera optikai felépítése és a CCD chip mérete, felbontása lehetővé teszi, hogy az előbb említett mélységet érzékelhesse. Nem kell pontos méréseket és számításokat készíteni, a kamerák látóteréből, képéből megbecsülhető a mélységi tartomány. Ebben az esetben megfelelőnek tűnik. Korábban már írtam, hogy a látószög és látótávolság összefüggésben van egymással, mégpedig nagyjából fordítottan arányos. Amennyiben nem elégséges a jelen tesztbeállítás érzékelési távolsága, úgy másik objektívet kell használni.
Igen, valóban néhány pixel lesz az eltolódás... de szerencsére a CCD chip mérete és felbontása miatt az a "néhány" pixel - a még szükséges mélységi felbontáshoz - legalább néhányszor 10. Így a legkisebb érzékelhető mélység 5-10 miliméteres nagyságrendbe esik. Nagyon jól fogtad meg a problémát a kérdéseddel. Hogyan találunk meg egy adott pontot a másik képen? Kézenfekvő, hogy a képmátrix elemeit sorban egyesével összehasonlítjuk. Tegyük fel, hogy a kamera képe 640x480-as képmátrix. Ha meg akarunk keresni egy pixelt, abban az esetben kijelöljük az egyik képet referenciának. A referencia kép elemét próbáljuk megkeresni a másik oldali képen. Legrosszabb esetben - a bal oldali (0,0) koordinátájú pont megtalálásához - 640x480 összehasonlítást kell tennünk. Az összes egyezőség megkereséséhez pedig összesen 640x480-szor kell megismételni a keresést. A képfeldolgozó rendszerünk teljesítményétől függően tetemes a futási idő. Ez azt jelenti, hogy a real-time észlelésről le kellene mondanunk. (Ha kiszámítjuk a keresési időt, azonnal látszik.) Az előbbi elméleti módszer több sebből vérzik. Bár egy pixel legalább négy különböző jellemzővel rendelkezik (szín és világosság), tehát alkalmas lenne a pixelek által hordozott információ a különbségek kifejezéséhez, de a teljes optikai rendszer határozatlansága miatt téves eredményre vezetne. A két kamera által alkotott kép eltér egymástól. A térbeli pozíciójukból eredő különbségen túl, az egyes kamerák belső és külső zavaró tényezői tovább növelik az eltérést. Így a képpont megtalálása lehetetlennek tűnik első pillantásra. |
Bejelentkezés
Hirdetés |