Obsah:
- Krok 1: Zostavenie vozidla
- Krok 2: Montáž motorov
- Krok 3: Vytvorenie návrhu bloku Vivado
- Krok 4: Komunikácia s LiDAR
- Krok 5: Osídlenie siete s prekážkami
- Krok 6: Komunikácia s motormi
- Krok 7: Plánovanie cesty
Video: Autonómne vozidlo: 7 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:01
Tento projekt je autonómne navigujúci robot, ktorý sa pokúša dosiahnuť svoju cieľovú pozíciu a vyhýbať sa prekážkam na ceste. Robot bude vybavený senzorom LiDAR, ktorý bude slúžiť na detekciu predmetov v jeho okolí. Keď sú objekty detekované a robot sa pohybuje, aktualizuje sa mapa v reálnom čase. Mapa sa použije na uloženie umiestnení prekážok, ktoré boli identifikované. Robot sa tak nebude pokúšať znova pokaziť cestu do cieľovej polohy. Namiesto toho sa pokúsi o cesty, ktoré buď nemajú prekážky, alebo o cesty, ktoré ešte neboli skontrolované.
Robot sa bude pohybovať dvoma kolesami poháňanými jednosmerným motorom a dvoma kolieskami. Motory budú pripevnené k spodnej časti kruhovej plošiny. Motory budú ovládať dvaja vodiči motorov. Ovládače motora budú dostávať príkazy PWM z procesora Zynq. Kodéry na každom motore sa používajú na sledovanie polohy a orientácie vozidla. Celý systém bude napájaný batériou LiPo.
Krok 1: Zostavenie vozidla
Robot je poháňaný dvoma motormi pripevnenými k bočným kolesám a potom je navyše podopretý dvoma kolieskami, jedným vpredu a druhým vzadu. Držiaky platformy a motora boli vyrobené z hliníkového plechu. Bol zakúpený náboj motora na pripevnenie kolies k motoru. Bolo však potrebné vyrobiť vlastnú medziľahlú spojku, pretože vzor otvorov náboja bol odlišný od vzoru otvorov kolesa.
Vybraným motorom bol 12 V jednosmerný motor Port Escap so vstavanými kodérmi. Tento motor je možné kúpiť na ebay za veľmi rozumnú cenu (pozri kusovník). Hľadajte kľúčové slová „12V Escap 16 bezjadrový prevodový motor s kodérmi“na ebay a nájdite motor. Na výber je zvyčajne slušné množstvo predajcov. Špecifikácie a vývody motorov sú uvedené na obrázkoch nižšie.
Montáž robota sa začala návrhom modelu CAD podvozku. Nasledujúci model zobrazuje pohľad zhora na 2D tvarový profil určený pre podvozok.
Navrhuje sa, aby bol podvozok navrhnutý ako 2D profil, aby sa dal ľahko vyrábať. Plát hliníka s rozmermi 12”x12” sme vyrezali do tvaru šasi pomocou rezačky vodného lúča. Podvozkovú platformu bolo možné rezať aj pásovou pílou.
Krok 2: Montáž motorov
Ďalším krokom je výroba držiakov motora. Odporúčame, aby boli držiaky motora vyrobené z 90-stupňového hliníkového plechu. Pomocou tejto časti je možné motor pomocou dvoch pripevniť na jednu stranu plechu konzolou
Otvory M2 motora a druhú stranu je možné priskrutkovať k platforme. Do držiaka motora je potrebné vyvŕtať otvory, aby bolo možné pomocou skrutiek pripevniť motor na držiak motora a držiak motora na plošinu. Uchytenie motora je možné vidieť na obrázku vyššie.
Potom sa na hriadeľ motora umiestni motorový náboj Pololu (pozri zoznam materiálov) a utiahne sa dodanou nastavovacou skrutkou a imbusovým kľúčom. Vzorec otvorov v náboji motora Pololu sa nezhoduje so vzorom otvoru v kolese VEX, preto je potrebné vytvoriť vlastnú medziľahlú spojku. Navrhuje sa, aby sa na výrobu spojky použil šrot z hliníka použitého na výrobu podvozkovej platformy. Vzor dier a rozmery tejto dvojice sú znázornené na obrázku nižšie. Vonkajší priemer a tvar (nemusí byť kruh) vlastnej hliníkovej spojky nezáleží, pokiaľ všetky diely zapadnú do súčiastky.
Krok 3: Vytvorenie návrhu bloku Vivado
- Začnite vytvorením nového projektu Vivado a ako cieľové zariadenie vyberte Zybo Zynq 7000 Z010.
- Potom kliknite na vytvoriť nový dizajn bloku a pridajte Zynq IP. Dvakrát kliknite na Zynq IP a importujte poskytnuté nastavenia XPS pre Zynq. Potom povoľte UART0 pomocou MIO 10..11 na karte Konfigurácie MIO a tiež sa uistite, že je povolený časovač 0 a časovač Watchdog.
- Pridajte do návrhu bloku dva AXI GPIOS. Pre GPIO 0 povoľte dvojkanálový a nastavte oba na všetky výstupy. Nastavte šírku GPIO pre kanál 1 až 4 bity a pre kanál 2 až 12 bitov, tieto kanály budú použité na nastavenie smeru motora a odoslanie množstva tikotov, ktoré kodér meria do procesora. Pre GPIO 1 nastavte iba jeden kanál na všetky vstupy so šírkou kanála 4 bity. Toto bude použité na príjem údajov z kodérov. Vykonajte všetky porty GPIO externé.
- Ďalej Pridajte dva časovače AXI. Vykonajte externé porty pwm0 na oboch časovačoch. Budú to pwms, ktoré riadia rýchlosť, ktorou sa motory otáčajú.
- Nakoniec spustite automatizáciu blokov a automatizáciu pripojení. Skontrolujte, či sa dizajn bloku, ktorý máte, zhoduje s uvedeným.
Krok 4: Komunikácia s LiDAR
Tento LiDAR používa na komunikáciu prostredníctvom UART protokol SCIP 2.0, priložený súbor popisuje celý protokol.
Na komunikáciu s LiDAR budeme používať UART0. LiDAR vráti 682 dátových bodov, z ktorých každý predstavuje vzdialenosť k objektu v tomto uhle. LiDAR skenuje proti smeru hodinových ručičiek od -30 stupňov do 210 stupňov s krokom 0,351 stupňa.
- Všetka komunikácia s LiDAR prebieha pomocou znakov ASCI, použitý formát nájdete v protokole SCIP. Začneme odoslaním príkazu QT na zapnutie LiDAR. Potom niekoľkokrát pošleme príkaz GS so žiadosťou o 18 dátových bodov naraz na ft v 64 bajtovom FIFO UARTS. Dáta vrátené z LiDAR sa potom analyzujú a uložia do globálneho poľa SCANdata.
- Každý uložený dátový bod má 2 bajty kódovaných údajov. Prenesením týchto údajov do dekodéra sa vráti vzdialenosť v milimetroch.
V súbore main_av.c nájdete nasledujúce funkcie na komunikáciu s LiDAR
sendLIDARcmd (príkaz)
- To odošle vstupný reťazec do LiDAR prostredníctvom UART0
recvLIDARdata ()
- To bude prijímať údaje po odoslaní príkazu na LiDAR a uložiť údaje do RECBuffer
requestDistanceData ()
- Táto funkcia odošle sériu príkazov na získanie všetkých 682 dátových bodov. Po prijatí každej sady 18 dátových bodov sa zavolá parseLIDARinput () na analýzu údajov a prírastkové ukladanie dátových bodov do SCANdata.
Krok 5: Osídlenie siete s prekážkami
Uložená mriežka je 2D pole s každou hodnotou indexu predstavujúcou umiestnenie. Údaje uložené v každom indexe sú buď 0, alebo 1, žiadna prekážka alebo prekážka. Štvorcovú vzdialenosť v milimetroch, ktorú každý index predstavuje, je možné zmeniť pomocou definície GRID_SCALE v súbore Vehicle.h. Veľkosť 2D poľa sa môže tiež meniť, aby umožnilo vozidlu skenovať väčšiu oblasť úpravou definície GRID_SIZE.
Po naskenovaní novej sady údajov o vzdialenosti z LiDAR sa vyvolá aktualizácia Grid (). Toto bude prechádzať každým dátovým bodom uloženým v poli SCANdata, aby sa určilo, ktoré indexy v mriežke majú prekážky. Pomocou aktuálnej orientácie vozidla môžeme určiť uhol, ktorý zodpovedá každému dátovému bodu. Aby ste určili, kde je prekážka, jednoducho vynásobte zodpovedajúcu vzdialenosť cos/sin uhla. Sčítanie týchto dvoch hodnôt do aktuálnej polohy x a y vozidla vráti index v mriežke prekážky. Rozdelenie vzdialenosti vrátenej touto operáciou pomocou GRID_SCALE nám umožní zmeniť, aká veľká je štvorcová vzdialenosť každého indexu.
Vyššie uvedené obrázky zobrazujú aktuálne prostredie vozidla a výslednú mriežku.
Krok 6: Komunikácia s motormi
Ak chcete komunikovať s motormi, začnite inicializáciou GPIO na ovládanie v smere otáčania motora. Potom zápis priamo na základnú adresu PWM v časovači AXI nám umožňuje nastaviť veci, ako je obdobie a pracovný cyklus, ktoré priamo riadia rýchlosť, ktorou sa motor otáča.
Krok 7: Plánovanie cesty
Bude implementovaný v blízkej budúcnosti.
Použitím predtým popísanej mriežkovej a motorickej funkcie je veľmi ľahké implementovať algoritmy ako A*. Keď sa vozidlo pohybuje, bude naďalej skenovať okolitú oblasť a zisťovať, či je cesta, na ktorej sa nachádza, stále platná
Odporúča:
Autonómne auto na udržiavanie v jazdnom pruhu s použitím Raspberry Pi a OpenCV: 7 krokov (s obrázkami)
Autonómne auto na udržiavanie v jazdnom pruhu s použitím Raspberry Pi a OpenCV: V tomto návode bude implementovaný autonómny robot na udržiavanie v jazdnom pruhu, ktorý prejde týmito krokmi: Zhromažďovanie súčiastok Inštalácia softvérových predpokladov Zostava hardvéru Prvý test Detekcia línií jazdných pruhov a zobrazenie sprievodcu
TripComputer - GPS palubný počítač a meteorologický modul pre vaše vozidlo: 11 krokov (s obrázkami)
TripComputer - GPS palubný počítač a modul predpovedí počasia pre vaše vozidlo: Chladný projekt maliny pi, ktorý používa modul GPS Breakout a 2 malé displeje Digole, aby mal na palubnej doske navigačný počítač
DIY samovyrovnávacie jednokolesové vozidlo: 8 krokov (s obrázkami)
DIY samovyrovnávacie jednokolesové vozidlo: Zaujíma vás niektorý z trendov produktov s vlastným vyvažovaním, ako sú segway a solowheel.yes, môžete ísť kamkoľvek bez toho, aby ste sa unavovali. ale je skvelé, ak to môžeš mať aj sám. Tak poďme to postaviť
KEVIN úplné autonómne vozidlo: 17 krokov (s obrázkami)
KEVIN úplné autonómne vozidlo: Toto je Kevin. Je to rádiom riadené auto so schopnosťou vykonávať úplnú autonómnu jazdu. Mojím prvým cieľom bolo nechať autonómne vozidlo ovládať Arduino. Kúpil som si teda lacný čínsky podvozok. Ale bolo to hrozné, pretože som nebol schopný pripojiť žiadne c
Autonómne riadenie otáčok motora pomocou systému spätnej väzby z tachometra založeného na infračervenom žiarení: 5 krokov (s obrázkami)
Autonómne riadenie otáčok motora pomocou systému spätnej väzby z tachometra založeného na infračervenom žiarení: Vždy je potrebné automatizovať proces, či už je to jednoduchý/monštruózny. Dostal som nápad urobiť tento projekt z jednoduchej výzvy, s ktorou som sa stretol pri hľadaní metódy na polievanie/zavlažovanie nášho malého kúska zeme. Problém nedostatku súčasného prívodného vedenia