Съдържание:

Самостоятелно ходещ робот: 7 стъпки
Самостоятелно ходещ робот: 7 стъпки

Видео: Самостоятелно ходещ робот: 7 стъпки

Видео: Самостоятелно ходещ робот: 7 стъпки
Видео: Жена се върна от 3800 г., за да предупреди 2024, Ноември
Anonim
Самостоятелно вървящ робот
Самостоятелно вървящ робот

Какво направих?

● Бот, който може да бъде обучен да ходи (да се движи напред) по различни повърхности. Ботът изобразява просто същество с 4 крака без коляно, което се мъчи да продължи напред. Той знае, че може да ориентира всеки от краката само по 3 възможни начина. Сега тя трябва да измисли най -добрите възможни стъпки, които може да предприеме, за да продължи да се движи. Тъй като движението му също зависи от триенето с повърхността, ние вярваме, че за всяка различна повърхност, по която върви, ще има различен (не непременно уникален, но най -вероятно подобен) набор от стъпки, за да увеличи максимално усилията си да се движи напред.

За какво се използва?

● Най -добре се използва за визуализиране на моделите на ходене за AI ROBOT.

Стъпка 1: Диаграма на потока

Диаграма на потока
Диаграма на потока

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

Стъпка 2: ВЪВЕЖДАНИ ОСНОВНИ КОМПОНЕНТИ:

Електроника

Arduino UNO (!)

Ултразвуков сензор

Серво мотори

Bluetooth модул

Кодиране

Arduino IDE

Тератерм

Бележник Jupyter

Q-алгоритъм за обучение

Стъпка 3: МОДУЛ V1:

МОДУЛ V1
МОДУЛ V1

Укрепване на обучението: Използвайки ANN (изкуствена невронна мрежа) планирахме да обучим нашия робот и измислихме два възможни метода.

Ограничения: Всеки крак (серво мотор) е ограничен да заема само 3 възможни позиции 60, 90 и 120 градуса. Предположения: Смятаме, че движението на бота ще представлява 4 състояния (състояние е определена ориентация на четирите сервопривода), т.е. ще има 4 различни състояния на робота, които ще разглеждаме като 4 стъпки съответно, давайки ни един цикъл на движение, в който ботът ще се премести на известно разстояние напред. Този цикъл ще се повтаря безкрайно, за да поддържа бота в движение.

Но единственият проблем беше броят на итерациите, които трябва да бъдат оценени - Имаме 3 възможни ориентации за всеки двигател и има 4 различни двигателя, което го прави 3^4 = 81 състояния, в които роботът може да съществува в една стъпка или състояние. Трябва да предприемем 4 различни стъпки, за да завършим едно сложно движение, което означава 81^4 = 43, 046, 721 възможни комбинации, които трябва да бъдат проверени за максимална ефективност за един цикъл на движение. Да предположим, че отнема 5 секунди, за да се обучи едно състояние, ще са необходими 6,8250 години, за да завърши обучението!

Стъпка 4: МОДУЛ V2:

Алгоритъм за Q-обучение

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

Математика на алгоритъма: Има 81 възможни състояния за всяка стъпка, в която може да бъде ботът, ние наричаме тези състояния като числа от 1 до 81 и сега това, което искаме да знаем, е стойността на прехода, което означава промяната в позицията на робота (разстоянието е преместено), докато се премества от случайно състояние s1 в друго състояние s2 (s1, s2 от тези 81 състояния). Можем да го видим като матрица с 81 реда и 81 колони, където елемент от матрицата ще бъде равен на стойността на разстоянието, от което се е преместил, съответстващо на номера на реда и колоната. Тези стойности могат да бъдат положителни или отрицателни в зависимост от действието на робота в реална дума. Сега ще намерим затворен цикъл от състояния, в които разстоянието, което изминава, е винаги положително. Ще оценяваме 81x81 матрични стойности, които са 81^2 = 6561, сега ако отнеме 5 секунди, за да съхраним тези стойности в матрицата, тогава тя ще отнема 9.1125 часа само, за да се направи цяла матрица, а след това цикъл от стъпки за увеличаване на ефективността на движението може лесно да бъде измислен.

Стъпка 5: ВЪВЕЖДАНИ ПРОБЛЕМИ -

  1. За някои състояния движението на бота е много неравномерно и оказва влияние върху стойността на сензора на ултразвука, ботът се накланя и набира разстояние от далечна стена.
  2. Проблемът с изключването от лаптопа и рестартирането на arduino беше да го накара да тренира от 0 стойност беше много дразнещ.
  3. Гледането на влака на робота в продължение на 5 часа беше много изчерпателно.

Стъпка 6: МОДУЛ А1 и А2:

  • Механичната част включва дъската на шасито с четири закрепени към нея сервомотора. Използвахме пръчки за сладолед за направата на крака.
  • Нашата основна задача - да следим разстоянието на бота от първоначалната му позиция.
  • Първият ни подход беше да използваме жиросензор и да използваме ускорението на бота, докато се движи, за да извлече неговата скорост и впоследствие позицията му.
  • Проблем - Оказа се твърде сложно за изпълнение! Алтернатива - Ограничихме движението на бота само до 1 измерение и използвахме ултразвуков сензор за измерване на разстоянието от стената направо отпред.
  • Модулът HC05-Bluetooth беше използван по време на обучението за предаване на скоростта на преход на разстояние между две стъпки към компютър и там данните се съхраняваха в матрица.

Стъпка 7: Връзка към видеоклипове:

Линк към видеоклипове
Линк към видеоклипове

Бебешки стъпки:

Учебен кадър:

Почти прав:

Видео за танцуващ робот:

Краен Vide0:

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