Агуулгын хүснэгт:
Видео: MATLAB -тай Roomba: 4 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Энэхүү төсөл нь MATLAB болон iRobot Create2 програмчлагдах роботыг ашигладаг. MATLAB -ийн талаархи мэдлэгээ туршиж үзээд бид Create2 програмыг ашиглан дүрсийг тайлбарлаж, дохиог илрүүлж чадна. Роботын үйл ажиллагаа нь голчлон MATLAB гар утасны програм болон Raspberry Pi камерын модулаас хамаардаг.
Алхам 1: эд анги, материал
1. iRobot Create, Хувилбар 2
- Энэ бол Roomba шиг харагддаг програмчлагдах робот юм. IRobot -ийн энэ бүтээгдэхүүн нь вакуум биш гэдгийг анхаарна уу. Энэ нь хэрэглэгчийн захиалгаар програмчлахад зориулагдсан болно.
2. MATLAB 2017a
- Ихэнх хуучин хувилбарууд нь бидний доор ашигласан кодтой нийцэж байх болно. MATLAB нь танд байгаа хувилбартай тохирохгүй командыг тодорхойлж, хамгийн сайн тохирох командыг санал болгоно.
3. Raspberry Pi 3 Model B, хувилбар 1.2
- Raspberry Pi аль нь таны iRobot -тэй нийцэж байгааг шалгаарай. Нэмэлт туслалцаа авахын тулд энэ холбоосыг үзнэ үү: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Энэхүү зааварчилгаа нь таныг урьдчилан програмчилсан Raspberry Pi -тэй ажиллаж байгаа гэж үзнэ. Дараахь алхамуудыг хэрэгжүүлэхийн тулд та урьдчилан програмчилсан Пи програмтай ажиллах шаардлагатай болно гэдгийг анхаарна уу. Урьдчилан програмчилсан Pi ашигласнаар та бүх кодчилолоо зөвхөн MATLAB дээр хийх боломжтой болно.
4. Камерын модуль V2 (Raspberry Pi -ийн хувьд)
- Та гайхаж магадгүй юм; Raspberry Pi камерын модуль нь том хэмжээтэй ч гэсэн маш сайн чанартай байдаг. Энэ төслийн хувьд хамгийн хямд бөгөөд хамгийн нийцтэй сонголт юм.
Нэмэлт: 3D хэвлэсэн индэр. Энэ нь камерыг тогтворжуулахад ашиглагддаг. Энэ нь роботын үйл ажиллагаанд нөлөөлөхгүй, гэхдээ хэрэв та өнгө дүрс ба/эсвэл объект танихын тулд дүрс бичлэгийн өгөгдлийг ашиглахыг хүсвэл кодчилоход тань туслах болно.
Алхам 2: Тохиргоо
1. Raspberry Pi болон камерын модулийг холбох (Тоног төхөөрөмж)
- Raspberry Pi -ийг тэжээхийн тулд та микроконтроллер дээрх эмэгтэй тэжээлийн порт руу эрэгтэй төгсгөлтэй микро USB ажиллуулах хэрэгтэй болно. Нэмэлт: Хүчдэл 5 В -оос хэтрэхгүй байхын тулд хүчдэлийн зохицуулагчийг ашиглаж болно. Raspberry Pi -ийг асаасны дараа та үүнийг эх роботоос эрэгтэй USB USB a ажиллуулж микроконтроллер дээрх USB порт A руу холбож роботтой холбож болно.
- Pi -г Roomba -д холбосны дараа камер суурилуулахад бэлэн болно. Камерын модуль нь таны бодож байснаас хамаагүй бага байх болно. Линзийг мэдрэгч дээр суурилуулсан бөгөөд камераас цагаан тууз сунгасан болохыг анхаарна уу. Туузыг бүү салга, урж бүү таслаарай! Энэ бол Raspberry Pi -тэй холбоход танд хэрэгтэй кабель юм. Нэгдүгээрт, туузны үзүүрийг барьж, мөнгөн холбогч ба цэнхэр кабелийг олоорой. Эдгээр нь эсрэг талд байрладаг. Дараа нь Raspberry Pi дээрх Ethernet болон HDMI портуудын хоорондох үүрийг олоорой. Түүнийг жижиг цагаан цоожоор бүрхсэн болохыг анхаарна уу. Түгжээг аажмаар өргөж, гэхдээ үүрнээс нь бүү салгаарай, учир нь энэ нь эвдэрч гэмтэх болно. Түгжээг авсны дараа туузыг аваад HDMI порт руу мөнгөн холбогчтой тулгарна уу. Цэнхэр тал нь Ethernet порттой тулгарах болно. Туузыг онгойлгоогүй байхад үүр рүү аажмаар гулсуулна уу. Та үүнийг үүрэнд оруулах шаардлагагүй. Оруулсны дараа түгжээг буцааж доошлуул. Хэрэв таны камер найдвартай бэхлэгдсэн бол туузыг (зөөлөн) татаж, хурцадмал байдлыг мэдрэх ёстой. Тууз нь сул байх ёсгүй. Камераа Pi -д холбосны дараа энэ нь хэр сул байгааг анзаарч магадгүй юм. Тиймээс бид үүнийг тогтвортой байлгахын тулд 3D хэвлэсэн бэхэлгээг ашигласан. Өндөр чанартай зураг авахын тулд камераа хөдөлгөөнгүй байлгахын тулд ямар материалыг ашиглахыг хүсч байгаагаа тодорхойлох нь таны сонголт юм.
2. Зөв файлуудыг суулгаж, Roomba-г компьютерт холбох Бүх тоног төхөөрөмжөө тохируулсны дараа та одоо роботтой харилцах боломжийг олгодог холбогдох m-файлуудын хамт MATLAB-ийг суулгаж болно. Үүнийг хийхийн тулд MATLAB -ийг нээж, холбогдох бүх файлуудыг хадгалах шинэ хавтас үүсгэнэ үү. Шаардлагатай файлуудыг суулгах/шинэчлэхийн тулд энэ скриптийг ашиглана уу:
- Одоо бүх файлууд таны үүсгэсэн хавтсанд харагдах ёстой. Одоогийн хавтасны цонх дээр хулганы баруун товчийг дараад "Зам руу нэмэх" -ийг сонгоод энэ замыг MATLAB файл хайж буй директоруудын жагсаалтад нэмнэ үү. Таны бүх файл зөв зам дээр байгаа эсэхийг шалгаарай.
3. Файлуудыг суулгасны дараа та одоо роботтойгоо холбогдож эхлэх боломжтой. Роботыг асааж, асаасны дараа шууд дахин тохируулах замаар эхлүүлээрэй (ашиглахаасаа өмнө болон дараа нь роботоо дахин тохируулахаа бүү мартаарай). Хоёрдугаарт, робот болон зөөврийн компьютерээ хоёуланг нь ижил wifi сүлжээнд холбоно уу. Үүний дараа бид MATLAB -ээр урьдчилан програмчлагдсан Raspberry Pi -тэй Roomba -ийн нэр болон Roomba функцийг ашиглан утсаар ярих болно. Жишээлбэл, би дараах роботыг ашиглан робот 28 -тай холбогдох болно: R = roomba (28).
Би объектыг R хувьсагчид хэрхэн хуваарилсаныг анзаараарай. Би R хувьсагчийг бүтэц шиг авч үзэх замаар одоо холбогдох Roomba функцуудад суулгалтын файлаас хандаж болно.
- R.turnAngle (90) Хэрэв бүх зүйл сайн болсон бол хөгжмийн аялгуу тоглох ёстой бөгөөд энэ нь холболтыг баталгаажуулдаг.
Алхам 3: MATLAB логик
Энэ алхамын доод талд байгаа PDF баримт бичиг нь MATLAB дахь кодлох үйл явцын нарийвчилсан логик урсгалын диаграм юм. Бид робот ойролцоо байгаа объектыг илрүүлэх үед бидэнтэй харилцах боломжийг олгохын тулд бид хадан цохио, гэрэл, гэрэл цохилтын мэдрэгчийг идэвхжүүлсэн. Жишээлбэл, робот урагшлахад түүний гэрэл мэдрэгч нь явж буй векторын дагуу замд байгаа объектуудыг хайдаг. Бид роботын зайны босгыг сонгосон бөгөөд ингэснээр тэр объект руу ойртоход тэр түүнтэй мөргөлдөхийн оронд ухрах болно. Манай роботыг кодлох явцад тодорхойлсон Twitter -ээр тохируулсан болно (үүнийг доор харуулах болно).
Туршлага сайжруулахын тулд бид гар утсаа хазайлгах замаар роботын хөдөлгөөнийг хянах боломжтой болохын тулд гар утсан дээрээ MATLAB програмыг ашигласан болно. MATLAB кодын сегмент дэх moveDistance командыг ашиглан роботыг хөдөлгөж болно. Хэрэв таны зорилго нарийн байх юм бол роботыг удирдахын тулд MATLAB командыг ашиглах нь илүү дээр гэдгийг санаарай. Хэрэв та камерыг тодорхой байршилд зураг авахын тулд роботыг чиглүүлэхийг хүсч байвал роботын хөдөлгөөнийг MATLAB дээр кодчилсон нь дээр байх. Зугаа цэнгэлийн үеэр роботоо удирдахын тулд MATLAB програмыг ашиглах нь нарийвчлалтай байхыг хүсдэггүй.
Код нь Roomba -д үндсэн тохиргоог хийж дараа нь тасралтгүй давталтаар үргэлжлүүлэхийг тушаадаг. Эхэндээ зөөврийн компьютер нь Roomba () командыг ашиглан Roomba -тай холбоос үүсгэх болно. Энэ нь MATLAB дахь webwrite () командыг ашиглан twitter холболтыг тохируулдаг. Цогцолбор нь Roomba -гийн хүрээлэн буй орчноос хамаарч таван үндсэн логик урсгалыг агуулдаг. Эхлээд Roomba саад тотгор байгаа эсэхийг шалгаж, саад тотгор учруулсан бол ухардаг. Энэхүү гогцоонд суулгасан нь Roomba -ийг авч явах тохиолдолд хэрэглэгчдэд анхааруулах хоёр дахь зам юм. Ангараг гаригийн хатуу ширүүн бүсийн чухал хэрэгсэл. Roomba өөрийн байрлалыг аюулгүй гэж тодорхойлсны дараа дараагийн хөдөлгөөнөө тодорхойлохын тулд хөдөлгөөнт төхөөрөмж рүү харна. Хэрэв хөдөлгөөнт төхөөрөмж урагш хазайсан бол дугуйны хурдыг эргэлтийн түвшинг харгалзан эргүүлэхээс илүү өнхрөх хэмжилтийн ноцтой байдлаас хамааран үндсэн хурдыг тооцоолох болно. Утас нь Roomba -ийг урвуугаар хөдөлгөж болно. Төвийг сахисан хөдөлгөөнт төхөөрөмжийн төлөв нь эцсийн хоёр замыг нээдэг. Амрах Roomba нь харь гарагийн тугийг хайж, хэрэглэгчдэд зохих дохиог өгөх болно.
Манай код доор байна (MATLAB 2017a дээр бөглөсөн)
%оролт: Wi -Fi сүлжээнд холбогдсон төхөөрөмж, камераас авсан чиг баримжаа
%мэдээлэл, мэдрэгчийн өгөгдөл
%гаралт: хөдөлгөөнийг wifi холбогдсон төхөөрөмж болон хөдөлгөөнөөр хянадаг
% нь мэдрэгчийн өгөгдлийг унших замаар аюулгүй байдлыг шалгадаг. Хэрэв камер илрүүлбэл
% харь гаригийн далбаа, дараа нь Roomba дайсны тугийг жиргэх замаар хариулдаг
% -ийг илрүүлсэн байна.
%зорилго: манай төхөөрөмж хамгаалж байгаа хүмүүсийг хамгаалахаас өөр зорилгогүй амьдардаг
% үүнийг бүтээсэн, энэ нь бүтээгчдээ үйлчилж, хийдэг
% яг юу гэж хэлсэн.
%Хэрэглээ: үндсэндээ програм өөрөө ажиллах болно.
бүгдийг цэвэрлэх, бүгдийг хаах, clc
%Объект ба хувьсагчийг эхлүүлэх
r = Roomba (28);
м = хөдөлгөөнт төхөөрөмж;
%ашиглах хариулт = вэб бичих (хостын нэр, өгөгдөл)
хостын нэр = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API = 'SGZCTNQXCWAHRCT5';
tweet = 'RoboCop бол ажиллагаатай… Тушаал хүлээж байна';
өгөгдөл = strcat ('api_key =', API, '& status =', жиргэх);
хариулт = вэб бичих (хостын нэр, өгөгдөл);
%байнга ажиллаж байгаа давталт
байхад 1 == 1
Үл хамаарах өгөгдөл агуулсан бүтэц
o = m. чиг баримжаа; Хөдөлгөөнт төхөөрөмжийн %чиглэл
гэрэл = r.getLightBampers (); %Хөнгөн бамперын утга
a = r.getCliffSensors (); %CLiff мэдрэгчийн утга
овойлт = r.getBumpers (); %Бампер мэдрэгч
%бампер шалгах
хэрэв овойлт.аруун == 1 || овойлт.зүүн == 1 || овойлт.нүүр == 1
r.moveDistance (-. 2,.2);
%гэрэл мэдрэгчийг шалгана уу
elseif гэрэл.зүүн> 60 || гэрэл.зүүнЗүүн> 60 || light.leftCenter> 60 || гэрэл.баруун> 60 || гэрэл.баруунФронт> 60 || гэрэл.баруун төв> 60
r.moveDistance (-. 2,.2);
Клифф мэдрэгчийг шалгах
%Хулгайн эсрэг дохио ба мэдэгдэл
өөр бол a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300
r.stop ();
r. beep ();
tweet = 'RoboCop -ийг өргөж авлаа!'
өгөгдөл = strcat ('api_key =', API, '& status =', жиргэх);
хариулт = вэб бичих (хостын нэр, өгөгдөл);
%Энгийн Клиффээс зайлсхийх үйл ажиллагаа
өөрөөр a.зүүн <300 || a.баруун <300 || a.leftFront <300 || a.rightFront <300
r.moveDistance (-. 2,.2);
%Roomba шалгалтуудыг давсан бөгөөд одоо хэвийн ажиллах болно.
%Эхэндээ төхөөрөмжийн өнхрөлтийг хэмжиж, суурь болно
Дараа нь дугуйны хурдыг тооцоолоход ашигладаг %хурд
%Урагшлах хөдөлгөөн
elseif o (3)> = 0 && o (3) <= 60
baseVel = (-. 5/60)*(o (3) -60);
хэрэв o (2)> =-70 && o (2) <0
r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));
өөр o (2) = 0
r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));
өөр r.stop
Төгсгөл
%Буцах хөдөлгөөн
elseif o (3)> 100 && o (3) <150
r.setDriveVelocity (-. 2, -.2)
r. beep ();
r. beep ();
%resting roomba нь флюресцент гэж тэмдэглэгдсэн харь гарагийн тугийг хайх болно
%ногоон цаас
өөр
r. зогсоох
img = r.getImage (); %зураг авах
босго = саарал өнгө (img (200: 383,:, 2))+. 1; %ногоон кальцийн түвшин
хэрэв босго>.42
tweet = 'Дайсан толботой !!'
өгөгдөл = strcat ('api_key =', API, '& status =', жиргэх);
хариулт = вэб бичих (хостын нэр, өгөгдөл);
өөр
r. зогсоох
Төгсгөл
Төгсгөл
Төгсгөл
Алхам 4: Дүгнэлт
Та дээр бичсэн скриптийг ашиглаж болно, гэхдээ та үүнийг хэрэгцээнд нийцүүлэн өөрчлөх боломжтой гэдгийг санаарай. Үүнийг утсаараа хянах шаардлагагүй! (Гэсэн хэдий ч энэ нь илүү хөгжилтэй болгодог.) Роботыг удирдахын тулд аль аргыг ашиглахаа сонгоорой. Роботтойгоо хамт жолоодож, зугаацаарай!
Зөвлөмж болгож буй:
Булбидерын Roomba Bot: 5 алхам (зурагтай)
Roomba Bot Bulider: Bot Builder бол " шүүрч авах " урд талд бэхлэгдсэн нь эргэн тойронд байгаа эд зүйлсийг зөөх боломжтой болно. Үүнтэй холбогдсон кодыг GUI хайрцгаар хийсэн анхны хөдөлгөөнийг тэмдэглэхээр тохируулсан бөгөөд та үүнийг хулганыхаа ганц товшилтоор удирдах боломжтой. Дараа нь
MATLAB хяналттай Roomba: 5 алхам
MATLAB -ийн хяналттай Roomba: Энэхүү төслийн зорилго нь MATLAB болон iRobot програмчлагдсан роботыг ашиглах явдал юм. Манай бүлэг кодлох ур чадвараа нэгтгэн iRobot -ийн олон функцуудыг ашигладаг хадан цохионы мэдрэгч, бамбай мэдрэгчийг ашигладаг MATLAB скриптийг бүтээжээ
Roomba MATLAB төсөл: 5 алхам
Roomba MATLAB төсөл: НАСА -гийн Ангараг гараг дээр явуулдаг одоогийн төлөвлөгөө бол мэдээлэл цуглуулж, Ангарагийг тойрон тэнүүчилж, хөрсний дээжийг цуглуулж, дэлхий рүү буцааж авчрах бөгөөд ингэснээр эрдэмтэд урьд өмнө ямар нэгэн амьтан байсан эсэхийг харах боломжтой болно. гариг. Нэмэлт
Roomblock: Roomba, Raspberry Pi, RPLIDAR ашиглан ROS навигацийг сурах платформ: 9 алхам (зурагтай)
Roomblock: Roomba, Raspberry Pi, RPLIDAR ашиглан ROS навигацийг сурах платформ: Энэ юу вэ? &Quot; Roomblock " Энэхүү робот платформ нь Roomba, Raspberry Pi 2, лазер мэдрэгч (RPLIDAR) болон хөдөлгөөнт батерейгаас бүрдэнэ. Суурилуулах хүрээг 3D принтерээр хийж болно. ROS навигацийн систем нь өрөөнүүдийн газрын зургийг гаргаж, i ашиглах боломжийг олгодог
Байцаагч Roomba: 6 алхам (зурагтай)
Байцаагч Roomba: Бидний ихэнх нь iRobot Roomba роботыг зөвхөн тоос соруулах зориулалтаар ашигладаг боловч энэ нь шинэ роботын төслүүдэд маш сайн суурь болдог гэдгийг цөөхөн хүн мэддэг. Энэхүү роботыг удирдах нь хэр хялбар болохыг олж мэдэхийн тулд бүх үйлдвэрлэгчид Roomba Open Interface (OI) -ийг туршиж үзэх хэрэгтэй. Энэхүү зааварт та