ዝርዝር ሁኔታ:
ቪዲዮ: Roomba Explorer: 4 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
MATLAB እና iRobot's Create2 Robot ን በመጠቀም ፣ ይህ ፕሮጀክት ያልታወቀ ቦታ የተለያዩ ቦታዎችን ይመረምራል። አደገኛ የመሬት አቀማመጥን ለማንቀሳቀስ በሮቦት ላይ ያሉትን ዳሳሾች ቀጠርን። ከተያያዘው Raspberry Pi ፎቶግራፎች እና የቪዲዮ ምግብ በማግኘቱ ሮቦቱ የሚያጋጥማቸውን መሰናክሎች ለመወሰን ችለናል ፣ እነሱም ይመደባሉ።
ክፍሎች እና ቁሳቁሶች
ለዚህ ፕሮጀክት እርስዎ ያስፈልግዎታል
-ኮምፒተር
-የ MATLAB ምዕራብ ስሪት (MATLAB R2018b ለዚህ ፕሮጀክት ጥቅም ላይ ውሏል)
- roomba የመሳሪያ ሳጥን ጫን
-iRobot's Create2 Robot
-Raspberry Pi ከካሜራ ጋር
ደረጃ 1 - ተነሳሽነት እና ዳሳሾች
ማንኛውንም መርሃ ግብር ከመጀመራችን በፊት የሮቦት የተለያዩ ክፍሎች መዳረሻን የፈቀደውን የክፍልባ ጫን የመሳሪያ ሳጥን አውርደናል።
መጀመሪያ ላይ ማንኛውንም ሮቦት ለማስጀመር GUI ፈጠርን። ይህንን ለማድረግ የሮቦቱን ቁጥር እንደ ግብዓት መተየብ ያስፈልግዎታል። ይህ የእኛን ፕሮግራም ወደ ሮቦት ለማስኬድ መዳረሻ ይፈቅድለታል። ሮቦቱ በሚያጋጥማቸው ብዙ መልከዓ ምድሮች ውስጥ እንዲንቀሳቀስ ለማድረግ ሰርተናል። ፍጥነቱን እና አቅጣጫውን ለመለወጥ ሮቦቱን ለመጓዝ የገደል አነፍናፊዎችን ፣ ቀላል ቡም ዳሳሾችን እና አካላዊ ቡም ዳሳሾችን ተግባራዊ አድርገናል። ከስድስቱ የብርሃን ፍንዳታ ዳሳሾች ማናቸውንም ነገሮች ሲለዩ ፣ እነሱ የሚያመነጩት ዋጋ እየቀነሰ ይሄዳል ፣ ይህም የሮቦት ፍጥነት እንዲቀንስ ያደርጋል። ሮቦቱ በመጨረሻ ከእንቅፋት ጋር ሲጋጭ ፣ የፊዚካል ቡም ዳሳሾች ከዜሮ የሚበልጥ እሴት ያሳውቃሉ። በዚህ ምክንያት ሮቦቱ ይቆማል ፣ ስለዚህ ተጨማሪ ግጭቶች አይኖሩም እና ተጨማሪ ተግባራት ወደ ተግባር ሊገቡ ይችላሉ። ለገደል አነፍናፊዎች በዙሪያቸው ያለውን አካባቢ ብሩህነት ያነባሉ። እሴቱ ከ 2800 በላይ ከሆነ ፣ ሮቦቱ በተረጋጋ መሬት ላይ እና ደህንነቱ የተጠበቀ እንደሚሆን ወስነናል። ግን ፣ እሴቱ ከ 800 በታች ከሆነ ፣ የገደል አነፍናፊዎች ገደል እየለዩ ፣ እንዳይወድቁ ወዲያውኑ ያቆማሉ። በመካከላቸው ያለው ማንኛውም እሴት ውሃን ለመወከል ተወስኗል እናም ሮቦቱ ድርጊቱን እንዲያቆም ያደርገዋል። ከላይ የተጠቀሱትን ዳሳሾች በመጠቀም ፣ ማንኛውም አደጋ ካለ በተሻለ ለማወቅ እንድንችል የሮቦት ፍጥነት ተቀይሯል።
ከዚህ በታች ኮዱ (ከ MATLAB R2018b)
%% ማስጀመር
dlgPrompts = {'' Roomba Number '};
dlgTitle = 'የእርስዎ Roomba ይምረጡ';
dlgDefaults = {''};
opts. Resize = 'on';
dlgout = inputdlg (dlgPrompts ፣ dlgTitle ፣ 1 ፣ dlgDefaults ፣ opts) % ተጠቃሚ የክፍልባ ቁጥራቸውን እንዲያስገባ የሚጠይቅ መስኮት ይፍጠሩ።
n = str2double (dlgout {1});
r = roomba (n); % ተጠቃሚው የተገለጸውን Roomba %% የፍጥነት ውሳኔ ከ Light Bump Sensors እውነተኛ s = r.getLightBumpers; % የብርሃን ብልጭታ ዳሳሾችን ያግኙ
lbumpout_1 = Extractfield (ዎች ፣ 'ግራ'); % የአነፍናፊዎቹን የቁጥር እሴቶች በመውሰድ የበለጠ ጥቅም ላይ እንዲውሉ ያደርጋቸዋል lbumpout_2 = extractfieldfield (s ፣ 'leftFront') ፤
lbumpout_3 = Extractfield (ዎች ፣ 'leftCenter');
lbumpout_4 = Extractfield (ዎች ፣ 'rightCenter') ፤
lbumpout_5 = Extractfield (s, 'rightFront');
lbumpout_6 = Extractfield (s, 'right');
lbout = [lbumpout_1 ፣ lbumpout_2 ፣ lbumpout_3 ፣ lbumpout_4 ፣ lbumpout_5 ፣ lbumpout_6] % እሴቶችን ወደ ማትሪክስ ይለውጣል።
sLbump = መደርደር (ስለ) %ማትሪክስ ወደ ዝቅተኛ እሴት ሊወጣ ይችላል
lowLbump = sLbump (1); ፍጥነት =.05+(lowLbump)*.
r.setDriveVelocity (ፍጥነት ፣ ፍጥነት)
አበቃ
% አካላዊ ባምፐርስ
ለ = r.getBumpers; %ውጤት እውነት ፣ ሐሰት
bsen_1 = የማውጣት መስክ (ለ ፣ 'ግራ')
bsen_2 = የማውጣት መስክ (ለ ፣ 'ቀኝ')
bsen_3 = የማውጣት መስክ (ለ ፣ 'ፊት')
bsen_4 = Extractfield (ለ ፣ 'leftWheelDrop')
bsen_5 = Extractfield (ለ ፣ 'rightWheelDrop')
ጉብታዎች = [bsen_1 ፣ bsen_2 ፣ bsen_3 ፣ bsen_4 ፣ bsen_5] tbump = ድምር (ድመቶች)
tbump> 0 r.setDriveVelocity (0, 0)
አበቃ
% የገደል ዳሳሾች
ሐ = r.getCliffSensors %% 2800 ደህና ፣ ሌላ ውሃ
csen_1 = የማውጣት መስክ (ሐ ፣ 'ግራ')
csen_2 = Extractfield (c ፣ 'right')
csen_3 = Extractfield (ሐ ፣ 'leftFront')
csen_4 = Extractfield (ሐ ፣ 'rightFront')
ገደሎች = [csen_1 ፣ csen_2 ፣ csen_3 ፣ csen_4]
ordcliff = መደርደር (ገደሎች)
ordcliff (1) <2750
r.setDriveVelocity (0, 0)
ገደል ከሆነ <800
disp 'ገደል'
ሌላ
'ውሃ'
አበቃ
አር. TurnAngle (45)
አበቃ
ደረጃ 2 - መረጃን ማግኘት
አካላዊ ቡም ዳሳሾች ከተደናቀፉ በኋላ ሮቦቱ መሰናክሉን ፎቶግራፍ ለማንሳት በ Raspberry Pi ላይ በቦታው ላይ ተግባራዊ ያደርጋል። ፎቶግራፍ ካነሳ በኋላ ፣ በስዕሉ ውስጥ ጽሑፍ ካለ የጽሑፍ ማወቂያን በመጠቀም ፣ ሮቦቱ እንቅፋቱ ምን እንደሆነ እና እንቅፋቱ ምን እንደሚል ይወስናል።
img = r.getImage; imshow (img);
imwrite (img ፣ 'imgfromcamera.jpg')
ፎቶ = መፃፍ ('imgfromcamera.jpg')
ocrResults = ocr (ፎቶ)
ganeText = ocrResults. Text;
ምስል;
imshow (ፎቶ) ጽሑፍ (220 ፣ 0 ፣ የታወቀ ጽሑፍ ፣ ‹የጀርባ ቀለም› ፣ [1 1 1]);
ደረጃ 3 - የማጠናቀቂያ ተልዕኮ
ሮቦቱ እንቅፋቱ ቤት መሆኑን ሲወስን ተልዕኮውን አጠናቆ እቤት ይቆያል። ሮቦቱ ተልዕኮውን ከጨረሰ በኋላ ወደ ቤቱ የተመለሰውን የኢሜል ማስጠንቀቂያ ይልካል ፣ እና በጉዞው ላይ የወሰዳቸውን ምስሎች ይልካል።
% ኢ-ሜል በመላክ ላይ
setpref ('በይነመረብ' ፣ 'SMTP_Server' ፣ 'smtp.gmail.com');
setpref ('በይነመረብ' ፣ 'ኢ_ሜል' ፣ '[email protected]'); ከ setpref ('በይነመረብ' ፣ 'SMTP_Username' ፣ 'የላኪ ኢሜል ያስገቡ') ለመላክ % የኢሜይል መለያ ፤ % ላኪዎች የተጠቃሚ ስም setpref ('በይነመረብ' ፣ 'SMTP_Password' ፣ 'የላኪ የይለፍ ቃል ያስገቡ') ፤ % የላኪ የይለፍ ቃል
props = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail ('ኢሜል መቀበልን ያስገቡ' ፣ 'ሮምባ' ፣ 'ሮምባ ወደ ቤት ተመለሰ !!' ፣ 'imgfromcamera.jpg') ለመላክ % የኢሜይል መለያ
ከዚያ ሮቦት ተጠናቅቋል።
ደረጃ 4 መደምደሚያ
የተካተተው የ MATLAB ፕሮግራም ከሮቦት ጋር ከተጠቀመበት አጠቃላይ ስክሪፕት ተለይቷል። በመጨረሻው ረቂቅ ውስጥ ፣ መከለያዎቹ ያለማቋረጥ መሄዳቸውን ለማረጋገጥ ከመነሻ ደረጃው በስተቀር ሁሉንም ኮዱን ማስገባትዎን ያረጋግጡ። ይህ ፕሮግራም ከተጠቃሚው ፍላጎት ጋር ሊስማማ ይችላል። የእኛ ሮቦት ውቅር ይታያል።
*አስታዋሽ -ለ MATLAB ከሮቦቱ እና ከተሳፈረው Raspberry Pi ጋር መስተጋብር ለመፍጠር የመጫኛ መጫኛ ሳጥኑ አስፈላጊ መሆኑን አይርሱ።
የሚመከር:
Roomba ን ወደ ማርስ ሮቨር ማዞር 5 ደረጃዎች
የእርስዎን Roomba ወደ ማርስ ሮቨር ማዞር
Roomba Bot the Bulider: 5 ደረጃዎች (ከስዕሎች ጋር)
Roomba Bot the Bulider: Bot ግንበኛው የ ‹ክፍልፋዮች› ነው ፣ እሱም ከ ‹ቀማኞች› ጋር። ከፊት ለፊት ተያይዞ ዕቃዎችን ለማንቀሳቀስ ይችላል። በእሱ ያለው ኮድ በመዳፊትዎ ጠቅታ ብቻ ሊቆጣጠሩት በሚችሉት GUI ሳጥን የመጀመሪያውን እንቅስቃሴ ለመመዝገብ ተዘጋጅቷል። ከዚያ በኋላ
MATLAB ቁጥጥር የሚደረግበት Roomba: 5 ደረጃዎች
በ MATLAB ቁጥጥር የሚደረግበት Roomba - የዚህ ፕሮጀክት ግብ MATLAB ን እንዲሁም የተቀየረውን iRobot ፕሮግራም -ተኮር ሮቦት መጠቀም ነው። የገደል አነፍናፊዎችን ፣ የመገጣጠሚያ ስሜትን ጨምሮ ብዙ የ iRobot ተግባሮችን የሚጠቀም የማቲላቢ ስክሪፕት ለመፍጠር ቡድናችን የኮድ ክህሎቶቻችንን አጣምሮ
Roomba Scout Explorer: 8 ደረጃዎች
Roomba Scout Explorer: በጣም ከሚጠበቁት እና በጣም ከተመረመሩ የአሜሪካ ፕሮጀክቶች አንዱ እንደመሆኑ ፣ የማርስ ሮቨር ፕሮጄክቶች ለከፍተኛ ምርመራ የቴክኖሎጂ ራስን በራስ የማስተዳደር ስርዓቶች በማደግ ላይ ባለው የሰው ልጅ ግኝቶች ሆነዋል
ከ Roomba እስከ Rover በ 5 ደረጃዎች ብቻ !: 5 ደረጃዎች
በ 5 ደረጃዎች ብቻ ከ Roomba እስከ Rover! - Roomba ሮቦቶች በሮቦቶች ዓለም ውስጥ ጣቶችዎን ለመጥለቅ አስደሳች እና ቀላል መንገድ ናቸው። በዚህ አስተማሪ ውስጥ ፣ አንድ ቀላል Roomba ን ወደ ተቆጣጣሪ ሮቨር እንዴት እንደሚለውጡ በዝርዝር እንገልፃለን። ክፍሎች ዝርዝር 1) MATLAB2) Roomb