Оглавление:

Самоходный робот: 7 шагов
Самоходный робот: 7 шагов

Видео: Самоходный робот: 7 шагов

Видео: Самоходный робот: 7 шагов
Видео: Колёсная самоходная платформа из 4 одинаковых модулей. 2024, Июль
Anonim
Самоходный робот
Самоходный робот

Что я сделал?

● Бот, которого можно обучить ходить (двигаться вперед) по разным поверхностям. Бот изображает простое существо с 4 ногами без колен, которое изо всех сил пытается двигаться вперед. Он знает, что может ориентировать каждую ногу только тремя способами. Теперь он должен определить наилучшие возможные шаги, которые он может предпринять, чтобы продолжить движение. Поскольку его движение также зависит от трения о поверхность, мы полагаем, что для каждой другой поверхности, по которой он ходит, будет свой (не обязательно уникальный, но, скорее всего, похожий) набор шагов, чтобы максимизировать его усилия по продвижению вперед.

Для чего это используется?

● Лучше всего его использовать для визуализации моделей ходьбы AI ROBOT.

Шаг 1: блок-схема

Схема потока
Схема потока

Вот разбивка всего проекта. В целом проект состоит из двух частей электроники с механической структурой робота, а другая - это алгоритм, работающий на ПК, и код, работающий на Arduino.

Шаг 2: ОСНОВНЫЕ КОМПОНЕНТЫ:

Электроника

Arduino UNO (!)

Ультразвуковой датчик

Серводвигатели

Модуль Bluetooth

Кодирование

IDE Arduino

Тератерм

Блокнот 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 из-за того, что он тренировался с нулевого значения, очень раздражала.
  3. Наблюдать за поездом роботов в течение непрерывных 5 часов было очень утомительно.

Шаг 6: МОДУЛЬ A1 и A2:

  • Механическая часть включает в себя плату шасси с четырьмя закрепленными на ней сервоприводами. Для изготовления ножек мы использовали палочки от мороженого.
  • Наша основная задача - отслеживать удаленность бота от исходного положения.
  • Наш первый подход состоял в том, чтобы использовать гироскопический датчик и использовать ускорение бота во время его движения для определения его скорости, а затем и его положения.
  • Проблема - это оказалось слишком сложно реализовать! Альтернатива - мы ограничили движение бота только одним измерением и использовали ультразвуковой датчик для измерения расстояния от стены прямо впереди.
  • Модуль HC05-Bluetooth использовался во время периода обучения для передачи данных о скорости перехода между двумя шагами на ПК, и там данные сохранялись в матрице.

Шаг 7. Ссылка на видео:

Ссылка на видео
Ссылка на видео

Детские шаги:

Тренировочный снимок:

Почти прямо:

Видео танцующего робота:

Финальное видео0:

Рекомендуемые: