ዝርዝር ሁኔታ:

Roomba MATLAB ፕሮጀክት 5 ደረጃዎች
Roomba MATLAB ፕሮጀክት 5 ደረጃዎች

ቪዲዮ: Roomba MATLAB ፕሮጀክት 5 ደረጃዎች

ቪዲዮ: Roomba MATLAB ፕሮጀክት 5 ደረጃዎች
ቪዲዮ: Roomba Control (ROS & MATLAB) 2024, ህዳር
Anonim
Roomba MATLAB ፕሮጀክት
Roomba MATLAB ፕሮጀክት

የናሳ ለማርስ ሮቨር ያለው የአሁኑ ዕቅድ መረጃ ሰብሳቢ ሆኖ በማርስ ዙሪያ እንዲንከራተት ፣ ሳይንቲስቶች በፕላኔታችን ላይ የቀደሙ የሕይወት ቅርጾች መኖራቸውን ለማየት ወደ ምድር ለመመለስ የአፈር ናሙናዎችን በመሰብሰብ ነው። በተጨማሪም ፣ ሮቨር ሮቨርን ለማሰስ እና ሊያጋጥሙ የሚችሉትን ማንኛውንም ችግሮች ለማስተካከል እንዲረዱ ፣ ሮቨር ምስሎችን ለሳይንቲስቶች ይልካል።

የእኛ ቡድን ለፕሮጀክታችን ያለው ሀሳብ ሮቨር በ 2020 ምድርን እንደሚለቀው የናሳ ሮቨር ተመሳሳይ ነገር እንዲያደርግ ነው ፣ ግን እሱ ደግሞ የመሬቱን ጂኦግራፊ (ካርታ) ካርታ ማዘጋጀት ነው። ክፍልባው ከመውደቁ በፊት ገደሎችን ማስተዋል እና እራሱን ማቆም ይችላል ፣ እና እንዳይወድቅ እና እንዳይጎዳ መንገዱን ወደ ኋላ መመለስ ፣ ማዞር እና መለወጥ ይችላል። በፕሮጀክታችን ውስጥ የተቀናጀ ሌላኛው ሀሳባችን ክፍሉ የሚያየውን የመሬት ምልክቶች ለመንደፍ እና ዙሩ በተጠናቀቀ እና አካሄዱ በተከናወነ ቁጥር ሴራ ለማሳየት እንዲችል ነው።

ይህ አስተማሪ ለክፍላቸው አንድ ዓይነት ኮድ መፍጠር ለሚፈልግ ለማንኛውም ነው።

ደረጃ 1 ደረጃ 1 የሚያስፈልጉ ቁሳቁሶች

ደረጃ 1: የሚያስፈልጉ ቁሳቁሶች
ደረጃ 1: የሚያስፈልጉ ቁሳቁሶች
ደረጃ 1: የሚያስፈልጉ ቁሳቁሶች
ደረጃ 1: የሚያስፈልጉ ቁሳቁሶች

ያስፈልግዎታል:

  1. አንድ ክፍል
  2. MATLAB
  3. ክፍሉን ለማስኬድ ይህ ፋይል
  4. ጠፍጣፋ መሬት
  5. እንደ “ገደል” ለመስራት የጠረጴዛ ወለል

ደረጃ 2 ፦ ደረጃ 2 - ለ Roomba ኮድ ማቀናበር/ማግኘት

ደረጃ 2 ለ Roomba ኮድ ማቀናበር/ማግኘት
ደረጃ 2 ለ Roomba ኮድ ማቀናበር/ማግኘት

አንዴ ፋይሎቹን ካስገቡ በኋላ ማያዎ እንደዚህ ይመስላል።

ደረጃ 3 ደረጃ 3 የገደል ዳሳሾችን/የ LED መብራቶችን ማቀናበር

ይህ ኮድ ለክፍልባዎ ምን ዓይነት ማእዘን እንደሚዞር በትክክል ይነግርዎታል ፣ የባትሪውን መረጃ ይፈትሹ ፣ ለክፍልባዎ ምን ያህል በፍጥነት እንደሚሄዱ ይንገሩት እና በክፍልባው ካሜራ በኩል ለአንድ ሰው ይፈትሹ። እንዲሁም አንድን ሰው ለይቶ ከገለጸ እና ከገደል ከመውጣቱ በፊት እራሱን ያቆማል።

% ይሞክሩ rob.setLEDDigits (”) x = 0; y = 0; ቴታ = 0; እንቅፋት = ; ዑደት = 1; AngCorr = @(x) x + 3.059.*X.^0.4205; Rob.getBatteryInfo.percent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0.1) %AA_checkperson (rob) rob.beep መጨረሻ ካለ %AA_cliffcheck (rob)) rob.stop rob.setLEDDigits ('ገደል') ለአፍታ ቆም (0.5) እንቅፋት (ዑደት) = 2; AA_cliffbeep (rob) %ምትኬ አስቀምጥ rob.moveDistance (-. 15) rob.turnAngle (30) መጨረሻ

ደረጃ 4 - ደረጃ 4 - መሰናክሎችን መፈተሽ

ይህ ኮድ በዙሪያው ላሉት ዕቃዎች ቼክ ክፍሉን (ቼክ) ያገኛል ፣ እና እራሱን ከመጉዳትዎ በፊት መቆሙን ለማረጋገጥ የቦምብ ዳሳሹን ይፈትሻል።

%AA_lightcheck (rob) rob.stop rob.setLEDDigits ('Wall') ለአፍታ ቆም (0.5) እንቅፋት (ዑደት) = 1 ከሆነ የብርሃን ዳሳሽ ይፈትሹ። %Wall AA_wallbeep (rob) %Back Up እና Turn rob.moveDistance (-. 15) rob.turnAngle (30) መጨረሻ %AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') ለአፍታ ቆም (0.5) እንቅፋት (ዑደት) = 1; %ግድግዳ AA_wallbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) መጨረሻ %ባዶ ካልሆነ (እንቅፋት) እንቅፋት (ዑደት) = 0 ከሆነ። ሌላ ርዝመት (እንቅፋት) <የብስክሌት እንቅፋት (ዑደት) = 0; አበቃ

ደረጃ 5: ደረጃ 5: ማሴር

ደረጃ 5 ማሴር
ደረጃ 5 ማሴር

ይህ ኮድ የእርስዎ ክፍልባ በጉዞው ላይ የሚያጋጥመውን እንዲያስብ ይነግረዋል። ክፍልባ ካቆመች በኋላ እንደዚህ ያለ ሴራ ይታያል።

%ቦታ ያግኙ d = rob.getDistance; ዑደት == 1 ቴታ (ዑደት) = 0 ከሆነ። x (ዑደት) = መ.*cosd (theta (ዑደት)); % ጠቅላላ dist በ x y (ዑደት) = መ.*sind (theta (ዑደት)) ተጓዘ። % ጠቅላላ dist በ y ሌላ ተጓዘ ቲታ (ዑደት) = theta (ዑደት -1) + rob.getAngle; x (ዑደት) = መ.*cosd (theta (ዑደት)) + x (ዑደት -1); % total dist በ x y (ዑደት) = መ.*sind (theta (ዑደት))።*d + y (ዑደት -1); %total dist በ y መጨረሻ ተጓዘ %rob.getButtons. ንፁህ መቋረጥ መጨረሻ %የመጨመር ዑደት ዑደት = ዑደት + 1; መጨረሻ rob.stop ለ i = 1 እንቅፋት ከሆነ (i) == 1 %የግድግዳ ሴራ (x (i) ፣ y (i) ፣ ‘ማርከር’ ፣ ‹ካሬ› ፣ ‹MarkerEdgeColor› ፣ ‹r›) ካልሆነ እንቅፋት) nCircle = Cliff ') ፣' Units '፣' normalized ') መጨረሻ ላይ % ጭንቀት ምልክት ሲኖር እውነተኛ rob.beep ለአፍታ ቆም (3) rob.getButtons.

የሚመከር: