ዝርዝር ሁኔታ:

የእጅ ምልክት ሃክ - የእጅ ምልክት በምልክት ማቀነባበር ላይ የተመሠረተ በይነገጽን በመጠቀም ሮቦት 13 ደረጃዎች (ከስዕሎች ጋር)
የእጅ ምልክት ሃክ - የእጅ ምልክት በምልክት ማቀነባበር ላይ የተመሠረተ በይነገጽን በመጠቀም ሮቦት 13 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: የእጅ ምልክት ሃክ - የእጅ ምልክት በምልክት ማቀነባበር ላይ የተመሠረተ በይነገጽን በመጠቀም ሮቦት 13 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: የእጅ ምልክት ሃክ - የእጅ ምልክት በምልክት ማቀነባበር ላይ የተመሠረተ በይነገጽን በመጠቀም ሮቦት 13 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: ከወሲብ በፊት ይህን ከጠጣህ አለቀላት ! | ማለቂያ ለሌለው የወሲብ ብቃት | 2024, ሀምሌ
Anonim
የምልክት ሥራ (Hawest Hawk) - የእጅ ምልክት በምልክት ማቀነባበር ላይ የተመሠረተ በይነገጽ በመጠቀም ሮቦት
የምልክት ሥራ (Hawest Hawk) - የእጅ ምልክት በምልክት ማቀነባበር ላይ የተመሠረተ በይነገጽ በመጠቀም ሮቦት

የእጅ ምልክት Hawk በቴክ ኤቪንስ 4.0 እንደ ቀላል የምስል ማቀነባበር በሰው-ማሽን በይነገጽ ላይ ታይቷል። የእሱ መገልገያ በልዩነት ድራይቭ መርህ ላይ የሚሄደውን ሮቦቲክ መኪና ለመቆጣጠር ምንም ተጨማሪ ዳሳሾች ወይም ጓንት ካልሆነ በስተቀር የሚለብስ አለመሆኑ ነው። በዚህ መመሪያ ውስጥ ፣ በስርዓቱ ውስጥ ጥቅም ላይ የዋለውን የነገር መከታተያ እና የእጅ ምልክትን በመለየት በስተጀርባ ባለው የሥራ መርህ እንወስደዎታለን። የዚህ ፕሮጀክት ምንጭ ኮድ በአገናኝ በኩል ከ Github ማውረድ ይችላል-

ደረጃ 1: የሚፈለጉ ነገሮች

የሚፈለጉ ነገሮች ፦
የሚፈለጉ ነገሮች ፦
የሚፈለጉ ነገሮች ፦
የሚፈለጉ ነገሮች ፦
የሚፈለጉ ነገሮች ፦
የሚፈለጉ ነገሮች ፦
የሚፈለጉ ነገሮች ፦
የሚፈለጉ ነገሮች ፦
  1. L298N የሞተር ሾፌር
  2. የዲሲ ሞተሮች
  3. የሮቦት መኪና ሻሲ
  4. አርዱዲኖ ኡኖ
  5. የሊፖ ባትሪዎች
  6. የአርዱዲኖ ዩኤስቢ ገመድ (ረጅም)
  7. OpenCV ቤተመፃህፍት ከ Python ጋር

ደረጃ 2 የሥራ መርህ -

የሥራ መርህ
የሥራ መርህ

ከላይ ባለው ሥዕላዊ መግለጫ ላይ እንደሚመለከቱት የእጅ ምልክት Hawk የሶስት ደረጃ ማቀነባበሪያ ስርዓት ነው።

ደረጃ 3 የግቤት ካፒቴሽን እና ሂደት

የግቤት ካፒቴሽን እና ሂደት
የግቤት ካፒቴሽን እና ሂደት

ከላይ ባለው ሥዕላዊ መግለጫ ውስጥ በተሰጡት ሰፋፊ ምድቦች ውስጥ የግቤት ቀረፃ መረዳት ይቻላል።

የእጅን ቅርፅ ከአከባቢው ለማውጣት ፣ የተወሰነ ቀለምን (ወይም በዚህ ሁኔታ - ቫዮሌት ሰማያዊ ›) ጭምብልን ወይም ማጣሪያን መጠቀም አለብን። ይህንን ለማድረግ የሚከተለውን የኮድ ቅንጣቢ በመጠቀም ምስሉን ከ BGR ወደ HSV ቅርጸት መለወጥ ያስፈልግዎታል።

hsv = cv2.cvtColor (ፍሬም ፣ cv2. COLOR_BGR2HSV)

አሁን ፣ የሚቀጥለው እርምጃ ጭምብል ወይም ማጣሪያ በመጠቀም እጅን ለማውጣት የሚፈለገውን የ HSV ልኬቶችን ማግኘት ነው። ለዚህ ፣ በጣም ጥሩው መንገድ ተስማሚ ክልል ለማግኘት የትራክ አሞሌዎችን መጠቀም ነው። ለዚህ ፕሮጀክት ጥቅም ላይ የዋለው የትራክ አሞሌ ቅጽበታዊ ገጽ እይታ እዚህ አለ።

