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

Roomba Scout Explorer: 8 алхам
Roomba Scout Explorer: 8 алхам

Видео: Roomba Scout Explorer: 8 алхам

Видео: Roomba Scout Explorer: 8 алхам
Видео: Man Falls OVERBOARD and Boat Keeps Going! | Wavy Boats | Haulover Inlet 2024, Долдугаар сарын
Anonim
Roomba скаутын судлаач
Roomba скаутын судлаач

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

Өвөрмөц байдлын хувьд бид роботын гарал үүсэлээс авсан зам бүрийг харуулсан диаграммыг бий болгоход анхаарлаа хандуулсан. Үүнээс гадна робот нь ойролцоох объектуудынхаа тоог панорамик маягаар тоолох боломжтой болно.

Алхам 1: Тоног төхөөрөмж

-Roomba/ залгагдах камер (тодорхой нэртэй)

-Холбогдсон сервер

-Интернет холболттой Windows 10 / Mac

-Гэрэлт платформ

-Харанхуй шал

-Монохромат дизайнтай аливаа төөрсөн объект

Алхам 2: MATLAB -ийн тохиргоо

MATLAB тохиргоо
MATLAB тохиргоо

Roomba -ийн даалгавар, функцийг бий болгохын тулд та roomba командыг агуулсан тусгай код, багаж хэрэгсэлтэй байх ёстой.

MATLAB 2016a болон цааш татаж авсны дараа эдгээр робот файлуудыг агуулсан хавтас үүсгээд доорх MATLAB файлыг фолдерт оруулаад үлдсэн roomba файлуудыг суулгахын тулд ажиллуулна уу.

Үүний дараа Current Folder цонхонд хулганы баруун товчийг дараад "Зам нэмэх" дээр хулганаа оруулаад "Current Folder" дээр дарна уу. Одоо эдгээр файл бүрийг Roomba -г идэвхжүүлэхэд ашиглах замыг тохируулах ёстой.

Одоо командын цонхонд байгаа командыг ашиглан roomba -г тохируулна уу.

r = roomba (#).

# Тэмдэг нь заасан roomba -ийн 'дугаар'; Гэсэн хэдий ч, хэрэв та зүгээр л roomba -ийн симулятор авахыг хүсвэл дараах тушаалыг бичээрэй.

r = roomba (0).

Энэхүү симуляцийг хөдөлгөөний хэв маягийг туршихад ашиглахыг зөвлөж байна.

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

doc roomba.

Дэлгэрэнгүй мэдээллийг дараах вэбсайтаас авна уу.

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

Алхам 3: Чиг үүрэг: Хөдөлгөөн

Чиг үүрэг: Хөдөлгөөн
Чиг үүрэг: Хөдөлгөөн
Чиг үүрэг: Хөдөлгөөн
Чиг үүрэг: Хөдөлгөөн

Хөдөлгөөний хувьд, оролтын хэсэгт заасан хугацаанд тасалгааг автоматаар хөдөлгөж байх ёстой. Роботын хөдөлгөөний зорилго нь мэдрэгч (бампер, гэрлийн бампер, хадан цохионы мэдрэгч) янз бүрийн саад бэрхшээл тулгарсан үед өөрчлөгдөхөд зөв хариу үйлдэл үзүүлэх явдал юм. Энэ хэсэг нь дараа нь кодын олон онцлог шинж чанарууд нэмэгдэх тул бүх Roomba командуудын үндэс болно. Зарим тодорхойлолт шаардлагатай байсан:

-Гэмтлийг багасгахын тулд робот хурдыг бага хурдтай болгоно.

-Хадан цохио эсвэл хананд ойртох үед робот урвуугаар хөдөлж, цохилтын цэгээс хамааран өнцгийг нь өөрчилнө.

-Хэсэг хугацааны дараа машин жолоодоход өрөөний зогсоол зогсч, эргэн тойрныхоо зургийг авах болно

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

Алхам 4: Чиг үүрэг: Зураг боловсруулах

Чиг үүрэг: Зураг боловсруулах
Чиг үүрэг: Зураг боловсруулах

Хүсэлтийн дагуу бид роботын камераар хүлээн авсан зураг (эсвэл хэд хэдэн зураг) -ийн өгөгдлийг өөрчлөх үүрэг хүлээсэн бөгөөд үүнд бид Roomba -г зураг дээр харж буй объектын тоог "тоолох" болгохоор шийдсэн.

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

Камер байхгүй тул энэ функц симулятор дээр ажиллах боломжгүй гэдгийг анхаарна уу; оролдвол зөвхөн (:,:, 3) матрицыг ашиглах боломжтой болохыг зарлахад алдаа гарна.

Алхам 5: Чиг үүрэг: Зураглал

Чиг үүрэг: Газрын зураг
Чиг үүрэг: Газрын зураг
Чиг үүрэг: Газрын зураг
Чиг үүрэг: Газрын зураг
Чиг үүрэг: Газрын зураг
Чиг үүрэг: Газрын зураг
Чиг үүрэг: Газрын зураг
Чиг үүрэг: Газрын зураг

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

Функцийн ажиллах хугацааны хязгаарыг нэмэхийн тулд while давталтын n <20 хязгаарыг туршилтын зорилгоор ашигласан.

Кодын нарийн төвөгтэй байдлаас шалтгаалан кодын сегмент удаан хугацаанд ажиллахад илүү их алдаа гардаг гэдгийг санаарай. Өмнөх туршилтуудаас харахад арван алдаа нь мэдэгдэхүйц алдаа гарахаас өмнөх онооны тоо юм.

Алхам 6: Хоорондоо байрлуулах

Хоорондоо байрлуулах
Хоорондоо байрлуулах
Хоорондоо байрлуулах
Хоорондоо байрлуулах
Хоорондоо байрлуулах
Хоорондоо байрлуулах
Хоорондоо байрлуулах
Хоорондоо байрлуулах

Энэ бүгдийг нэг файлд байрлуулах тул бид өмнөх хоёр алхам тус бүрийг дэд функц болгон ашиглан функцийг үүсгэсэн. Эцсийн ноорог нь "recon" гэж нэрлэгддэг redux функцын дараах өөрчлөлтөөр хийгдсэн болно. MATLAB -ийг төөрөгдүүлэхгүйн тулд "тоолуур" ба "rombplot3" скриптүүдийг "CountR" болон "plotr" функц болгон тус тус өөрчилсөн.

Өмнөх скриптүүдээс ялгаатай нь эцсийн хувилбарт хэд хэдэн өөрчлөлт оруулах шаардлагатай болсон.

-Анх гарал үүслийг үргэлж улаан тойрогоор тэмдэглэнэ

-Оромба нь бампераасаа зогсох тоолонд байрлалыг хар тойрогоор тэмдэглэдэг

-Оромба цохио мэдрэгчээсээ зогсох тоолонд байрлалыг нь цэнхэр тойрогоор тэмдэглэдэг

-Оромба тухайн газрыг судлахаа болих тоолонд байршлыг ногоон дугуйлангаар тэмдэглэдэг

-Цагны тамга нь үр дүнд нөлөөлж болзошгүй тул зургийг дээд хэсгийг нь хасахаар өөрчилдөг

-Хэт их олж авсан тул хил хязгаарыг объект гэж тооцохгүй

-Хэд хэдэн хувьсагчийг өөрчилсөн тул төөрөгдөл үүсгэхгүйн тулд дээрх хувилбаруудыг лавлагаа болгон ашиглаарай.

Алхам 7: Туршилт

Туршилт
Туршилт

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

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

Зогсоох бүрт координатын систем дээрх байрлалын ойролцоо бүсэд шинэ цэг байрлуулсан; Гэсэн хэдий ч Roomba эхлэх анхны чиглэл нь газрын зургийн дизайнд чухал үүрэг гүйцэтгэдэг болохыг тэмдэглэжээ. Хэрэв луужингийн онцлогийг хэрэгжүүлэх боломжтой байсан бол үүнийг газрын зургийн дизайны чухал хэсэг болгон ашиглах байсан.

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

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

Дүгнэлт
Дүгнэлт

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

While давталтад цагийн тодорхойлолтыг ашиглах хязгаарлалт нь нийт хугацааг хүссэн хэмжээнээсээ урт болгоход хүргэдэг; Панорамик техник, зураг боловсруулах үйл явц нь удаан компьютерээр ажилладаг эсвэл өмнө нь ашиглаагүй байсан бол илүү урт хугацаа шаардагдах болно. Нэмж дурдахад, бидний танилцуулгад ашигласан roomba нь симулятортой харьцуулахад маш их алдаатай, ялангуяа хөдөлгөөнд оролцсон. Харамсалтай нь ашигласан робот шулуун жолоодож, хүссэн хэмжээнээсээ илүү том эргэлт хийхдээ бага зэрэг зүүн тийш хазайх хандлагатай байв. Энэ болон бусад олон шалтгааны улмаас эдгээр алдааг нөхөхийн тулд эргэх өнцөгт нь өөрчлөлт оруулахыг зөвлөж байна.

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

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