Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tekijä dvillevaldMy GithubFollow About: Pidän tekoälystä ja koneoppimissovelluksista, erityisesti robotiikasta Lisätietoja dvillevaldista »
Opeta robotillesi löytää polku liikennekartioiden sokkelosta kameran ja huipputason syväoppimismallin avulla.
Tarvikkeet
-
NVIDIA JetBot
NVIDIA JetBot Wikin materiaaliluettelo -sivu sisältää kaiken, mitä tarvitset JetBotin rakentamiseen, sekä ostolinkkejä suosituilta toimittajilta
-
Tietokone, jossa on NVIDIA GPU
Tarvitaan mallin kouluttamiseen
- BlueDot Trading 4”RC Racing Agility -kartiot, oranssi - 20 kpl
Vaihe 1: Motivaatio
Aina ajaessani supistumisalueella ajattelen, kuinka haastavaa olisi itseohjautuvalle autolle navigoida liikennekartioiden läpi. Osoittautuu, että se ei ole niin vaikeaa uusien NVIDIAn JetBot-laitteiden kanssa-vain parilla sadalla kuvalla voit kouluttaa huipputason syväoppimismallin, joka opettaa robotillesi löytää polun lelujen käpyjen sokkelossa käyttämällä vain sisäistä kameraa eikä muita antureita.
Vaihe 2: NVIDIA JetBotin ja projektin yleiskatsaus
JetBot on avoimen lähdekoodin robotti, joka perustuu NVIDIA Jetson Nano -sarjaan. Täältä löydät yksityiskohtaiset ohjeet sen rakentamisesta ja asentamisesta.
Tämä projekti on muokattu esimerkki törmäysten välttämisestä NVIDIA JetBot Wikistä. Se koostuu kolmesta päävaiheesta, joista jokainen on kuvattu erillisessä Jupyter -muistikirjassa:
- Kerää tietoja JetBotista - muistikirjan data_collection_cones.ipynb
- Juna -malli toisessa GPU -koneessa - notebook train_model_cones.ipynb
- Suorita live -esittely JetBotissa - muistikirja live_demo_cones.ipynb
Löydät nämä kolme Jupyter -muistikirjaa täältä
Vaihe 3: Luo JetBot ja lähetä Jupyter -muistikirjat
- Rakenna ja asenna JetBot tässä kuvatulla tavalla
- Yhdistä robottiisi siirtymällä osoitteeseen https://: 8888Kirjaudu sisään oletussalasanalla jetbot
- Sammuta kaikki muut käynnissä olevat muistikirjat valitsemalla Ydin -> Sammuta kaikki ytimet…
- Siirry kohtaan ~/Muistikirjat/
- Luo uusi alikansio ~/Muistikirjat/traffic_cones_driving/
- Lataa data_collection_cones.ipynb ja live_demo_cones.ipynb kohteeseen ~/Notebooks/traffic_cones_driving/
TÄRKEÄÄ: Tässä ohjeessa mainitut Jupyter -muistikirjat data_collection_cones.ipynb ja live_demo_cones.ipynb on suoritettava JetBotilla ja train_model_cones.ipynb - tietokoneessa, jossa on GPU.
Siksi meidän on ladattava data_collection_cones.ipynb ja live_demo_cones.ipynb JetBotiin ja sijoitettava ne ~/Notebooks/traffic_cones_driving/
Vaihe 4: Harjoitustietojen kerääminen JetBotissa
Keräämme kuvien luokitteluaineistoa, jota käytetään auttamaan JetBotia toimimaan liikennekartioiden sokkelossa. JetBot oppii arvioimaan todennäköisyyksiä neljästä skenaariosta (luokka):
- Ilmainen - kun on turvallista siirtyä eteenpäin
- Estetty - kun robotin edessä on este
- Vasen - kun robotti pyörii vasemmalle
- Oikea - kun robotin pitäisi pyöriä oikealle
Harjoitustietojen keräämiseen JetBotissa käytämme Jupyter -muistikirjaa data_collection_cones.ipynb, joka sisältää yksityiskohtaiset ohjeet sen tekemiseen. Voit käyttää tätä muistikirjaa JetBotissa seuraavasti:
- Yhdistä robottiisi siirtymällä osoitteeseen https://: jetbot-ip-address:: 8888
- Kirjaudu sisään oletussalasanalla jetbot
- Sammuta kaikki muut käynnissä olevat muistikirjat valitsemalla Ydin -> Sammuta kaikki ytimet…
- Siirry kohtaan ~/Muistikirjat/traffic_cones_driving/
- Avaa ja seuraa data_collection_cones.ipynb -muistikirjaa
Vaihe 5: Harjoittele neuroverkkoa GPU -koneella
Seuraavaksi käytämme kerättyjä tietoja AlexNet-syväoppimismallin uudelleenohjaamiseen GPU-koneella (isäntä) suorittamalla train_model_cones.ipynb.
Huomaa, että train_model_cones.ipynb on tämän opetusohjelman ainoa Jupyter -muistikirja, jota EI käytetä JetBotissa
- Muodosta yhteys GPU -koneeseen, johon on asennettu PyTorch ja Jupyter Lab -palvelin on käynnissä
- Lataa train_model_cones.ipynb -muistikirja ja tälle koneelle
- Lataa dataset_cones.zip -tiedosto, jonka loit muistikirjaan data_collection_cones.ipynb, ja poimi tämä tietojoukko. (Tämän vaiheen jälkeen sinun pitäisi nähdä kansio nimeltä dataset_cones tiedostoselaimessa.)
- Avaa ja seuraa train_model_cones.ipynb -muistikirjaa. Tämän vaiheen lopussa luot mallin - tiedoston best_model_cones.pth, joka on sitten ladattava JetBotiin live -esittelyn suorittamiseksi.
Vaihe 6: Suorita Live -esittely JetBotissa
Viimeinen vaihe on ladata malli best_model_cones.pth JetBotiin ja suorittaa se.
- Käynnistä robotti USB -akusta
- Yhdistä robottiisi siirtymällä osoitteeseen https://: jetbot-ip-address:: 8888
- Kirjaudu sisään oletussalasanalla jetbot
- Sammuta kaikki muut käynnissä olevat muistikirjat valitsemalla Ydin -> Sammuta kaikki ytimet…
- Siirry kohtaan ~/Muistikirjat/traffic_cones_driving
- Avaa ja seuraa live_demo_cones.ipynb -muistikirjaa
Aloita varovasti ja anna JetBotille tarpeeksi tilaa liikkua. Kokeile eri kartiokokoonpanoja ja katso, kuinka hyvin robotti toimii erilaisissa ympäristöissä, valaistuksessa jne. Vaikka kannettava live_demo_cones.ipynb selittää kaikki vaiheet yksityiskohtaisesti, seuraavassa kaaviossa esitetään robotin liikkeiden logiikka, kun otetaan huomioon mallien ennustamat todennäköisyydet.
Muistikirja selittää myös, kuinka robotin liikkeiden historia tallennetaan mallin ennustamilla vapailla/vasemmalla/oikealla/estetyillä todennäköisyyksillä ja miten tehdään kaksi FPV (First Person View) -videota (nopeuksilla 1 fps ja 15 fps) päällekkäisellä telemetrialla ja JetBot -toimintojen tiedot. Ne ovat hyödyllisiä virheenkorjauksessa, PID -säätimen virityksessä ja mallin parantamisessa.
Pidä hauskaa ja kerro minulle, jos sinulla on kysyttävää!:-)
Koodi löytyy Githubista