Fórum témák

» Több friss téma
Fórum » AI - Artificial Intelligence, avagy a robot agya
Lapozás: OK   7 / 9
(#) Giants válasza sargarigo hozzászólására (») Aug 10, 2012 /
 
Skynet? Szerintem alaptalan lenne a félelem. Egy jó ideig nem fognak öntudatra ébredni ...sok embernek sem sikerül...

Ami pedig a sejtésed illeti, egészen másról van szó, mint a seti feladatmegosztása. Majd szivesen felvázolom egy másik szálon.
(#) Giants válasza kameleon2 hozzászólására (») Aug 10, 2012 /
 
Egyelőre fogalmam sincs, milyen formában tudnánk erről beszélni. Idő hiányában nem tudok új topicot nyitni, de találunk valamilyen megoldást.
Talán röviden annyit, hogy nem egy konkrét "konyhakész" termékről van szó. Ahhoz túl bonyolult, hogy egy átlag felhasználó boldoguljon vele. (bocsánat az esetleges degradáló besorolásért) Inkább egyfajta "célszerszám", hogy a felhasználó igényei szerinti feladatokat hatékonyan meg tudjuk oldani.
Hozzáférni pedig rajtam keresztül...
(#) Giants válasza Giants hozzászólására (») Aug 10, 2012 /
 
Sikerült néhány hibát vétenem a leírásban - legalábbis az egyértelműséget lerontani. A script viszont rendben működik. Azért ha valaki kipróbálta, kérem jelezzen vissza... van-e értelme kódrészletekbe merülni.
(#) sargarigo válasza Giants hozzászólására (») Aug 11, 2012 /
 
Visszajelzés:

Említsd meg azért, hogy kb 150 megát tölt le az internetről!

1. Futtatási jogot kellett adni a scriptnek.
2. bash: ./OpenCVInstall.sh: /bin/bash^M: rossz parancsértelmező: Nincs ilyen fájl vagy könyvtár

Töröltem a script sorainak végéről a ^M sortörés karaktereket, így már rendben elindult.

3. Ha már script, akkor lehetne egy forced=yes vagy valami hasonló kapcsoló, hogy ne kelljen nyomkodni az entert.

Most még várom a lefutás végét. Eddig kifogástalanul megy, köszönjük!
(#) sargarigo válasza Giants hozzászólására (») Aug 11, 2012 /
 
Telepítés rendben lement, kézzel átírtam a bash.bashrc file-t, újraindítás, de a próbánál már sajnos elakadt:
./facedetect: error while loading shared libraries: libopencv_calib3d.so.2.4: cannot open shared object file: No such file or directory
Valami kimaradhatott?
Rendszer: 10.04 LTS ? Lucid Lynx
(#) Giants válasza sargarigo hozzászólására (») Aug 11, 2012 /
 
Most mondjam azt, hogy a sallangokkal nem foglalkoztam?! Természetes a futtási jog megadása... a sorvégi ^M pedig többnyire akkor kerül bele, ha window-os rendszerből másoljuk át linuxba. Az eredetiben nincs. Ellenőrízzétek linux alatt - pl mcedit-el - és ha a sor végén megtalálható, ahogyan említetted, törölni kell. Az so fálok megnyitási problémái akkor jelentkeznek, ha elfelejted az ldconfig paranccsal létrehozni a csatolásokat. Ellenőrízd, hogy létrehoztad-e előtte az /etc/ld.so.conf.d/opencv.conf fájlt a szükséges bejegyzéssel.

Akkor most azt is megemlíteném, hogy egy kellően izmos gépen kb fél óra a fordítási, telepítési idő... egy lassabban akár egy óra is lehet. Az aktuális telepítési állapottól függően akár több száz megát is letölt.
(#) sargarigo válasza Giants hozzászólására (») Aug 11, 2012 /
 
Idézet:
„Most mondjam azt, hogy a sallangokkal nem foglalkoztam?!”

Mondjad
Azért írtam le a tapasztalatokat, és az általam talált megoldásokat, hogy másoknak már ne kelljen szívni vele, elvégre nem mindenki ért a linuxhoz (én sem). Így végül kapunk egy üzembiztos megoldást.

Idézet:
„hogy létrehoztad-e előtte az /etc/ld.so.conf.d/opencv.conf fájlt a szükséges bejegyzéssel.”

Igazad van, nem hozta létre, most megtettem. Így már rendesen lefutott a teszt, megtalálta a spiné arcát

Összefoglalva a telepítés zökkenőmentes, csak ezt a pár pontot kell szem előtt tartani. Köszönjük a munkádat!
(#) Giants válasza Giants hozzászólására (») Aug 14, 2012 / 1
 
A fejlesztői környezet telepítése után a tényleges kódolási műveletek maradtak ? már ami a képfeldolgozás érinti. Úgy gondoltam a Qt telepítését nem fogom bemutatni mert a célunknak tökéletesen megfelel a konzolos felület is. Ennek megfelelően végigveszem az egyes lépéseket, igyekszem szemléltetni a lépéseket és programkódot is mellékelek.

A két alapvető eszköz már rendelkezésre áll: a fejlesztői környezet és a sztereo kamera. A kameráról még nem esett bővebben szó. Közönséges, átlagos webkamerákat használtam. Miután szétszereltem őket, egy hordozóra rögzítettem úgy, hogy az optikai tengelyük között 100 mm a távolság. A kivitelezés pontossága jelentős hatással van a végeredményre, hiszen az optikai tengelyek egymáshoz viszonyított helyzete ? párhuzamosság, tengelyek elfordulási szöge jelentős eltérést hozhatnak létre a képek között. Egyébként sem mentesek a képek a torzítástól, ami a gyártási pontosságból és a CCD szórásából ered. Minél potosabb az együttállásuk, annál kisebb korrekciót kell alkalmazni a feldolgozás során.

Mint ahogyan említettem korábban ? és most újból áttekintem a lépéseket - a kamerák képeit, képpárt a képfeldolgozó programnak adjuk át. Mielőtt ezt megtennénk kalibrálnunk kell a kamerát (most már a két kamerát együtt nevezem így). Az opencv ajánlásai szerint ezt egy sakktábla mintázattal tehetjük meg leghatékonyabban.

A kalibrálás során több tucat képet készítünk, melyekből program képezni fogja a kalibrációs mátrixot, amit a továbbiakban felhasználunk a képek korrekciójához. Most visszatérve a képpár feldolgozáshoz? a képek korrekciója, egyenirányítása után azokat átalakítjuk monokromatikusá. Majd a program kiszámítja a diszparitást és a korrekciós mátrix segítségével képezi mélységi térképet. Ebben a mátrixban áll rendelkezésre a látótér képpontjainak távolsága, melyet az akadálykerülésnél fogunk felhasználni. A robot irányításába úgy illeszkedik ez a folyamat, hogy az operációs rendszer egyik task-ként hajtja végre a ciklikus képfeldolgozást. A képek nem stream-ként jelennek meg, hanem azok diszkrét időközönkénti frame-ek. Ennek előállításáról is egy task gondoskodik. Az előzetes elképzelések szerint 1-3 kép/másodperc lesz a feldolgozási sebesség. Nyilvánvaló, hogy meg kell találni a számítási kapacitás, számítási igény és robot mozgásának sebessége közötti egyensúlyt. Erre a hangolásra az egyes fázisok eredményének, tapasztalatainak birtokában kerül sor.

Csak mellékesen megjegyzem, hogy a robot alkalmas lesz tárgyfelismerésre is, és a kinect integrációjára amennyiben azt a vonalat is fejlesztjük.

Mielőtt folytatnám a részletekkel, meg kell említenem, hogy a témakörben rendkívül sok információ található az interneten, amelyet én is felhasználok a project során. Azt gondolom, hasznosabb ha összefüggéseiben rendszerezetten, kibővítve leírom a folyamatot mintsem linkeket szúrnék be a szövegbe. Mellette, ahol szükséges, megjelölöm a forrást is.

Máris ezzel kezdem: néhány példaprogram és egyes összefüggések Martin Peris blogjából került át a következő leírásaimba.

Martin Peris' blog

Az alábbi két video bemutatja, hogy milyen eredményre kellene jutnunk a képfeldologzás során. Az eredményül kapott kép már felhasználásra alkalmas információkat tartalmaz a navigációhoz.


StereoMatch_1

StereoMatch_2

Mit láthatunk a videókon? Megfigyelhető, hogy a különböző paraméterek változása milyen eredményre vezet. A kapott mélységi mátrix reprezentánsa szürkeárnyalattal szemlélteti a távolságot, a sötétebb a távolabbi, a világosabb a közelebbi objektumokat jelzi.
(#) Giants válasza Giants hozzászólására (») Aug 14, 2012 /
 
(#) norbiv8 válasza Giants hozzászólására (») Aug 15, 2012 /
 
Helló,

kicsit lemaradtam és el is akadtam. Ubuntu 11.04-em van és a hiba a következő:
  1. sudo apt-get install libopencv-dev
  2. Csomaglisták olvasása... Kész
  3. Függőségi fa építése      
  4. Állapot adatok olvasása... Kész
  5. libopencv-dev csomag nem elérhető, de egy másik hivatkozik rá
  6. .A kért csomag tehát: hiányzik, elavult vagy csak más forrásból érhető el
  7. De az alábbi csomagok felváltják:
  8.   libcv-dev
  9.  
  10. E: ?libopencv-dev? csomagnak nincs telepítésre jelölt verziója

Hát feltettem a libcv-dev csomagot, jó lesz ez nekem?

Aztán a ffmpeg konfigurálásánál jött a következő probléma:
ERROR: libopencore_amrnb not found

Ezzel már nem tudtam mit kezdeni. Ötlet?
(#) Giants válasza norbiv8 hozzászólására (») Aug 15, 2012 /
 
Szia,

Ubuntu 11.04 esetében vannak függőségi problémák, ezzel találkoztál. Az libopencv-dev csomag nem elérhető az üzenet szerint, amit a libcv-dev-el lehet helyettesíteni ahogyan megtetted.

Az ffmpeg hibaüzenete fordítás során generálódott. A configurációs kapcsolók közül vedd ki a --enable-libopencore-amrwb kapcsolót és fordítsd újra.

Mindez nem biztos, hogy elég lesz a sikeres telepítéshez. Nem véletlenül tettem fel 10.04-re. Megpróbálhatod az ORACLE VirtualBox-ot feltenni és alatta futtatni az Ubuntu 10.04-et. Vagy egy új telepítés...

A 11.04-re a következőképpen teheted fel:

echo "deb http:// download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list

wget -q http:// download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

sudo apt-get update

sudo apt-get install virtualbox-4.0


Van újabb verzió is, de ezzel működik.
(#) Giants válasza Giants hozzászólására (») Aug 15, 2012 /
 
Természetesen az --enable-libopencore-amrnb-ről van szó. Ha már javítok... a dev http:// és a wget -q http:// után van egy space, azt törölni kell. Azért tettem bele, mert "bővebb link" -ként fűzte be a szövegbe a tartalmat annak hiányában az editor.
Egyébként hogy kerülhetem el, hogy egy ilyen hivatkozást ne linkként kezeljen az editor?
(#) norbiv8 válasza Giants hozzászólására (») Aug 16, 2012 /
 
Szia,

sikerült feltelepíteni, az arckereső szépen lefut. De az image.cpp fordításakor hiba van:
  1. g++ 'pkg-config opencv --cflags' image.cpp -o image 'pkg-config opencv --libs'
  2. g++: pkg-config opencv --cflags: Nincs ilyen fájl vagy könyvtár
  3. g++: pkg-config opencv --libs: Nincs ilyen fájl vagy könyvtár
  4. image.cpp:1:25: fatal error: highgui.h: Nincs ilyen fájl vagy könyvtár
  5. compilation terminated.


Jó lenne megoldani a futást 11.04 alatt, mert a 10.04-el driver gondjaim vannak.

Köszönöm.
(#) kameleon2 válasza (») Aug 17, 2012 /
 
Sajnos nem értem miért- de kénytelen vagyok elfogadni, mert éppen a mesterséges intelligencia kialakítása volt az egyik oka a fejlesztésnek. A CSK1 egy evolúciós elosztott rendszer része, ahol erőforrás átcsoportosítás és önátíró programok használata válik lehetségessé. Hol beszéljem át ha nem itt?
(#) sargarigo hozzászólása Aug 17, 2012 /
 
Lehet jelezni kellene a topic címében, hogy ez nem általános beszélgetős topic, hanem Giants kolléga útmutatója. Modik?
(#) Giants válasza norbiv8 hozzászólására (») Aug 17, 2012 /
 
Ellenőrízd, hogy minden lépést megcsináltál-e. Ha az ldconfig-ot nem futtatod és az /etc/bash.bashrc -t nem módosítod, akkor érthető módon nem fogja megtalálni a könyvtárhivatkozásokat.
(#) Giants válasza norbiv8 hozzászólására (») Aug 18, 2012 / 1
 
Felraktam egy 11.04LTS-t és megcsináltam az OpenCV telepítést. Az alábbiakban részletezem a menetét.

Az előző telepítési leírás opencv függőségek telepítése után az alábbi metódust kell alkalmazni:

$ sudo apt-get install cmake build-essential libgtk2.0-dev libavcodec-dev
libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev
libcv2.1 libcvaux2.1 libhighgui2.1 python-opencv opencv-doc libcv-dev
libcvaux-dev libhighgui-dev ffmpeg libavformat-dev libv4l-dev -y

$ wget http ://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.2/OpenCV-2.4.2.tar.bz2

$ tar xfv OpenCV-2.4.2.tar.bz2


Mielőtt az OpenCv fordítását elkezdenétek, módosítani kell a cap_v4l.cpp fájlt.

$ nano /modules/highgui/src/cap_v4l.cpp

A #include sor helyett a #include -t kell beírni.

Ezek után a lépések megegyeznek a korábbi leíráséval.

Lefordítottam a példa programokat, valamint az image.cpp programot is. Minden működik? ha mégsem, akkor ellenőrízzétek ismételten a lépéseket.

Most, hogy többé-kevésbé túl vagytok a telepítéseken, a kalibrációval folytatom a leírást.
(#) Giants válasza Giants hozzászólására (») Aug 18, 2012 / 1
 
Valamiért hiányosara sikerült előzleg... helyesen

A #include < linux/videodev.h > sor helyett a #include < libv4l1-videodev.h >-t kell beírni.

A < > közötti space-eket törölni kell (azért tettem bele, mert előzőleg azért nem látszott)
(#) Giants válasza Giants hozzászólására (») Aug 20, 2012 /
 
A kamerák kalibrációjához egy sakktábla szerű mintázatot célszerű használni. Miért éppen sakktába? Azért mert ezen a mintázaton könnyű detektálni a sarkokat, az objektumok határfelületét. A szabályos alakzat pontosabb korrekciószámítást tesz lehetővé.

41. ábra

Nyomtassátok ki a képet, ami A4-es méretű. A kalibrációs program paramétereként meg kell adni hány horizontális és vertikális csomópont van és mennyi a négyzetek élhosszúsága centiméterben kifejezve. Esetünkben 9 horizontális és 6 vertikális csomópont van. Az általam kinyomtatott kép négyzeteinek élhosszúsága 2.8 cm. A képről különböző pozicióban képpárokat kell készíteni úgy, hogy mindegyik képen teljes legyen a mintázat. Minél több képpár készül, annál pontosabb lesz a korrekció számítás.

42. ábra

A programot és képeket megtaláljátok a tömörített .tar fájlban, a pictures könyvtárban.

Calibrate


A programot először ki kell bontani, majd lefordítani.

$ tar xvf stereo_camera_calibrate.tar

$ make

$ ./stereo_calibrate list.txt 9 6 2.8


A képpárokat egy tetszőleges könyvtárba helyezve létre kell hozni egy listafájlt, amely tartalmazza a beolvasni kívánt képek neveit. A meglévő lista.txt fájl is használható megfelelő szerkesztés után.

A program, futtatása során kiszámolja a képek alapján a korrekciós mátrixokat, amelyek a későbbiekben felhasználhatóak.

A kalibrálás folyamata

A következő képen jól látható az eredeti képekkel összehasonlítva az egyenirányítás eredménye.

43. ábra
(#) Giants hozzászólása Szept 6, 2012 /
 
Szerver csere miatt átmenetileg - kb 2-5 nap - a hivatkozásokat nem lehet elérni. Elnézést kérek minden érintettől, hamarosan újra elérhető minden melléklet.

M
(#) sargarigo válasza Giants hozzászólására (») Júl 14, 2013 /
 
Kedves Giants!

Elképzelhető, hogy valaha folytatódni fog a leírásod a témáról? Mert még mindig nagyon érdekelne!
(#) Giants válasza sargarigo hozzászólására (») Máj 14, 2014 /
 
Sziasztok

Röviden válaszolva: folytatódik a leírás.

Egy kicsit bővebben pedig: az újbóli nekilendülés már a projekt teljes megvalósításáig fog tartani, mivel a robot kb. 80%-ban elkészült.

A projekt jelenlegi állása az, hogy az elmúlt év végén átgondoltam a teljes koncepciót és elkezdtem a mechanika tervezését és gyártását. Az „átgondolás” eredménye számos ponton új megoldást hozott, az alapvető célkitűzések viszont maradtak.

A robot néhány jellemzője:

Először is a neve GiantsBot.

A hajtásról két léptetőmotor gondoskodik és két üzemmódban működhet: az egyik két hajtott kerék két segédkerék közreműködésével, a másik kétkerekű egyensúlyozó üzemmód (segway).
Az energia ellátást egy LiIon akkumulátor telep biztosítja, amelyet kifejezetten a robothoz méreteztem és gyártattam.

A korábbi szenzorfúzióról nem mondtam le, csak megváltozott az összetétele. A tesztek során több kinetikus érzékelőt kipróbáltam ki és vetettem el különféle okok miatt. Némelyiknek a pontossága, másoknak az érzékenysége, zajviszonyai játszottak ebben szerepet. Az orientáció és lokalizáció alapvetően változatlanul képfeldolgozáson alapul, de más típusú eszközzel.

A robottal wifi adatkapcsolat van és egy mobil vagy desktop platformon, web alapú grafikus megjelenítéssel az összes üzemi paramétere, érzékelése nyomon követhető. A telemetria mellett távvezérlési lehetőség is van. Tervezem a későbbiekben a publikus hozzáférést, hogy például az érdeklődők kipróbálhassák. (Természetesen kép továbbítás is van.)

Három fő modul alkotja a teljes elektronikát. Az első egy ipari számítógép mint feldolgozó egység, a második tápegység és illesztő áramkörök együttese mint kiszolgáló modul, valamint a hajtásvezérlés.

A részegységek közötti kommunikáció aszinkron csatornákon történik.

A szoftver több részből tevődik össze: a számítógépen egy linux operációs rendszer működik. Külön taszk végzi a motorvezérlést, a szenzorok adatainak feldolgozását, a szabályozást, a képfeldolgozást, a kommunikációt stb. amelyek egy adatbázis motoron keresztül kapcsolódnak egymáshoz.

A felépítés során arra törekedtem, hogy lehetőleg minél kevesebb elektronika legyártására legyen szükség és szabványos illesztőfelületeket használhassak.

A robot körvonalait már láthatjátok a következő képeken. Várhatóan május végén kezdem el a tényleges összeszerelést, élesztést. Addig folyamatosan állítom össze a leírást és teszem közzé a programok forráskódjával együtt.

GiantsBot_1

GiantsBot_2
(#) sargarigo válasza Giants hozzászólására (») Máj 14, 2014 /
 
Üdv újra!
Várjuk a fejleményeket!
(#) Giants válasza sargarigo hozzászólására (») Máj 15, 2014 /
 
A leírás eddigi logikájától – már ha volt benne – kissé eltérek. A robot mozgását, érzékelését félretéve a mechanikai felépítés bemutatásával folytatom.

Több lehetséges forma megfordult a fejemben, de mindegyik csak egyfajta „virtuális modell” maradt. Kerestem a megfelelő kialakítást és ehhez az alkalmas eszközöket, úgymint áramforrás, motorok, kerekek, elektronika stb.

A hajtásból indultam ki. Mint ahogyan említettem, szerettem volna olyan eszközt felhasználni, ami „konyhakész”. A szóba jöhető megoldások között ott vannak a DC motorok, a brushless motorok, léptetőmotorok (és még sorolhatnám..), hajtóművel és a nélkül.

A kiválasztáshoz sorra kell venni az egyes motorok előnyeit, hátrányait. Nézzük sorban a teljesség igénye nélkül:

DC motor

Jól szabályozható, nagy nyomatékú, széles üzemi feszültségtartományban működik. Nagy fajlagos teljesítmény a térfogatra vetítve.

Brushless motor

Jól szabályozható, nagy nyomatékú, széles üzemi feszültségtartományban működik. Nagy fajlagos teljesítmény a térfogatra vetítve.

Léptetőmotor

A DC motorokhoz viszonyítva kisebb nyomaték, a térfogathoz viszonyított teljesítménye kisebb az előzőeknél. Széles üzemi feszültségtartományban működik.

Az eddigi megállapítások még igazán nem képeznek a döntéshez alapot. Talán a brushless motor esik ki rögtön a lehetőségek közül, legalábbis nekem. Biztosan jó adag szubjektivitás is van benne, de nem akartam frekvenciaváltót építeni. A különböző gyártók termékeit fellapozva végül is úgy döntöttem, hogy léptetőmotort fogok használni a hátrányaival együtt, amelyeket mint majd látjátok meg is tapasztaltam. Valójában bármelyik más megoldás is életképes lehetett volna.

A döntésemet elősegítette, hogy kulcsrakész léptetőmotor vezérlőt találtam, ami tökéletesen illeszkedik a teljes digitális jelfeldolgozás elképzelésébe. Nyilvánvaló, hogy a műszaki paramétereken kívül az ár is egy jelentős tényező a kiválasztásnál.

A motorvezérlő teljes körű kiszolgálással és védelemmel rendelkezik, valamint elképesztő mennyiségű paraméter beállítására van lehetőség úgymint pl. RUN/HOLD motoráram, gyorsítási, lassítási ramp, mikrolépés, forgásirány, lépésszám, sebesség stb.
Az adatkapcsolat RS422-es csatornán lehetséges a vezérlővel.

Megvan a motor fajtája de milyen nyomatékra van szükség? Kicsi vagy nagy átmérőjű kereket használjak? Már az elején látszott, hogy nem egy „szoft” alkotmányról lesz szó. Ahogy a szóba jöhető alkatrészek kézbe kerültek, rögtön realizálódott a tömege. Vázlatokat készítettem a felépítményről, az ismert alkatrészek méretéhez igazítva és azok alapján kalkulálva a különféle erőhatásokat a szükséges nyomatékigényre 1-5 Nm-t kaptam tengelyenként.
Ez alapján újra a motorkatalógus következett. Egy átlagos 1 Nm nyomatékú léptetőmotor tömege kb 600-1000g.

Rohamosan nőtt az egész robot súlya. Egyik dolog a másikból egyenesen következett. A motor nyomatékából az energiaigénye, abból az áramforrás tulajdonságai, kapacitása, abból pedig az akku pack mérete.
Egy 2 Nm -es motort választottam, az áramfelvétele maximálisan kb. 5 A fázisonként (kétfázisú, bipoláris, hibrid felépítésű). A motorvezérlő működési feszültségtartománya 12-48V. A többi elektronika feszültség és áramigényét figyelembe véve az áramforrásra minimum 10Ah kapacitás jött ki, egy órás működési időt feltételezve.

A térfogat/kapacitás viszony miatt LiIon akkukat választottam. Az elérhető cellaméret meghatározta a telep térfogatát. Az akku és a motorok pedig a minimális vázméretet.

A következő kérdés, hogy miből készüljön?! Műanyag? Nem tetszik az ötlet. Fém? Igen, fém. Talán acéllemez.
A súly miatt csak hajtogatott lemezfelépítmény jöhet szóba. Terítéktervezés, szabászat, hajtogatás....
Én magam semmilyen alapanyag mechanikai megmunkálásával nem akartam foglalkozni - nem is szólva az eszközigényéről – így ajánlatot kértem több cégtől a kivitelezésre. Az ajánlatok megérkeztek és elrettentettek az acéllemez alkalmazásától.

Anyagváltás: alumínium... Vastagabb alu lemezből már reálisabbnak tűnt a váz kialakítása, de az alakíthatóság korlátokat szabott. Hozzáértők szerint a alu lemezek hajlamosak kis sugarú hajlítás közbeni repedésre, így az elvetve.

Tovább kerestem a felhasználható késztermékek között és úgy döntöttem, hogy húzott profilok forgácsolással történő megmunkálásával fogom kialakítani a robot vázát, mint ahogyan a mellékelt képeken látszik.

44. ábra

45. ábra

46. ábra

47. ábra

48. ábra

49. ábra

50. ábra

51. ábra

52. ábra

53. ábra

54. ábra

55. ábra

56. ábra

57. ábra

58. ábra

59. ábra

60. ábra
(#) Giants válasza Giants hozzászólására (») Máj 17, 2014 / 2
 
Engedjétek meg, hogy egy világsikert osszak meg veletek! A héten, május 12-16.-a között Los Angelesben az Intel által szervezett ISEF (International Science and Engineering Fair) fiatal tudósok versenyén Hegyesi Donát végzős középiskolai tanuló 2. helyezést ért el. Ő képviselte Magyarországot a több mint 1800 fős versenyen.
A hír egyik kapcsolódási pontja a fórumhoz a magyar sikeren túlmenően az, hogy ezt az eredményt egy pókerező robottal érte el. A másik pedig az, hogy szakmai mentorként és konzulensként én segítettem a munkáját. Ezúton is gratulálok sikereihez!

Hír_1

Siker

Hír_2

Videó
(#) sargarigo válasza Giants hozzászólására (») Máj 17, 2014 /
 
Én is gratulálok!
(#) kissi válasza Giants hozzászólására (») Máj 17, 2014 /
 
Gratulálok, nagyon szép eredmény !
A hozzászólás módosítva: Máj 17, 2014
(#) Giants válasza (Felhasználó 13571) hozzászólására (») Máj 19, 2014 /
 
köbzoli, sargarigo, kissi

Köszönöm a gratulációt és már tovább is adtam Donátnak a ráeső részt!
(#) Giants válasza Giants hozzászólására (») Máj 19, 2014 /
 
A fellelhető profilok közül egy 80x40-es négyszög, és egy 80x80-as „U” profilt próbáltam olyan módon kombinálni, hogy végeredményként összeálljon a robot. Az 59.-es képen láthatjátok, hogy a profil és az egyéb részegységek mérete miatt keskeny a váz. Ha el akartam kerülni a bonyolultnak tűnő szélesítést – a topik elején meghatározott háromkerekű kialakítást szem előtt tartva – akkor csak felfelé bővíthettem a vázat. Ezzel egyenes út vezetett a segway-hez.
Miért is ne? Így aztán már ezzel terveztem tovább. Egyébként is minden érzékelő és beavatkozó rendelkezésre áll hozzá, „mindössze” némi program kiegészítésre van szükség.

Tehát van egy keskeny és magas váz, amin el kell helyezni minden a működéshez szükséges részegységet. Milyen új kérdéseket vet fel az egyensúlyozó kialakítás?
Mielőtt erre bármilyen választ is adnék vizsgáljuk meg a robot mozgását ismét. Ismét, de most nem a haladás és pályán tartás szempontjából, hanem konkrétan a hajtás működése oldaláról.

Elnézést, ha triviális dolgokról fogok beszélni.
A motorok egymáshoz viszonyítva 180 fokban el vannak forgatva úgy, hogy tengelyük egy egyenesre esik. (Ebben eddig semmi szokványostól eltérő nincs.) A megszokottól való első eltérés a közvetlen hajtás, amikor nincs közbeiktatva egy hajtómű vagy differenciál hajtómű. Ennek hiányát a motorok közvetlen vezérlésével pótoljuk. Egy egyenes irányú előre haladáshoz mindkét motor tengelyének azonos fordulatszámmal kell forognia, de ellentétes irányban. A hátramenet két módon valósítható meg: egyik esetben mindkét motor ellentétesen forog az előrehaladáshoz viszonyítva. A másik esetben a robot kitüntetett frontoldala fordul a haladási irányba, tehát megfordul a robot és ismét előre halad. A másodikkal foglalkozom,mert a környezet érzékelése szempontjából fontos, hogy mindenkor a szenzorok érzékelési irányában haladjon a robot, azok pedig egy irányba „néznek”. Az előzőekből megállapíthatjuk, hogy a robot két alapvető mozgással bír, előre halad és fordul. A fordulás is két módon történhet. Egyik esetben egy álló kerék mellett a másik addig halad, míg az álló kerék talaj érintőjére merőleges forgástengelye mentén a robot 180 fokot fordul. Ebben az esetben a fordulási sugár kb a robot keréktávolsága. A másik lehetőség, hogy mindkét kerék a saját vonatkoztatási rendszeréhez viszonyítva egy irányba forog, így téve meg a 180 fokos ívet a geometriai középpontja körül. Ebben az esetben a fordulási sugár kb a keréktávolság fele.

Gondolva a későbbiekre – konkrétan a pozíció számításra – az utóbbi fordulási módot használom, mivel ebben az esetben nem történik pozíció változás fordulás közben.

Alapesetben – eltekintve az egyensúlyozástól, azt stabilnak tekintve – a robot mozgatásához elegendő a konstans értékű egyenes irányú sebesség és a fordulási képesség. A léptetőmotor forgórésze a DC motoroktól eltérően kvantált mozgással fordul körbe. Fizikai felépítésüknél fogva a körbefordulás elemi elmozdulásokból áll (lépés, lépésszög). A lépéshez tartozó szögelfordulás a felépítéstől függ, esetemben 1,8°: vagyis 200 lépés alkot egy körbefordulást. Nincs más teendő, mint a folyamatos forgáshoz folyamatos léptetést kell biztosítani.

A motorvezérlők egy része – feladattól függően - un. STEP/DIR jellegű. Meg kell adni a lépésszámot és forgásirányt és a vezérlő ennek megfelelően mozgatja a forgórészt. A robot szempontjából előnyösebb, ha ennél több paramétert tudok beállítani a motor üzemi paraméterei közül.

Olyan vezérlőt választottam, amelyik minden üzemmódot támogat és lehetőség van az üzem közbeni paraméterezésre.

A motorvezérlő IMS gyártmányú, IM483EI típusú.

61. ábra

Néhány tulajdonsága: kompakt felépítésű, RS232 és/vagy RS422 csatornán kapcsolódhat a HOST-hoz. Amennyiben soros terminált csatlakoztatunk hozzá, úgy a konzolon egyszerű parancsokkal állíthatjuk be a vezérlő paramétereit és vezérelhetjük a hozzá kapcsolódó léptetőmotort. Minden vezérlő egyedi névvel rendelkezik amely a paraméterekkel együtt tárolásra kerül.

Két üzemmódja van: „STANDALONE” és „PARTY”. Party üzemmódban az RS422-es csatorna és az egyedi név lehetőséget biztosít több léptetőmotor egy adatbuszra történő felfűzésére.
Ez esetben direkt címzés nélkül a buszon lévő minden eszköz végrehajtja a parancsot egyidejűleg. Egyedi névhivatkozással csak a megcímzett vezérlő fogadja a parancsot.
A szimultán parancsvégrehajtás lehetősége csökkenti a vezérlők kiszolgálási idejét.

Kérlek benneteket, hogy szóljatok ha túlzottan aprólékosnak tartanátok a leírást! Egyben kíváncsi vagyok a véleményetekre, mit szóltok a kialakításhoz, az alkalmazott megoldásokhoz?!
(#) SzervízMacska válasza Giants hozzászólására (») Máj 19, 2014 /
 
Szerintem nagyon jó, mert így még én is értem. Annyiban csalódtam az előzmények után, hogy azt hittem, az egészet Te fogod megtervezni, nem pedig kész modulokból összerakni. De a végeredmény szempontjából ez nem is lényeges...
Következő: »»   7 / 9
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem