Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Av dvillevaldMy GithubFølg Om: Jeg liker AI og maskinlæringsapplikasjoner, spesielt innen robotikk Mer om dvillevald »
Lær roboten din å finne en bane i en labyrint av trafikkjegler ved hjelp av kameraet og den toppmoderne dype læringsmodellen.
Rekvisita
-
NVIDIA JetBot
NVIDIA JetBot Wiki's Bill of Materials -side viser alt du trenger for å bygge JetBot, sammen med kjøp av lenker fra populære leverandører
-
Datamaskin med NVIDIA GPU
Nødvendig for å trene modellen
- BlueDot Trading 4”RC Racing Agility -kjegler, oransje - sett med 20 stk
Trinn 1: Motivasjon
Hver gang jeg kjører i sammentrekningsområdet, tenker jeg på hvor utfordrende det ville være for en selvkjørende bil å navigere gjennom trafikkjeglene. Det viser seg at det ikke er så vanskelig med nye NVIDIAs JetBot-med bare et par hundre bilder kan du trene en toppmoderne dyplæringsmodell for å lære roboten din hvordan du finner en bane i en labyrint av leke-trafikkjegler kun ved hjelp av det innebygde kameraet og ingen andre sensorer.
Trinn 2: Oversikt over NVIDIA JetBot og prosjekt
JetBot er en åpen kildekode-robot basert på NVIDIA Jetson Nano-sett. Du finner detaljerte instruksjoner om hvordan du bygger og konfigurerer det her.
Dette prosjektet er et modifisert kollisjonseksempel fra NVIDIA JetBot Wiki. Den består av tre hovedtrinn, hver beskrevet i en egen Jupyter -notatbok:
- Samle data på JetBot - notatbok data_collection_cones.ipynb
- Togmodell på en annen GPU -maskin - notatbok train_model_cones.ipynb
- Kjør live demo på JetBot - notatbok live_demo_cones.ipynb
Du finner disse tre Jupyter -notatbøkene her
Trinn 3: Bygg JetBot og last opp Jupyter Notebooks
- Bygg og konfigurer JetBot som forklart her
- Koble til roboten din ved å navigere til https://: 8888 Logg deg på med standard passord jetbot
- Slå av alle andre bærbare datamaskiner som kjører ved å velge Kernel -> Shutdown All Kernels …
- Naviger til ~/Notebooks/
- Opprett ny undermappe ~/Notebooks/traffic_cones_driving/
- Last opp data_collection_cones.ipynb og live_demo_cones.ipynb til ~/Notebooks/traffic_cones_driving/
VIKTIG: Jupyter -notatbøkene data_collection_cones.ipynb og live_demo_cones.ipynb som refereres til i denne instruksjonen, bør kjøres på JetBot mens train_model_cones.ipynb - på en datamaskin med GPU.
Derfor må vi laste opp data_collection_cones.ipynb og live_demo_cones.ipynb til JetBot og plassere dem i ~/Notebooks/traffic_cones_driving/
Trinn 4: Samle opplæringsdata på JetBot
Vi vil samle et datasett for bildeklassifisering som skal brukes til å hjelpe JetBot med å operere i en labyrint av trafikkjeglene. JetBot vil lære å estimere sannsynligheter for fire scenarier (klasser):
- Gratis - når det er trygt å gå videre
- Blokkert - når det er et hinder foran roboten
- Venstre - når roboten skal snurre til venstre
- Høyre - når roboten skal snurre til høyre
For å samle treningsdataene på JetBot bruker vi Jupyter notebook data_collection_cones.ipynb som inneholder detaljerte instruksjoner om hvordan du gjør det. Følg de neste trinnene for å kjøre denne notatblokken på JetBot:
- Koble til roboten din ved å navigere til https://: jetbot-ip-adresse:: 8888
- Logg på med standardpassordet jetbot
- Slå av alle andre bærbare datamaskiner som kjører ved å velge Kernel -> Shutdown All Kernels …
- Naviger til ~/Notebooks/traffic_cones_driving/
- Åpne og følg datamaskinen data_collection_cones.ipynb
Trinn 5: Tren nevrale nettverk på GPU -maskinen
Deretter vil vi bruke de innsamlede dataene til å trene dyplæringsmodellen AlexNet på nytt på GPU-maskin (vert) ved å kjøre train_model_cones.ipynb.
Vær oppmerksom på at train_model_cones.ipynb er den eneste Jupyter -notatboken i denne opplæringen som IKKE kjøres på JetBot
- Koble til en GPU -maskin med PyTorch installert og en Jupyter Lab -server kjører
- Last opp train_model_cones.ipynb notatbok og til denne maskinen
- Last opp dataset_cones.zip -filen du opprettet i data_collection_cones.ipynb -notatboken, og trekk ut dette datasettet. (Etter dette trinnet bør du se en mappe med navnet dataset_cones vises i filleseren.)
- Åpne og følg notatblokken train_model_cones.ipynb. På slutten av dette trinnet vil du lage en modell - filen best_model_cones.pth som deretter må lastes opp til JetBot for å kjøre live -demoen.
Trinn 6: Kjør Live Demo på JetBot
Dette siste trinnet er å laste opp modellen best_model_cones.pth til JetBot og kjøre den.
- Kjør roboten fra USB -batteripakken
- Koble tilbake til roboten din ved å navigere til https://: jetbot-ip-adresse:: 8888
- Logg på med standardpassordet jetbot
- Slå av alle andre bærbare datamaskiner som kjører ved å velge Kernel -> Shutdown All Kernels …
- Naviger til ~/Notebooks/traffic_cones_driving
- Åpne og følg notatblokken live_demo_cones.ipynb
Begynn forsiktig og gi JetBot nok plass til å bevege seg rundt. Prøv en annen kjeglekonfigurasjon og se hvor godt roboten yter i forskjellige miljøer, belysning osv. Mens den bærbare datamaskinen live_demo_cones.ipynb forklarer alle trinnene i detalj, viser følgende diagram logikken for robotbevegelser gitt sannsynlighetene som modellene forutsier.
Notatboken forklarer også hvordan du lagrer historien til robotbevegelser med frie/venstre/høyre/blokkerte sannsynligheter forutsagt av modellen og hvordan du lager to FPV (First Person View) -videoer (med 1 fps og 15 fps) med overlagret telemetri og JetBot -handlinger. Disse er nyttige for feilsøking, tuning av PID -kontroller og modellforbedring.
Ha det gøy og gi meg beskjed hvis du har spørsmål!:-)
Koden er tilgjengelig på Github