Kezdőoldal » Tudományok » Alkalmazott tudományok » Hogyan adhatnám meg a robotomn...

Hogyan adhatnám meg a robotomnak, hogy egy adott pályát írjon le?

Figyelt kérdés

Egy delta típusú robotot építek.


Pl

[link]



A motorok léptetőmotorok lesznek, a vezérlőjüket egy mikrokontroller hajtja meg, ami usb-n keresztül kommunikál a számítógéppel. Az inverz/direkt geometriát/kinematikát a számítógép végzi, majd az értékeket kiküldi a mikrokontrollernek. A motorvezérlőnek (egy sima léptetőmotor vezérlő) csak egy órajelet kell megadjon a mikrokontroller, ami a sebességet is meghatározza.

A gond, hogy már egy lineáris mozgás esetén is a motorok nem egyenlő és nem egyenletes sebességgel kell mozogjanak. Ahhoz, hogy egy konstans sebességgel mozgassam el a végberendezést az egyik pontból a másikba, a motorok sebességét idő szerinti függvényként kell megadjam. Ezt a függvényt úgy oldanám meg, hogy a sebességek értékeit eltárolnám egy tömbben akár. Na de milyen időközönként tároljam el? Minden fél másodpercben mintavételezzen? Az eléggé ramaty lenne. Az igazi robotok hogyan oldják ezt meg? Pl egy szép kör leírásához eléggé sok pozíció, ill. sebesség értéket kell eltárolni.



2013. máj. 9. 21:19
 1/9 anonim ***** válasza:

Hát nem vagyok egy nagy robotszakértő, de szerintem egy valódi robotnál ezeket úgy oldják meg, hogy extrapolálják a sebesség-idő függvényt, és pl. negyed másodpercenként mintavételeznek.( Tehát sokszor megnézik különféle mintavételezési frekvencia mellett, majd egyrészt megnézik a függvény növekvő pontossággal melyik ismert függvényhez tart. Illetve, hogy melyik az a legrövidebb mintavételezési freki aminél a pontosság még pont megfelelő. És megvizsgálják, hogy mihez tart a függvény. Ha ez megvan, betöltik egy fájlból és kész. is( úgy is mondhatnám, hogy a "tapasztalat" teszi az robotot)


Ha ezt nem tudod( vagy nincs türelmed hozzá, amit kétlek, ha ilyet akarsz építeni) megoldani, akkor pedig 0,1 másodpercenként mintavételez, és azt ne tömbe tárold, hanem annál komolyabb dologban(pl. struktúra, objektum, vagy valami másba) mindezt azért, hogy a sebességet növelni tudd).

2013. máj. 10. 10:50
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

" ne tömbe tárold, hanem annál komolyabb dologban(pl. struktúra, objektum, vagy valami másba) mindezt azért, hogy a sebességet növelni tudd)."


Mikrokontroller szintű programozásról beszélünk

2013. máj. 10. 11:16
 3/9 anonim ***** válasza:
#1 A mintavételezést nem inkább mérésnél kellene alkalmazni?
2013. máj. 10. 21:27
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

Egyenest így is lehet bejártatni:

[link]

2013. máj. 10. 22:12
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
Ha jól látom itt csak pozíciókat írsz le...mármint, hogyan lehet A pontból a B-be jutni. Nekem igazából az a gondom, hogy hogyan lehetne A-ból B-be jutni konstans sebességgel?
2013. máj. 11. 16:47
 6/9 anonim ***** válasza:

A-ból B-be jutni konstans sebességgel?


1. Írd fel az A B -n átmenő egyenes egyenletét, és cseréld ki a táblázatban.

2.A két jobboldali oszlop mutatja, hogy mikor kell léptetni a léptetőmotorokat.


A sebességet az órajel adja, és ez állandó lesz az A és B pont között.

2013. máj. 11. 18:00
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
Attól még, hogy a végberendezés állandó sebességgel mozog, a motorok nem konstans sebességgel kell forogjanak...az órajel is változó. Na de a megoldásod jó lenne ha az egyenes egyenlete helyett a sebesség-idő fgv-t írnám fel, de akkor visszatértünk az eredendő problémához, mivel az egy folytonos függvény lesz, én meg csak kvantálva tudok küldeni a mikrokontrollernek.
2013. máj. 11. 18:54
 8/9 anonim ***** válasza:

Lehet, hogy arra gondolsz, hogy a robot karjai miatt az x-y koordinátákat vissza kell számolni a 3 motor szógélfordulására?

Mint ahogy itt teszik? [link]


Itt meg a program is letölthető:

[link]

Én is úgy gondoltam, hogy kvantálva küldd az adatokat az USB-n:

1 byte-ban el fér a 3 motor 2 irányú vezérlése /6bit/

Utána egy ciklussal kiolvastatod a memóriát és a tartalma alapján vezérled a motorokat.

/Az gond lehet, hogy a pic18f4550-nek csak 2kbyte RAM-ja van,így csak rövid mozgás fér bele./

2013. máj. 11. 19:55
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:

Ezt a mikrokontrollert választottam mert usb-s és lehet rá égetni bootloadert amivel usb-ről töltöm rá a további programokat...tulajdonképpen csináltam egy olyasmit mint az arduino, és a motorok vezérlőjének ebből küldöm ki az adatot.


A mikrokontroller sajnos eléggé nagy hátrányt jelent gyorsaság és kapacitás szempontjából, ezért amit csak lehet a pc oldalon végzem el.

Az inverz és direkt geometriát a pc-n kiszámolom és mivel a motorvezérlőknek csak egy-egy órajelet kell kiküldeni (a forgatáshoz), ezért meg tudom mondani, hogy pl alfa szöghöz milyen frekvenciájú órajel kell és hány felmenő él. Szóval a pozíciónak csak 3 számot küldök ki...azzal nincs gond.

A legnagyobb gond a sebességeknél a laptop lassúsága, mivel elég sokszor el kell végezze az inverz geometriát és kinematikát, amik nem kis számítások. Természetesen odafigyelek a pic memóriájára. Na de remélem jó lesz.

2013. máj. 11. 20:56

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!