Съдържание:

EyeRobot - роботизираната бяла тръстика: 10 стъпки (със снимки)
EyeRobot - роботизираната бяла тръстика: 10 стъпки (със снимки)

Видео: EyeRobot - роботизираната бяла тръстика: 10 стъпки (със снимки)

Видео: EyeRobot - роботизираната бяла тръстика: 10 стъпки (със снимки)
Видео: Откриване на роботизираната линия в завода за керамика, 25 години Идеал Стандарт в България 2024, Ноември
Anonim
EyeRobot - роботизираната бяла бастун
EyeRobot - роботизираната бяла бастун

Резюме: С помощта на iRobot Roomba Create създадох прототип на устройство, наречено eyeRobot. Той ще води слепите и потребителите с увредено зрение през претрупаната и населена среда, като използва Roomba като основа, за да се ожени за простотата на традиционната бяла бастун с инстинктите на куче, което вижда. Потребителят показва желаното от него движение чрез интуитивно натискане и завъртане на дръжката. Роботът приема тази информация и открива ясен път по коридор или през стая, използвайки сонара, за да насочи потребителя в подходяща посока около статични и динамични препятствия. След това потребителят следва зад робота, докато той насочва потребителя в желаната посока чрез забележимата сила, която се усеща през дръжката. Тази роботизирана опция изисква малко обучение: натиснете, за да отидете, дръпнете, за да спрете, завъртете, за да завъртите. Далновидността, която далномерите осигуряват, е подобна на куче за гледане на очи и е значително предимство пред постоянните опити и грешки, които бележат използването на бялата бастун. И все пак eyeRobot все още предлага много по -евтина алтернатива от кучетата водачи, които струват над 12 000 долара и са полезни само за 5 години, докато прототипът е построен за под 400 долара. Това също е сравнително проста машина, изискваща няколко евтини сензора, различни потенциометри, малко хардуер и, разбира се, Roomba Create.

Стъпка 1: Видео демонстрация

Видео демонстрация
Видео демонстрация

Висококачествена версия

Стъпка 2: Общ преглед на операцията

Обзор на операцията
Обзор на операцията

Потребителски контрол: Работата на eyeRobot е проектирана да бъде възможно най -интуитивна, за да намали или премахне значително обучението. За да започне движение, потребителят просто трябва да започне да върви напред, линеен сензор в основата на пръчката ще вземе това движение и ще започне да движи робота напред. Използвайки този линеен сензор, роботът може да съобрази скоростта си с желаната от потребителя скорост. eyeRobot ще се движи толкова бързо, колкото потребителят иска да отиде. За да покаже, че е необходим завой, потребителят просто трябва да завърти дръжката и ако е възможен завой, роботът ще реагира съответно.

Навигация на робота: Когато пътувате в открито пространство, eyeRobot ще се опита да запази права пътека, откривайки всяко препятствие, което може да попречи на потребителя, и ще насочи потребителя около този обект и обратно по първоначалния път. На практика потребителят може естествено да следва зад робота с малко съзнателна мисъл. За да се придвижва в коридор, потребителят трябва да се опита да избута робота в една от стените от двете страни, след като придобие стена, роботът ще започне да я следва, насочвайки потребителя надолу по коридора. Когато се достигне кръстовище, потребителят ще почувства, че роботът започва да се завърта, и може да избере, като завърти дръжката, дали да отклони новото издънка или да продължи по прав път. По този начин роботът много прилича на бялата бастун, потребителят може да усети околната среда с робота и да използва тази информация за глобална навигация.

Стъпка 3: Сензори за обхват

Сензори за обхват
Сензори за обхват

Ултразвук: eyeRobot носи 4 ултразвукови далекомера (MaxSonar EZ1). Ултразвуковите сензори са разположени в дъга в предната част на робота, за да предоставят информация за обекти пред и отстрани на робота. Те информират робота за обхвата на обекта и му помагат да намери отворен маршрут около този обект и обратно по първоначалния му път.

Инфрачервени далекомери: eyeRobot също носи два IR сензора (GP2Y0A02YK). Инфрачервените далекомери са разположени с лице към 90 градуса надясно и наляво, за да подпомогнат робота в стената. Те могат също така да предупреждават робота за обекти, твърде близо до неговите страни, в които потребителят може да влезе.

Стъпка 4: Сензори за положение на бастун

Сензори за положение на бастун
Сензори за положение на бастун

Линеен сензор: За да може eyeRobot да съпостави скоростта си с тази на потребителя, eyeRobot усеща дали потребителят натиска или забавя движението си напред. Това се постига чрез плъзгане на основата на бастуна по писта, тъй като потенциометърът разпознава позицията на бастуна. EyeRobot използва този вход за регулиране на скоростта на робота. Идеята за адаптацията на eyeRobot към скоростта на потребителя чрез линеен сензор всъщност е вдъхновена от семейната косачка за косачка. Основата на бастуна е свързана с водещ блок, движещ се по релса. Към водещия блок е прикрепен плъзгащ потенциометър, който отчита позицията на водещия блок и го докладва на процесора. За да се позволи на пръчката да се върти спрямо робота, има пръчка, която се движи нагоре през дървен блок, образувайки въртящ се лагер. След това този лагер е прикрепен към панти, за да позволи на пръчката да се приспособи към височината на потребителя.

Сензор за усукване: Сензорът за усукване позволява на потребителя да завърти дръжката, за да завърти робота. Към края на един дървен вал е прикрепен потенциометър и копчето е вмъкнато и залепено в горната част на дръжката. Проводниците се спускат по дюбела и подават информацията за усукване в процесора.

Стъпка 5: Процесор

Процесор
Процесор

Процесор: Роботът се управлява от Zbasic ZX-24a, седнал на Robodyssey Advanced Motherboard II. Процесорът е избран заради неговата скорост, лекота на използване, достъпна цена и 8 аналогови входа. Той е свързан с голяма прототипна схема, за да позволи бързи и лесни промени. Цялата мощност на робота идва от захранването на дънната платка. Zbasic комуникира с roomba през пристанището на товарния отсек и има пълен контрол над сензорите и двигателите на Roomba.

Стъпка 6: Преглед на кода

Преглед на кода
Преглед на кода

Избягване на препятствия: За избягване на препятствия eyeRobot използва метод, при който обекти в близост до робота упражняват виртуална сила върху робота, като го отдалечават от обекта. С други думи, обекти отблъскват робота от себе си. В моята реализация виртуалната сила, упражнявана от обект, е обратно пропорционална на разстоянието на квадрат, така че силата на натиска се увеличава с приближаването на обекта и създава нелинейна крива на отговор: PushForce = ResponseMagnitudeConstant/Distance2Изтласкванията, идващи от всеки сензор, се събират; сензорите от лявата страна натискат надясно и обратно, за да получат вектор за пътуването на робота. След това скоростите на колелата се променят, така че роботът да се обърне към този вектор. За да се гарантира, че обектите, мъртви пред робота, не показват "без реакция" (тъй като силите от двете страни се балансират), обектите на мъртвия фронт избутат робота към по -отворената страна. Когато роботът премине обекта, той използва енкодерите на Roomba, за да коригира промяната и да се върне към оригиналния вектор.

Следване на стени: Принципът на следване на стената е да се поддържа желаното разстояние и паралелен ъгъл спрямо стената. Проблеми възникват, когато роботът е обърнат спрямо стената, тъй като единичният сензор дава безполезни показания за обхвата. Показанията на обхвата се влияят както от ъгъла на роботите към стената, така и от действителното разстояние до стената. За да се определи ъгълът и по този начин да се елиминира тази променлива, роботът трябва да има две опорни точки, които могат да бъдат сравнени, за да се получи ъгълът на роботите. Тъй като eyeRobot има само една страна, обърната към IR далекомер, за да постигне тези две точки, той трябва да сравни разстоянието от далекомера във времето, докато роботът се движи. След това той определя ъгъла си от разликата между двете показания, докато роботът се движи по стената. След това той използва тази информация, за да коригира неправилното позициониране. Роботът преминава в режим следване на стена, когато има стена до себе си за известно време и излиза от него, когато има препятствие по пътя му, което го изтласква от курса му, или ако потребителят използва дръжката за усукване, за да донесе робот далеч от стената.

Стъпка 7: Списък на частите

Списък с части
Списък с части

Необходими части: 1x) Roomba create1x) Голям лист от акрил2x) Sharp GP2Y0A02YK IR далекомер4x) Maxsonar EZ1 ултразвуков далекомер1x) ZX-24a микропроцесор1x) Robodyssey Advanced дънна платка II1x) Плъзгащ потенциометър1x) Еднопосочен потенциометър1) Панти, дюбели, винтове, гайки, скоби и проводници

Стъпка 8: Мотивация и усъвършенстване

Мотивация и усъвършенстване
Мотивация и усъвършенстване

Мотивация: Този робот е проектиран да запълни очевидната празнина между способното, но скъпо куче водач и евтината, но ограничена бяла бастун. При разработването на продаваема и по -способна роботизирана бяла тръстика, Roomba Create беше идеалното средство за проектиране на бърз прототип, за да се види дали концепцията работи. В допълнение, наградите ще осигурят икономическа подкрепа за значителните разходи за изграждането на по -способен робот.

Подобрение: Сумата, която научих при изграждането на този робот, беше значителна и тук ще се опитам да изложа наученото, докато продължавам да се опитвам да създам робот от второ поколение: 1) Избягване на препятствия - научих много за препятствията в реално време избягване. В процеса на изграждане на този робот съм преминал през два напълно различни кода за избягване на препятствия, започвайки от оригиналната идея за силата на обекта, след това преминавам към принципа на намиране и търсене на най -отворения вектор и след това се връщам към идеята за сила на обекта с ключовата реализация, че реакцията на обекта трябва да бъде нелинейна. В бъдеще ще поправя грешката си да не правя никакви онлайн проучвания на използвани по -рано методи, преди да се захвана с моя проект, тъй като сега научавам бързо търсене в Google би довело до множество страхотни статии по темата. 2) Дизайн на стика сензори - В началото на този проект си мислех, че единствената ми възможност за линеен сензор е да използвам плъзгаща се саксия и някакъв линеен лагер. Сега осъзнавам, че много по -опростен вариант би бил просто да прикрепите горната част на пръта към джойстик, така че натискането на пръчката напред също би избутало джойстика напред. В допълнение обикновената универсална връзка би позволила завъртането на пръчката да се превърне в оста на усукване на много съвременни джойстици. Това изпълнение би било много по -просто от това, което използвам в момента. 3) Свободно завъртащи се колела - Въпреки че това би било невъзможно с Roomba, сега изглежда очевидно, че робот със свободни въртящи се колела би бил идеален за тази задача. Робот, който се търкаля пасивно, няма да изисква двигатели и по -малка батерия и по този начин ще бъде по -лек. В допълнение, тази система не изисква линеен сензор за откриване на натиска на потребителите, роботът просто ще се търкаля със скоростта на потребителите. Роботът може да се завърти чрез управление на колелата като кола и ако потребителят трябва да бъде спрян, може да се добавят спирачки. За следващото поколение eyeRobot със сигурност ще използвам този много различен подход.4) Два раздалечени сензора за следване на стената - Както беше обсъдено по -рано, проблемите възникнаха при опит за стена следване само с един сензор за лице, поради което беше необходимо да се премести роботът между показанията за постигане на различни опорни точки. Два сензора с разстояние между тях биха опростили значително проследяването на стената.5) Повече сензори - Въпреки че това щеше да струва повече пари, беше трудно да се кодира този робот с толкова малко прозорци в света извън процесора. Това би направило навигационния код много по -мощен с по -пълен масив от сонари (но разбира се сензорите струват пари, които тогава нямах).

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

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

Заключение: iRobot се оказа идеална прототипна платформа за експериментиране с концепцията за роботизирана бяла бастун. От резултатите от този прототип става ясно, че робот от този тип е наистина жизнеспособен. Надявам се да разработя робот от второ поколение от уроците, които научих от използването на Roomba Create. В бъдещите версии на eyeRobot си представям устройство, способно да направи нещо повече от просто водене на човек по коридора, по -скоро робот, който може да бъде поставен в ръцете на слепите за използване в ежедневието. С този робот потребителят просто би казал местоназначението си и роботът би ги насочил там без съзнателни усилия от страна на потребителя. Този робот ще бъде достатъчно лек и компактен, за да може лесно да се носи по стълбите и да се прибира в килер. Този робот би могъл да извършва глобална навигация в допълнение към локалната, като би могъл да насочва потребителя от началото до местоназначението без предварителните знания или опит на потребителите. Тази възможност би надхвърлила дори кучето водач, с GPS и по -усъвършенствани сензори, позволяващи на слепите да се движат свободно в света, Натаниел Баршай, (Въведено от Стивън Баршай) (Специални благодарности на Джак Хит за Roomba Create)

Стъпка 10: Конструкция и код

Строителство и код
Строителство и код

Няколко външни думи за конструкцията: Палубата, направена от парче акрил, изрязано в кръг с отвор отзад, за да позволи достъп до електроника, и след това се завинтва в монтажните отвори до товарното отделение. Прототипната дъска се завинтва в отвора за винт в долната част на гнездото. Zbasic е монтиран с L скоба със същите винтове като палубата. Всеки сонар се завинтва в парче акрил, което от своя страна е прикрепено към L скоба, прикрепена към палубата (L скобите са огънати назад на 10 градуса, за да се осигури по -добър изглед). Пътят за линейния сензор се завинтва право в палубата и плъзгащият саксия е монтиран с L скоби до него. По -техническо описание на конструкцията на линейния сензор и контролния прът може да се намери в стъпка 4.

Код: Прикачих пълната версия на кода за роботи. В продължение на час се опитах да го изчистя от трите или четири поколения код, които бяха във файла, би трябвало да е достатъчно лесно да се следят сега. Ако имате ZBasic IDE, би трябвало да е лесен за преглед, ако не използвате бележник, започващ с файла main.bas и преминаващ през другите.bas файлове.

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