Агуулгын хүснэгт:
- Алхам 1: хангамж
- Алхам 2: Асуудлын мэдэгдэл
- Алхам 3: Bluetooth алсын удирдлага
- Алхам 4: Нөлөөллийг таних
- Алхам 5: Амьдралыг таних
- Алхам 6: Үүнийг ажиллуулна уу
Видео: Марс Roomba: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Энэхүү заавар нь Raspberry Pi хяналттай Roomba вакуум бот ажиллуулах зааварчилгаа өгөх болно. Бидний ашиглах үйлдлийн систем бол MATLAB юм.
Алхам 1: хангамж
Энэхүү төслийг хэрэгжүүлэхийн тулд танд дараахь зүйлс хэрэгтэй болно.
- iRobot -ийн Create2 Roomba тоос сорогч бот
- Raspberry Pi
- Raspberry Pi камер
- MATLAB -ийн хамгийн сүүлийн хувилбар
- MATLAB -д зориулсан Roomba суулгах хэрэгслийн хайрцаг
- Үүрэн төхөөрөмжид зориулсан MATLAB програм
Алхам 2: Асуудлын мэдэгдэл
Гаригийн өгөгдлийг цуглуулахад эрдэмтдэд туслах зорилгоор Ангараг гариг дээр ашиглах боломжтой ровер бүтээхэд MATLAB -ийг ашиглах үүрэг бидэнд өгсөн юм. Бидний төсөлд тусгасан чиг үүрэг бол алсын удирдлага, объектын нөлөөллийг таних, усыг таних, амьдралыг таних, дүрс боловсруулах зэрэг чиг үүрэг байв. Эдгээр амжилтанд хүрэхийн тулд бид iRobot -ийн Create2 Roomba -ийн олон функцийг удирдахын тулд Roomba toolbox командыг ашиглан кодчилсон.
Алхам 3: Bluetooth алсын удирдлага
Энэхүү слайд нь ухаалаг гар утасны төхөөрөмжийн Bluetooth боломжийг ашиглан Roomba-ийн хөдөлгөөнийг хянахын тулд кодыг унших болно. Эхлэхийн тулд MATLAB програмыг ухаалаг гар утсандаа татаж аваад Mathworks данс руугаа нэвтэрнэ үү. Нэвтэрсний дараа "илүү", "тохиргоо" руу ороод IP хаягийг ашиглан компьютертээ холбогдоно уу. Холбогдсоны дараа "илүү" рүү буцаж очоод "мэдрэгч" -ийг сонгоно уу. Дэлгэцийн дээд самбар дээрх гуравдахь мэдрэгч дээр дараад эхлэх товчийг дарна уу. Одоо таны ухаалаг гар утас бол алсын удирдлага юм!
Код дараах байдалтай байна.
байхад 0 == 0
түр зогсоох (.5)
PhoneData = M. Orientation;
Ази = PhoneData (1);
Давирхай = PhoneData (2);
Side = PhoneData (3);
овойлт = r.getBampers;
хэрэв Side> 80 || Хажуу <-80
r. зогсоох
r. beep ('C, E, G, C^, G, E, C')
завсарлага
elseif Side> 20 && Side <40
r.turnAngle (-5);
өөр тал> 40
r.turnAngle (-25);
өөр тал-40
r.turnAngle (5);
өөр тал <-40
r.turnAngle (25);
Төгсгөл
хэрэв Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
Төгсгөл
Төгсгөл
Алхам 4: Нөлөөллийг таних
Бидний хэрэгжүүлсэн өөр нэг функц бол Roomba -ийн объектод үзүүлэх нөлөөллийг илрүүлж, одоогийн замыг засах явдал байв. Үүнийг хийхийн тулд бампер мэдрэгчийн заалттай нөхцөлт нөхцлүүдийг ашиглан объект цохиулсан эсэхийг тодорхойлох шаардлагатай болсон. Хэрэв робот объект руу цохивол 2 метрийн зайд ухрах бөгөөд аль бамбай цохисныг тодорхойлсон өнцгөөр эргэх болно. Нэг зүйлийг цохисны дараа "өөө" гэсэн үгийг харуулсан цэс гарч ирнэ.
Кодыг доор харуулав.
байхад 0 == 0
овойлт = r.getBampers;
r.setDriveVelocity (.1)
хэрэв овойлт байвал зүүн == 1
msgbox ('Өө!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif овойлт. урд == 1
msgbox ('Өө!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif овойлт.баруун == 1
msgbox ('Өө!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('Өө!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Өө!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
Төгсгөл
Төгсгөл
Алхам 5: Амьдралыг таних
Бид урд талын объектуудын өнгийг уншихын тулд амьдралыг таних системийг кодлосон. Бидний кодчилсон гурван төрлийн амьдрал бол ургамал, ус, харь гаригийнхан юм. Үүнийг хийхийн тулд бид улаан, цэнхэр, ногоон, цагаан гэсэн дундаж утгыг тооцоолохын тулд мэдрэгчдийг кодлосон. Эдгээр утгыг камерын харж буй өнгийг тодорхойлохын тулд гараар тохируулсан босгыг харьцуулсан болно. Код нь объект руу хүрэх замыг тодорхойлж, газрын зураг үүсгэх болно.
Код дараах байдалтай байна.
t = 10;
би = 0;
t == 10 байхад
img = r.getImage; imshow (img)
түр зогсоох (0.167)
i = i + 1;
red_mean = дундаж (дундаж (img (:,,:, 1))));
blue_mean = дундаж (дундаж (img (:,,: 3)));
green_mean = дундаж (дундаж (img (:,,:, 2))));
white_mean = (цэнхэр_ман + ногоон_мана + улаан_ман) / 3; %энэ үнийг ойролцоогоор 100 байхыг хүсч байна
nine_plus_ten = 21;
ногоон_босго = 125;
blue_threshold = 130;
цагаан босго = 124;
улаан_босго = 115;
байхад nine_plus_ten == 21 %ногоон - амьдрал
хэрэв green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('амьдралын боломжит эх үүсвэр олдсон, байршлыг зурсан');
түр зогсоох (2)
устгах (а)
[y2, Fs2] = аудио унших ('z_speak2.wav');
дуу (y2, Fs2)
түр зогсоох (2)
%ургамал = r.getImage; %imshow (ургамал);
%хэмнэх ('plant_img.mat', ургамал ');
%талбайн байршил ногоон
би = 5;
завсарлага
өөр
nine_plus_ten = 19;
Төгсгөл
Төгсгөл
nine_plus_ten = 21;
байхад nine_plus_ten == 21 %цэнхэр - woder
хэрэв blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('усны эх үүсвэр олдсон, байршлыг тогтоосон');
түр зогсоох (2)
устгах (а)
[y3, Fs3] = аудио унших ('z_speak3.wav');
дуу чимээ (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%хэмнэх ('water_img.mat', woder)
%байрлалын цэнхэр өнгө
би = 5;
завсарлага
өөр
nine_plus_ten = 19;
Төгсгөл
Төгсгөл
nine_plus_ten = 21;
байхад nine_plus_ten == 21 %цагаан - харь гарагийнхан monkaS
хэрэв white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = аудио унших ('z_speak5.wav');
дуу чимээ (y5, Fs5);
түр зогсоох (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = аудио унших ('z_scream.mp3');
дуу (ys, Fss);
түр зогсоох (3)
r. зогсоох
% харь хүн = r.getImage; %imshow (харь хүн);
% хэмнэх ('alien_img.mat', харь гаригийн хүн);
би = 5;
завсарлага
өөр
nine_plus_ten = 19;
Төгсгөл
Төгсгөл
хэрэв би == 5
a = 1; %эргэх өнцөг
t = 9; %том давталтыг зогсооно
би = 0;
Төгсгөл
Төгсгөл
Алхам 6: Үүнийг ажиллуулна уу
Бүх кодыг бичсэний дараа бүгдийг нэг файл болон voila болгон нэгтгээрэй! Таны Roomba бот одоо бүрэн ажиллагаатай байх бөгөөд зар сурталчилгааны дагуу ажиллах болно! Гэсэн хэдий ч Bluetooth хяналт нь тусдаа файлд байх ёстой эсвэл кодын бусад хэсгээс %% -р тусгаарлагдсан байх ёстой.
Роботыг ашиглан таашаал аваарай !!
Зөвлөмж болгож буй:
Roomba -гээ Ангараг гараг руу эргүүлэх: 5 алхам
Roomba -гээ Mars Rover болгон хувиргах:
Raspberry Pi - Автономит Марс Ровер нь OpenCV объектын хяналт: 7 алхам (зурагтай)
Raspberry Pi - Автономит Марс Ровер нь OpenCV объектыг хянах боломжтой: Raspberry Pi 3, CV -ийг нээлттэй таних, хэт авианы мэдрэгч, тогтмол гүйдлийн хөдөлгүүрээр ажилладаг. Энэхүү ровер нь бэлтгэгдсэн аливаа объектоо хянаж, ямар ч газар хөдлөх боломжтой
Булбидерын Roomba Bot: 5 алхам (зурагтай)
Roomba Bot Bulider: Bot Builder бол " шүүрч авах " урд талд бэхлэгдсэн нь эргэн тойронд байгаа эд зүйлсийг зөөх боломжтой болно. Үүнтэй холбогдсон кодыг GUI хайрцгаар хийсэн анхны хөдөлгөөнийг тэмдэглэхээр тохируулсан бөгөөд та үүнийг хулганыхаа ганц товшилтоор удирдах боломжтой. Дараа нь
Марс Roomba төсөл UTK: 4 алхам
Mars Roomba Project UTK: DISCLAIMER: ROOMBA -ийг ЗӨВХӨН ЗӨВЛӨГӨӨР АРГА ХЭРЭГЛЭХЭД ЭНЭ ЗӨВХӨН АЖИЛЛАХ БОЛОМЖТОЙ. бичсэн ба
Roomba -аас Rover хүртэл ердөө 5 алхам !: 5 алхам
Roomba -аас Rover хүртэл ердөө 5 алхам!: Roomba роботууд бол роботын ертөнцөд хөлийнхөө хурууг дүрэх хөгжилтэй бөгөөд хялбар арга юм. Энэхүү зааварчилгаанд бид энгийн Roomba -г хэрхэн хянах боломжтой ровер болгон хөрвүүлэх талаар нарийвчлан тайлбарлах болно. Хэсгийн жагсаалт1.) MATLAB2.) Roomb