Obsah:
- Zásoby
- Krok 1: Popis
- Krok 2: Sestava bloku motoru
- Krok 3: Přepínače a příprava kabelu
- Krok 4: Zapojení elektronických desek
- Krok 5: Motorová skupina a Arduino ve spodní vrstvě
- Krok 6: Jednodeskový počítač a senzory na horní vrstvě
- Krok 7: Přesuňte se
Video: Sestavte si vlastního robota Turtlebot!: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
UPRAVIT:
Další informace týkající se softwaru a ovládání jsou k dispozici na tomto odkazu:
hackaday.io/project/167074-build-your-own-turtlebot-3-backbone
Přímý odkaz na kód je:
github.com/MattMgn/foxbot_core
Proč tento projekt?
Turtlebot 3 je perfektní platformou pro hloubku elektroniky, robotiky a dokonce i AI! Navrhuji, abyste si krok za krokem vytvořili vlastní turtlebot s cenově dostupnými komponenty, aniž byste obětovali funkce a výkon. S jednou věcí na paměti: udržet to nejlepší z počátečního robota, jeho modularitu, jednoduchost a obrovské množství balíků pro autonomní navigaci a AI z open-source komunity.
Tento projekt je příležitostí pro začátečníky získat představy o elektronice, mechanice a počítačových vědách a pro zkušenější získat výkonnou platformu pro testování a vývoj algoritmů umělé inteligence.
Co v tomto projektu objevíte?
Chystáte se zjistit, které základní mechanické a elektronické části musí být uchovávány u původního robota, aby byla zaručena úplná kompatibilita.
Celý proces sestavení bude podrobný: od tisku 3D dílů, montáže a několika komponent, pájení a integrace elektroniky až po kompilaci kódu na Arduinu. Tento návod bude zakončen příkladem „ahoj světa“, který vás seznámí s ROS. Pokud se vám zdá něco nejasného, klidně se ptejte!
Zásoby
Elektronika:
1 x jednodeskový počítač pro běh ROS, může to být například Raspberry Pi nebo Jetson Nano
1 x Arduino DUE, můžete také použít UNO nebo MEGA
Zde je k dispozici 1 x proto deska, která vyhovuje pin-out Arduino DUE
2 x 12V stejnosměrné motory s kodéry (možnost 100 ot / min)
1 x ovladač motoru L298N
2 x 5V regulátor
1 x baterie (například 3S/4S LiPo baterie)
2 x přepínače ON/OFF
2 x LED
2 x 470 kOhm rezistory
3 x 4 piny JST konektory
1 x kabel USB (alespoň jeden mezi SBC a Arduino)
Senzory:
1 x proudový senzor (volitelně)
1 x 9 stupňů svobody IMU (volitelně)
1 x LIDAR (volitelně)
Podvozek:
16 x modulární desky Turtlebot (které lze také vytisknout 3D)
2 x kolečka o průměru 65 mm (možnost šířky 6 mm)
4 x nylonové podložky 30 mm (volitelně)
20 x vložky M3 (volitelně)
Ostatní:
Dráty
Šrouby a vložky M2,5 a M3
3D tiskárna nebo někdo, kdo vám může díly vytisknout
Ruční vrtačka se sadou vrtáků, jako je tato
Krok 1: Popis
Tento robot je jednoduchý diferenciální pohon, který využívá 2 kola přímo namontovaná na jejich motoru a kolečko, které je umístěno vzadu, aby se robot nepřevrátil. Robot je rozdělen do dvou vrstev:
spodní vrstva: se skupinou pohonu (baterie, ovladač motoru a motory) a elektronikou „nízké úrovně“: mikrokontrolér Arduino, regulátor napětí, spínače …
horní vrstva: s „vysokou úrovní“elektroniky, konkrétně s jednodeskovým počítačem a LIDARem
Tyto vrstvy jsou spojeny tištěnými částmi a šrouby, aby byla zajištěna robustnost konstrukce.
Elektronické schéma
Schéma může vypadat trochu chaoticky. Je to schematický nákres a nereprezentuje všechny vodiče, konektory a proto desku, ale lze jej číst následovně:
3S Litihum iontová polymerová baterie s kapacitou 3000 mAh napájí první obvod, napájí jak desku řadiče motoru (L298N), tak první 5V regulátor pro enkodéry motoru a Arduino. Tento obvod je aktivován spínačem s LED diodou, která indikuje jeho stav ON/OFF.
Stejná baterie napájí druhý obvod, vstupní napětí je převedeno na 5 V pro napájení jednodeskového počítače. Zde je také obvod povolen pomocí spínače a LED.
Další senzory jako LIDAR nebo kameru pak lze přidat přímo na Raspberry Pi přes USB nebo CSI port.
Mechanické provedení
Rám robota se skládá ze 16 identických částí, které tvořily 2 čtvercové vrstvy (šířka 28 cm). Mnoho otvorů umožňuje namontovat další díly kamkoli potřebujete a nabízí kompletní modulární design. Pro tento projekt jsem se rozhodl získat originály desek TurtleBot3, ale můžete je také vytisknout 3D, protože jejich design je open source.
Krok 2: Sestava bloku motoru
Příprava motoru
Prvním krokem je přidání 1 mm silné pěnové pásky kolem každého motoru, aby se zabránilo vibracím a hluku při otáčení motoru.
Tištěné díly
Výsledkem držáku motoru jsou dvě části, které drží motor jako svěrák. K utažení motoru v držáku byly dosaženy 4 šrouby.
Každý držák se skládá z několika otvorů, ve kterých jsou vložky M3, které mají být namontovány na konstrukci. Existuje více otvorů, než je ve skutečnosti potřeba, další otvory by nakonec mohly být použity k montáži dalšího dílu.
Nastavení 3D tiskárny: všechny součásti jsou vytištěny s následujícími parametry
- Tryska o průměru 0,4 mm
- 15% výplň materiálu
- 0,2 mm vysoká vrstva
Kolo
Vybraná kola jsou potažena gumou, aby se maximalizovala přilnavost a zajistily neklouzavé podmínky. Upínací šroub udržuje kolo namontované na hřídeli motoru. Průměr kola by měl být dostatečně velký, aby překonal drobné nerovnosti a nerovnosti terénu (tato kola mají průměr 65 mm).
Fixace
Až budete hotovi s jedním blokem motoru, zopakujte předchozí operace a poté je jednoduše zafixujte do vrstvy pomocí šroubů M3.
Krok 3: Přepínače a příprava kabelu
Příprava kabelu motoru
Motorový kodér je obvykle dodáván s kabelem, který obsahuje na jedné straně 6pinový konektor, který spojuje zadní stranu desky plošných spojů kodéru, a nahé vodiče na druhé straně.
Máte možnost je přímo pájet na protokolové desce nebo dokonce na Arduinu, ale doporučuji místo toho použít zásuvkové kolíkové konektory a konektory JST-XH. Můžete je tedy zapojit/odpojit na protokolové desce a usnadnit si tak montáž.
Tipy: kolem vodičů můžete přidat roztažitelné opletení a v blízkosti konektorů kousky smršťovací bužírky, čímž získáte „čistý“kabel.
Přepínač a LED
Chcete -li povolit dva napájecí obvody, připravte si 2 LED a spínací kabely: nejprve připájejte odpor 470 kOhm na jeden z LED kolíků, poté pájejte LED na jeden spínací kolík. Zde také můžete použít kousek smršťovací trubice a skrýt odpor uvnitř. Buďte opatrní při pájení LED ve správném směru! Opakováním této operace získáte dva kabely přepínačů/LED.
Shromáždění
Sestavte dříve vyrobené kabely na odpovídající 3D tištěný díl. Přepínač udržujte pomocí matice, LED diody nevyžadují lepidlo, stačí použít dostatečnou sílu, aby se vešly do otvoru.
Krok 4: Zapojení elektronických desek
Rozložení desek
Ke snížení počtu vodičů se používá proto deska, která odpovídá rozvržení desky Arduino. Na horní straně proto desky je L298N naskládán se samičí hlavičkou Dupont (Dupont jsou záhlaví typu „Arduino“).
Příprava L298N
Deska L298N původně nebyla dodávána s odpovídajícím samčím Dupont záhlavím, pod desku je třeba přidat řádek s 9 piny. Musíte vidět 9 otvorů s vrtákem o průměru 1 mm paralelně se stávajícími otvory, jak vidíte na obrázku. Poté propojte odpovídající kolíky 2 řad s pájecími materiály a krátkými dráty.
L298N pin-out
L298N se skládá ze 2 kanálů umožňujících ovládání rychlosti a směru:
směr přes 2 digitální výstupy, nazývané IN1, IN2 pro první kanál a IN3 a IN4 pro druhý
rychlost přes 1 digitální výstup, nazývaný ENA pro první kanál a ENB pro druhý
Pro Arduino jsem zvolil následující pin-out:
levý motor: IN1 na pinu 3, IN2 na pinu 4, ENA na pinu 2
pravý motor: IN3 na pinu 5, IN4 na pinu 6, ENB na pinu 7
5V regulátor
I když je l298N normálně schopen poskytovat 5V, stále přidávám malý regulátor. Napájí Arduino přes VIN port a 2 kodéry na motorech. Tento krok můžete přeskočit přímo pomocí vestavěného regulátoru L298N 5V.
Konektory JST a pinový výstup kodéru
Použijte 4pinové adaptéry konektoru JST-XH, každý konektor je poté propojen s:
- 5V z regulátoru
- zem
- dva digitální vstupní porty (například: 34 a 38 pro pravý kodér a 26 a 30 pro levý)
Extra I2C
Jak jste si možná všimli, na proto-board je další 4pin JST konektor. Slouží k připojení zařízení I2C jako IMU, můžete udělat totéž a dokonce přidat vlastní port.
Krok 5: Motorová skupina a Arduino ve spodní vrstvě
Upevnění bloků motoru
Jakmile je spodní vrstva smontována s 8 destičkami Turtlebot, jednoduše použijte 4 šrouby M3 přímo v vložkách k údržbě bloků motoru. Poté můžete zapojit napájecí vodiče motoru do výstupů L298N a dříve vyrobené kabely do konektorů JST na desce proto.
Distribuce energie
Distribuce energie je jednoduše realizována s bariérovou svorkovnicí. Na jedné straně bariéry je přišroubován kabel s vidlicí XT60 pro připojení k LiPo baterii. Na druhé straně jsou naše dva dříve připájené kabely LED/spínače přišroubovány. Každý obvod (motor a Arduino) tak mohl být aktivován vlastním spínačem a odpovídající zelenou LED.
Správa kabelů
Rychle se budete muset vypořádat s mnoha kabely! Chcete -li omezit chaotický vzhled, můžete použít „tabulku“, která byla dříve vytištěna na 3D obrazovce. Na stole udržujte své elektronické desky oboustrannou páskou a pod stolem nechte vodiče volně protékat.
Údržba baterie
Abyste se vyhnuli vysunutí baterie při řízení robota, můžete jednoduše použít gumičku do vlasů.
Válečkové kolečko
Ne opravdu válečkové kolo, ale jednoduchá poloviční koule upevněná 4 šrouby na spodní vrstvě. Stačí to k zajištění stability robota.
Krok 6: Jednodeskový počítač a senzory na horní vrstvě
Který jednodeskový počítač si vybrat?
Nepotřebuji vám představovat slavný Raspberry Pi, jeho počet případů použití do značné míry přesahuje pole robotiky. Ale pro Raspberry Pi existuje mnohem silnější vyzyvatel, kterého byste mohli ignorovat. Jetson Nano od společnosti Nvidia ve skutečnosti kromě procesoru obsahuje také výkonnou 128jádrovou grafickou kartu. Tato konkrétní grafická karta byla vyvinuta s cílem urychlit výpočetně náročné úlohy, jako je zpracování obrazu nebo odvození neuronové sítě.
Pro tento projekt jsem vybral Jetson Nano a mezi připojenými soubory najdete odpovídající 3D část, ale pokud chcete jít s Raspberry Pi, je zde mnoho potisknutelných pouzder.
5V regulátor
Ať už jste se rozhodli přinést na svého robota jakoukoli desku, potřebujete 5V regulátor. Nejnovější Raspberry Pi 4 vyžaduje max. 1,25 A, ale Jetson Nano vyžaduje na napětí až 3 A, takže jsem se rozhodl pro Pololu 5V 6A, aby měl rezervu napájení pro budoucí komponenty (senzory, světla, steppery …), ale každý levný 5V 2A by měl stačit práce. Jetson používá 5,5 mm DC barel a Pi micro USB, uchopte odpovídající kabel a připájejte jej k výstupu regulátoru.
Rozložení LIDAR
Zde je použit LIDAR LDS-01, existují různé další 2D LIDAR, které lze použít jako RPLidar A1/A2/A3, YDLidar X4/G4 nebo dokonce Hokuyo LIDAR. Jediným požadavkem je, že musí být připojen přes USB a umístěn uprostřed nad strukturou. Pokud LIDAR není dobře vystředěn, mapa vytvořená algoritmem SLAM může posunout odhadovanou polohu stěn a překážek ze své skutečné polohy. Také pokud překážky robota překročí laserový paprsek, sníží dosah a zorné pole.
Montáž LIDAR
LIDAR je upevněn na 3D tištěné části, která sleduje svůj tvar, samotná část je držena na obdélníkové desce (ve skutečnosti v překližce na obrázku, ale může být také vytištěna 3D). Poté část adaptéru umožňuje upevnění sestavy na horní desku želvy pomocí nylonových rozpěr.
Fotoaparát jako přídavný snímač nebo náhrada LIDAR
Pokud nechcete utrácet příliš mnoho peněz za LIDAR (který stojí kolem 100 $), jděte na kameru: existují také algoritmy SLAM, které běží pouze s monokulární kamerou RGB. Oba SBC přijímají USB nebo CSI kameru.
Kamera vám navíc umožní spouštět skripty pro počítačové vidění a detekci objektů!
Shromáždění
Před zavřením robota protáhněte kabely většími otvory v horní desce:
- odpovídající kabel z 5V regulátoru do vašeho SBC
- kabel USB z programovacího portu Arduino DUE (nejblíže k DC barelu) k USB portu vašeho SBC
Poté přidržte horní desku na místě pomocí tuctu šroubů. Váš robot je nyní připraven k programování, DOBŘE HOTOVO!
Krok 7: Přesuňte se
Zkompilovat Arduino
Otevřete své oblíbené Arduino IDE a importujte složku projektu s názvem own_turtlebot_core, poté vyberte svou desku a odpovídající port, můžete se podívat na tento vynikající tutoriál.
Upravte základní nastavení
Projekt se skládá ze dvou souborů a jeden je třeba přizpůsobit vašemu robotovi. Pojďme tedy otevřít own_turtlebot_config.h a zjistit, které řádky vyžadují naši pozornost:
#define ARDUINO_DUE // ** KOMENTUJTE TENTO ŘÁDEK, POKUD NEPOUŽÍVÁTE DOBU **
Měl by být použit pouze s Arduino DUE, pokud nekomentujte řádek.
#define RATE_CONTROLLER_KP 130,0 // ** TUNE TUTO HODNOTU **
#define RATE_CONTROLLER_KD 5000000000000.0 // ** TUNE THIS VALUE ** #define RATE_CONTROLLER_KI 0.00005 // ** TUNE THIS VALUE **
Tyto 3 parametry odpovídají ziskům regulátoru rychlosti používaným PID k udržení požadované rychlosti. V závislosti na napětí baterie, hmotnosti robota, průměru kola a mechanickém převodu vašeho motoru budete muset upravit jejich hodnoty. PID je klasický řadič a nebudete zde podrobně popsáni, ale tento odkaz by vám měl poskytnout dostatek vstupů k vyladění vašeho vlastního.
/ * Definujte piny */
// motor A (vpravo) const byte motorRightEncoderPinA = 38; // ** ZMĚNIT SVÝM PINEM ** konstantní bajt motorRightEncoderPinB = 34; // ** ZMĚNIT SVÝM PINEM ** ** konstantní bajt enMotorRight = 2; // ** ZMĚNIT SVÝM PINEM ** ** bajt in1MotorRight = 4; // ** ZMĚNIT SVÝM PINEM ** ** bajt in2MotorRight = 3; // ** ZMĚNIT SVÝM PINEM NB ** // motor B (vlevo) const byte motorLeftEncoderPinA = 26; // ** ZMĚNIT SVÝM PINEM ** konstantní byte motorLeftEncoderPinB = 30; // ** ZMĚNIT SVÝM PINEM ** konstantní bajt enMotorLeft = 7; // ** ZMĚNIT SVÝM PINEM ** ** bajt in1MotorLeft = 6; // ** ZMĚNIT SVÝM PINEM ** ** bajt in2MotorLeft = 5; // ** ZMĚNIT SVÝM PINEM **
Tento blok definuje pinout mezi L298N a Arduino, jednoduše upravte číslo PIN tak, aby odpovídalo vašemu. Až budete hotovi s konfiguračním souborem, zkompilujte a nahrajte kód!
Nainstalujte a nakonfigurujte ROS
Jakmile dosáhnete tohoto kroku, pokyny jsou přesně stejné jako ty, které jsou popsány ve skvělé příručce TurtleBot3, musíte je pečlivě dodržovat
dobře udělaný TurtleBot 3 je nyní váš a můžete spustit všechny stávající balíčky a návody s ROS.
Dobře, ale co je ROS?
ROS je zkratka pro Robots Operating System, na první pohled se to může zdát docela složité, ale není, jen si představte způsob komunikace mezi hardwarem (senzory a akční členy) a softwarem (navigační, řídicí, počítačové vidění …). Například můžete snadno vyměnit aktuální LIDAR za jiný model, aniž byste museli přerušit nastavení, protože každý LIDAR publikoval stejnou zprávu LaserScan. ROS je široce používán v robotice, Spusťte svůj první příklad
Ekvivalent „ahoj světa“pro ROS spočívá v teleoperaci vašeho robota prostřednictvím vzdáleného počítače. To, co chcete udělat, je poslat příkazy rychlosti, aby se motory roztočily, příkazy se řídí tímto potrubím:
- uzel turtlebot_teleop běžící na vzdáleném počítači a publikuje téma „/cmd_vel“včetně zprávy Twist
- tato zpráva je přeposlána přes síť zpráv ROS do SBC
- sériový uzel umožňuje příjem „/cmd_vel“na Arduino
- Arduino přečte zprávu a nastaví úhlovou rychlost na každém motoru tak, aby odpovídala požadované lineární a úhlové rychlosti robota
Tato operace je jednoduchá a lze ji dosáhnout spuštěním výše uvedených příkazových řádků! Pokud chcete podrobnější informace, stačí se podívat na video.
[SBC]
roscore
[SBC]
rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200
[Vzdálený počítač]
exportovat TURTLEBOT3_MODEL = $ {TB3_MODEL}
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
Jít dál
Než vyzkoušíte všechny oficiální příklady v manuálu pokaždé, když narazíte na tento příkaz, musíte vědět poslední věc:
roslaunch turtlebot3_bringup turtlebot3_robot.launch
místo toho musíte na SBC spustit tento příkaz:
rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200
A pokud máte LIDAR, spusťte související příkaz na vašem SBC, v mém případě spustím LDS01 s níže uvedeným řádkem:
roslaunch hls_lfcd_lds_driver hlds_laser.launch
A to je vše, s konečnou platností jste si vytvořili vlastní želvovinu:) Jste připraveni objevit fantastické schopnosti ROS a kódovat algoritmy vidění a strojového učení.
Doporučuje:
Vytvořte robota ovládaného Bluetooth pomocí vlastního GUI: 5 kroků
Vytvořte robota ovládaného Bluetooth pomocí vlastního grafického uživatelského rozhraní: Dobrý den, přátelé, poté, co jste dnes představili nějaký řemeslný projekt, jsem zde přišel se skvělým arduino projektem. Externě to vypadá jako starý koncept, ale počkejte, tady mám nějaký zvrat, díky kterému je tento projekt jedinečný. Co je zde tedy jedinečné? Takže zde vám ukážu
Otto DIY - Sestavte si svého vlastního robota za jednu hodinu!: 9 kroků (s obrázky)
Otto DIY - Sestavte si svého vlastního robota za jednu hodinu !: Otto je interaktivní robot, kterého může každý dosáhnout !, Otto chodí, tančí, vydává zvuky a vyhýbá se překážkám. Otto je zcela otevřený zdroj, kompatibilní s Arduino, 3D tisk a se sociální sítí dopadová mise k vytvoření inkluzivního prostředí pro všechny
Sestavte si svého vlastního asistenta umělé inteligence (101: 10 kroků)
Vybudujte si vlastního asistenta umělé inteligence 101: Pamatujete si dobu, kdy jste sledovali Iron Mana a říkali si, jak by to bylo skvělé, kdybyste měli vlastní J.A.R.V.I.S? Je načase, aby se tento sen stal skutečností. Umělá inteligence je další gen. Představte si, jak by to bylo cool
Vytvořte si vlastního 360 ° panoramatického fotografického robota: 5 kroků
Vytvořte si vlastního 360 ° panoramatického fotografického robota: toto je můj 360 ° panoramatický fotografický robot. Myšlenka je fotografování v 360 stupních v co nejkratším čase bez chyb, pořizování panoramatických snímků v náročných podmínkách a zábava!. Tento projekt zaberu 1 měsíc a implementuji vylepšení a používám pa
Sestavte si svého vlastního komorníka !!! - Tutorial, Photos, and Video: 58 Steps (with Pictures)
Sestavte si svého vlastního komorníka !!! - Výukový program, fotografie a video: ÚPRAVA: Další informace o mých projektech naleznete na mém novém webu: narobo.com. Provádím také poradenství v oblasti projektů/produktů v oblasti robotiky, mechatroniky a speciálních efektů. Další podrobnosti najdete na mém webu - narobo.com. Vždy jste chtěli komorníka, který s vámi mluví