Orodha ya maudhui:
- Hatua ya 1: MAMBO YANATAKIWA:
- Hatua ya 2: KANUNI ZA KUFANYA KAZI:
- Hatua ya 3: Pembeza picha na mchakato:
- Hatua ya 4:
- Hatua ya 5:
- Hatua ya 6: SEHEMU YA UTARATIBU:
- Hatua ya 7:
- Hatua ya 8:
- Hatua ya 9:
- Hatua ya 10:
- Hatua ya 11:
- Hatua ya 12: UDHIBITI WA MWENDO:
- Hatua ya 13:
Video: Hawk ya Ishara: Roboti Iliyodhibitiwa na Ishara ya Mkono Kutumia Picha ya Usindikaji wa Picha: Hatua 13 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Hawk ya ishara ilionyeshwa katika TechEvince 4.0 kama picha rahisi ya usindikaji wa picha kulingana na kiunganishi cha mashine za kibinadamu. Huduma yake iko katika ukweli kwamba hakuna sensorer za ziada au za kuvaa isipokuwa glavu inahitajika kudhibiti gari la roboti ambalo linaendesha kwa kanuni ya kutofautisha. Katika hii inayoweza kufundishwa, tutakupitisha kupitia kanuni inayofanya kazi nyuma ya ufuatiliaji wa kitu na ugunduzi wa ishara uliotumika kwenye mfumo. Nambari ya chanzo ya mradi huu inaweza kupakuliwa kutoka Github kupitia kiunga:
Hatua ya 1: MAMBO YANATAKIWA:
- L298N Dereva wa Pikipiki
- Motors za DC
- Chassis ya gari la Robot
- Arduino Uno
- Betri za LiPo
- Kebo ya USB ya Arduino (ndefu)
- Maktaba ya OpenCV na Chatu
Hatua ya 2: KANUNI ZA KUFANYA KAZI:
Hawk ya ishara ni mfumo wa usindikaji wa awamu tatu kama unaweza kuona kwenye mchoro hapo juu.
Hatua ya 3: Pembeza picha na mchakato:
Kukamata pembejeo kunaweza kueleweka katika kategoria pana zilizopewa kwenye mchoro hapo juu.
Ili kutoa umbo la mkono kutoka kwa mazingira, tunahitaji kutumia kuficha au kuchuja rangi dhahiri (katika kesi hii - zambarau bluu '). Ili kufanya hivyo unahitaji kubadilisha picha kutoka kwa muundo wa BGR hadi HSV ambayo inaweza kufanywa kwa kutumia kijisehemu cha nambari.
hsv = cv2.cvt Rangi (fremu, cv2. COLOR_BGR2HSV)
Sasa, hatua inayofuata ni kupata anuwai inayotarajiwa ya vigezo vya HSV kutoa mkono kupitia kinyago au kichungi. Kwa hili, njia bora ni kutumia baa za kufuatilia kwa kutafuta safu inayofaa. Hapa kuna picha ya skrini ya mwambaa wa wimbo uliotumika kwa mradi huu.
Hatua ya 4:
Hatua ya 5:
Hapa, kuna kijisehemu cha nambari kimepewa hapa chini ili kufanya trackbar kama hiyo kwa ujenzi wa kinyago:
kuagiza cv2
kuagiza numpy kama npdef chochote (x): pita cv2.namedWindow ('image') img = cv2. VideoCapture (0) cv2.createTrackbar ('l_H', 'image', 110, 255, hakuna kitu) cv2.createTrackbar ('l_S ',' picha ', 50, 255, hakuna kitu) cv2.createTrackbar (' l_V ',' image ', 50, 255, hakuna kitu) cv2.createTrackbar (' h_H ',' image ', 130, 255, hakuna kitu) cv2. kuundaTrackbar ('h_S', 'picha', 255, 255, hakuna chochote) cv2.createTrackbar ('h_V', 'image', 255, 255, hakuna kitu) wakati (1): _, frame = img.read ()
hsv = cv2.cvtColor (fremu, cv2. COLOR_BGR2HSV) lH = cv2.getTrackbarPos ('l_H', 'image') lS = cv2.getTrackbarPos ('l_S', 'picha') lV = cv2.getTrackbarPos ('l_V' 'picha') hH = cv2.getTrackbarPos ('h_H', 'image') hS = cv2.getTrackbarPos ('h_S', 'image') hV = cv2.getTrackbarPos ('h_V', 'image') lower_R = np. safu ([lH, lS, lV]) ya juu_R = np.rray ([hH, hS, hV]) mask = cv2.inRange (hsv, lower_R, higher_R) res = cv2.bitwise_and (fremu, sura, mask = mask) cv2.imshow ('picha', res) k = cv2.waitKey (1) & 0xFF ikiwa k == 27: kuvunja cv2.destroyAllWindows ()
Hatua ya 6: SEHEMU YA UTARATIBU:
Kweli, tuna sura ya kijiometri ya mkono, sasa ni wakati wa kuitumia na kuitumia kugundua ishara ya mkono.
Convex Hull:
Kupitia kibanda cha mbonyeo, tunajaribu kutoshea poligoni inayokadiriwa kupitia alama kali zilizopo kwenye umbo. Picha iliyopo kushoto inaonyesha poligoni inayokadiriwa ambayo ilikuwa imepewa umbo na vidokezo vya mbonyeo vilivyowekwa alama nyekundu.
Pointi za mbonyeo ni zile alama katika umbo ambazo ziko mbali zaidi kutoka upande wa poligoni hii inayokadiriwa. Lakini, shida na kibanda cha mbonyeo ni kwamba wakati wa hesabu yake, tutapata safu ya vidokezo vyote lakini kile tunachohitaji ni nukta ya bluu iliyoelekezwa. Tutakuambia kwanini inahitajika.
Ili kupata nukta hii ya mbonyeo, tunahitaji kutumia fomula ya umbali wa moja kwa moja ya kutafuta umbali wa hatua ya mbonyeo na upande wa karibu. Tuliona kuwa alama ya samawati ina umbali wa juu kutoka upande na kwa hivyo tunapata hatua hii.
Hatua ya 7:
Hatua ya 8:
Ifuatayo tunahitaji kupata mwelekeo wa mstari unaojiunga na ncha ya kidole gumba (au hatua iliyokithiri) kwa nukta hii ya mbonyeo na usawa.
Hatua ya 9:
Katika kesi hiyo hapo juu, angle α inapaswa kuwa kati ya digrii 0 hadi 90 ikiwa ishara ni ya zamu ya kushoto. Hiyo ni tan (α) inapaswa kuwa nzuri.
Hatua ya 10:
Katika kesi hiyo hapo juu, angle α inapaswa kuwa kati ya nyuzi 180 hadi 90 ikiwa ishara ni ya zamu ya kulia. Hiyo ni tan (α) inapaswa kuwa hasi.
Kwa hivyo, ikiwa Tan α ni chanya, basi Zungusha kushoto. Ikiwa Tan α ni hasi, basi Geuka kulia. Sasa, wakati wake wa kuona jinsi ya kugundua amri muhimu zaidi ya kuacha.
Hapa, uwiano maalum (uliopatikana na hit na jaribio) unachunguzwa na katika hali ya juu uwiano huu wa umbali unabaki katika upeo huu.
Hatua ya 11:
Mwishowe, ishara ya mwendo wa mbele inachambuliwa na kazi ya mechiShape () katika OpenCV. Kazi hii inalinganisha sura ya kaunta mbili, katika kesi hii, kati ya mfano wa mafunzo juu ya viti kwenye picha hapo juu na contour upande wa kushoto wa picha hapo juu. Inarudisha thamani kutoka 0 hadi 2 au 3, kulingana na tofauti iliyopo kwa sura ya mtaro miwili. Kwa contour sawa, inarudi 0.
ret = cv2.matchShapes (cnt1, cnt2, 1, 0.0)
Hapa, cn1 na cnt2 ndio mikondo miwili ambayo inapaswa kulinganishwa.
Hatua ya 12: UDHIBITI WA MWENDO:
PySerial:
Tulitumia maktaba ya PySerial ya chatu kubadilisha data iliyosindikwa kuwa data ya serial kuwasilisha kwa Arduino Uno kupitia Cable ya Arduino USB. Mara tu ishara fulani ilipogunduliwa na opencv tuliunda ubadilishaji wa muda mfupi sema 'x' na kuipatia thamani ya kipekee na kuibadilisha kuwa ingizo la serial kwa kutumia laini ya amri ifuatayo: -
kuagiza serial # kuingiza maktaba ya Pyserial
serial.
serial.write (b'x ') # x ni herufi iliyotumwa bandarini… b ni kubadilisha kamba hii kuwa ka.
Usindikaji wa Arduino:
Sasa arduino imeorodheshwa kwa njia ambayo kila safu tofauti ya x imewekwa sawa kwa hatua fulani inayohusika na mwendo laini wa roboti (sema kugundua ishara ya kushoto itasababisha motors kulia kulia). Tunaweza kudhibiti mwendo wa kila gurudumu kwa tafsiri na pia kwa kuzungusha kwa kubadilisha nambari vizuri.
L298N Dereva wa gari: -
Dereva wa gari hutumiwa kama mpatanishi kati ya chanzo cha umeme na nguvu kwani motors haziwezi kuwezeshwa moja kwa moja kwa sababu ya viwango vya chini vya voltage. Li-Po Battery imeunganishwa na kituo chake cha kuingiza cha 12V na tunaunganisha tundu la arduino la 5V na tundu la uingizaji la dereva wa 5V mwishowe unganisha ardhi ya Li-Po na arduino kwenye tundu la kawaida la dereva wa gari.
Sasa vituo vya motors vimeunganishwa kwenye soketi zilizopewa. Mwishowe tunaunganisha vituo vya kuingiza kwa motor na soketi za PWM za pato la arduino inayotuachia huru kuamua mambo ya kuzunguka na kutafsiri ya mwendo kwa usahihi.
Ilipendekeza:
Ishara ya Mkono Iliyodhibitiwa Kidude cha Dinosaur ya Chrome / Jinsi ya Kufanya Hii / #smartcreativity: Hatua 14
Ishara ya Mkono Iliyodhibitiwa Kidude cha Dinosaur ya Chrome / Jinsi ya Kufanya Hii / #smartcreativity: Halo Marafiki, Katika mafunzo haya nitakuonyesha mradi wa kipekee sana. kwa urahisi sana. Ikiwa utatumia teknolojia hii kudhibiti chrome DINO basi utaanguka
Mwongozo wa Usindikaji wa Usindikaji wa Kuvutia kwa Mbuni - Udhibiti wa Rangi: Hatua 10
Mwongozo wa Usindikaji wa Usindikaji wa Kuvutia kwa Mbuni - Udhibiti wa Rangi: Katika sura zilizopita, tumezungumza zaidi juu ya jinsi ya kutumia nambari kufanya uumbaji badala ya alama za maarifa juu ya rangi. Katika sura hii, tutachunguza sehemu hii ya maarifa zaidi
Tikisa Mkono Wako Kudhibiti Mkono wa Roboti wa OWI Hakuna Kamba Zilizoshirikishwa: Hatua 10 (na Picha)
Tikisa Mkono Wako Kudhibiti Mkono wa Roboti wa OWI … Hakuna Kamba Iliyoambatanishwa: WAZO: Kuna angalau miradi mingine 4 kwenye Instructables.com (kuanzia Mei 13, 2015) karibu na kurekebisha au kudhibiti Arm Robotic Arm. Haishangazi, kwa kuwa ni kitanda kizuri sana na cha bei rahisi cha kucheza nacho. Mradi huu ni sawa katika s
Silaha Rahisi ya Roboti Iliyodhibitiwa Juu ya Harakati halisi ya Mkono: Hatua 7 (na Picha)
Silaha Rahisi ya Roboti Iliyodhibitiwa Juu ya Harakati halisi ya Mkono: Huu ni mkono rahisi sana wa roboti wa DOF kwa Kompyuta. Mkono ni Arduino kudhibitiwa. Imeunganishwa na sensorer ambayo imeambatanishwa kwenye mkono wa mwendeshaji. Kwa hivyo mwendeshaji anaweza kudhibiti kiwiko cha mkono kwa kuinama mwendo wake mwenyewe wa kiwiko .. Katika
Mkono wa Roboti isiyo na waya Unadhibitiwa na Ishara na Sauti: Hatua 7 (na Picha)
Mkono wa Roboti isiyo na waya Unaodhibitiwa na Ishara na Sauti: Kimsingi huu ulikuwa mradi wetu wa chuo kikuu na kwa sababu ya kukosa muda wa kuwasilisha mradi huu tulisahau kupiga picha za hatua kadhaa. Pia tulibuni nambari inayotumia ambayo inaweza kudhibiti mkono huu wa roboti kwa kutumia ishara na sauti kwa wakati mmoja lakini kwa sababu ya l