Агуулгын хүснэгт:

Roomba зогсоолын Pal: 6 алхам
Roomba зогсоолын Pal: 6 алхам

Видео: Roomba зогсоолын Pal: 6 алхам

Видео: Roomba зогсоолын Pal: 6 алхам
Видео: [冬の車中泊旅]−6℃の雪景色で極寒車中泊。地獄谷のスノーモンキーを見に行く。 2024, Арваннэгдүгээр
Anonim
Roomba зогсоол Пал
Roomba зогсоол Пал

Энэ төсөл нь iRobot Create програмчлагдах Roomba, MATLAB r2018a, MATLAB гар утсыг ашигладаг. Эдгээр гурван хэрэгсэл, кодчиллын талаархи мэдлэгээ ашиглахдаа бид iRobot Create програмыг програмчилж, өнгийг тайлбарлаж, самбар дээрх мэдрэгч ашиглан даалгавруудыг гүйцэтгэдэг. Энэхүү төслүүд нь эдгээр ажлуудыг гүйцэтгэхийн тулд Raspberry Pi болон MATLAB харилцаа холбооноос хамаарна.

Алхам 1: Материал

Материал
Материал
Материал
Материал

1. iRobot робот бүтээх

2. MATLAB r2018a

3. Raspberry Pi

4. Камерын модуль

5. 3-D хэвлэсэн камер тогтворжуулагчийн тавиур

6. MATLAB гар утас суурилуулсан ухаалаг гар утас

7. MATLAB суулгасан зөөврийн компьютер/компьютер

Алхам 2: Холболт

Энэ алхам нь Raspberry Pi -ийг роботтой холбох, хоёрдугаарт роботыг таны компьютерт холбох, ухаалаг гар утсыг компьютерт холбох тухай юм.

Raspberry Pi -ийг роботын дээд хэсэгт суурилуулсан тул энэ процессын хамгийн хялбар хэсэг бол Raspberry Pi -ийг таны роботтой холбох явдал юм. Роботын утас нь Raspberry Pi -ийн хажуу талд залгахад л хангалттай.

Дараагийн алхам бол роботыг компьютерт холбох бөгөөд ингэснээр та роботыг гүйцэтгэх командыг ажиллуулж болно. Таны хийх ёстой хамгийн эхний зүйл бол компьютераа өрөөнийхөө үүсгэж буй утасгүй сүлжээнд холбох явдал юм. Одоо та замыг тохируулахын тулд MATLAB дахь Set Path дүрсийг ашиглахыг зөвлөж байна, ингэснээр та MATLAB -аас Roomba toolbox дахь функцийг ашиглах боломжтой болно. Та роботыг ашиглаж эхлэх, дуусах тоолондоо роботыг "Хоёр хуруутай мэндчилэх" хатуу тохиргоог хийх ёстой бөгөөд энэ нь гэрэл унтарч байгааг илтгэх хүртэл зогсож, цэг товчлуурыг арван секундын турш барина гэсэн үг юм. Хэрэв та робот богино хэмжээний масштабаар тоглож байгааг сонсвол энэ тохиргоог амжилттай хийлээ. Дараа нь та "r = roomba (x)" гэх мэт кодын мөрийг ашиглан roomba -тай холбогдох ёстой бөгөөд энд 'x' нь таны байгаа роботод зориулагдсан дугаар юм.

Эцэст нь та MATLAB гар утсыг энэ төсөлд ашиглах ямар ч хөдөлгөөнт төхөөрөмж дээр татаж авах хэрэгтэй бөгөөд энэ програмыг Android болон Apple -ийн аль алинд нь ашиглах боломжтой. Програмыг суулгасны дараа та итгэмжлэлээ ашиглан нэвтрэх шаардлагатай болно. Дараа нь та энэ төхөөрөмжийг "Дэлгэрэнгүй" гэсэн товчлуурыг ашиглан компьютер дээрээ холбох ёстой -> дараа нь "тохиргоо" -> дарж "Компьютер нэмэх" дээр дарахад дээрх зургуудад үзүүлсэн дэлгэц гарч ирэх ёстой. Үүнийг харсны дараа Таны хийх ёстой дараагийн алхам бол хүссэн мэдээллийг залгах, залгах явдал юм. Амжилттай холбогдсоны дараа та роботоо удирдахын тулд утсан дээрээ компьютер дээрээ тодорхойлсон функцуудаа дуудах боломжтой болно.

Алхам 3: Мэдрэгчийг ашиглахын тулд логикоор MATLAB кодыг бий болгох

Мэдрэгчийг ашиглахын тулд логикоор MATLAB кодыг бий болгох
Мэдрэгчийг ашиглахын тулд логикоор MATLAB кодыг бий болгох

