Съдържание:

Roomba Scout Explorer: 8 стъпки
Roomba Scout Explorer: 8 стъпки

Видео: Roomba Scout Explorer: 8 стъпки

Видео: Roomba Scout Explorer: 8 стъпки
Видео: Samsung POWERbot Star Wars - почистващите роботи в умния дом 2024, Юли
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Като един от най-очакваните и силно проучвани американски проекти, проектите за марсоход се превърнаха в човешки постижения във все по-напредващото производство на високотехнологични автономни системи с единствената цел да изследват и интерпретират сушата и повърхностите на червената планета зад Земята. Като част от по -личен проект в знак на почит към мисиите на Марс, нашата цел беше да създадем робот -ромба, който да може да действа автономно в рамките на определен период от време и да реагира съответно на определени критерии в близост до него.

Що се отнася до уникалността, ние се фокусирахме върху създаването на диаграма, която показва всеки път, по който роботът поема от своя произход. В допълнение, роботът ще може да преброи броя на обектите в близост до него в панорамен стил.

Стъпка 1: Оборудване

-Roomba с прикачваща камера (с известно име)

-Свързан сървър

-Windows 10 / Mac с интернет връзка

-Ярка платформа

-тъмен под

-Всички бездомни обекти с монохроматичен дизайн

Стъпка 2: Настройка на MATLAB

Настройка на MATLAB
Настройка на MATLAB

За да създавате задачи и функции за вашата roomba, трябва да имате специфичните кодове и инструментариуми, съдържащи командите roomba.

С изтегления MATLAB 2016a и по -нататък създайте папка, която да съдържа тези файлове на робота и поставете следния MATLAB файл по -долу в папката и го стартирайте, за да инсталирате останалите необходими файлове на roomba.

След това щракнете с десния бутон в прозореца на текущата папка, задръжте курсора на мишката върху „Добавяне на път“и кликнете върху „Текуща папка“. Сега трябва да се настрои път, така че всеки от тези файлове да се използва за активиране на roomba.

Сега използвайте командата по -долу в командния прозорец, за да настроите roomba:

