Какие методы существуют для управляемого программным обеспечением передвижения двуногого робота?

Я программирую программный агент для управления плеером робота в моделируемой игре футбола. В конечном счете я надеюсь ввести его в конкуренцию RoboCup.

Среди различных проблем, вовлеченных в создание такого агента, движения, он - тело, один из первых, с которыми я сталкиваюсь. Моделирование, для которого я нацелен, использует корпус робота Nao с 22 стержнями для управления. Шесть на каждом участке, четыре в каждой руке и два в шее:


(источник: sourceforge.net)

Я имею интерес к машинному обучению и полагаю, что должны быть некоторые методы, доступные для управления этим парнем.

В любом моменте времени это известно:

  • Угол всех 22 стержней
  • Эти X, Y, Z вывод акселерометра, расположенного в груди робота
  • Эти X, Y, Z вывод гироскопа, расположенного в груди робота
  • Местоположение определенных ориентиров (углы, цели) через камеру в верхней части робота
  • Вектор для силы относился к нижней части каждой ноги, наряду с вектором, дающим положение силы на подошве ноги

Типы задач, которых я хотел бы достигнуть:

  • Выполнение в прямой линии максимально быстро
  • Перемещаясь на определенной скорости (то есть, одна функция, которая обрабатывает быстро и медленный обход в зависимости от дополнительного входа),
  • Пятясь
  • Превращение на месте
  • Выполнение вдоль простой кривой
  • Продвижение боком
  • Переход максимально высоко и приземление без падения
  • При ударе шара это перед ногами
  • Создание 'подсознательных' перемещений стабилизации при подчинении неожиданным силам (пораженный шаром или другим плеером), идеально в тандеме с одним из вышеупомянутого

Для каждой из этих задач я полагаю, что мог придумать подходящую функцию фитнеса, но не ряд учебных исходных данных с ожидаемыми выводами. Таким образом, любой подход машинного обучения должен был бы предложить обучение без учителя.

Я видел некоторые примеры в проектах с открытым исходным кодом тригонометрических функций (синусоидальные волны), соединенные проводом в угол каждого стержня с отличающимися амплитудами и фазами. Они, кажется, идут в прямых линиях хорошо, но они все выглядят немного неуклюжими. Это не подход, который работал бы на все задачи, которые я упоминаю выше все же.

Некоторые команды, по-видимому, используют инверсную кинематику, хотя я не знаю много об этом.

Так, что подходы там для передвижения/способности передвигаться двуногого робота?


Как в стороне, я записал и опубликовал библиотеку.NET под названием TinMan, который предоставляет основному взаимодействию с сервером моделирования футбола. Это имеет простую модель программирования для датчиков и приводов 22 стержней робота.

Можно читать больше о 3D Моделируемой Лиге Футбола RoboCup:

8
задан Glorfindel 30 July 2019 в 03:10
поделиться

4 ответа

Я работал над проектом, не сильно отличавшимся от этого (создание роботизированного тунца), и одним из методов, которые мы изучали, было использование генетического алгоритма для настройки производительности искусственного центрального генератор паттернов (в нашем случае паттерн представлял собой несколько синусоид, действующих на каждом суставе хвоста). Возможно, стоит попробовать, генетические алгоритмы - еще один из тех инструментов, которые могут быть невероятно мощными, если вы внимательно выбираете фитнес-функцию.

2
ответ дан 5 December 2019 в 17:34
поделиться

Я был обдумывая это уже довольно давно, я понял, что вам нужны как минимум два разумных «агента», чтобы это работало должным образом. Основная идея состоит в том, что здесь у вас есть два типа интеллектуальной деятельности:

  1. Подсознательное управление моторикой (SMC).
  2. Принятие осознанных решений (CDM).

Обучение SMC можно проводить в режиме онлайн ... если вы действительно думаете об этом: определение успеха в управлении моторикой в ​​основном выполняется, когда вы подаете сигнал своему роботу, он оценивает этот сигнал и либо принимает его, либо отклоняет Это. Если ваш робот принимает сигнал, и это приводит к «отказу», то ваш робот переходит в автономный режим и больше не может принимать сигналы. Определить «отказ» и «офлайн» может быть сложно, но я думал, что это будет отказ, если, например, датчик на роботе покажет, что робот неподвижен (лежит на земле).

Таким образом, ваша функция пригодности для SMC может быть чем-то вроде: numAcceptedSignals / numGivenSignals + numFailure

CDM - это еще один агент ИИ, который генерирует сигналы, и функция пригодности для него может быть: ( numSignalsAccepted / numSignalsGenerated) / (numWinGoals / numLossGoals)

Итак, что вы делаете, вы запускаете CDM, и все выходные данные поступают в SMC ... в конце игры вы запускаете свои фитнес-функции.В качестве альтернативы вы можете объединить SMC и CDM в один агент, и вы можете создать составную фитнес-функцию на основе двух других фитнес-функций. Я не знаю, как еще вы могли бы это сделать ...

Наконец, вы должны определить, что представляет собой учебный сеанс: половина игры, полная игра, всего несколько ходов и т. Д. Если игра длится 1 минуту и ​​у вас на поле всего 8 игроков, тогда процесс тренировки может быть ОЧЕНЬ медленным!

Обновление