Кодыг ихэнх хэсэг нь эргэлтэнд байгаа үед үүсгэхэд хамгийн хялбар байх болно, ингэснээр Roomba нь үзэж буй хүчин төгөлдөр утгуудаа байнга шинэчилж байх болно. Хэрэв алдаа гарсан бол MATLAB нь алдааг харуулах бөгөөд энэ нь код дээр хаана гарч ирэх нь алдааг олж засварлах ажлыг харьцангуй хялбар болгодог.

R2018a MATLAB -д бүтээгдсэн энэхүү код нь стандарт хэрэгслийн хайрцаг, iRobot Create toolbox болон MATLAB гар утасны хэрэгслийн хайрцгийг ашигладаг. Энэ жишээн дээр ашигласан roomba нь 26 гэж тодорхойлогдсон бөгөөд r = roomba (26) -ийг Roomba -тай бүрэн харилцахын тулд зөвхөн нэг удаа ажиллуулах шаардлагатай.

Код:

паркассист функц (x) хэрэв x == 1 бол

r = roomba (26) % нь roomba руу холбогддог

үнэн байхад

r.setDriveVelocity (.05,.05) % нь roomba -ийг жолооны хурдыг бууруулдаг.

bump = r.getBampers % нь овойлт мэдрэгчээс өгөгдлийг авдаг

cliff = r.getCliffSensors % нь хадны мэдрэгчээс өгөгдлийг авдаг

light = r.getLightBampers % нь гэрлийн цохилтын мэдрэгчээс өгөгдлийг авдаг

img = r.getImage;% нь роботыг камераас унтраадаг

red_mean = дундаж (дундаж (img (:,,, 1))) % нь улаан пикселийн дундаж хэмжээг уншдаг

green_mean = дундаж (дундаж (img (:,,, 2))) % нь ногоон пикселийн дундаж хэмжээг уншдаг

blue_mean = дундаж (дундаж (img (:,,, 3)))) % нь цэнхэр пикселийн дундаж хэмжээг уншдаг

хэрэв bump.front == 1 %нь урд талын овойлт мэдрэгчийг уншдаг

r.stop %нь roomba -г зогсооно

msgbox ('Path Obscured!', 'Parking Assistant Message') % нь зам харанхуй байна гэсэн мессежийг харуулна % завсарлага дуусна.

elseif green_mean> 150

r.stop %нь roomba -г зогсооно

cont = questdlg ('Үргэлжлүүлэх үү?', 'Зам дууссан') %нь үргэлжлүүлэхийг хүссэн асуултын хайрцгийг харуулна

хэрэв cont == 'Тийм'

parkassist (1) %кодыг дахин эхлүүлнэ

өөр

Төгсгөл

break % нь давталтыг дуусгадаг

elseif red_mean> 140

r.turnAngle (45) %нь өрөөг 45 градус эргүүлнэ

r.timeStart %нь цагийн тоолуурыг эхлүүлнэ

үнэн байхад

r.setDriveVelocity (.05,.05) %нь өрөөний хурдыг тохируулдаг

time = r.timeGet %нь хувьсагчид цаг хуваарилдаг

bump = r.getBampers % нь овойлт мэдрэгчээс өгөгдлийг авдаг

cliff = r.getCliffSensors % нь хадны мэдрэгчээс өгөгдлийг авдаг

light = r.getLightBampers % нь гэрлийн цохилтын мэдрэгчээс өгөгдлийг авдаг

img = r.getImage;% нь роботыг камераас унтраадаг

red_mean = дундаж (дундаж (img (:,,, 1))) % нь улаан пикселийн дундаж хэмжээг уншдаг

green_mean = дундаж (дундаж (img (:,,, 2))) % нь ногоон пикселийн дундаж хэмжээг уншдаг

blue_mean = дундаж (дундаж (img (:,,, 3)))) % нь цэнхэр пикселийн дундаж хэмжээг уншдаг

хэрэв blue_mean> 120

r.

msgbox ('Ус олдсон!', 'Машины зогсоолын туслах зурвас') % нь ус олдсон гэсэн мессежийг харуулна r.turnAngle (-80) % нь өрөөний эргэлтийг 80 градусаар

break % нь одоогийн давталтыг дуусгадаг

elseif гэрэл.баруунFront> 25 || light.leftFront> 25 %нь гэрлийн цохилтын мэдрэгчийг уншдаг

r.moveDistance (-0.01) % нь өрөөний багийг тогтоосон зайд буцаана

r.turnAngle (-35) % нь өрөөг 35 градус эргүүлнэ

break %нь одоогийн давталтыг дуусгадаг

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %нь хадны мэдрэгчийг хоёуланг нь уншдаг

r.moveDistance (-0.1) % нь roomba-г тогтоосон зайд буцаана

r.turnAngle (-80) %нь өрөөг 80 градус эргүүлнэ

break % нь одоогийн давталтыг дуусгадаг

өөр цаг> = 3

r.stop %нь roomba -г зогсооно

contin = questdlg ('Буудалгүй, Үргэлжлүүлэх үү?', 'Машины зогсоолын туслахын мессеж') %нь үргэлжлүүлбэл roomba үргэлжлэх эсэхийг асууна == "Тийм"

r.turnAngle (-90) % нь өрөөг 90 градус эргүүлнэ

parkassist (1) %нь функцийг дахин эхлүүлнэ

өөр

r.stop % нь roomba -г зогсооно

Төгсгөл

өөр

Төгсгөл

Төгсгөл

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %нь хадны мэдрэгчийг хоёуланг нь уншдаг

r.moveDistance (-0.1) %нь roomba-г тогтоосон зайд буцаана

r.turnAngle (-90) %нь өрөөг 90 градус эргүүлнэ

elseif cliff.rightFront <2500 %нь зөв хадан мэдрэгчийг уншдаг

r.turnAngle (-5) %нь тасалгааны мэдрэгчийн эсрэг чиглэлд бага зэрэг эргүүлнэ

elseif cliff.leftFront <2500 %нь зүүн талын хадыг мэдрэгчийг уншдаг

r.turnAngle (5) %нь ховил мэдрэгчийн эсрэг чиглэлд өрөөний хэсгийг бага зэрэг эргүүлнэ

өөр

Төгсгөл

Төгсгөл

Төгсгөл

Алхам 4: Код ба роботыг турших

Код ба роботыг туршиж байна
Код ба роботыг туршиж байна
Код ба роботыг туршиж байна
Код ба роботыг туршиж байна
Код ба роботыг туршиж байна
Код ба роботыг туршиж байна

Кодыг боловсруулсны дараа дараагийн алхам бол код болон роботыг турших явдал байв. Роботын эргэх өнцөг, хөдөлж буй хурд, өнгө бүрийн босго гэх мэт кодонд маш олон янзын тохируулга хийх боломжтой байдаг тул эдгээр утгыг таны роботыг тодорхойлох хамгийн сайн арга бол турших явдал юм. Тэд явж байхдаа өөрчлөгдөж байдаг. Бидний хийсэн ажлын өдөр бүрийн хувьд бид эдгээр утгыг байнга өөрчилж байдаг, учир нь тэдний зарим нь таны робот ажиллаж буй орчинд найддаг. Бидний олж мэдсэн хамгийн сайн арга бол roomba -г өөрийн хүссэн зам дээр байрлуулах явдал юм. хангалттай өндөр хаалттай тул камер нь таны хүсээгүй өнгийг илрүүлж чадахгүй. Дараагийн алхам бол үүнийг ажиллуулж, хүссэн өнгөө харуулах бөгөөд энэ ажлыг дуусгахыг хүсч байна. Явах явцдаа хэрэв та ямар нэг асуудал олж харвал урд бамперыг дарж зогсоож, асуудалтай байсан параметрээ өөрчлөх нь хамгийн зөв арга юм.

Алхам 5: Алдааг хүлээн зөвшөөрөх

Төсөл дууссаны дараа алдааны эх үүсвэр үргэлж байдаг. Бидний хувьд робот эргэх өнцөг нь яг нарийн биш гэдэг энгийн алдаатай тулгарсан тул хэрэв та 45 градус эргүүл гэж хэлбэл энэ нь тийм ч зөв биш байх болно. Бидний алдааны бас нэг эх сурвалж нь заримдаа роботын доголдол гардаг бөгөөд та дахин ажиллахаасаа өмнө үүнийг дахин тохируулдаг. Бидний хувьд алдааны гол эх үүсвэр нь ижил код нь өөр өөр роботуудад ижил нөлөө үзүүлэхгүй тул та тэвчээртэй байж, үүний дагуу тохируулах хэрэгтэй болж магадгүй юм.

Алхам 6: Дүгнэлт

Одоо та өрөөнийхөө өрөөнд тоглох бүх хэрэгслүүд байгаа бөгөөд энэ нь хүссэн зорилгодоо хүрэхийн тулд хүссэн үедээ кодоо өөрчилж болно гэсэн үг юм. Энэ бол таны өдрийн хамгийн сайхан хэсэг байх ёстой, тиймээс хөгжилтэй байж, аюулгүй жолоодоорой!

Зөвлөмж болгож буй: