Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Autor dvillevaldMy GithubFollow O: Sviđaju mi se umjetna inteligencija i aplikacije za strojno učenje, posebno u robotici Više o dvillevaldu »
Naučite svog robota da pronađe put u labirintu prometnih čunjeva koristeći kameru i najsuvremeniji model dubokog učenja.
Pribor
-
NVIDIA JetBot
NVIDIA JetBot Wiki stranica sa materijalima navodi sve što vam je potrebno za izgradnju JetBot -a, zajedno s kupnjom veza od popularnih dobavljača
-
Računalo s NVIDIA GPU -om
Potrebno za uvježbavanje modela
- BlueDot Trading 4”RC Racing Agility čunjevi, narančasta - set od 20 komada
Korak 1: Motivacija
Svaki put kad se vozim u zoni kontrakcije, razmišljam koliko bi izazov za auto koji se sam kreće kroz prometne stošce bilo izazovno. Ispostavilo se da nije tako teško s novim NVIDIA-inim JetBotom-sa samo nekoliko stotina slika možete istrenirati vrhunski model dubokog učenja kako biste naučili svog robota kako pronaći put u labirintu igračaka u prometnim konusima koristite samo ugrađenu kameru i nema drugih senzora.
Korak 2: NVIDIA JetBot i pregled projekta
JetBot je robot otvorenog koda temeljen na NVIDIA Jetson Nano kompletu. Ovdje možete pronaći detaljne upute o tome kako ga izgraditi i postaviti.
Ovaj projekt je izmijenjeni primjer izbjegavanja sudara iz NVIDIA JetBot Wiki. Sastoji se od tri glavna koraka, od kojih je svaki opisan u zasebnoj bilježnici Jupyter:
- Prikupljajte podatke na JetBotu - prijenosno računalo data_collection_cones.ipynb
- Model vlaka na drugom GPU stroju - prijenosno računalo train_model_cones.ipynb
- Pokrenite demonstraciju uživo na JetBotu - prijenosno računalo live_demo_cones.ipynb
Ove tri Jupyter bilježnice možete pronaći ovdje
Korak 3: Izgradite JetBot i postavite Jupyter bilježnice
- Izgradite i postavite JetBot kako je ovdje objašnjeno
- Povežite se sa svojim robotom tako što ćete otići na https://: 8888Prijavite se sa zadanom lozinkom jetbot
- Isključite sve ostale prijenosne računare odabirom Kernel -> Shutdown All Kernels …
- Idite na ~/Bilježnice/
- Izradi novu podmapu ~/Bilježnice/traffic_cones_driving/
- Prenesite data_collection_cones.ipynb i live_demo_cones.ipynb u ~/Bilježnice/traffic_cones_driving/
VAŽNO: Prijenosne računare Jupyter data_collection_cones.ipynb i live_demo_cones.ipynb navedene u ovim uputama trebale bi se izvoditi na JetBotu, dok train_model_cones.ipynb - na računalu s GPU -om.
Stoga moramo učitati data_collection_cones.ipynb i live_demo_cones.ipynb u JetBot i postaviti ih u ~/Notebooks/traffic_cones_driving/
Korak 4: Prikupljanje podataka o obuci na JetBotu
Prikupit ćemo skup podataka o klasifikaciji slika koji će se koristiti za pomoć JetBotu u radu u labirintu prometnih čunjeva. JetBot će naučiti kako procijeniti vjerojatnost četiri scenarija (klase):
- Besplatno - kad je sigurno krenuti naprijed
- Blokirano - kada postoji prepreka ispred robota
- Lijevo - kada bi se robot trebao okrenuti ulijevo
- Desno - kada bi se robot trebao okrenuti udesno
Za prikupljanje podataka o obuci na JetBotu koristit ćemo Jupyter prijenosno računalo data_collection_cones.ipynb koje sadrži detaljne upute kako to učiniti. Da biste pokrenuli ovu bilježnicu na JetBotu, slijedite sljedeće korake:
- Povežite se sa svojim robotom tako što ćete otići na https://: jetbot-ip-address:: 8888
- Prijavite se sa zadanom lozinkom jetbot
- Isključite sve ostale prijenosne računare odabirom Kernel -> Shutdown All Kernels …
- Idite na ~/Bilježnice/traffic_cones_driving/
- Otvorite i slijedite bilježnicu data_collection_cones.ipynb
Korak 5: Vježbajte neuronsku mrežu na GPU stroju
Zatim ćemo prikupljene podatke koristiti za ponovno uvježbavanje modela dubokog učenja AlexNet na GPU stroju (host) pokretanjem train_model_cones.ipynb.
Imajte na umu da je train_model_cones.ipynb jedina Jupyterova bilježnica u ovom vodiču koja se NE izvodi na JetBotu
- Povežite se s GPU strojem s instaliranim PyTorch -om i poslužiteljem Jupyter Lab poslužitelja
- Prenesite bilježnicu train_model_cones.ipynb i na ovaj stroj
- Prenesite datoteku skupa podataka_cones.zip koju ste stvorili u bilježnici data_collection_cones.ipynb i izdvojite ovaj skup podataka. (Nakon ovog koraka trebali biste vidjeti da se u pregledniku datoteka pojavljuje mapa s nazivom skupovi podataka_cones.)
- Otvorite i slijedite bilježnicu train_model_cones.ipynb. Na kraju ovog koraka stvorit ćete model - datoteku best_model_cones.pth koju zatim morate učitati u JetBot kako biste pokrenuli demo demonstraciju uživo.
Korak 6: Pokrenite demo demonstraciju uživo na JetBotu
Ovaj posljednji korak je prenijeti model best_model_cones.pth na JetBot i pokrenuti ga.
- Napajajte svog robota iz USB baterije
- Ponovo se povežite sa svojim robotom tako što ćete otići na https://: jetbot-ip-address:: 8888
- Prijavite se sa zadanom lozinkom jetbot
- Isključite sve ostale prijenosne računare odabirom Kernel -> Shutdown All Kernels …
- Idite na ~/Bilježnice/traffic_cones_driving
- Otvorite i slijedite bilježnicu live_demo_cones.ipynb
Počnite oprezno i dajte JetBotu dovoljno prostora za kretanje. Isprobajte drugačiju konfiguraciju konusa i pogledajte koliko dobro robot radi u različitim okruženjima, osvjetljenju itd. Dok prijenosno računalo live_demo_cones.ipynb detaljno objašnjava sve korake, sljedeći grafikon prikazuje logiku kretanja robota s obzirom na vjerojatnosti koje predviđaju modeli.
Bilježnica također objašnjava kako pohraniti povijest kretanja robota sa slobodnim/lijevim/desnim/blokiranim vjerojatnostima predviđenim modelom i kako napraviti dva video zapisa FPV (pogled prve osobe) (pri brzinama od 1 fps i 15 fps) sa superponiranom telemetrijom i Podaci o radnjama JetBot. Oni su korisni za ispravljanje pogrešaka, podešavanje PID kontrolera i poboljšanje modela.
Zabavite se i javite mi ako imate pitanja!:-)
Kod je dostupan na Githubu