Вот краткая ссылка на статью, в которой использовалось генетическое программирование для создания «софт-ботов», которые играют в футбол: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1 .1.36.136 & rep = rep1 & type = pdf

Что касается ваших комментариев: я думал, что для подсознательного управления моторикой (SMC) сигналы будут исходить от лица, принимающего сознательные решения (CDM). Таким образом, вы дорабатываете свой агент SMC для правильной обработки команд (сигналов) агента CDM. Вы хотите максимизировать время безотказной работы агента SMC независимо от того, что говорит агент CDM.

Агент SMC получает входные данные, например векторную силу на сустав, и затем пропускает их через свой процессор, чтобы определить, следует ли ему выполнить этот вход или отклонить его. SMC должен выполнять только те входные данные, которые, по его мнению, не могут быть восстановлены, и должен отклонять входные данные, которые, по его мнению, могут привести к «катастрофическому сбою».

Теперь агент SMC имеет выход: принять или отклонить сигнал (1 или 0). CDM может использовать этот сигнал для своего обучения ...CDM хочет максимизировать количество сигналов, которые принимает SMC, а также хочет достичь цели: высокий балл для своей собственной команды и низкий балл для противоположной команды. Таким образом, у CDM есть собственный процессор, который дорабатывается для удовлетворения обеих этих потребностей. В вашем справочнике представлен трехслойный дизайн, в то время как мой - только двухслойный ... Я думаю, что мой был правильным шагом на пути к трехслойному дизайну.

Еще одно замечание: действительно ли падение является «катастрофическим провалом» ? Что, если ваш робот упадет, но CDM заставит его снова встать? Я думаю, что это было бы допустимым поведением, поэтому вам не следует наказывать робота за падение ... возможно, лучше всего наказать его за время, необходимое для выполнения гола (не обязательно футбольного гола). ).

2
ответ дан 5 December 2019 в 17:34
поделиться

Вот отличная статья от 1999 года Питера Нордина и Матса Г. Нордала, в которой описывается эволюционный подход к управлению роботом-гуманоидом, основанный на их опыте создания робота ELVIS:

2
ответ дан 5 December 2019 в 17:34
поделиться

Существует значительный объем исследовательской литературы по планированию движения роботов и перемещению роботов .

Общее управление движением роботов

Для двуногих роботов существует, по крайней мере, два основных подхода к проектированию и управлению роботами (будь то моделирование робота или физически реальный):

  • Точка нулевого момента - динамика- основанный на подходе к устойчивости и управлению движением.
  • Биологически вдохновляемая локомоция - подход к управлению, смоделированный по образцу биологических нейронных сетей у млекопитающих, насекомых и т. Д., Который фокусируется на использовании генераторов центральных паттернов , модифицированных другими программами / контурами управления двигателем для контролировать ходьбу в целом и поддерживать устойчивость.

Управление движением для двуногого футбольного робота

На самом деле существует два аспекта решения проблем управления для вашего симулируемого двуногого робота:

  1. Базовое управление ходьбой и передвижением
  2. Ориентированное на задачи планирование движения

Первая часть просто касается решения основных проблем управления для поддержания устойчивости робота (при условии, что вы используете какую-то физическую модель с гравитацией), ходьбы по прямой, поворота и т. д. Вторая часть сосредоточена на том, чтобы заставить вашего робота выполнять определенные задачи в качестве футболиста, например, бегать к мячу, бить по мячу, блокировать соперника и т.д. первая часть.

Можно предложить множество соответствующих статей и книг, но я перечислил несколько потенциально полезных ниже, которые вы, возможно, захотите включить в любое исследование, которое вы уже провели.

Рекомендации по чтению

ЛаВалль, Стивен Майкл (2006). Алгоритмы планирования , Cambridge University Press.

Райберт, Марк (1986). Роботы с ногами, которые балансируют . MIT Press.

Вукобратович, Миомир и Боровац, Бранислав (2004). « Точка нулевого момента - тридцать пять лет жизни », Международный журнал гуманоидной робототехники, Vol. 1, № 1. С. 157–173.

Хиросе, Масато и Такенака, Т. (2001). « Разработка гуманоидного робота ASIMO », Технический обзор исследований и разработок Honda, том 13, вып. 1.

У, ЦиДи и Лю, Чэнцзю и Чжан, Цзяци и Чен, ЦиЦзюнь (2009). « Исследование управления движением роботов на ногах, вдохновленное биологической концепцией », Science in China Series F: Information Sciences, vol 52, no. 10, стр 1715-1729, Springer.

Вад, Маттиас и Петтерссон, Джимми (2002) « Краткий обзор исследований двуногой робототехники », Труды 8-й Международной конференции Форума мехатроники, стр 480-488.

Шан, Дж., Джунши, К. и Цзяпин, К. (2000). " Дизайн центрального генератора шаблонов для гуманоидный робот, шагающий на основе многоцелевого GA », In: Proc. of the IEEE / RSJ Международная конференция по интеллектуальным роботам и системам, стр. 1930–1935.

Chestnutt, J., Lau, M., Cheung, G., Kuffner, J., Hodgins, J., and Kanade, T. (2005).« Планирование шагов для гуманоида Honda ASIMO », Труды Международной конференции IEEE 2005 г. по робототехнике и автоматизации (ICRA 2005), стр 629-634.

4
ответ дан 5 December 2019 в 17:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: