Orodha ya maudhui:
- Hatua ya 1: Andaa vifaa vyako
- Hatua ya 2: Sakinisha Vifurushi vya Lazima
- Hatua ya 3: Endesha Msimbo
- Hatua ya 4: Mawazo ya Mwisho
Video: Jetson Nano Mafundisho ya Kugundua Kitu cha Roboti Mara nne: Hatua 4
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Nvidia Jetson Nano ni kitanda cha msanidi programu, ambacho kina SoM (Mfumo wa Moduli) na bodi ya wabebaji rejea. Inalenga hasa kuunda mifumo iliyoingia ambayo inahitaji nguvu kubwa ya usindikaji kwa ujifunzaji wa mashine, maono ya mashine na matumizi ya usindikaji wa video. Unaweza kutazama hakiki ya kina juu yake kwenye kituo changu cha YouTube.
Nvidia amekuwa akijaribu kumfanya Jetson Nano kuwa rafiki-rahisi na rahisi kukuza miradi na iwezekanavyo. Walizindua hata kozi kidogo juu ya jinsi ya kujenga roboti yako na Jetson Nano, siku chache baada ya bodi hiyo kuzinduliwa. Unaweza kupata maelezo kuhusu mradi huo hapa.
Walakini mimi mwenyewe nilikuwa na shida chache na Jetbot kama mradi:
1) Haikuwa EPIC ya kutosha kwangu. Jetson Nano ni bodi ya kupendeza sana na ina uwezo mkubwa wa usindikaji na kutengeneza robot rahisi ya magurudumu nayo ilionekana kama kitu… cha kusisimua kufanya.
2) Chaguo la maunzi. Jetbot inahitaji vifaa fulani ambavyo ni ghali / vinaweza kubadilishwa na njia zingine - kwa mfano hutumia fimbo ya furaha kwa mawasiliano. Inaonekana kama ya kufurahisha, lakini je! Ninahitaji kijiti cha kufurahisha kudhibiti roboti?
Kwa hivyo, mara tu baada ya kumkabidhi Jetson Nano nilianza kufanya kazi kwenye mradi wangu mwenyewe, Jetspider. Wazo lilikuwa kuiga demos za msingi ambazo Jetbot alikuwa nazo, lakini na vifaa vya kawaida zaidi na vinavyotumika kwa miradi anuwai.
Hatua ya 1: Andaa vifaa vyako
Kwa mradi huu nilitumia mfano wa mapema wa Zuri robot iliyopangwa mara nne, iliyotengenezwa na Zoobotics. Ilikuwa imelala karibu na maabara ya kampuni yetu kwa muda mrefu. Niliiweka mlima wa mbao uliokatwa na laser kwa Jetson Nano na mlima wa kamera. Ubunifu wao ni wa wamiliki, kwa hivyo ikiwa kwa roboti yako ya Jetson Nano unataka kuunda kitu kama hicho, unaweza kuangalia mradi wa Meped, ambao ni sawa na nne na muundo wa chanzo wazi. Kwa kweli, kwa kuwa hakuna mtu alikuwa na nambari ya chanzo ya Mdhibiti Mdogo wa Zuri (Arduino Mega) katika maabara yetu, nilitumia nambari kutoka Meped na marekebisho kadhaa madogo kwa miguu / miguu iliyowekwa.
Nilitumia web-cam inayofaa ya USB Raspberry Pi na dongle ya Wifi USB.
Jambo kuu ni kwamba kwa kuwa tutatumia Pyserial kwa mawasiliano ya serial kati ya microcontroller na Jetson Nano, mfumo wako kimsingi unaweza kutumia aina yoyote ya microcontroller, maadamu inaweza kuingiliwa na Jetson Nano na kebo ya serial ya USB. Ikiwa roboti yako inatumia motors DC na dereva wa gari (kwa mfano L298P-based) inawezekana kushughulikia moja kwa moja dereva wa gari na Jetson Nano GPIO. Lakini, kwa bahati mbaya, kwa kudhibiti servos unaweza kutumia microcontroller nyingine au dereva wa servo wa I2C, kwani Jetson Nano hana vifaa vya GPIO PWM.
Kwa muhtasari, unaweza kutumia aina ya roboti na microcontroller yoyote ambayo inaweza kushikamana na Jetson Nano kwa kutumia kebo ya data ya USB. Nilipakia nambari ya Arduino Mega kwenye ghala ya github kwa mafunzo haya na sehemu inayofaa kuingiliana na Jetson Nano na Arduino iko hapa:
ikiwa (Serial haipatikani ()) {switch (Serial.read ()) {
{
kesi '1':
mbele ();
kuvunja;
kesi '2':
nyuma ();
kuvunja;
kesi '3':
pinduka_kulia ();
kuvunja;
kesi '4':
pinduka_kushoto ();
kuvunja;
Tunaangalia ikiwa kuna data inapatikana, na ikiwa iko, pitisha kwa muundo wa kudhibiti kesi-ya-kesi. Makini, data kutoka kwa serial huja kama wahusika, angalia alama moja ya nukuu kuzunguka nambari 1, 2, 3, 4.
Hatua ya 2: Sakinisha Vifurushi vya Lazima
Kwa bahati nzuri kwetu, picha chaguo-msingi ya mfumo wa Jetson Nano huja na vitu vingi vilivyowekwa tayari (kama OpenCV, TensorRT, nk), kwa hivyo tunahitaji tu kusanikisha vifurushi vingine kadhaa ili kufanya nambari ifanye kazi na kuwezesha SSH.
Wacha tuanze kwa kuwezesha SSH ikiwa unataka kufanya kazi zingine zote kwa mbali.
sasisho la sudo apt
Sudo apt kufunga opensh-server
Seva ya SSH itaanza kiatomati.
Ili kuungana na mashine yako ya Ubuntu juu ya LAN unahitaji tu kuweka amri ifuatayo:
jina la mtumiaji ssh @ ip_address
Ikiwa una mashine ya Windows, utahitaji kusanikisha mteja wa SSH, kwa mfano Putty.
Wacha tuanze kwa kufunga Meneja wa Kifurushi cha Python (pip) na Mto kwa ujanjaji wa picha.
Sudo apt kufunga python3-pip python3-pil
Kisha tutaweka hazina ya Jetbot, kwa kuwa tunategemea sehemu kadhaa za mfumo wake wa kugundua kitu.
Sudo apt kufunga python3-smbus python-pyserial
clone ya git
cd jetbot
sudo apt-kupata kufunga cmake
sudo python3 setup.py kufunga
Mwishowe onyesha ghala langu la Github kwa mradi huu kwenye folda yako ya nyumbani na usakinishe Flask na vifurushi vingine kwa udhibiti wa kijijini wa roboti ukitumia seva ya wavuti.
clone ya git
cd
sudo pip3 kufunga -r mahitaji-opencv
Pakua mfano wa SSD iliyochaguliwa mapema (Kivinjari cha Risasi Moja) kutoka kwa kiunga hiki na uweke kwenye folda ya jetspider_demos.
Sasa sisi ni vizuri kwenda!
Hatua ya 3: Endesha Msimbo
Nilitengeneza demo mbili kwa Jetspider, ya kwanza ni usafirishaji rahisi, sawa na ile niliyotengeneza mapema kwa Banana Pi rover na ya pili hutumia TensorRT kugundua kitu na hutuma amri za harakati juu ya unganisho la serial kwa mdhibiti mdogo..
Kwa kuwa nambari nyingi ya nambari ya televisheni imeelezewa kwenye mafunzo yangu mengine (nilifanya tu tundu ndogo, kurekebisha usambazaji wa video) hapa nitazingatia sehemu ya Kugundua Kitu.
Hati kuu ya kitu kinachofuata ni object_following.py katika jetspider_object_following, kwani televisheni ni spider_teleop.py katika jetspider_teleoperation.
Kitu kinachofuata script huanza na kuagiza moduli zinazohitajika na kutangaza vigeuzi na visa vya darasa. Kisha tunaanza Flask web server na laini hii
app.run (host = '0.0.0.0', Threaded = Kweli)
Mara tu tutakapofungua anwani ya 0.0.0.0 (localhost) katika kivinjari chetu au anwani ya Jetson Nano kwenye mtandao (inaweza kuangalia na amri ya ifconfig), kazi hii itatekelezwa
faharisi ya def ():
Inatoa templeti ya ukurasa wa wavuti tunayo kwenye folda ya templeti. Template ina chanzo cha video kilichowekwa ndani, kwa hivyo ikimaliza kupakia, def video_feed (): itatekelezwa, ambayo inarudisha kitu cha Jibu ambacho kimeanzishwa na kazi ya jenereta.
Siri ya kutekeleza sasisho za mahali (kusasisha picha kwenye ukurasa wa wavuti kwa mkondo wetu wa video) ni kutumia majibu ya anuwai. Majibu ya Multipart yanajumuisha kichwa ambacho kinajumuisha moja ya aina za yaliyomo anuwai, ikifuatiwa na sehemu, zilizotengwa na alama ya mpaka na kila moja ina sehemu yake maalum aina ya yaliyomo.
Katika def gen (): kazi tunatekeleza kazi ya jenereta kwa kitanzi kisicho na mwisho ambacho kinakamata picha hiyo, na kuituma kutofautisha (img): kazi, ikitoa picha itumwe kwa ukurasa wa wavuti baada ya hapo.
def execute (img): kazi ni pale ambapo uchawi wote hufanyika, inachukua picha, kuibadilisha na OpenCV na kuipitisha kwa mfano wa darasa la Jetbot ObjectDetector "mfano". Inarudisha orodha ya upelelezi na tunatumia OpenCV kuteka mstatili wa bluu karibu nao na kuandika maelezo na darasa lililogunduliwa na kitu. Baada ya hapo tunaangalia ikiwa kuna kitu cha kupendeza kimetambuliwa_kuchunguzwa_katika = [d kwa d katika upelelezi [0] ikiwa d ['lebo'] == 53]
Unaweza kubadilisha nambari hiyo (53) kuwa nambari nyingine kutoka kwa mkusanyiko wa data wa CoCo ikiwa unataka roboti yako ifuate vitu vingine, 53 ni tufaha. Orodha nzima iko katika faili za categories.py.
Mwishowe ikiwa hakuna kitu kilichogunduliwa kwa sekunde 5 tunasambaza herufi "5" kwa roboti kusimama juu ya safu. Ikiwa kitu kinapatikana tunahesabu ni umbali gani kutoka katikati ya picha na kutenda ipasavyo (ikiwa karibu na kituo, nenda moja kwa moja (herufi "1" kwenye serial), ikiwa kushoto, nenda kushoto, nk). Unaweza kucheza na maadili hayo kuamua bora kwa usanidi wako!
Hatua ya 4: Mawazo ya Mwisho
Huu ndio muhtasari wa demo ya Kufuatilia, ikiwa unataka kujua zaidi juu ya Flask webserver Video Streaming, unaweza kuangalia mafunzo haya mazuri na Miguel Grinberg.
Unaweza pia kuangalia daftari la kugundua kitu cha Nvidia Jetbot hapa.
Natumai utekelezaji wangu wa demos za Jetbot zitasaidia kujenga roboti yako kwa kutumia mfumo wa Jetbot. Sikutekeleza onyesho la kuzuia kikwazo, kwani nadhani uchaguzi wa mtindo hautatoa matokeo mazuri ya kuzuia kikwazo.
Niongeze kwenye LinkedId ikiwa una swali lolote na ujiandikishe kwenye kituo changu cha YouTube ili upate arifa kuhusu miradi ya kufurahisha zaidi inayojumuisha ujifunzaji wa mashine na roboti.
Ilipendekeza:
Roboti ya buibui iliyokokotwa mara nne - GC_MK1: Hatua 8 (na Picha)
Roboti ya buibui iliyokokotwa mara nne - GC_MK1: Roboti ya buibui aka GC_MK1 inasonga mbele na nyuma na pia inaweza kucheza kulingana na nambari iliyowekwa kwenye Arduino. Roboti hutumia motors 12 ndogo za servo (SG90); 3 kwa kila mguu. Mdhibiti anayetumia kudhibiti motors za servo ni Nan Arduino
Kugundua kitu cha Raspberry Pi: Hatua 7
Kugundua kitu cha Raspberry Pi: Mwongozo huu hutoa maagizo ya hatua kwa hatua ya jinsi ya kuanzisha API ya Kugundua Kitu ya TensorFlow kwenye Raspberry Pi. Kwa kufuata hatua katika mwongozo huu, utaweza kutumia Raspberry yako Pi kugundua kitu kwenye video ya moja kwa moja kutoka kwa P
[DIY] Roboti ya buibui (Quad Robot, Imepunguzwa mara nne): Hatua 14 (na Picha)
[DIY] Roboti ya Buibui (Quad Robot, Quadruped): Ikiwa unahitaji msaada wa ziada kutoka kwangu, itakuwa bora kutoa msaada unaofaa kwangu: http: //paypal.me/RegisHsu2019-10-10 sasisho: Mkusanyaji mpya itasababisha shida ya hesabu ya idadi inayoelea. Nimebadilisha nambari tayari. 2017-03-26
Roboti iliyotengwa mara nne: Hatua 7
Roboti iliyotengwa mara nne: Je! Umewahi kutaka roboti ambayo hufanya kama mnyama halisi? Vile unavyoweza kununua ni ghali sana na sio ya kukufaa. Vizuri, unaweza kujifunza jinsi ya kutengeneza moja hapa! Sio tu ya ubora mzuri, lakini pia ni ya bei rahisi na nzuri
Mchanganuzi wa muundo wa trafiki ukitumia kugundua kitu cha moja kwa moja: Hatua 11 (na Picha)
Mchanganuzi wa muundo wa trafiki ukitumia kugundua kitu cha moja kwa moja: Katika ulimwengu wa leo ’ taa za trafiki ni muhimu kwa barabara salama. Walakini, mara nyingi, taa za trafiki zinaweza kuwa zenye kukasirisha katika hali ambapo mtu anakaribia taa kama inavyogeuka nyekundu. Hii inapoteza wakati, haswa ikiwa taa ni ya bei