r = roomba (#).

Символът # е "номер" на посочената румба; обаче, ако просто искате симулатор на roomba, просто въведете следната команда:

r = roomba (0).

Симулацията би се препоръчала за тестване на моделите на движение.

Ако сте любопитни какви команди може да следва roomba, въведете следното в командния прозорец:

doc roomba.

За повече подробности посетете следния уебсайт:

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

Стъпка 3: Функция: Движение

Функция: Движение
Функция: Движение
Функция: Движение
Функция: Движение

По отношение на движението, roomba трябва да се движи автоматично за определен период от време, посочен във входовете. Целта на движението на робота е да реагира правилно, когато сензорите му (брони, светлинни брони и сензори за скали) се променят при наличието на различни препятствия. Тази част ще действа като основа за всички команди на roomba, тъй като по -късно се добавят още функции към кода. Необходими бяха някои спецификации:

-За да намали щетите, роботът трябва да намали скоростта до по -ниска скорост.

-Когато се приближи до скала или стена, роботът ще се движи обратно и ще промени ъгъла си в зависимост от точката на удара

-След известно време шофиране, roomba в крайна сметка ще спре и ще направи снимки на околността

Обърнете внимание, че използваните стойности са във връзка със симулатора; стойности като ъглите на завъртане скоростите на завой и предварително зададените настройки на сензора на робота трябва да бъдат променени, когато се използва действителният робот, за да се осигури стабилност и отчитане на грешки в оборудването.

Стъпка 4: Функция: Обработка на изображения

Функция: Обработка на изображения
Функция: Обработка на изображения

Съгласно заявката, ние получихме задача да променим данните на изображение (или няколко изображения), получени от камерата на робота, към което решихме да накараме ромбута да „брои“броя на обектите, които вижда в изображението.

Следвахме техниката да накараме MATLAB да очертае граници около почернели обекти, които контрастират с бял фон. Тази функция обаче е склонна да има затруднения в открита зона, тъй като различните форми и цветове, възприемани от камерата, което води до необичайно голям брой.

Имайте предвид, че тази функция не може да работи в симулатора, тъй като не е предоставена камера; ако се опита, ще възникне грешка, декларираща само матрица (:,:, 3), която може да се използва.

Стъпка 5: Функция: Картиране

Функция: Картиране
Функция: Картиране
Функция: Картиране
Функция: Картиране
Функция: Картиране
Функция: Картиране
Функция: Картиране
Функция: Картиране

Една допълнителна функция, която искахме да има роботът, беше очертаването на местоположенията му, тъй като той директно взаимодейства с околната среда. По този начин кодът по -долу се стреми да отвори карта и да създаде координатна система, която детайлизира всяко място, в което са натиснати сензорите на бронята на робота. Това се оказа най -дългата част от трите части за тестване поотделно, но се оказа много по -проста, когато се приложи към крайния скрипт.

За да се добави ограничение към дължината на времето за изпълнение на функцията, ограничението n <20 на цикъла while беше използвано за целите на тестването.

Имайте предвид обаче, че поради сложността на кода се появяват повече грешки, тъй като сегментът на кода работи дълго време; от предишни тестове, десет неравности са броят точки, преди да настъпят значителни грешки.

Стъпка 6: Съпоставяне

Съпоставяне
Съпоставяне
Съпоставяне
Съпоставяне
Съпоставяне
Съпоставяне
Съпоставяне
Съпоставяне

Тъй като всичко това ще бъде поставено в един файл, ние създадохме функция, използвайки всяка от предишните две стъпки като нейни подфункции. Направен е окончателен проект със следната модификация на функцията за редукс, наречена "recon". За да се избегне объркване за MATLAB, скриптовете "counter" и "rombplot3" бяха преименувани съответно на вградени функции "CountR" и "plotr".

В окончателната версия трябваше да се направят няколко промени, за разлика от предишните скриптове:

-Началото винаги ще бъде маркирано с червен кръг

-Всеки път, когато roomba спира от броните си, местоположението е маркирано с черен кръг

-Всеки път, когато roomba спира от своите сензори за скали, местоположението е маркирано със син кръг

-Всеки път, когато roomba спира да изследва района, местоположението е маркирано със зелен кръг

-Изображенията са модифицирани, за да се премахне горната част поради отпечатъка от време, който потенциално пречи на резултатите

-Границите няма да се броят като обект поради доста голям брой придобити

-Неколко променливи са променени, така че за да избегнете объркване, използвайте горните версии за справка.

Стъпка 7: Тестване

Тестване
Тестване

Тестовете за всеки отделен компонент се оказаха доста смесени понякога, поради което бяха необходими промени в определени предварително зададени стойности. Тематичният фон, на който искахме да тестваме възможностите на робота в затворена зона, просто се състоеше от бяла дъска, поставена на много по -тъмен под. Можете да разпръснете обектите около района; накарайте ги да действат като обекти, които да се блъскат или отдалечени обекти от движещата се зона на робота.

След като зададе своето регулирано време и базова скорост, roomba демонстрира адекватно поведение на движение, като спира и отстъпва от всяка „скала“или обект, в който се забива, както и забавяйки скоростта си, когато засече нещо наблизо. След като достигне желаното разстояние от три метра, роботът ще продължи да спира и оценява зоната, като прави снимки на всеки 45 градусов регион и ще продължи напред, ако времето позволява. Неговите завои обаче изглеждаха по -големи от изискваните, което означава, че координатните данни ще бъдат скрити.

Всеки път, когато спира, нова точка се поставя в приблизителната област на нейната позиция в координатната система; отбелязва се обаче, че първоначалната посока, в която стартира roomba, играе ключова роля в дизайна на картата. Ако можеше да се приложи функция на компас, тя щеше да се използва като решаваща част от дизайна на картата.

Действителното време, необходимо на функцията за пълно изпълнение, винаги надвишава заявеното време, което има смисъл, като се има предвид, че не може да спре в средата на едно от възстановяванията си. За съжаление, тази версия на броенето на изображения има своите проблеми, особено в области, които са предимно монохромни или с различна яркост; тъй като се опитва да прави разлика между два нюанса, той е склонен да възприема обекти, които не са желани, поради което винаги брои до безумно високи числа.

Стъпка 8: Заключение

Заключение
Заключение

Докато тази задача беше много авантюристична и творческа работа, която донесе облекчение, аз, от личните си наблюдения, видях голям брой грешки, които биха могли да бъдат проблематични както в кода, така и в поведението на робота.

Ограничението за използване на спецификацията на времето в цикъла while прави общото време да бъде по -дълго от желаното; процесът на панорамната техника и обработката на изображението всъщност може да отнеме повече време, ако се изпълнява от бавен компютър или не се използва предварително. В допълнение, roomba, която беше използвана в нашата презентация, действаше с голям брой грешки, особено при движение, в сравнение със симулатора. Използваният робот за съжаление имаше тенденция да се навежда леко наляво, докато караше право и правеше по -големи завои от желаното. Поради тази причина и много други, силно се препоръчва, за да се компенсират тези грешки, трябва да се направят промени в ъглите на завой.

Независимо от това, това е дълъг, но интелектуално стимулиращ проект, който е действал като интересно обучение за прилагане на кодове и команди, за да повлияе пряко върху поведението на действителен робот.

Препоръчано: