![Jetson Nano četrkājaino robotu objektu noteikšanas apmācība: 4 soļi Jetson Nano četrkājaino robotu objektu noteikšanas apmācība: 4 soļi](https://i.howwhatproduce.com/images/004/image-11983-9-j.webp)
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59
![Image Image](https://i.howwhatproduce.com/images/004/image-11983-11-j.webp)
![](https://i.ytimg.com/vi/LFyEf9SSHDw/hqdefault.jpg)
Nvidia Jetson Nano ir izstrādātāju komplekts, kas sastāv no SoM (System on Module) un atsauces nesēja plates. Tas galvenokārt ir paredzēts, lai izveidotu iegultās sistēmas, kurām nepieciešama liela apstrādes jauda mašīnmācīšanās, mašīnredzes un video apstrādes lietojumprogrammām. Jūs varat skatīties detalizētu pārskatu par to manā YouTube kanālā.
Nvidia ir mēģinājis padarīt Jetson Nano pēc iespējas draudzīgāku un viegli izstrādājamus projektus. Dažas dienas pēc tāfeles izlaišanas viņi pat uzsāka nelielu kursu par robota izveidi, izmantojot Jetson Nano. Sīkāku informāciju par šo projektu varat atrast šeit.
Tomēr man pašam bija dažas problēmas ar projektu Jetbot:
1) Man tas nebija pietiekami EPIC. Jetson Nano ir ļoti interesanta tāfele ar lieliskām apstrādes iespējām, un ar to vienkārša riteņu robota izgatavošana šķita ļoti… nepārspējama lieta.
2) aparatūras izvēle. Jetbot ir nepieciešama aparatūra, kas ir dārga/kuru var aizstāt ar citām alternatīvām - piemēram, tālvadībai viņi izmanto kursorsviru. Izklausās jautri, bet vai man tiešām ir nepieciešama kursorsvira, lai vadītu robotu?
Tātad, tūlīt pēc tam, kad es saņēmu rokās Jetson Nano, es sāku strādāt pie sava projekta - Jetspider. Ideja bija atkārtot Jetbot pamata demonstrācijas, taču ar izplatītāku aparatūru un piemērojamu plašākam projektu klāstam.
1. darbība: sagatavojiet aparatūru
![Sagatavojiet aparatūru Sagatavojiet aparatūru](https://i.howwhatproduce.com/images/004/image-11983-12-j.webp)
Šim projektam es izmantoju agrīnu Zuri četrkājaina robota prototipu, ko izgatavoja Zoobotics. Tas ilgu laiku gulēja mūsu uzņēmuma laboratorijā. Es to aprīkoju ar lāzera grieztu koka stiprinājumu Jetson Nano un kameras stiprinājumu. To dizains ir patentēts, tādēļ, ja savam Jetson Nano robotam vēlaties izveidot kaut ko līdzīgu, varat apskatīt Meped projektu, kas ir līdzīgs četrkājains ar atvērtā koda dizainu. Faktiski, tā kā mūsu laboratorijā nevienam nebija Zuri mikrokontrollera (Arduino Mega) avota koda, es izmantoju Meped kodu, veicot nelielas korekcijas kāju/pēdu nobīdē.
Es izmantoju parastu ar USB Raspberry Pi saderīgu tīmekļa kameru un Wifi USB dongle.
Galvenais ir tas, ka, tā kā sērijveida saziņai starp mikrokontrolleru un Jetson Nano mēs izmantosim Pyserial, jūsu sistēma būtībā var izmantot jebkura veida mikrokontrolleru, ja vien to var savienot ar Jetson Nano ar USB seriālo kabeli. Ja jūsu robots izmanto līdzstrāvas motorus un motora draiveri (piemēram, uz L298P bāzes), ir iespējams tieši savienot motora draiveri ar Jetson Nano GPIO. Diemžēl servo vadīšanai varat izmantot tikai citu mikrokontrolleri vai īpašu I2C servo draiveri, jo Jetson Nano nav aparatūras GPIO PWM.
Rezumējot, jūs varat izmantot robota veidu ar jebkuru mikrokontrolleri, ko var savienot ar Jetson Nano, izmantojot USB datu kabeli. Es augšupielādēju Arduino Mega kodu šīs apmācības github krātuvē, un daļa, kas attiecas uz Jetson Nano saskarni ar Arduino, ir šeit:
ja (Serial.available ()) {switch (Serial.read ()) {
{
gadījums “1”:
uz priekšu ();
pārtraukums;
gadījums “2”:
atpakaļ ();
pārtraukums;
gadījums “3”:
nogriezieties pa labi();
pārtraukums;
gadījums “4”:
pagriezies pa kreisi();
pārtraukums;
Mēs pārbaudām, vai ir pieejami dati, un, ja tādi ir, nododam tos slēdžu vadības struktūrai. Pievērsiet uzmanību, ka sērijas dati ir rakstzīmes, ievērojiet pēdiņas ap cipariem 1, 2, 3, 4.
2. darbība: instalējiet nepieciešamos iepakojumus
Par laimi, mums pēc noklusējuma Jetson Nano sistēmas attēla ir daudz iepriekš instalētu lietu (piemēram, OpenCV, TensorRT utt.), Tāpēc mums ir jāinstalē tikai dažas citas paketes, lai kods darbotos un iespējotu SSH.
Sāksim ar SSH iespējošanu, ja vēlaties visu pārējo darbu veikt attālināti.
sudo apt atjauninājums
sudo apt instalēt openssh-server
SSH serveris sāksies automātiski.
Lai izveidotu savienojumu ar savu Ubuntu mašīnu, izmantojot LAN, jums jāievada tikai šāda komanda:
ssh lietotājvārds@ip_address
Ja jums ir Windows mašīna, jums būs jāinstalē SSH klients, piemēram, Putty.
Sāksim, instalējot Python Package Manager (pip) un spilvenu attēlu apstrādei.
sudo apt instalēt python3-pip python3-pil
Pēc tam mēs instalēsim Jetbot krātuvi, jo mēs paļaujamies uz dažām tās ietvara daļām, lai veiktu objektu noteikšanu.
sudo apt instalēt python3-smbus python-pyserial
git klons
cd jetbot
sudo apt-get install cmake
sudo python3 setup.py instalēt
Visbeidzot, klonējiet manu šī projekta Github krātuvi savā mājas mapē un instalējiet Flask un dažas citas paketes robota tālvadībai, izmantojot tīmekļa serveri.
git klons
cd
sudo pip3 instalēt -r prasības -opencv
Lejupielādējiet iepriekš sagatavoto SSD (viena šāviena detektora) modeli no šīs saites un ievietojiet to mapē jetspider_demos.
Tagad mums ir labi doties!
3. darbība: palaidiet kodu
![Palaidiet kodu Palaidiet kodu](https://i.howwhatproduce.com/images/004/image-11983-13-j.webp)
Es izveidoju divas demonstrācijas Jetspider, pirmā ir vienkārša teleoprācija, kas ir ļoti līdzīga tai, ko es iepriekš izveidoju Banana Pi roverim, bet otrā izmanto TensorRT objektu noteikšanai un nosūta kustības komandas, izmantojot seriālo savienojumu, uz mikrokontrolleri.
Tā kā lielākā daļa teleoprācijas koda ir aprakstīta manā citā apmācībā (es veicu tikai dažus nelielus pielāgojumus, pārraidot video pārraidi), šeit es koncentrēšos uz objektu noteikšanas daļu.
Galvenais skripts sekojošajiem objektiem ir object_following.py, kas atrodas vietnē jetspider_object_following, bet teleoperācija ir spider_teleop.py sadaļā jetspider_teleoperation.
Skripta objekts sākas ar nepieciešamo moduļu importēšanu un mainīgo un klases gadījumu deklarēšanu. Pēc tam mēs sākam Flask tīmekļa serveri ar šo rindu
app.run (resursdators = '0.0.0.0', vītņots = True)
Tiklīdz mēs atvērsim 0.0.0.0 (localhost) adresi mūsu tīmekļa pārlūkprogrammā vai Jetson Nano adresi tīklā (var pārbaudīt ar komandu ifconfig), šī funkcija tiks izpildīta
def indekss ():
Tas atveido tīmekļa lapas veidni, kas mums ir veidņu mapē. Veidnē ir iestrādāts video avots, tāpēc, tiklīdz tā tiks ielādēta, tiks izpildīts def video_feed ():, kas atgriež atbildes objektu, kas ir inicializēts ar ģeneratora funkciju.
Vietējo atjauninājumu ieviešanas noslēpums (attēla atjaunināšana mūsu video straumes tīmekļa lapā) ir daudzdaļīgas atbildes izmantošana. Daudzdaļīgas atbildes sastāv no galvenes, kas ietver vienu no daudzdaļīga satura veidiem, kam seko daļas, kuras atdala robežas marķieris un kurām katrai ir savs daļas tips.
Funkcijā def gen (): mēs ieviešam ģeneratora funkciju bezgalīgā cilpā, kas uztver attēlu, nosūta to def execute (img): function, iegūstot attēlu, kas pēc tam jānosūta uz tīmekļa lapu.
def izpildīt (img): funkcija ir vieta, kur notiek visa maģija, tā uzņem attēlu, maina tā izmēru ar OpenCV un nodod to Jetbot ObjectDetector klases instancē "modelis". Atgriež atgriež atklājumu sarakstu, un mēs izmantojam OpenCV, lai ap tiem uzzīmētu zilus taisnstūrus un rakstītu anotācijas ar objektu noteikto klasi. Pēc tam mēs pārbaudām, vai ir kāds mūsu interesējošs objekts
Jūs varat nomainīt šo skaitli (53) uz citu skaitli no CoCo datu kopas, ja vēlaties, lai jūsu robots seko citiem objektiem, 53 ir ābols. Viss saraksts ir failā category.py.
Visbeidzot, ja 5 sekundes netiek atklāts neviens objekts, mēs pārraidām rakstzīmi "5", lai robots apstātos virs sērijas. Ja objekts ir atrasts, mēs aprēķinām, cik tālu tas ir no attēla centra, un attiecīgi rīkojamies (ja tuvu centram, dodieties taisni (sērijas rakstzīme "1"), ja pa kreisi, dodieties pa kreisi utt.). Jūs varat spēlēt ar šīm vērtībām, lai noteiktu labāko konkrētajam iestatījumam!
4. solis: pēdējās domas
![Pēdējās domas Pēdējās domas](https://i.howwhatproduce.com/images/004/image-11983-14-j.webp)
Šī ir ObjectFollowing demonstrācijas būtība, ja vēlaties uzzināt vairāk par Flask tīmekļa servera video straumēšanu, varat apskatīt šo lielisko Migela Grinberga apmācību.
Šeit varat apskatīt arī piezīmjdatoru Nvidia Jetbot Object Detection.
Es ceru, ka mana Jetbot demonstrāciju ieviešana palīdzēs izveidot jūsu robotu, izmantojot Jetbot ietvaru. Es neīstenoju šķēršļu novēršanas demonstrāciju, jo, manuprāt, modeļa izvēle nedos labus šķēršļu novēršanas rezultātus.
Ja jums ir kādi jautājumi, pievienojiet mani vietnē LinkedId un abonējiet manu YouTube kanālu, lai saņemtu paziņojumu par interesantākiem projektiem, kas saistīti ar mašīnmācīšanos un robotiku.
Ieteicams:
Nvidia Jetson Nano apmācība - Pirmais skatiens ar AI un ML: 7 soļi
![Nvidia Jetson Nano apmācība - Pirmais skatiens ar AI un ML: 7 soļi Nvidia Jetson Nano apmācība - Pirmais skatiens ar AI un ML: 7 soļi](https://i.howwhatproduce.com/images/010/image-27158-j.webp)
Nvidia Jetson Nano apmācība | Pirmais skatiens ar AI un ML: Hei, puiši! Akarsh šeit no CETech. Šodien mēs apskatīsim jaunu SBC no Nvidia, kas ir Jetson Nano, Jetson Nano ir vērsts uz mākslīgā intelekta metodēm, piemēram, attēlu atpazīšanu utt
Spēka noteikšanas rezistors (FSR) Arduino Vienkāršā apmācība: 8 soļi
![Spēka noteikšanas rezistors (FSR) Arduino Vienkāršā apmācība: 8 soļi Spēka noteikšanas rezistors (FSR) Arduino Vienkāršā apmācība: 8 soļi](https://i.howwhatproduce.com/images/011/image-30261-j.webp)
Spēka noteikšanas rezistors (FSR) Arduino vienkāršā apmācība: Šajā apmācībā mēs uzzināsim, kā noteikt spēku, kas iedarbojas uz spēka sensoru (FSR), un parādīt to OLED displejā + mēs noteiksim ierobežojumus ar zaļu un sarkanu LED .Skatieties demonstrācijas video
Otto DIY robotu staigāšana - ātra un vienkārša apmācība: 7 soļi
![Otto DIY robotu staigāšana - ātra un vienkārša apmācība: 7 soļi Otto DIY robotu staigāšana - ātra un vienkārša apmācība: 7 soļi](https://i.howwhatproduce.com/images/011/image-30367-j.webp)
Otto DIY robotu staigāšana - ātra un vienkārša apmācība: šajā apmācībā mēs iemācīsimies viegli ieprogrammēt Otto DIY robotu staigāt. Noskatieties demonstrācijas video
Arduino robotu apmācība: 3 soļi
![Arduino robotu apmācība: 3 soļi Arduino robotu apmācība: 3 soļi](https://i.howwhatproduce.com/images/001/image-2892-58-j.webp)
Arduino robotu apmācība: Es meklēju Instructable datu bāzē apmācību oficiālajam Arduino robotam, bet es nevarēju to atrast! Tāpēc es satracināju šo apmācību, lai palīdzētu citiem, kuriem bija vajadzīga neliela palīdzība ar savu jauno Arduino robotu
Arduino gaismas noteikšanas apmācība: 3 soļi (ar attēliem)
![Arduino gaismas noteikšanas apmācība: 3 soļi (ar attēliem) Arduino gaismas noteikšanas apmācība: 3 soļi (ar attēliem)](https://i.howwhatproduce.com/images/003/image-8773-25-j.webp)
Arduino gaismas noteikšanas apmācība: Pēc šīs apmācības pabeigšanas jūs uzzināsit, kā varat noteikt izmaiņas apkārt esošajā apgaismojumā. Daļas šim projektam nodrošināja Kumans. Jūs varat tos atrast viņu Arduino UNO sākuma komplektā