ደረጃ 4

ምስል
ምስል

ደረጃ 5

ለ ጭንብል ግንባታ እንዲህ ዓይነቱን የትራክ አሞሌ ለመሥራት ከዚህ በታች የኮድ ቅንጥብ አለ-

ማስመጣት cv2

ቁጥርን እንደ npdef ምንም (x) ያስገቡ: cv2.namedWindow ('ምስል') img = cv2. VideoCapture (0) cv2.createTrackbar ('l_H', 'image', 110, 255 ፣ ምንም የለም) cv2.createTrackbar ('l_S '፣' ምስል '፣ 50 ፣ 255 ፣ ምንም) cv2.createTrackbar (' l_V '፣' ምስል '፣ 50 ፣ 255 ፣ ምንም) (1): _ ፣ ፍሬም = img.read () (1):

hsv = cv2.cvtColor (ፍሬም ፣ cv2. COLOR_BGR2HSV) lH = cv2.getTrackbarPos ('l_H' ፣ 'ምስል') lS = cv2.getTrackbarPos ('l_S' ፣ 'ምስል') lV = cv2.getTrackbarPos (' 'ምስል') hH = cv2.getTrackbarPos ('h_H', 'image') hS = cv2.getTrackbarPos ('h_S', 'image') hV = cv2.getTrackbarPos ('h_V', 'image') Lower_R = np. ድርድር ([lH ፣ lS ፣ lV]) higher_R = np.array ([hH ፣ hS ፣ hV]) ጭምብል = cv2.inRange (hsv ፣ Lower_R ፣ higher_R) res = cv2.bitwise_and (ፍሬም ፣ ፍሬም ፣ ጭምብል = ጭንብል) cv2.imshow ('ምስል' ፣ res) k = cv2.waitKey (1) እና 0xFF k == 27 ከሆነ cv2.destroyAllWindow ()

ደረጃ 6: የአሠራር ክፍል

የአሠራር ክፍል ፦
የአሠራር ክፍል ፦

ደህና ፣ እኛ የእጅ ጂኦሜትሪክ ቅርፅ አግኝተናል ፣ አሁን እሱን ለመበዝበዝና የእጅ ምልክቱን ለማወቅ እሱን ለመጠቀም ጊዜው አሁን ነው።

ኮንቬክስ ቀፎ;

በኮንቬክስ ቀፎ በኩል ፣ በቅርጹ ውስጥ ባሉ እጅግ በጣም ከፍተኛ ነጥቦች በኩል ግምታዊ ባለ ብዙ ጎን ለመገጣጠም እንሞክራለን። በግራ በኩል ያለው ምስል በቀይ ምልክት ከተደረገባቸው የኮንቬክስ ነጥቦች ጋር ለቅርጹ የተሰጠውን ግምታዊ ባለ ብዙ ጎን ያሳያል።

የኮንቬክስ ነጥቦች እነዚህ ከተጠጋጋ ባለብዙ ጎን ጎን በጣም ርቀው የሚገኙት በቅርጹ ውስጥ ያሉት ነጥቦች ናቸው። ነገር ግን ፣ የኮንቬክስ ቀፎ ችግር በሒሳብ ስሌት ወቅት የሁሉም የኮንቬክስ ነጥቦች ድርድር እናገኛለን ነገር ግን እኛ የሚያስፈልገን ሰማያዊ የጠቆመ ኮንቬክስ ነጥብ ነው። ለምን እንደ ተፈለገ እንነግርዎታለን።

ይህንን የኮንቬክስ ነጥብ ለማግኘት ፣ የቅርቡን ነጥብ ርቀትን በአቅራቢያው ካለው ጎን ለማግኘት ቀጥታ የርቀት ቀመርን መተግበር አለብን። ሰማያዊ የጠቆመው ነጥብ ከጎኑ ከፍተኛውን ርቀት እንደሚይዝ ተመልክተናል እናም ስለዚህ ይህንን ነጥብ እናገኛለን።

ደረጃ 7

ምስል
ምስል

ደረጃ 8

ምስል
ምስል

ቀጥሎም የአውራ ጣት ጫፍ (ወይም እጅግ በጣም ከፍተኛውን ነጥብ) ወደዚህ ኮንቬክስ ነጥብ ከአግድም ጋር የመቀላቀል ዝንባሌን ማግኘት አለብን።

ደረጃ 9

ምስል
ምስል

ከላይ ባለው ሁኔታ ፣ ምልክቱ ለግራ መዞር ከሆነ አንግል 0 ከ 0 እስከ 90 ዲግሪዎች መሆን አለበት። ያ ታን (α) አዎንታዊ መሆን አለበት።

ደረጃ 10

ምስል
ምስል

ከላይ ባለው ሁኔታ ፣ ምልክቱ ለትክክለኛው መዞር ከሆነ አንግል 180 ከ 180 እስከ 90 ዲግሪዎች መሆን አለበት። ያ ታን (α) አሉታዊ መሆን አለበት።

ስለዚህ ፣ ታን positive አዎንታዊ ከሆነ ፣ ከዚያ ግራ ይታጠፉ። ታን negative አሉታዊ ከሆነ ፣ ከዚያ ወደ ቀኝ መታጠፍ። አሁን በጣም አስፈላጊ የሆነውን የማቆሚያ ትእዛዝ እንዴት እንደሚለይ ለማየት ጊዜው አሁን ነው።

እዚህ ፣ አንድ የተወሰነ ጥምርታ (በአጋጣሚ እና በሙከራ የተገኘ) ይመረመራል እና በከፍተኛ ሁኔታ ይህ ርቀቶች በዚህ የተወሰነ ክልል ውስጥ ይቀራሉ።

ደረጃ 11

ምስል
ምስል

በመጨረሻ ፣ የፊት እንቅስቃሴ እንቅስቃሴ ምልክት በ OpenCV ውስጥ በ matchShape () ተግባር ይተነትናል። ይህ ተግባር ከላይ ባለው ምስል በግራ በኩል ባለው ኮንቱር ከላይ ባለው ሥዕል ላይ የስልጠና ምሳሌን በዚህ ሁኔታ የሁለት ቆጣሪዎችን ቅርፅ ያወዳድራል። በሁለት ቅርጾች ቅርፅ ባለው ልዩነት መሠረት ከ 0 እስከ 2 ወይም 3 የሚደርስ እሴት ይመልሳል። በተመሳሳይ ተመሳሳይ ኮንቱር ፣ 0 ይመልሳል።

ret = cv2.match ቅርጾች (cnt1 ፣ cnt2 ፣ 1 ፣ 0.0)

እዚህ ፣ cn1 እና cnt2 ሊነፃፀሩ የሚገባቸው ሁለት ቅርጾች ናቸው።

ደረጃ 12 የእንቅስቃሴ ቁጥጥር

የእንቅስቃሴ ቁጥጥር
የእንቅስቃሴ ቁጥጥር

PySerial:

የተተረጎመውን መረጃ ወደ ተከታታይ ውሂብ ለመለወጥ በአርዱዲኖ ዩኤስቢ ገመድ በኩል ወደ አርዱዲኖ ኡኖ እንዲገናኝ የ PySerial ቤተ -መጽሐፍትን ተጠቅመን ነበር። አንድ የተወሰነ ምልክት በክፍትቪቭ አንዴ ከተገኘ እኛ ጊዜያዊ ተለዋዋጭ ‹x› ን ፈጠርን እና የተወሰነ ልዩ እሴት ሰጠን እና የሚከተለውን የትእዛዝ መስመር በመጠቀም ወደ ተከታታይ ግብዓት ቀይረነዋል--

የፒሲየር ቤተ -መጽሐፍት ለማስመጣት ተከታታይ #ያስመጡ

serial. Serial ('', baudrate = '9600', timeout = '0') # ተከታታይ ውፅዓት ማቀናበር..የፖርት ስም የውሂብ ማስተላለፍ የሚከሰትበት የወደብ ስም ነው።

serial.write (b'x ') # x ወደ ወደብ የተላከው ፊደል ነው…

የአርዱዲኖ ማቀነባበር;

አሁን አርዱዲኖ እያንዳንዱ የተለየ ተከታታይ x ለሮቦቱ ለስላሳ እንቅስቃሴ ኃላፊነት ለተወሰነው እርምጃ መስመር በተያዘበት መንገድ ኮድ ተሰጥቶታል (የግራ ምልክትን ማወቅ ሞተሮችን ወደ ግራ ለመዞር በቀኝ በኩል ያሉትን ሞተሮች ያስነሳል)። ኮዱን በትክክል በመቀየር የእያንዳንዱን ተሽከርካሪ እንቅስቃሴ በትርጉም ሆነ በማሽከርከር መቆጣጠር እንችላለን።

L298N የሞተር ሾፌር:-

በዝቅተኛ የቮልቴጅ ደረጃዎች ምክንያት ሞተሮች በቀጥታ ሊሠሩ ስለማይችሉ የሞተር አሽከርካሪ በሞተር እና በኃይል ምንጭ መካከል መካከለኛ ሆኖ ያገለግላል። ሊ-ፖ ባትሪ ከ 12 ቮ የግብዓት ተርሚናሉ ጋር የተገናኘ ሲሆን የአርዲኖኖን 5 ቮ ሶኬት ከሞተር ሾፌር 5 ቮ የግብዓት ሶኬት ጋር በመጨረሻ የ Li-Po ን መሬት እንዲሁም አርዱዲኖን በጋራ የሞተር ሾፌር ሶኬት ውስጥ በማገናኘት እናገናኘዋለን።

አሁን የሞተሮቹ ተርሚናሎች በተሰጡት ሶኬቶች ላይ ተገናኝተዋል። በመጨረሻ የእንቅስቃሴውን የማዞሪያ እና የትርጉም ገጽታዎች በትክክል እንድንወስን ነፃ እንድንሆን የሚያስችለንን የአርዲኖን የውጤት ሶኬቶች ለሞተር የግብዓት ተርሚናሎችን እናገናኛለን።

የሚመከር: