ዝርዝር ሁኔታ:

ሮቦ-ቴክኒሽያን 8 ደረጃዎች
ሮቦ-ቴክኒሽያን 8 ደረጃዎች

ቪዲዮ: ሮቦ-ቴክኒሽያን 8 ደረጃዎች

ቪዲዮ: ሮቦ-ቴክኒሽያን 8 ደረጃዎች
ቪዲዮ: Консультант от бога Tg: cadrolikk 2024, ሀምሌ
Anonim
ሮቦ-ቴክኒሽያን
ሮቦ-ቴክኒሽያን

በማርስ ላይ ካረፉ ጠፈርተኞች መካከል አንዱ እንደሆንክ ለአንድ ሰከንድ አስብ። እርስዎ የሚያደርጉት አንድ ሚሊዮን ነገሮች ፣ የሚወስዷቸው ናሙናዎች ፣ የሚሠሩባቸው ሙከራዎች ፣ የሚሰበሰቡበት ውሂብ አለዎት ፣ ግን በቀን አንድ ወይም ሁለት ጊዜ እርስዎ በሚኖሩበት መኖሪያ እና/ወይም የምርምር ሞጁሎች ዙሪያ ለመሮጥ እና እነሱን ለመመርመር ያስፈልግዎታል። አስፈላጊው ፣ አንድ ሰው ነገሩ በጥሩ ሁኔታ ላይ መሆኑን ፣ ሁሉም በሺዎች የሚቆጠሩ ቁርጥራጮች እና ክፍሎች እየሠሩ እና በቦታው ላይ መሆናቸውን ማረጋገጥ አለበት። ነገር ግን ከእነዚያ አንዳንድ ግዴታዎች እርስዎን ለማስወጣት አውቶማቲክ ረዳት ቢኖርስ? ሁሉም ነገር በቦታው ፣ በሥራ ላይ እና ደህንነቱ የተጠበቀ መሆኑን ለማረጋገጥ በሞጁሎቹ ውስጥ ሊንቀሳቀስ የሚችል ትንሽ ሮቦት ቢኖርስ?

ለማዳን ሮቦ-ቴክኒሽያን።

በዋናነት ፣ ይህ ኮድ በመሬት ላይ ቀለል ያለ ቀለም ያለው መንገድ ስለሚከተል ሮቦ ቴክኒሺያንን ይቆጣጠራል። በመንገዱ ወይም በማዞሪያው ውስጥ መገናኛ እስኪያገኝ ድረስ ይህንን መንገድ ይከተላል ፣ ይህም ሮቦ-ቴክኒሺያን በሚቀጥለው የት እንደሚሄድ ውሳኔ እንዲሰጥ ለማድረግ ለምስል ማቀነባበሪያ ፎቶግራፍ እንዲነሳ ያነሳሳል። የብርሃን ብልጭታ እና የጭንቀት ዳሳሾች ሮቦ-ቴክኒሻን ከጉዳት ለመጠበቅ ይሰራሉ ፣ እና የእንቆቅልሽ ዳሳሾች የምርመራ ፎቶ በሚነሳበት ጊዜ ይቆጣጠራሉ። ሁሉም አንድ ላይ ፣ ሮቦ-ቴክኒሽያን በማር ሞጁሎች ውስጥ ለማጉላት የተቀየሰ ነው ፣ የምርመራውን መሠረታዊ ተግባር ሲያከናውን የጠፈርተኞችን ጊዜ ነፃ በማድረግ ፣ አንድ ስህተት ሲያገኝ ብቻ ለሰብዓዊ ግብዓት ጥሪ ያደርጋል።

እንደገና እንደ ማስጠንቀቂያ ፣ ይህ በሂደት ላይ ያለ ሥራ ነው። ኮዱ ፣ እንደነበረው ፣ ይሠራል ፣ ግን እሱ መሰናክሎች አሉት ፣ በተለይም ብዙ ፣ ተደራራቢ ፕሮግራሞች ስላሉ። እንዲሁም ፣ ይህ ፕሮጀክት በእውነተኛው የማርስ ተልዕኮ ውስጥ እንዲሠራ ፣ ሮቦት ለተለየ ዓላማ መገንባት አለበት ፣ ስለዚህ እንደገና ይህ “የፅንሰ -ሀሳብ ማረጋገጫ” ግንባታ ነው ብዬ እገምታለሁ።

