Fórum témák
» Több friss téma |
Fórum » Robotika kezdőknek
A kutyafáját!
Elemekkel megy már az ÁK, nem bírom lefogni szinte a kis szervót! Köszönöm!!!
Kondi nyugodtan maradhat. Az lehetett a gond, hogy nagyon gyenge volt a trafod.
(A szervok modellekre lettek tervezve, amik kivétel nélkül elemre, akkurol mennek, azaz nagyon kis belsö ellenállásu tápok). Mi eröszakoljuk öket, hogy hálozati táprol menjenek, azok viszont általában nagyon messze vannak ebböl a szempontbol az elemektöl, akkuktol. Innen a sok félreértés. A modern kapcsitápok jobbak, de ott meg vigyázni kell a belsö áramkorlátra, ezért kell gyakran több amperes táp a jo müködéshez). A hozzászólás módosítva: Ápr 7, 2020
Egy kěrdés.
Nekem is a multban, de egy barátom a jelenben is meglehetösen küzd a léptetömotorok meghajtásával ( a koddal) mindkét esetben az a gond, hogy elöfordul, hogy a léptetömotor lépéśst veszt. Azaz nem fordul pontosan oda, ahova a kod szerint kellene. Valamennyi esetben a motoron alig van terhelés és a fordulatszám is igen lassu. ( egy egy motorfordulat a leggyorsabb esetben sem gyorsabb 0,5 percnél - 30 sec). Ennek ellenére ha a proci kiad mondjuk 100 lépést elöfordul, hogy a motor mindössze 98-t lép, vagy a 200 lépésre csak 197 lépést tesz. Érdekes modon a CNC gépekben ilyesmi soha nem fordul elö. Egyelöre képtelenek vagyunk rájönni a hibára - a barátom már le is tett a léptetömotorrol és egy enkoderes DC motorral kisérletezik. Én meg amondo vagyok, ha ez müködik a nyomtatokban meg a CNC gépeken, akkor nálam is müködnie kellene. Közben keresgélek a neten és látom másoknak is van ilyen gondja, de ök ezt zárt hurkos vezérléssel küszöbölik ki. Closed loop vezérlés. Miután sem a nyomtaton sem a CNC gépeimen ilyen nincs, nem igen hajlok erre, meg kellene találnom a megoldást mi az oka annak, hogy a szerkezeteim hajlamosak a lépésvesztésre. ( full lépésben vannak és a lépésfreki 100 Hz alatt van.) Van valakinek ilyesmire tapasztalata?
Zárt hurkos vezérlés van a legtöbb helyen. Nyomtatókban biztos van encoder. Lehet, hogy nem minden motorra.
A hiba oka legtöbbször a motormeghajtó. Nem hajtja meg megfelelően a motort, innen a lépésvesztés, akár üresen is (terhelés nélkül). Mit használsz? A gyorsabb forgásnál kisebb a probléma szerintem mint lassúnál.
Hát nem tudom van 2 CNC gépem, egy 3 D nyomtatom - egyiken sincs zárt hurkos vezérlés.
De van normális meghajtója és egy lépés vesztése a 100ezerre nem probléma
Ahol nekem volt ilyen gondom, ott túlmelegedett a vezérlő. (5Vról) Rendeltem bele más típust, ami áramszabályozott és 24Vról hajtottam. Nem tudom már mit. Az megoldotta a problémát, volt encoder és be lett üzemelve a zárt hurok is. Pár száz ciklus alatt nem volt lépésvesztés, azóta az elmúlt két év alatt mi volt, arról már nem kapok értesítenek (napi ezer ciklus lehet neki a norma).
Csak tippelek... (Illetve saját, pár évvel ezelőtti tapasztalat)
A mozgatás előtt tudja a program, hogy hogyan áll a motor? Konkrétan melyik állapotban? Nekem volt olyan hibám, amikor a bekapcsolás után a program a 00 állapotból indult, de a korábbi használat végén nem abban állt le. Amire persze semmi garancia... (Ráadásul az én esetemben a felhasználó kézzel el is mozgathatta, vagyis az sem lett volna megoldás, ha elmenti a kikapcsolás előtti, vagy a legutóbbi mozgás utáni állapotot.) Amennyiben két mozgatás között a uC pihentetve van, vagy valami egészen mást csinál, más programrészlet átírhatja azt a változót, ami a motor állapotát tárolja. (Összetettebb program és/vagy figyelmetlen programozó esetén akár egy rosszul megírt megszakításkezelés is okozhat ilyet, sajnos szintén tapasztalat... )
Nálam részben megoldotta a gondot amikor a meghajtot átalakitottam egy A4988 modulra, ahol be kell állitani a motoráramot. Ugyanaz a kod csak egy más meghajton ( nincs benne áramkezelés) hibát adott. A srác, aki átvette az elvet, de ö Arduinora irta a kodot, ugyanilyen tapasztalatokkal jött. Ö is egyenesen a procival hajtotta egy ULN-n keresztül a motort szintén hibázott. Ö megszakitás nélkül hajtja, én eleve abbol hajtom a motort. Én a kodban tisztességesen kezelem a motort a bekapcsolásnál van egy referencia mozgás - optokapu, ahol még a mechanikai hibát (kotyogás az áttételben) is figyelembe veszem az irányváltás esetén ( igaz, hogy késöbb már nem használom, mert stabilan 0 lépés lett, olyan jora sikerült megépiteni az önzáro mechanizmust - igy kivettem a kodbol) majd, a motoráramot kb 5 sec tartom, amikor kikapcsolom ( EN) hogy a motor ne melegedjen feleslegesen ( hosszu percekig áll ugyanabban az állásban), majd ha mozogni kell, elöször az áramot kapcsolom be az utolso kimeneti állapotban, majd ujjonnan 5 másodperc mulva léptetem az uj helyzetbe. Innen ismétlödik a ciklus. Az ULN-nel nekem is voltak lépéshibáim az A4988 sokat javitott. Azt hiszem még a tápot kell megerösitenem - eredetileg én is 5 V-rol járattam, de most már 12 V-rol megy igy már alig van hiba.
Akit érdekel a téma itt egy jo link mégha a mechanikai kivitel csapnivalo is. Motorvezérlés A hozzászólás módosítva: Ápr 14, 2020
Igen, a referenciapont-keresés lett volna még a további ötletem...
Viszont, ha a meghajtó-csere után változatlan kóddal nem hibázik, egyértelmű, hogy a meghajtó az oka. Leginkább arra gondolnék, hogy a lekapcsolás-visszakapcsolás esetén téveszt. Erre utal az is, hogy a lépésszámtól nem függ a hibás lépések száma, vagyis nem menet közben szedi össze. Mint írtad, kicsi a terhelés a motoron, vagyis amikor le/visszakapcsolod az áramot, simán elmozdulhat. Lehet, hogy éppen nagyobb terhelés esetén nem hibázna? (Még nagyobb terhelésnél meg úgyis szükség lenne a tartóáram bekapcsolva-hagyására...) Az eltérő meghajtó miatt eltérő lehet a le- és visszakapcsolás mechanizmusa. Az A4988 a leírás (felületes átfutása) alapján bipoláris motorhoz készült. Az "ULN" alatt, gondolom a tranzisztor-tömböt (ULN 2003) érted, amit inkább unipoláris motorokhoz szokás használni. A hiba oka nem lehet az unipoláris-bipoláris motor(vezérlés) közötti különbség?
Az én esetemben nem mozdulhat el, mert önzáro az áttétel ( csigakerék) és a megállás után ( amikor még áram alatt vannak a tekercsek), még igy marad a motor pontosan amiatt, hogy az esetleges mozgási energia ne mozdithassa el. Ez a hiba ott volt a kezdetben pontosan ezért irtam át a kodot, hogy ne azonnal kapcsolodjon le a tekercsekröl az áram hanem pár másodperc mulva ( kb 5). A motoron valoban kicsi a terhelés, de az önzáro mechanizmus kizárja, hogy el tudjon mozdulni amikor lekapcsolom az áramot illetve visszakapcsolom. Mindkét tipusu motort probáltam az 5 kivezetésest az ULN-el meg a 4 kivezetéset az A4988-l. Az utobbi annyival volt jobb, hogy be lehet állitani a tekercsek áramát amitöl természetesen a motor jobban melegszik. Igy a hiba kisebb volt. Sajnos nem sikerült összefüggést találni a hiba és mozgási fázisok között. Azt a megoldást a akkor kizártam mert ahhoz nagyobb trafo kellett volna igy visszaépitettem az ULN hajtást meg az 5 kivezetéses motort ( a kodban külön táblázat van a bipoláris meg az unipoláris hajtásra.). Már vagy 3 különbözö mechanizmust épittem - mind önzáro csak a motorok vezérlése különbözik (200 lépeses a 4 vezetékes motor és 64 lépéses az 5 vezetékes).
Lehet, hogy mégis az ULN helyett egy más, jobban terhelhetö meghajtot kell használnom (pl) TB6612) az ULN csak max 0,5A-l terhelhetö kimenetenként és egyszerre 2 kimenet aktiv.. A hozzászólás módosítva: Ápr 14, 2020
Igen, az önzáró megoldást elkerülte a figyelmemet...
Nos, nincs több ötletem...
Azon gondolkodok, hogy van az Arduinohoz motor shield ahol 2-4 A4988 dolgozik és ehhez van állitolag valami meghajto program is ( sajnos eddig nem találtam ra), ahol a A4988 lézergravirozot meg 3 D nyomtatot hajtanak, abban vajon hogy kezelik a motorokat. Használnak rampot ( gyorsulást és lassulást ) vagy csak egyszerüen konvertálják a g-kodot motorlépésekre.
Sziasztok!
Egy kis tanácsra lenne szükségem. Állandó üzemű ajtónyitót akarok építeni. Kapcsoló és infra érzékelők lennének a bemeneti vezérlők, és egy digital RC szervó lenne a végrehajtó. A vezérlést egy Arduino alaplap végzi majd. A szervo kiépítéssel kapcsolatban lenne annyi kérdésem, hogy kell, érdemes megszakítani a tápját amíg nem működik pl. valami relével? Vagy ne foglalkozzak vele, ha nem működik, akkor úgysem fogyaszt semmit? Nincs tapasztalatom szervo motorokkal, azt tudom, hogy egy RC autóban megy kb 20 percet, utána lehúzzák az akksit, de nekem állandó működésre ( készenlétre) lenne szükségem. ( kuka ajtaját nyitná) A szervónak nem kell tartania semmit, ha nem működik, ha pedig működik, akkor nyit 180 fok-ig, majd visszamegy a kiinduló '0 fok' állapotba. DS servo Köszi. A hozzászólás módosítva: Szept 14, 2020
Nekem csak kicsi szervóval volt eddig dolgom, de az ha elérte a nyugalmi állapotot, akkor oda vissza cicergett. Nem tudom a nagyok csinálják-e ezt, én lekapcsolnám ha már nem kell.
Esetleg ha érdekel valakit, van itt egy jó kis leírás, 6 csatornás távirányítót épített a muksó: Bővebben: Link
A digitális talán nem, az analóg hajlamos táp ráadáskor rándulni egyet valamely irányba. A digitális viszont a cicergésre hajlamosabb, így a tápot biztosan lekapcsolnám róla. Esetleg valami önzáró mechanika kell utána, mert árammentesen lehet forgatni a tengelyét.
Csak úgy eszembejutott, jogy megkérdezzem, de nem tudtam hol lenne jó. A kamera képét először meg kell fordítani, hogy ne fejjel lefelé legyen?
Sziasztok!
Létrehoztam egy videocsatornát hasonló témában, nézzétek meg a videóimat és iratkozzatok fel a csatornámra. Az oldalt folyamatosan frissítem és töltöm fel az új videókat ahogyan haladnak a projektek. Csatornám linkje: https://www.youtube.com/channel/UCV-XRxfRzpOURitxtuRrkRg Üdv. A hozzászólás módosítva: Dec 13, 2023
Van ez az oldal: Bővebben: Link.
Itt a DECCA nevű navigációs eljárást írják le. A rendszer lényege, hogy van három vagy négy állomás, amik egymással szinkronban színuszos jelet sugároznak. A vevő ezekből tudja meghatározni a saját pozícióját. Ez nagyban működött, mára elavulttá vált. A kérdésem az, hogy szerintetek meg lehet-e valósítani szobányi méretekben? A használt/használható frekvanciákból milyen pontosságot lehetne elérni? Megoldható a centiméteres felbontás? Esetleg más frekvenciákkal, vagy neagyjisten rádió helyett fényt használva? Nagyon kíváncsi vagyok mit gondoltok erről A hozzászólás módosítva: Dec 30, 2023
Tovább gondoltam. Igazából felesleges vele a cécó. A szoba kijelölt pontjain elhelyezek pár forgó adótornyot, ami fix frekvencián modulált fénnyel pásztáz. amikor a a nulla ponton van, akkor küld egy extra jelet is, hogy tudjuk az irányát. Ezekkel már ki lehet háromszögelni a pozíciót.
Így viszont akkor más kérdésem van. Milyen szűrőt tegyek az érzékelőre, hogy stabilan el tudja különíteni egymástól a három fényforrás jelét? Csak ex-has: pár kHz-el gondoltam modulálni az adókat, és egymástól néhány 100Hz különbséggel. Hogy lenne ez gazdaságos? Minél kevesebb alkatrész, minél egyszerűbb, minél olcsóbb, és persze minél szelektívebb, jobb -- ezt így együtt A hozzászólás módosítva: Dec 30, 2023
Nem teljesen világos nekem, hogy hogyan működne ez, amit írsz. Pedig érdekel, én is szoktam ilyeneken gondolkodni. Le tudod írni kicsit pontosabban?
Az egyik megoldás lehet, hogy kamerákkal nézed az adott területet, amin felismersz valami jelet, ami a roboton van. Elvben már egy nézőpontból nézve is számolható a pozíció és az orientáció is, de akkor még nagyon nagy lesz a távolság és az orientáció mérés hibája. Több nézőpontból nézve a teljes 3D pozíció pontosítható. Az orientáció hibáját pedig úgy lehet csökkenteni, ha több marker van egymástól távolabb a roboton. Az elérhető pontosság nagyjából 1 pixel mérete lesz, az elérhető kamerák felbontásából lehet becsülni, hogy mennyi lesz ez. A rádiós time of flight alapú megoldásokat (amilyen a GPS is) szerintem házilag nehéz kivitelezni, és még nehezebb cm felbontásig elmenni velük. Elképzelhetőnek tartom, hogy egy akusztikus megoldás is működhetne: valami jól felismerhető és fázisban lokalizálható mérőjelet küldünk fix pozíciókból, amit a járműben lévő vevő vesz, és a fáziseltolódás alapján számolja a saját helyét olyan matekkal mint a GPS. Kiegészíthető azzal, hogy az idő órajelet rádión küldjük át, akkor könnyebb talán a tér-matek. Szerintem a nehézséget a visszaverődések fogják jelenteni, a visszavert jel elkülönítése a direkt jeltől. Egy ilyet én is régóta szeretnék csinálni, de mint sokminden másnak, ennek sem álltam még neki. El lehet kezdeni tisztán szoftveresen két PC-n: egyik kiad egy mérőjelet, a másikon pedig az a feladat, hogy nagyon pontosan bemérd, hogy mikor szól a mérőjel. Kellően hosszú mérőjellel szerintem 1 minta alá is le lehet vinni a mérés pontosságát, amiből (340m/s) / (44000minta/s) = 7.7mm/minta számítás szerint nagyjából 1cm pontosság elérhető lehet. Léteznek nagyobb időbeli felbontású hangkártyák is, azokkal talán még jobb felbontást is lehet csinálni. De ez mind elmélet, nem próbáltam még ilyet csinálni A hozzászólás módosítva: Dec 30, 2023
Sokkal egyszerűbb a dolog!
Tegyük fel hogy a munkaterület egy szoba, aminek jól definiált fix pontjai vannak. Ezek nem kell hogy a sarkokban legyenek, de most így egyszerűbb. Tehát elhelyezünk három tornyot, amik egyedi frekvencián kereső jelet sugároznak maguk köré. Fix sebességgel forognak, és az északi ponton egy egyedi megkülönböztető jelet is kiadnak. Eszközünk amikor ezeket veszi, akkor tárolja a hozzájuk tartozó időpontot. Namost az eszközünk ahol éppen van, észreveszi hogy eltalálta egy keresősugár. Tudja hogy melyik volt az, mert a frekvenciából ez ismert. Továbbá azt is tudja hogy milyen pozícióban állt a kereső tányér, mert rögzítette az északi állást, az azóta eltelt időből kiszámolta hogy hány fokon áll. Tehát a virtuális térképen rajta vagyunk egy vonalon. Ugyanez a másik kettővel is. Két torony nem elég, mert ha egy vonalban vannak akkor nem működik (nem használunk TOF-ot). És ennyi. Szerintem ennél egyszerűbbet nem lehet összerakni a kívánatos paraméterek mellett. A szögfelbontás miatt célszerű egy léptetőmotoros forgató mechanizmus a tornyokba, így 360 fokban tud sugározni. Itt ez a felbontás lesz a gyenge láncszem, valamint a sugárzó ledek nyitási szöge. Vagy akkor már lehet lézerdióda is, és akkor kb a fokonkénti szkennelés valóban elérhető. Ha sarkokba tesszük a tornyokat, akkor elég nekik a 90 fokos eltérítés is. szerk: Sőt, ha már van egy jól működő szűrőnk, akkor a jelre rá lehet tenni a aktuális elfordulás szögét is, tehát nincs szükség az északi megkülönböztető jelre sem, mert maga a szkennelő sugár tartalmazza ezt az információt. Esetleg. Ez már a B terv, lehet hogy vannak nehézségei, ezt még nem gondoltam át. A hozzászólás módosítva: Dec 30, 2023
Gondolkodtam rajta közben. Jól értem?
* az adó forog, van egy iránykarakterisztikája, és a vevőn azt próbálod érzékelni, hogy mikor a legerősebb a jel? * csak 2d helyzetet tervezel megállapítani, mert a robot a padlón mozog például egy síkban? A problémák: * A vevőnek is lesz egy iránykarakterisztikája természetesen. Ez nem probléma, ha nem mozog (nem forog) a mérés alatt. * Azért is probléma a vevő iránykaraktersztikája, mert a kapható optikai érzékelők (pl infravörösek) eléggé szűk iránykarakterisztikájúak, ezért a vevőre egy csomót fel kell tenni minden irányba és meg kell oldani, hogy a jelük összeegződjön. Lehet olyat is csinálni, hogy a vevő forog, az adók pedig fixek. * Az adók egymást zavarják: meg kell állapítani a rezonátor paramétereit. Ha a rezonátor szűk frekvenciára szelektív, akkor sok periódus kell neki amire "felveszi a jelet". A maximum mérés akkor lesz pontos, ha az adó (vagy a vevő) lassan forog. Ha nem kellően szűk a frekvencia amire rezonál a vevő, akkor a többi jel erősebben beleszól, és amiatt lesz pontatlan a mérés. "FFT window" keresőszóra érdemes rákeresni. Nagyjából a határozatlansági reláció matekja érvényes itt is, hogy az időt és a helyet (a maximum mérésének idejét és a jel frekvenciáját) egyszerre nem lehet lokalizálni, és ebből következően hosszú idejű mérés kell ahhoz, hogy pontosan meg tudjuk határozni a maximum értéket, tehát lassan kell forogni az adónak (vevőnek) ahhoz, hogy pontosat tudjunk mérni. Ökölszabályként, ha belegondolsz a pontossági követelményed által előírt ablakban, tehát mondjuk az adó 1 fokos elfordulásán belül több maximuma kell hogy legyen a periodikus jelnek ahhoz, hogy pontosan megállapítható legyen a maxumum helye úgy, hogy közben elkülönítjuk a jelet a többi jeltől is. (a biztos elkülönítéshez nagyjából az kell, hogy annyi periódus alatt amit mérünk a kellő pontosságú ablakban az eltérő frekvenciájú jelből fél periódusnyival több legyen a vizsgált időablakban) Példa: 10kHz a jel, ezen mérünk maximumot, és 1/s alatt forog körbe, akkor 1 fok elfordulás alatt 27.778 periódus van (10000/360). Ha mondjuk digitálisan 27 periódust összegzünk, és ennek az összegnek keressük a maximumát, akkor az működhet. Ezen idő alatt a 10100Hz-es jelből 28.05 periódus van. Tehát ez az összegző ablak alig tudja elkülöníteni ezeket a vivő frekvenciákat ennyi idő alatt. De a 11kHz-t már simán elkülöníti ugyanez. Arra is vigyázni kell, hogy lehetnek rezonáns frekvenciák is, ha megvan a vevő megvalósítása, akkor olyan frekiket kell választani, amik nem rezonálnak egymással. Ha 1 fokos pontossággal meg tudjuk állapítani az adó irányát, az még mindig nagyságrendileg az adótól 2m távolságra nagyságrendileg csak 3cm pontosság, messzebbről meg még gyengébb. A kilohertzes értékekkel az a baj, hogy nagyon hosszú mérés jön ki, vagy nagyon nagy pontatlanság, a centi megközelítéséhez szerintem sok másodperces körbeforgási idő lesz szükséges. Tehát folyamatosan mozgó robothoz nem lesz elég jó. Emiatt ha ilyen rendszert építenék, akkor a jeladók frekvenciáját addig növelném ameddig csak lehetséges (az adó és a vevő alkatrészei amit csak megengednek), ezzel a rendszer inherens hibája csökken. De ha megengedhető, hogy hosszabb a mérés ideje, akkor teljesen jó, lassan forgatnám az adókat (vagy a vevőt), és jó hosszú összegző ablakokkal csinálnám meg a rezonátort (akár digitálisan, akár analóg módon), tehát szűk frekvenciára rezonáló módon. További kérdések: * A szűrést analóg oldanád meg, vagy pedig digitálisan számolva? A hozzászólás módosítva: Dec 30, 2023
Nézzétek már meg azt az előadást ami linkeltem, bár angolul van és majdnem fél órás, de nagyon hasznos.
Szerintem a szerkesztést már nem láttad, módosítottam picit az elképzelést. Ha mezei led helyett lézert használunk, akkor nincs gond az iránykarakterisztikával, nem kell maximumot keresni. Ahogy eltalálja már triggerel is. Amúgy ha teszünk elé egy kis hengeres lencsét, akkor nem pontban lövi, hanem egy függőleges vonallal pásztáz. Így biztosan eltalálja a robotot.
Ha jó értem, akkor a frekvenciát megfelelően megválasztva mondjuk 10kHz, 12, és 15kHz már jó lehet? Azért maradnék az alacsonyabb frekvenciákon, mert a kivitelezés egyszerűbbnek tűnik az én abszolút hozzá nem értésem mellett. Eddig csak digitálisan működtem, ez az első tapogatódzó lépésem az analóg világba. A szűrést analóg módon képzeltem.
Engem a címben szereplő 5G riasztott el tőle, házilag gondoltam kivitelezni. De most már megnézem
Megnéztem, de számomra nem jött le hogy melyik része az amit fel tudnék használni! Azok a technológiák amikről szó volt elemenként szobányi méretűek (volt szerencsém egy kis időt foglalkozni BTS állomás részeivel). Itt meg tenyérnyi méretek vannak, és persze ehhez üres zseb társul
Na megtaláltam hogy mire nem valaszoltam! A vevőn tudunk olyan optikát alkalmazni ami minden irányból érzékel, az nem kellene hogy gondot okozzon.
Idézet: „Dolgozunk rajta.” Úgy érted, hogy te is ezen dolgozol? Érdekes téma. Elkezdtem nézni, de eddig nem jött át, hogy hogy lehetne szobában működő robothoz használni. Tudsz valami konkrétat tanácsolni? A hozzászólás módosítva: Dec 30, 2023
|
Bejelentkezés
Hirdetés |