Съдържание:

Хокинг Бот: 5 стъпки
Хокинг Бот: 5 стъпки

Видео: Хокинг Бот: 5 стъпки

Видео: Хокинг Бот: 5 стъпки
Видео: Трансформеры 5, первое знакомство(русская озвучка) 2024, Ноември
Anonim
Image
Image
Изградете своя Хокинг бот
Изградете своя Хокинг бот

Хокинг Ботът е проект на Lego MINDSTORMS EV3, вдъхновен от покойния Стивън Хокинг. Стивън Хокинг имаше добро чувство за хумор, така че съм сигурен, че би одобрил този проект. Ботът Хокинг може да се придвижва около препятствията и да реагира на движения, а след това изрича един от известните звуци на Стивън Хокинг и се движи в посока на движещия се обект. Той използва ултразвуковия сензор, който сканира околната среда с широко движение на главата.

Стъпка 1: Изградете своя Хокинг бот

Всички необходими части са в основния комплект EV3 Lego MINDSTORMS с изключение на ултразвуковия сензор (очите му), който трябва да се закупи отделно.

Стъпка 2:

Образ
Образ

Кодът за Hawking Bot е написан на python 3. Файл за стартиращо изображение, който да стартира python в Debian Linux среда на Hawking Bot, може да бъде изтеглен от уебсайта ev3dev. Кодът за стартиране на Hawking Bot може да бъде изтеглен от тук. Целият код се съдържа в файл на клас, така че можете да използвате съществуващите методи или дори да ги модифицирате, ако желаете.

Моля, гледайте това видео с подробни инструкции как да настроите Debian Linux и Python3 на вашия робот. Въпреки че това е специално за настройка на Mac, все пак ще бъде полезно да получите общо разбиране за процеса. Това е незавършена работа. Ултразвуковият сензор понякога е ненадежден и това изисква по -интелигентен код за откриване на „отклонения“. Бих искал да видя приноси от други, за да направим кода по-ефективен и по-малко податлив на грешки.

Стъпка 3: Направете свои собствени звукови фрагменти на Хокинг

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

Имате нужда от програма като Audacity, която работи на много платформи, за да изберете и изрежете любимите си звукови фрагменти.

Запазете звуковия си запис като wav моно файл като SH6, SH7,… SH11, SH12 и така нататък.

По -долу ще намерите няколко мостри, които създадох съгласно горния метод.

Стъпка 4: Съвети и трикове

Съвети и трикове
Съвети и трикове
Съвети и трикове
Съвети и трикове

Bow Hawking идва с модул за самопроверка, за да се уверите, че всички кабели са свързани и захранването на батерията е достатъчно. Разхлабени, липсващи или дори повредени връзки могат да възникнат лесно. Така че този модул е много полезен. Методът „checkConnection“проверява само дали има електрическа връзка. Все пак трябва да се уверите, че двигателите са свързани към правилния порт.

Преместването на главата е от съществено значение, за да може Хокинг Ботът да сканира терена си и да намери най -дългия безпрепятствен път напред. Кабелите се нуждаят от достатъчно място за приспособяване на движенията на главата; затова е препоръчително да ги свържете, както е показано на снимката.

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

Ботът Хокинг в никакъв случай не е перфектен и това е прототип, който ще се възползва от по -нататъшни подобрения. Кодът е напълно коментиран и би трябвало да е лесно да разберете какво правят различните методи. Различни битове са коментирани с #, ако премахнете # пред „печат“, стартиращата програма ще ви покаже различните показания и изчисления на сензора.

Стъпка 5: Предложени подобрения, актуализации и бъдещи идеи

Сега, след като успешно сте построили вашия робот, искате да го изведете на следващото ниво. Можете да подобрите метода MotionDetector. В момента толкова често се получава погрешно четене. Можете да видите действителните показания, като декомментирате disA и disB (в долната част на блока с методи). Грешното четене обикновено се откроява от другите показания, така че можете да напишете алгоритъм, за да спрете робота да реагира на грешно четене.

Може би искате да поемете пълен контрол над робота и просто да управлявате дистанционно неговите различни функции. Можете да направите това чрез Bluetooth и да напишете програма за Android, за да комуникирате с робота. Много по -лесен подход обаче би бил да се намери място за инфрачервения сензор да поеме контрола над Хокинг Бот.

Какво ще кажете да накарате робота да научи за околната среда? Това може да бъде постигнато с подход k-най-близък съсед или евентуално невронна мрежа. Тухлата EV3 има ограничена процесорна мощност, въпреки че поддържа Numpy. Алтернатива би била BrickPi, която би ви позволила да стартирате AI библиотека като Tensorflow, но намерението на това ръководство беше да използвате комплекта Lego EV3 MINDSTORMS, без да е необходимо да купувате много скъпи допълнителни части, различни от ултразвуковия сензор.

Подходът на обучение за повторно информиране на k-най-близки съседи обаче трябва да работи върху EV3 тухла и това е предложеният алгоритъм. Оставям на вас да намерите работещо изпълнение или да забележите проблеми:

Укрепване обучение за Хокингс Бот

Идеята е, че 7 -те показания на USS са кодирани във вектор, а последните 10 главни замахвания се използват за създаване на последователен вектор от 70 записа. Първите показания са непълни, така че ще бъдат попълнени с нули. Всеки запис съдържа стойността на разстоянието от USS. Това е векторът на състоянието s. Системата позволява 1000 записа. След това най-старият запис ще бъде заменен и записите за възрастта за всяка s-r двойка ще бъдат намалени с един.

Ботът не трябва да се доближава повече от 10 см до обект. Това създава отрицателна награда. За простота; добрите действия се възнаграждават с 1, а лошите с 0. На практика това създава вероятност за наградата за всяка комбинация от състояние на действие. Ще използваме намалени награди и алчна политика на epsilon.

Това създава 3 големи таблици за състоянието –reward (s-r) за трите действия надясно, право напред и наляво-може да е възможно да има бързи и бавни скорости за всяко действие. Тогава щяхме да имаме 6 действия и 6 справочни s-r таблици.

Всеки път, когато се записва ново състояние s, то се сравнява с таблиците, евклидово разстояние (или подобна мярка) се използва за намиране на най -близкия съсед. Това няма да бъде класирано, а по -скоро е зададен праг t за приемане на състоянието като много подобно, презаписване на съществуващото състояние и актуализиране за най -висока награда и извършване на свързаното действие a. Ако не е подобно (d> t), въведете нова s-r двойка за всяко действие a. Ако има връзка между действията за за s-r (всички те имат една и съща награда) изберете на случаен принцип, но това не е често срещано и може да бъде пропуснато.

t ще трябва да бъде определено експериментално, ако t е твърде малко, подобни състояния ще бъдат игнорирани и всяко състояние се разглежда като уникално. Твърде големият t означава, че дори доста различни състояния се обединяват, което може да повлияе на способността да се избират добри действия. Възможно е да се използват статистически методи за определяне на най -добрия t.

Таблицата изглежда така: Вход No - Вектор на състоянието - награда за действие 1 - награда за действие 2 - награда за действие 3.

Предполагам, че действителната реализация ще бъде трудна, но трябва да си струва усилията. Късмет!

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