ይህንን ለማስጀመር የሚያስፈልጉዎት ጥቂት ነገሮች አሉ። ውድ ፕሮግራም ፣ ለዚያ ፕሮግራም የድጋፍ ጥቅሎች እና በኮድ ውስጥ ትንሽ ዳራ ያስፈልግዎታል። እኔ ተማሪ እንደመሆኔ ፣ እና አንዳንድ የከርሰ ምድር ወለል ኮድ (ለራስበሪ ፓይ) ተሰጥቷል ፣ ስለ ዝግጅቱ በተለይ አልናገርም። ለዚያ መሰረታዊ ኮድ ሁሉንም አገናኞች ከዚህ በታች ማግኘት ይችላሉ። ወደ ቁሳቁሶች ዝርዝር እንሂድ።

ሃርድዌር

  • Raspberry Pi (ስሪት 3 ን ተጠቅመናል)
  • iRobot ®
  • Raspberry Pi ከሮቦ ቴክኒሽያን ጋር ተጣብቆ ለማቆየት አንድ ዓይነት የመያዣ መሣሪያ
  • Raspberry Pi ካሜራ (ጥሩ ራስ -ትኩረት እና የምስል ጥራት እስካለው ድረስ ምንም ዓይነት ለውጥ የለውም)
  • ሮቦ-ቴክኒሽያን ላይ ካሜራውን ወደ ፊት እንዲጠብቅ አንድ ዓይነት ማቆሚያ ወይም መያዣ
  • ወለሉ ላይ በአስተማማኝ ሁኔታ የተያዘ እንደ ንጣፍ ፣ ነጭ (ወይም በጣም ቀላል ቀለም) የሚጠቀም ቁሳቁስ። ከፊት ሁለት የገደል ዳሳሾች መካከል ካለው ቦታ በመጠኑ ሰፊ መሆን አለበት።
  • በጣም ትልቅ ጽሑፍ ያላቸው 4 ምልክቶች (በእነሱ ምስል ፣ ቀኝ ፣ ተመለስ ፣ እና ግራ ላይ ታትመዋል)
  • ባለቀለም የወረቀት ሉሆች (ቢያንስ ሶስት እና በተለይም ቀይ ፣ አረንጓዴ እና ሰማያዊ)

ሶፍትዌር

  • ማትላብ (2018a እና 2017b ሁለቱም ጥቅም ላይ የዋሉ እና ትንሽ ልዩነት የሚያደርጉ ይመስላል)
  • ለ Matlab Raspberry Pi ድጋፍ ጥቅል
  • ከማትላብ ጋር ለመገናኘት Raspberry Pi ኮድ (ከዚህ በታች ከተሰጠው ምንጭ ኮድ ጋር ይገናኙ)
  • ለ Matlab የምስል ማቀናበሪያ መሣሪያ ሳጥን (እርስዎ ያለመሳሪያ ሳጥኑ ይህንን ፕሮጀክት ማድረግ አይችሉም)
  • አማራጭ -ማትላብ ሞባይል በስልክዎ ላይ ተጭኗል ፣ በኋላ ላይ አብራራለሁ

ደረጃ 1 - ሃርድዌርን ማቀናበር

ef.engr.utk.edu/ef230-2018-08/projects/roo…

IRobot® ከማትላብ ጋር ከመሠረታዊ አጋዥ ስልጠና ጋር መገናኘት መቻሉን ለማረጋገጥ ይህ ለመሠረታዊ ኮድ አገናኝ ነው። ቀደም ብዬ እንዳልኩት ፣ ትምህርቱ ቀድሞውኑ በጥሩ ሁኔታ የተቀመጠ ስለሆነ ይህንን የተወሰነ ክፍል አልሸፍንም። በአገናኝ ላይ ያሉትን ደረጃዎች ከተከተሉ በኋላ የተካተተውን መረጃ ለመመልከት የማትላብን “ሰነድ” ትዕዛዝ መጠቀም እንደሚችሉ እጠቅሳለሁ። በተለይ ፦

doc roomba

እና አንድ ተጨማሪ በጣም አስፈላጊ ነጥብ።

ፋይሎችን ከላይ ካለው አገናኝ ሲያወርዱ ማትላብ በተጠቃሚ የመነጩ ፋይሎች አሁን ባለው የሥራ አቃፊ ውስጥ እንዲሆኑ ስለሚፈልግ ከላይ በገለጽኩት ውስጥ አስቀምጣቸው።

ያንን ከመንገድ ላይ ወደ ኮዱ እንሂድ።

