Tartalomjegyzék:
- Kellékek
- 1. lépés: Leírás
- 2. lépés: Motorblokkszerelés
- 3. lépés: A kapcsolók és a kábelek előkészítése
- 4. lépés: Elektronikus táblák bekötése
- 5. lépés: Motorcsoport és Arduino az alsó rétegen
- 6. lépés: Egy fedélzeti számítógép és érzékelők a felső rétegen
- 7. lépés: Mozgasd
Videó: Építsd meg saját teknősbotodat: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
SZERKESZTÉS:
A szoftverrel és vezérléssel kapcsolatos további információk ezen a linken érhetők el:
hackaday.io/project/167074-build-your-own-turtlebot-3-backbone
A kódra mutató közvetlen link:
github.com/MattMgn/foxbot_core
Miért ez a projekt?
A Turtlebot 3 tökéletes platform az elektronika, a robotika és még az AI mélyebb megismeréséhez! Azt javaslom, hogy készítse el saját teknősbotját lépésről lépésre megfizethető alkatrészekkel, a funkciók és a teljesítmény feláldozása nélkül. Egy dolgot szem előtt tartva: megtartva a legjobbat a kezdeti robotból, annak modularitását, egyszerűségét és a nyílt forráskódú közösség hatalmas csomagjait az autonóm navigációhoz és az AI-hoz.
Ez a projekt lehetőséget kínál a kezdőknek az elektronika, a mechanika és a számítástechnika fogalmainak elsajátítására, a tapasztaltabbaknak pedig egy hatékony platformot kapnak a mesterséges intelligencia algoritmusainak tesztelésére és fejlesztésére.
Mit fogsz felfedezni ebben a projektben?
Ön hamarosan felfedezi, hogy mely alapvető mechanikai és elektronikus alkatrészeket kell megőrizni az eredeti bottól a teljes kompatibilitás biztosítása érdekében.
A teljes felépítési folyamat részletes lesz: a 3D -s alkatrésznyomtatástól, összeszereléstől és a több összetevőtől, a forrasztástól és az elektronika integrálásától az Arduino -n található kódfordításig. Ez az oktatóanyag egy „hello world” példával zárul, hogy megismerje Önt a ROS -szal. Ha valami nem világos, kérdezzen bátran!
Kellékek
Elektronika:
1 x egy fedélzeti számítógép ROS futtatásához, például Raspberry Pi vagy Jetson Nano
1 x Arduino DUE, használhat UNO -t vagy MEGA -t is
1 db Arduino DUE csatlakozóhoz illeszkedő proto-kártya elérhető itt
2 x 12V DC motor kódolókkal (100 ford / perc opció)
1 x L298N motor meghajtó
2x5V szabályozó
1 x akkumulátor (például 3S/4S LiPo akkumulátor)
2 db BE/KI kapcsoló
2 x LED
2 x 470 kOhm ellenállás
3 db 4 tűs JST csatlakozó
1 x USB kábel (legalább egy az SBC és az Arduino között)
Érzékelők:
1 x áramérzékelő (opcionális)
1 x 9 szabadságfok IMU (opcionális)
1 x LIDAR (opcionális)
Alváz:
16 db Turtlebot moduláris lemez (3D nyomtatással is nyomtatható)
2 db 65 mm átmérőjű kerék (6 mm széles opció)
4 x 30 mm -es nylon távtartó (opcionális)
20 x M3 betét (opcionális)
Egyéb:
Vezetékek
M2.5 és M3 csavarok és betétek
3D nyomtató vagy valaki, aki ki tudja nyomtatni az alkatrészeket
Egy kézi fúró készlettel, mint ez
1. lépés: Leírás
Ez a robot egy egyszerű differenciálmű, amely két, közvetlenül a motorra szerelt kereket és egy hátul elhelyezett görgőt használ, hogy megakadályozza a robot felborulását. A robot két rétegre oszlik:
az alsó réteg: a meghajtócsoporttal (akkumulátor, motorvezérlő és motorok) és az „alacsony szintű” elektronikával: Arduino mikrokontroller, feszültségszabályozó, kapcsolók…
a felső réteg: a „magas szintű” elektronikával, nevezetesen az egy fedélzeti számítógéppel és a LIDAR -val
Ezek a rétegek nyomtatott alkatrészekkel és csavarokkal vannak összekapcsolva, hogy biztosítsák a szerkezet szilárdságát.
Elektronikus vázlat
A vázlat kissé zavarosnak tűnhet. Ez egy sematikus rajz, és nem ábrázolja az összes vezetéket, csatlakozót és a proto-kártyát, de a következőképpen olvasható:
A 3S litihum -ion polimer akkumulátor 3000 mAh kapacitással táplálja az első áramkört, táplálja mind a motorvezérlő kártyát (L298N), mind az első 5 V -os szabályozót a motorjeladók és az Arduino számára. Ez az áramkör egy kapcsolón keresztül aktiválható, amely LED -et jelez, és be-/kikapcsolja az állapotát.
Ugyanez az akkumulátor táplálja a második áramkört, a bemeneti feszültséget 5 V -ra alakítják át az egylapos számítógép táplálására. Az áramkör itt is kapcsolón és LED -en keresztül engedélyezett.
Ezután további érzékelőket, például LIDAR -t vagy kamerát lehet hozzáadni a Raspberry Pi -hez USB -n vagy a CSI -porton keresztül.
Mechanikus kialakítás
A robotkeret 16 azonos részből áll, amelyek 2 négyzetréteget (28 cm széles) alkottak. A sok lyuk lehetővé teszi további alkatrészek felszerelését, ahol csak szüksége van rá, és teljes moduláris felépítést kínál. Ehhez a projekthez úgy döntöttem, hogy beszerezem az eredeti TurtleBot3 lemezeket, de 3D nyomtatással is kinyomtathatja őket, mivel a tervezésük nyílt forráskódú.
2. lépés: Motorblokkszerelés
Motor előkészítése
Az első lépés az, hogy minden motor körül 1 mm vastag habszalagot kell elhelyezni, hogy megakadályozza a vibrációt és a zajt, amikor a motor forog.
Nyomtatott alkatrészek
A motortartó két részt eredményez, amelyek satuba fogják a motort. 4 csavart sikerült rögzíteni a motort a tartóban.
Mindegyik tartó több lyukból áll, amelyekben a szerkezetre szerelendő M3 betétek találhatók. Több lyuk van, mint amennyi valójában szükséges, a további lyukakat végül fel lehet használni további alkatrészek felszerelésére.
3D nyomtató beállítások: minden alkatrész a következő paraméterekkel nyomtatódik ki
- 0,4 mm átmérőjű fúvóka
- 15% anyag töltés
- 0,2 mm magasságú réteg
Kerék
A kiválasztott kerekeket gumival borítják, hogy maximalizálják a tapadást és biztosítsák a csúszásmentes gördülést. Szorítócsavar tartja a motortengelyre szerelt kereket. A kerék átmérőjének elég nagynak kell lennie ahhoz, hogy átlépje a kisebb lépéseket és a talaj egyenetlenségeit (ezek a kerekek 65 mm átmérőjűek).
Rögzítés
Ha végzett egy motorblokkal, ismételje meg az előző műveleteket, majd egyszerűen rögzítse őket a rétegbe M3 csavarokkal.
3. lépés: A kapcsolók és a kábelek előkészítése
Motor kábel előkészítése
Általában a motorkódolóhoz tartozik egy kábel, amelynek egyik oldalán 6 tűs csatlakozó található, amely összeköti a kódoló PCB hátulját, és pucér vezetékek a másik oldalon.
Lehetősége van közvetlenül forrasztani őket a proto-tábláján vagy akár az Arduino-ján, de azt javaslom, hogy inkább női tűs fejléceket és JST-XH csatlakozókat használjon. Így csatlakoztathatja/kihúzhatja őket a proto-boardon, és megkönnyítheti az összeszerelést.
Tippek: bővíthető hüvelyfonatot tehet a vezetékek köré és zsugorcső darabokat a csatlakozók közelébe, így „tiszta” kábelt kap.
Kapcsoló és LED
A két főáramkör engedélyezéséhez készítsen elő 2 LED -et és kapcsolókábelt: először forrasztjon egy 470 kOhm -os ellenállást az egyik LED -es tűre, majd forgassa a LED -et az egyikre a kapcsolószegre. Itt is használhat zsugorcsövet, hogy elrejtse az ellenállást. Ügyeljen a LED megfelelő irányú forrasztására! Ismételje meg ezt a műveletet, hogy két kapcsoló/led kábelt kapjon.
Összeszerelés
Szerelje össze a korábban készített kábeleket a megfelelő 3D nyomtatott részen. Használjon anyát a kapcsoló karbantartásához, a LED -ek nem igényelnek ragasztót, elég erő, hogy illeszkedjenek a lyukba.
4. lépés: Elektronikus táblák bekötése
A táblák elrendezése
Az Arduino kártya elrendezéséhez illeszkedő proto-táblát használják a vezetékek számának csökkentésére. A proto-panel tetején az L298N Dupont női fejléccel van halmozva (a Dupont „Arduino-szerű” fejlécek).
L298N készítmény
Eredetileg az L298N tábla nem rendelkezik a megfelelő Dupont fejléccel, hozzá kell adnia egy 9 tűs sort a tábla alá. Meg kell valósítania 9 lyukat 1 mm átmérőjű fúróval párhuzamosan a meglévő lyukakkal, amint az a képen is látható. Ezután kösse össze a 2 sor megfelelő csapjait forrasztóanyagokkal és rövid vezetékekkel.
L298N pin-out
Az L298N két csatornából áll, amelyek lehetővé teszik a sebesség és az irányítást:
2 digitális kimeneten keresztül, az IN1, IN2 az első csatorna és az IN3 és IN4 a második csatornán keresztül
sebesség 1 digitális kimeneten keresztül, az első csatorna ENA, a második az ENB
A következő kitűzést választottam az Arduino-val:
bal motor: IN1 a 3 -as érintkezőn, IN2 a 4 -es tűn, ENA a 2 -es tűn
jobb motor: IN3 az 5. tűn, IN4 a 6. tüskén, ENB a 7. tüskén
5V szabályozó
Még akkor is, ha az l298N általában képes 5 V feszültséget szolgáltatni, még mindig adok hozzá egy kis szabályozót. Táplálja az Arduino -t a VIN porton és a motorokon lévő 2 kódolón keresztül. Ezt a lépést kihagyhatja közvetlenül a beépített L298N 5V szabályozó használatával.
JST csatlakozók és kódoló pin-out
Használjon 4 tűs női JST-XH csatlakozóadaptert, és mindegyik csatlakozó a következőkhöz kapcsolódik:
- 5V a szabályozótól
- a Ground
- két digitális bemeneti port (például: 34 és 38 a jobb kódolóhoz és 26 és 30 a bal oldali kódolóhoz)
Extra I2C
Amint észrevetted, egy extra 4 tűs JST csatlakozó található az alaplapon. Az I2C eszköz IMU -hoz hasonló csatlakoztatására szolgál, ugyanezt teheti, és akár saját portot is hozzáadhat.
5. lépés: Motorcsoport és Arduino az alsó rétegen
Motorblokkok rögzítése
Miután az alsó réteget összeszerelték a 8 Turtlebot lemezével, egyszerűen használjon 4 M3 csavart közvetlenül a betétekben a motorblokkok karbantartásához. Ezután csatlakoztathatja a motor tápkábeleit az L298N kimenetekhez, és a korábban készített kábeleket a proto-board JST csatlakozókhoz.
Teljesítményelosztás
Az áramelosztás egyszerűen egy sorompós sorkapoccsal valósul meg. A sorompó egyik oldalán egy XT60 -as csatlakozóval ellátott kábel van csavarozva a LiPo akkumulátorhoz való csatlakoztatáshoz. A másik oldalon a két forrasztott LED/kapcsoló kábelünk csavarozva van. Így minden áramkört (Motor és Arduino) engedélyezni lehetett saját kapcsolóval és a megfelelő zöld LED -del.
Kábelkezelés
Gyorsan sok kábellel kell foglalkoznia! A rendetlenség csökkentése érdekében használhatja a korábban 3D -ben nyomtatott „táblázatot”. Az asztalon kétoldalas szalaggal karbantartsa az elektronikus táblákat, és az asztal alatt hagyja a vezetékeket szabadon áramlani.
Az akkumulátor karbantartása
Annak érdekében, hogy elkerülje az akkumulátor kilökődését a robot vezetése közben, egyszerűen használjon hajgumit.
Görgős görgő
Valójában nem görgős görgő, hanem egy egyszerű félgömb, amelyet 4 csavarral rögzítenek az alsó rétegre. Ez elegendő a robot stabilitásának biztosításához.
6. lépés: Egy fedélzeti számítógép és érzékelők a felső rétegen
Melyik egylapos számítógépet válasszam?
Nem kell bemutatnom a híres Raspberry Pi -t, a használati esetek száma jóval meghaladja a robotika területét. De van egy sokkal erősebb kihívó a Raspberry Pi számára, amelyet figyelmen kívül hagyhat. Valójában az Nvidia Jetson Nano processzora mellett egy erőteljes 128 magos grafikus kártyát is beágyaz. Ezt a grafikus kártyát azért fejlesztették ki, hogy felgyorsítsák a számítástechnikai költséges feladatokat, például a képfeldolgozást vagy a neurális hálózatok következtetését.
Ehhez a projekthez a Jetson Nano -t választottam, és megtalálja a megfelelő 3D -s részt a csatolt fájlok között, de ha a Raspberry Pi -vel szeretne menni, itt sok nyomtatható tok található.
5V szabályozó
Bármilyen táblát is választott a robot felvételéhez, szüksége van egy 5 V -os szabályozóra. A legújabb Raspberry Pi 4 max. 1,25 A feszültséget igényel, de a Jetson Nano akár 3 A feszültséget igényel, ezért úgy döntöttem, hogy a Pololu 5V 6A energiatartalékkal rendelkezik a jövőbeli alkatrészekhez (érzékelők, lámpák, lépcsők …), de minden olcsó 5V 2A -nak meg kell felelnie a munka. A Jetson 5,5 mm -es egyenáramú hordót és a Pi mikro -USB -t használ, ragadja meg a megfelelő kábelt, és forrasztja a szabályozó kimenetéhez.
LIDAR elrendezés
Az itt használt LIDAR az LDS-01, számos más 2D LIDAR is használható, mint például az RPLidar A1/A2/A3, YDLidar X4/G4 vagy akár a Hokuyo LIDAR. Az egyetlen követelmény az, hogy USB -n keresztül kell csatlakoztatni, és a szerkezet fölé kell helyezni. Valójában, ha a LIDAR nincs jól középre állítva, a SLAM algoritmus által létrehozott térkép eltolhatja a falak és az akadályok becsült helyzetét a valódi helyzetükről. Ezenkívül, ha a robot bármely akadálya keresztezi a lézersugarat, az csökkenti a látóteret és a látóteret.
LIDAR szerelés
A LIDAR egy 3D nyomtatott részre van felszerelve, amely követi az alakját, maga az alkatrész egy téglalap alakú lemezre van rögzítve (valójában rétegelt lemezből a képen, de 3D nyomtatható is). Ezután egy adapterrész lehetővé teszi az együttes rögzítését a felső teknőslemezre nylon távtartókkal.
A kamera kiegészítő érzékelőként vagy LIDAR csereként
Ha nem akar túl sok pénzt költeni egy LIDAR -ra (ami körülbelül 100 dollárba kerül), válasszon egy kamerát: léteznek olyan SLAM -algoritmusok is, amelyek csak monokuláris RGB kamerával működnek. Mindkét SBC USB vagy CSI kamerát fogad el.
Ezenkívül a fényképezőgép lehetővé teszi a számítógépes látás és objektumfelismerő szkriptek futtatását!
Összeszerelés
A robot bezárása előtt vezesse át a kábeleket a felső lemez nagyobb lyukain:
- a megfelelő kábelt az 5V -os szabályozótól az SBC -hez
- az USB -kábelt az Arduino DUE programozási portjáról (a legközelebb a DC -hordóhoz) az SBC USB -portjához
Ezután egy tucat csavarral tartsa a helyén a felső lemezt. Robotja készen áll a programozásra, JÓL!
7. lépés: Mozgasd
Fordítsa össze az Arduino -t
Nyissa meg kedvenc Arduino IDE -jét, és importálja a own_turtlebot_core nevű projektmappát, majd válassza ki a táblát és a megfelelő portot, erre a kiváló oktatóanyagra hivatkozhat.
Állítsa be a Core beállításokat
A projekt két fájlból áll, és az egyiket hozzá kell igazítani a robotjához. Nyissuk meg tehát a own_turtlebot_config.h fájlt, és fedezzük fel, mely sorok igénylik a figyelmünket:
#define ARDUINO_DUE // ** SZÓLJ MEG EZT A SOROT, HA NEM HASZNÁL DUE **
Kizárólag az Arduino DUE -val használható, ha nem, írja meg a sort.
#define RATE_CONTROLLER_KP 130.0 // ** TUNE THIS VALUE **
#define RATE_CONTROLLER_KD 5000000000000.0 // ** EZT AZ ÉRTÉKET TUNE ** #define RATE_CONTROLLER_KI 0.00005 // ** TUNE This Value
Ez a 3 paraméter megfelel a PID által használt sebességszabályozó nyereségnek a kívánt sebesség fenntartásához. Az akkumulátor feszültségétől, a robot tömegétől, a kerék átmérőjétől és a motor mechanikus fogaskerékétől függően módosítani kell az értékeiket. A PID klasszikus vezérlő, és itt nem részletezzük, de ennek a linknek elegendő bemenetet kell adnia a saját beállításához.
/ * Csapok definiálása */
// motor A (jobbra) const byte motorRightEncoderPinA = 38; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte motorRightEncoderPinB = 34; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte enMotorRight = 2; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte in1MotorRight = 4; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte in2MotorRight = 3; // ** MÓDOSÍTÁS A PIN kóddal ** ** // motor B (balra) const byte motorLeftEncoderPinA = 26; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte motorLeftEncoderPinB = 30; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte enMotorLeft = 7; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte in1MotorLeft = 6; // ** MÓDOSÍTÁS A PIN kóddal NB ** const byte in2MotorLeft = 5; // ** MÓDOSÍTÁS A PIN -KÓDJAL NB **
Ez a blokk határozza meg a pinoutot az L298N és az Arduino között, egyszerűen módosítsa a pin számot, hogy megfeleljen a tiédnek. Ha végzett a konfigurációs fájllal, fordítsa le és töltse fel a kódot!
Telepítse és konfigurálja a ROS -t
Miután elérte ezt a lépést, az utasítások pontosan megegyeznek a kiváló TurtleBot3 kézikönyvében leírtakkal, és szigorúan követnie kell
jól sikerült A TurtleBot 3 most az Öné, és az összes meglévő csomagot és oktatóprogramot futtathatja a ROS segítségével.
Rendben, de mi az a ROS?
A ROS a robotok operációs rendszerét jelenti, elsőre meglehetősen bonyolultnak tűnhet, de nem az, csak képzeljük el a kommunikáció módját a hardver (érzékelők és működtető egységek) és a szoftver (navigációs, vezérlési, számítógépes látás algoritmusai) között. Például egyszerűen kicserélheti jelenlegi LIDAR -ját egy másik modellel anélkül, hogy megszakítaná a beállítást, mert minden LIDAR ugyanazt a LaserScan üzenetet teszi közzé. A ROS -t széles körben használják a robotikában, Futtassa az első példát
A „hello world” megfelelője a ROS -nak abból áll, hogy robotját távvezérli a távoli számítógépen keresztül. Amit szeretne, az az, hogy sebességparancsokat küld a motorok forgatásához, a parancsok ezt a csövet követik:
- a turtlebot_teleop csomópont, amely a távoli számítógépen fut, tegyen közzé egy "/cmd_vel" témát, beleértve a Twist üzenetet
- ezt az üzenetet az ROS üzenetek hálózatán keresztül továbbítja az SBC -hez
- soros csomópont lehetővé teszi a "/cmd_vel" fogadását az Arduino -n
- az Arduino elolvassa az üzenetet, és beállítja a szögsebességet minden motoron, hogy megfeleljen a robot kívánt lineáris és szögsebességének
Ez a művelet egyszerű, és a fent felsorolt parancssorok futtatásával érhető el! Ha részletesebb információra van szüksége, nézze meg a videót.
[SBC]
roscore
[SBC]
rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200
[Távoli számítógép]
export TURTLEBOT3_MODEL = $ {TB3_MODEL}
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
Továbbmenni
Tudnia kell egy utolsó dolgot, mielőtt kipróbálná az összes hivatalos példát, a kézikönyvben minden alkalommal, amikor ezzel a paranccsal szembesül:
roslaunch turtlebot3_bringup turtlebot3_robot.launch
ezt a parancsot kell futtatnia az SBC -n:
rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200
Ha pedig LIDAR futtatja a hozzá tartozó parancsot az SBC -n, az én esetemben egy LDS01 -et futtatok az alábbi sorral:
roslaunch hls_lfcd_lds_driver hlds_laser.launch
És ennyi, végérvényesen felépítette saját teknősbotját:) Készen áll arra, hogy felfedezze a ROS fantasztikus képességeit, és kódolja a látást és a gépi tanulási algoritmusokat.
Ajánlott:
Építsd meg saját DYI felhő lámpádat !: 13 lépés
Készítse el saját DYI felhő lámpáját !: Miért építsen felhőlámpát? Mert fantasztikusan néz ki! Legalábbis ezt mondják az emberek … Hé! A nevem Erick. Ez a projekt akkor jött létre, amikor a 3 éves húgomnak adandó ajándékokat fontolgattam. A felhő lámpa egyszerre dekoráció és fény
Otto DIY - Építsd meg saját robotodat egy óra alatt!: 9 lépés (képekkel)
Otto DIY - Építsd meg saját robotodat egy óra alatt !: Otto egy interaktív robot, amelyet bárki elkészíthet! hatástanulmány, hogy befogadó környezetet teremtsen mindenki számára
Építsd meg saját PCB buboréktartályodat !: 3 lépés
Építsd meg saját PCB buboréktartályodat !: Utasítások a saját buboréktartály felépítéséhez mindazon házilag készített PCB -k maratásához, amelyeket mindig is szerettél volna elkészíteni
Építsd meg saját elektromos gitárodat!: 8 lépés (képekkel)
Építsd meg saját elektromos gitárodat !: Néztél már gitárt, és azon tűnődtél: "Hogyan csinálják ezt?" Vagy azt gondolta magában: "Fogadok, hogy saját gitárt építhetek", de valójában soha nem próbálta ki? Számos elektromos gitárt építettem az évek során, kipróbálás és
Építsd meg saját inasrobotodat !!! - Oktatóanyag, fotók és videó: 58 lépés (képekkel)
Építsd meg saját inasrobotodat !!! - Oktatóanyag, fotók és videó: SZERKESZTÉS: További információk a projektjeimről az új webhelyemen: narobo.com. Robotika, mechatronika és speciális effektus projektek/termékek tanácsadásával is foglalkozom. Nézze meg a webhelyemet - narobo.com további részletekért. Mindig is akart egy komornyik robotot, aki beszél veled