ደረጃ 2 - እነዚያን ሁሉ ዳሳሾች ማግኘት

እነዚያን ሁሉ ዳሳሾች ማግኘት
እነዚያን ሁሉ ዳሳሾች ማግኘት
እነዚያን ሁሉ ዳሳሾች ማግኘት
እነዚያን ሁሉ ዳሳሾች ማግኘት

አንድ ሰከንድ ወስደው ለ iRobot® ምርመራ ይስጡ። ሮቦ ቴክኒሽያን ስለሚቀበሉት ግብዓቶች ሀሳብ እንዲኖርዎት እነዚህ የት እንዳሉ ማወቅ ጥሩ ነው ፣ እና እርስዎ ያዋቀሩበትን መንገድ ከመከተል ይልቅ ነገሩ ለምን በክበቦች ውስጥ እንደሚሽከረከር ማወቅ ይችላሉ (ይህ ምናልባት ወይም ላይሆን ይችላል)። ከፊት ለፊት ያለውን ትልቅ የአካል ጉድፍ ዳሳሽ በግልጽ ያያሉ። የገደል ዳሳሾች ለማየት ትንሽ አስቸጋሪ ናቸው ፣ ወደ ላይ ገልብጠው ከፊት ጠርዝ አጠገብ ያሉትን አራቱን ግልፅ የፕላስቲክ መስኮቶችን መፈለግ ያስፈልግዎታል። የብርሃን ብልጭታ ዳሳሾች የበለጠ ተደብቀዋል ፣ ግን ለአሁን በአካል በሚጋጭ አነፍናፊ አሞሌ ፊት ላይ በሚገኘው iRobot® ፊት ዙሪያ ይሮጣል በሚያብረቀርቅ ጥቁር ባንድ ውስጥ ቀጥታውን ለመናገር በቂ ይሆናል።

የጎማ መውረጃ ዳሳሾች አሉ ፣ ግን እነዚህ በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ ያልዋሉ ናቸው ፣ ስለዚህ ዳሳሾችን ወደ መሞከር እንሄዳለን።

ደረጃ 3 - መለኪያዎችን ለማዘጋጀት ሙከራ

ግቤቶችን ለማቀናበር ሙከራ
ግቤቶችን ለማቀናበር ሙከራ

ሥራውን ለመሥራት ሮቦ-ቴክኒሽያንን ከመላክዎ በፊት የተወሰኑ የእሱን ልዩነቶችን እና የአነፍናፊ ክልሎችን ማወቅ አለብን። እያንዳንዱ iRobot® ትንሽ የተለየ እና በሮቦቱ ሕይወት ላይ የሚለወጥ በመሆኑ አነፍናፊዎቹ በሚሠሩባቸው አካባቢዎች ላይ እንዴት እንደሚያነቡ ማወቅ አለብን። ይህንን ለማድረግ ቀላሉ መንገድ ቀለል ያለ ቀለም ያለው መንገድ ማቀናበር ነው (ሮቦ ቴክኒሽያን በሚሰራው ወለል ላይ ነጭ የአታሚ ወረቀቶችን ጭረቶች እጠቀም ነበር ፣ ግን ቀለል ያለ ቀለም ያለው ነገር ሁሉ ያደርጋል)።

ማትላብን ያስጀምሩ እና አዲስ ስክሪፕት ይክፈቱ። እኔ ቀደም ብዬ በገለጽኩት በአንድ ጽሑፍ ውስጥ ስክሪፕቱን ያስቀምጡ እና የፈለጉትን ሁሉ ይሰይሙት (ምንም እንኳን አጭር ለማድረግ ይሞክሩ ፣ ምክንያቱም የዚህ ፋይል ስም የተግባር ስም ይሆናል)። ሮቦቱን ያብሩ እና ትዕዛዞቹን በትእዛዝ መስኮቱ ውስጥ በመተየብ ከመማሪያው ውስጥ የክፍልባ ተለዋዋጭ ቅንብሩን ይጠቀሙ።

Raspberry Pi በ iRobot® ውስጥ መሰካቱን እና እርስዎ ኮምፒዩተር ከተመሳሳይ የበይነመረብ ግንኙነት ጋር መገናኘቱን ያረጋግጡ። ማትላብ የማይገናኝበትን ምክንያት ለማወቅ ፀጉርዎን በማውጣት ትንሽ ጊዜዎን ያሳልፋሉ።

r = roomba (ያዋቀሩት ቁጥር)

በዚህ ሁኔታ ውስጥ ያለው ተለዋዋጭ “r” አስፈላጊ አይደለም ፣ የፈለጉትን ሊደውሉት ይችላሉ ፣ ግን አንድ ፊደል ተለዋዋጭ ለመጠቀም ሕይወትን ቀላል ያደርገዋል።

አንዴ መንገዱ ከተዋቀረ እና የክፍሉ ክፍሉ በተሳካ ሁኔታ ከተገናኘ ፣ የወደፊቱን ሮቦ ቴክኒሻን አንድ ወይም ሁለት የገደል ዳሳሾች በመንገዱ አናት ላይ ያስቀምጡ። በእርግጥ ይህ ማለት ሌሎቹ ሁለቱ ወይም ሦስቱ እርስዎ ከመረጡት ወለል በላይ ናቸው ማለት ነው።

አሁን የሙከራ ዳሳሾችን በትእዛዙ ያስጀምሩ-

r.testSensors

“R” ቀደም ብለው የገለፁት ተለዋዋጭ መሆኑን ያስታውሱ ፣ ስለዚህ ‹r› ካልሆነ ‹r› ን ይለውጡ። እርስዎ ለወሰኑት ሁሉ። ይህ በብዙ መረጃ የሙከራ ዳሳሽ ማያ ገጹን ያመጣል።

ለዚህ ፕሮጀክት በ LightBumpers ፣ ባምፐርስ እና በገደል ክፍሎች ላይ ያተኩሩ። አነፍናፊዎቹ በተለያዩ ገጽታዎች ላይ እንዴት እንደሚለዋወጡ ፣ ወይም አንድ ነገር ለ ligthBumper እሴቶች ለመለወጥ ፣ ወዘተ ለመመልከት እርግጠኛ ይሁኑ። በአንድ ሰከንድ ውስጥ የእርስዎን መለኪያዎች እንዲያቀናብሩ ያስፈልጓቸዋል።

ደረጃ 4 - ኮዱን ማስጀመር

በመጀመሪያ አንድ ተግባር ይገነባሉ። እኔ “መንገድ” ብየዋለሁ ግን እንደገና ስሙ አስፈላጊ አይደለም ፣ ግን ከአሁን በኋላ እንደ “መንገድ” እጠቅሳለሁ።

የኮዱ የላይኛው ክፍል አንዳንድ የተጠቃሚ ግብዓት አማራጮችን እያቀናበረ ነው። በ listdlg ውስጥ ጥቅም ላይ የሚውሉ አንዳንድ ዝርዝሮችን ይገነባል እና ከዚያ የዝርዝር ውይይት ሳጥን ያወጣል። ይህ ተጠቃሚው የትኛውን የመንገድ ቀለም መከተል እንደሚፈልግ እንዲመርጥ ያስችለዋል ፣ ይህም በኋላ ወደ ጨዋታ ይመጣል።

list = {'ቀይ' ፣ 'ሰማያዊ' ፣ 'አረንጓዴ'}

problist = {'' ጉዳተኛ ፣ ምስል አስቀምጥ '' ፣ '' ከቦታ ውጪ ፣ ምስል አስቀምጥ '' ፣ የሚጠበቀው ፣ ቀጥል}} pathcolor = listdlg ('' PromptString '' ፣ '' የመንገድ ቀለም ይምረጡ '' ፣… '' SelectionMode '' ፣ '' ነጠላ ፣ 'ListString' ፣ ዝርዝር) ፕሮብሌም = 0; driv = ;

የ “ፕሮብሌም” እና “ድራይቭ” ተለዋዋጮች በሚዞሩበት ጊዜ በተግባሩ ዋና ውስጥ ጥቅም ላይ ስለሚውሉ እዚህ መታወጅ አለባቸው ፣ ግን እንደገና ፣ ማንኛውንም እነዚህን ተለዋዋጮች እንደገና መሰየም ከፈለጉ ወይም የዝርዝሩን ምርጫዎች መለወጥ ከፈለጉ ፣ ጥሩ ነው በቀሪው ኮዱ ውስጥ ወጥነት ነዎት።

ደረጃ 5: የሉፕ አናት -የአካላዊ እብጠት ዳሳሾች

በዚህ ጊዜ አናት ላይ የአካላዊ እብጠት ዳሳሽ አመክንዮ ይ containsል። በመሠረቱ ፣ ሮቦ-ቴክኒሽያን ወደ አንድ ነገር ሲሮጥ ያቆማል (ወይም ለፊቱ የመጋጫ ዳሳሽ 0.1 ሜትር ይደገፋል) ፣ ከዚያ ፎቶግራፍ ለማንሳት እራሱን ያቆማል። የፍጥነት እና የቦታ መቆጣጠሪያ ክፍልን በመጀመሪያ ይሸፍኑ።

ቀደም ባሉት ደረጃዎች በሮቦ-ቴክኒሽያን ላይ ያሉትን ሁሉንም ዳሳሾች ከሞከሩ ፣ የብልሹ አነፍናፊዎች የመዳሰሻውን መደበኛ ፣ ያልተጫነ አቀማመጥ የሚወክል ዜሮ ያለው አመክንዮ እሴት (0 ወይም 1) እንዳላቸው ያውቃሉ። ያንን ለኮዱ ያስታውሱ።

እውነት %ዋና ሆኖ ሳለ ሉፕ %የመጠባበቂያ መረጃን ይቀበላል S = r.getBumpers S.left ~ = 0 r.stop elseif S.right ~ = 0 r.stop elseif S.front ~ = 0 r.stop መጨረሻ

ይህ “አንድ ነገር ቢመታ ያቁሙ” የሚለው መሠረታዊ ክፍል ነው። አነፍናፊዎቹ ግጭትን ካወቁ ፣ ከዚያ ፎቶ ለማግኘት የሮቦ ቴክኒሻን አቀማመጥ የሚያስተካክለው ወደ ቀጣዩ የኮዱ ክፍል ይሄዳል።

ከሆነ S.left ~ = 0 %loop የበረራ መረጃን ወስዶ ካሜራውን ለፎቶ r.turnAngle (5) ለአፍታ (0.5) img = r.getImage %ፎቶ አንስቶ ምስል (img) %የመገናኛ ሣጥን prob = listdlg (') ያሳያል። PromptString '፣' ያልተጠበቀ መሰናክል ተገኝቷል ፣ እባክዎን ይለዩ '… ፣' SelectionMode '፣' single '፣' ListString '፣ problist) ሌላ ከሆነ S.right ~ = 0 r.turnAngle (-5) ለአፍታ ቆም (0.5) img = r. getImage ምስል (img) prob = listdlg ('PromptString' ፣ 'ያልተጠበቀ መሰናክል ተገኝቷል ፣ እባክዎን ይለዩ'… ፣ 'SelectionMode' ፣ 'ነጠላ' ፣ 'ListString' ፣ ፕሮብሊስት) ሌላ ከሆነ S.front ~ = 0 r.moveDistance (- 0.1) ለአፍታ ቆም (0.5) img = r.getImage image (img) prob = listdlg ('PromptString' ፣ 'ያልተጠበቀ መሰናክል ተገኝቷል ፣ እባክዎን ይለዩ'…, 'SelectionMode' ፣ 'single' ፣ 'ListString' ፣ problist) መጨረሻ

በመሠረቱ ፣ ምስሉ አንዴ ከተወሰደ ሌላ የንግግር ሳጥን በሶስት አማራጮች ይታያል። የመጀመሪያዎቹ ሁለት አማራጮች ፎቶውን ወደተወሰነ አቃፊ ያስቀምጣል ፣ በኋላ ላይ እሸፍነዋለሁ ፣ ሦስተኛው አማራጭ በቀላሉ የንግግር ሳጥኑን ይዘጋል እና በሉሉ በኩል ይቀጥላል። አማራጮቹን ማስታወስ ካልቻሉ የቀደመውን ደረጃ ይመልከቱ።

አሁን በቦምብ ዳሳሽ ክፍል እና በፎቶ ቁጠባ ክፍል መካከል የኮድ ክፍልን አስገባሁ። ይህ የ LightBumper እሴቶችን ይወስዳል እና የማሽከርከር ፍጥነቱን ወደ 0.025 ሜትር/ሰከንድ (በጣም ቀርፋፋ) ያዘጋጃል ፣ ይህ በእውነቱ አስፈላጊ አይደለም ነገር ግን ወደ ሮቦ-ቴክኒሽያን ወደ ነገሮች የሚገታውን እና በመጨረሻም የአካል ጉድለትን ዳሳሾች ያዳክማል።

L = r.getLightBumpers L. ከሆነ> 100 || L.leftFront> 100 || L.rightFront> 100 || L.right> 100 driv = 0.025 r.setDriveVelocity (0.025) ሌላ ድራይቭ = 0.1 መጨረሻ

እርስዎ ያዩዋቸው (እና ተስፋ እናደርጋለን ብለው የፃፉት) እሴቶች ቀደም ብለው የሚጫወቱበት ክፍል ይሆናል።

“ኤል (የአነፍናፊው ጎን እና አቅጣጫ)> 100” እኔ ባየሁት እሴቶች ላይ የተመሠረተ ነው ፣ ስለዚህ የእርስዎ ምልከታዎች የተለያዩ ከሆኑ እነዚህን ቁጥሮች ይለውጡ። ሀሳቡ ሮቦ-ቴክኒሽያን ከፊት ለፊቱ ጥቂት ሴንቲሜትር የሆነ ነገር ከተሰማው ፍጥነት ይቀንሳል ፣ ከዚያ በላይ አላስፈላጊ ነው።

ቀጣዩ ክፍል ፎቶዎች በኋላ ላይ የሚቀመጡበት ነው።

%በመጀመሪያው ወይም በሁለተኛው አማራጭ በፕሮግራም መገናኛው ውስጥ ከተመረጠ ፣ loop ለፎቶ ፋይል መረጃ ከሠራ ፣ = = 1 %ምስሉን ያስቀምጣል ፣ በጊዜ ማህተም t = ሰዓት ይጽፋል ፤ basename = sprintf ('\ img_%d_%d_%d_%d_%d.png', t (1), t (2), t (3), t (4), t (5)); folder = 'E: / UTK / Classes / fall 18 / ef230 / irobot / images'; fullFileName = ሙሉ ፋይል (አቃፊ ፣ የመጠሪያ ስም); imwrite (img ፣ fullFileName) ዝጋ ምስል 1 ለአፍታ አቁም (2) elseif prob == 2 t = ሰዓት; basename = sprintf ('\ img_%d_%d_%d_%d_%d.png', t (1), t (2), t (3), t (4), t (5)); folder = 'E: / UTK / Classes / fall 18 / ef230 / irobot / images'; fullFileName = ሙሉ ፋይል (አቃፊ ፣ የመጠሪያ ስም); imwrite (img ፣ fullFileName) ዝጋ ምስል 1 ለአፍታ አቁም (2) መጨረሻ

ፎቶዎቹ የተቀመጡባቸው ሁሉም የፋይል ስሞች እና ሥፍራዎች እንደ አማራጭ ናቸው። በመግቢያው ደረጃ በፈጠርኩት የክፍልባ አቃፊ ውስጥ የተቀመጠ አቃፊን መርጫለሁ ፣ ግን እርስዎ በመረጡት ቦታ ሁሉ ሊሆን ይችላል። እንዲሁም ፎቶዎቹ በጊዜ ማህተሙ ይቀመጣሉ ፣ ግን ያ በተለይ አስፈላጊ አይደለም (ለማርስ ተልእኮ መላምት ጠቃሚ ቢሆንም)።

በአካላዊ ጉብታ ዳሳሾች ተሸፍነው ፣ ወደ ገደል ዳሳሾች እና ወደሚከተለው መንገድ መሄድ እንችላለን።

ደረጃ 6: ዱካውን መከተል

የገደል ዳሳሾች ኮድ የሁለቱ የፊት እና የሁለት ጎን ዳሳሽ እሴቶችን ለማወዳደር ተዋቅሯል። በተመለከቱት እሴቶችዎ መሠረት እነዚህን እሴቶች (ምናልባትም) መለወጥ ያስፈልግዎታል። ምናልባት ጥቂት ሙከራዎች ከሄዱ በኋላ እነዚህን እሴቶች ማርትዕ እና በአከባቢው ብርሃን ፣ በቀኑ ሰዓት (የሙከራ ቦታው ምን ያህል እንደበራ) ወይም የአነፍናፊ መስኮቶች በቆሸሹ ጊዜ መለወጥ ያስፈልግዎታል።

ሆኖም ወደ ገደል አነፍናፊ ኮድ ከመግባታችን በፊት ፣ ከማትላብ የተወሰኑ አላስፈላጊ መረጃዎችን ለማስወገድ የገባሁት አጭር የኮድ ክፍል አለ። ይህ ክፍል አያስፈልግም ፣ ግን ፕሮግራሙን ለማስኬድ የሚያስፈልገውን ማከማቻ ለመቀነስ እጠቀምበት ነበር።

img clear t clear basename clear fullFileName clear folder

ቀጣዩ የኮድ ክፍል የፕሮጀክቱ ሥጋ ነው። ሮቦ-ቴክኒሽያን ወለሉ ላይ የተቀመጠውን ቀለል ያለ ቀለም ያለው መንገድ እንዲከተል ያስችለዋል። በአጭሩ ፣ በተከታታይ እሴቶችዎ ላይ በመመስረት የፊት ሁለት የገደል ዳሳሾች ከደረጃው በላይ እንዲሆኑ እራሱን ለመምራት ይሞክራል ፣ እና ፕሮግራሙ የምስል ማቀነባበሪያ እርምጃዎችን ትንሽ ቆይቶ እንዲጀምር ያስችለዋል።

C = r.getCliffSensors %ቀለበት የሚከተለው ከሆነ የቀለም ባንድ (ነጭ) C.leftFront> 2000 && C.rightFront> 2000 %ቀጥተኛ መንገድ መመሪያ r.setDriveVelocity (driv) elseif C.leftFront 2000 %ሮቦቱ በጣም ከሄደ ወደ ቀኝ ይታጠፋል ግራ r.turnAngle (-2.5) elseif C.leftFront> 2000 && C.rightFront <ሮቦት በጣም ሩቅ ከሄደ 2000%ወደ ግራ ይታጠፋል r.turnAngle (2.5) elseif C.leftFront <2000 && C.rightFront 100 || L.leftFront> 100 || L.rightFront> 100 || L.right> 100 img = r. 2.5) የመንገድ ምስል ማወቂያ ዲስክ ('ምስል ማግኘት') መጨረሻ መጨረሻ ቦታ %መጨረሻ ቦታ

እኔ የመረጥኳቸው ተለዋዋጭ ስሞች አማራጭ እንደሆኑ ያስታውሱ ፣ ግን እንደገና ሲቻል ነጠላ ፊደል ተለዋዋጮችን መጠቀም ሕይወትን ቀላል ያደርገዋል ብዬ አስባለሁ።

የኮዱን መካከለኛ ክፍል ለማብራራት ፣ ሁለቱ የፊት ዳሳሾች ከመንገዱ ጠርዝ ሲሮጡ (ወደ መገናኛው ሲመጣ ወይም የመንገዱ መጨረሻ ሲደርስ) ከፊቱ የሆነ ነገር እንዳለ ለማየት ይመለከታል።. ይህ እንዲሠራ በመንገዱ መጨረሻ ወይም በማንኛውም መስቀለኛ መንገድ ላይ አንድ ነገር መሬት ላይ ማስቀመጥ ያስፈልግዎታል።

አንዴ ፎቶው ከተነሳ በኋላ ምን ማድረግ እንዳለበት ለማወቅ የምስል መታወቂያ ይጠቀማል። በዚህ የኮድ ክፍል ውስጥ የቦታ መያዣም አለ-

ለመንገድ ምስል መታወቂያን %ቦታ ያዥ ('ምስል ማግኘት')

በሚከተለው ደረጃ ላይ ስለሚገኘው ጽሑፍ እና የቀለም አሠራር በተለይ ማውራት ስለፈለግኩ ይህንን ለጊዜው እጠቀምበት ነበር።

ደረጃ 7 የምስል ሂደት

በምስሉ ሂደት ሁለት ክፍሎች አሉ። በመጀመሪያ የጽሑፍ ማወቂያን ለመቀጠል ወይም ላለመቀጠል ለመወሰን በስዕሉ ውስጥ የቀለም ጥንካሬን ያሰላል የቀለም ማወቂያ ነው። በቀለም ስሌቶቹ መጀመሪያ ላይ በዚያ የመጀመሪያ የመገናኛ ሳጥን ውስጥ ምን ምርጫ እንደተመረጠ (ቀይ ፣ ሰማያዊ ፣ አረንጓዴን እጠቀም ነበር ፣ ግን የቀለማት ጥንካሬ አማካኝ እሴቶች ሊታወቁ እስከሚችሉ ድረስ የሚፈልጉትን ማንኛውንም ቀለም መምረጥ ይችላሉ። Raspberry Pi ካሜራ)።

img = r.getImage img = imcrop (img ፣ [0 30 512 354]) imgb = imcrop (img ፣ [0 30 512 354]) imgt = imcrop (img ፣ [0 30 512 354]) ቀይ = አማካኝ (አማካይ (ማለት) imgb (:,,, 1))); g = አማካይ (አማካኝ (imgb (:,:, 2)))); ለ = አማካይ (አማካኝ (imgb (:,:, 3))));

ይህ የጥንካሬ ፍተሻ ነው። ምን ማድረግ እንደሚፈልግ ለመወሰን ይህ በሚቀጥለው ክፍል ውስጥ ጥቅም ላይ ይውላል።

ከሆነ ቀይ> g && red> ለ ከሆነ ትራክኮለር == 1 imgc = imcrop (img ፣ [0 30 512 354]) R = ocr (img) ከሆነ R. Words {1} == IMAGE || R. Words {2} == IMAGE || R. Words {3} == IMAGE t = ሰዓት; basename = sprintf ('\ img_%d_%d_%d_%d_%d.png', t (1), t (2), t (3), t (4), t (5)); folder = 'E: / UTK / Classes / fall 18 / ef230 / irobot / images'; fullFileName = ሙሉ ፋይል (አቃፊ ፣ የመጠሪያ ስም); imwrite (img, fullFileName) ለአፍታ አቁም (2) ሌላ ከሆነ አር. ቃላት {1} == RIGHT || R. Words {2} == RIGHT || R. Words {3} == RIGHT r.turnAngle (-75) elseif R. Words {1} == ግራኝ || R. Words {2} == ግራ || R. Words {3} == LEFT r.turnAngle (75) elseif R. Words {1} == ተመለስ || R. ቃሎች {2} == ተመለስ || R. Words {3} == ተመለስ r.turnAngle (110) መጨረሻ ሌላ r.turnAngle (110) መጨረሻ መጨረሻ

በመጀመሪያው የመገናኛ ሳጥን ውስጥ የተመረጠው ቀለም ካሜራው ከሚመለከተው ቀለም ጋር የሚስማማ ከሆነ ይህ ክፍል ይወስናል። ካደረገ የጽሑፍ ማወቂያን ያካሂዳል። የትኛው ቃል (ምስል ፣ ተመለስ ፣ ቀኝ ወይም ግራ) እንደሚታይ እና ከዚያም (ወደ ቀኝ እና ወደ ግራ) ዞሮ ፣ ዙሪያውን (ለኋላ) ይሽከረከራል ወይም ስዕል ያንሳል እና እንደበፊቱ በተመሳሳይ መንገድ ያስቀምጠዋል።

ለተለያዩ ቀለሞች የኮዱን አንድ ክፍል ብቻ ሰጥቻለሁ።

ኮዱ ሰማያዊ እና አረንጓዴን ለመለየት ፣ ኮዱን በቀላሉ ይቅዱ እና በክፍሉ አናት ላይ ያለውን የሎጂክ ቼክ ይለውጡ እና ከላይኛው የንግግር ሳጥን ውስጥ ካለው የቀለም ምርጫዎች ጋር የሚዛመድ “ዱካ ቀለም == (ቁጥር)” ያዘጋጁ። ኮድ እንደሚታየው ሰማያዊ 2 እና አረንጓዴ 3 ይሆናል)።

ደረጃ 8: የተጠናቀቀው ምርት

የተጠናቀቀው ምርት
የተጠናቀቀው ምርት

አሁን ሮቦ-ቴክኒሽያን በማርስ ተልዕኮ ሞጁሎች ዙሪያ ማጉላት እና ማንኛውም ነገር ከቦታ ውጭ ወደ ጠፈርተኞቹ መመለስ አለበት።

ያስታውሱ ፣ ሁሉም የገደል አነፍናፊ እና የ LightBumper እሴቶች የእርስዎ የታዩ እሴቶች ወደሆኑት መለወጥ አለባቸው። እንዲሁም ፣ ከልምድ ይህንን ፕሮጀክት በጨለማ ባለ ቀለም ወለል ላይ መሞከር እና ያ ወለል የማይያንፀባርቅ ቢሆን የተሻለ ሆኖ አግኝቼዋለሁ። ይህ በመንገዱ እና በወለሉ መካከል የሚጨምር ንፅፅርን ያገኛል ይህም ሮቦ ቴክኒሽያን በትክክል እንዲከተለው ያደርገዋል።

ለማርስ ተልእኮ ትንሽ ረዳት በማዋቀር እንደተደሰቱ ተስፋ ያድርጉ እና አስደሳች ግንባታ ይኑርዎት።

የሚመከር: