Какие методы существуют для программно-управляемого перемещения двуногого робота? - PullRequest
8 голосов
/ 18 июня 2010

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

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

http://simspark.sourceforge.net/wiki/images/b/b4/Models_NaoVirtual.png

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

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

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

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

  • Бег по прямой линии как можно быстрее
  • Движение с определенной скоростью (то есть одна функция, которая управляет быстрой и медленной ходьбой в зависимости от дополнительного входа)
  • Идти назад
  • Включение на месте
  • Бег по простой кривой
  • Шаг в сторону
  • Прыжки как можно выше и приземление без падения
  • Бить по мячу, который стоит перед вашими ногами
  • Выполнение «подсознательных» стабилизирующих движений при воздействии неожиданных сил (удара мячом или другим игроком), в идеале в тандеме с одним из вышеперечисленных

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

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

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

Итак, какие существуют подходы к передвижению / передвижению роботов?


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

Вы можете узнать больше о 3D-симуляции футбольной лиги RoboCup:

Ответы [ 4 ]

4 голосов
/ 25 июня 2010

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

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

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

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

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

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

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

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

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

Чтение предложений

LaValle, Steven Michael (2006). Алгоритмы планирования , издательство Кембриджского университета.

Райберт, Марк (1986). Роботы на ножках, которые уравновешивают . MIT Press.

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

Хиросе, Масато и Такенака, Т (2001). « Разработка гуманоидного робота ASIMO », Honda R & D Technical Review, том 13, №. 1.

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

Wahde, Mattias and Pettersson, Jimmy (2002) " Краткий обзор исследований двуногой робототехники ", Труды 8-й Международной конференции по мехатронике, с. 480-488.

Shan J., Junshi C. и Jiapin C. (2000). « Проектирование центрального генератора шаблонов для человекоподобный робот, идущий на основе многоцелевого GA", In: Proc. IEEE / RSJ Международная конференция по интеллектуальным роботам и системам, с. 1930–1935.

Честнатт Дж., Лау М., Чунг Г., Каффнер Дж., Ходгинс Дж. И Канаде Т. (2005). « Планирование шага для гуманоида Honda ASIMO », Материалы Международной конференции IEEE 2005 года по робототехнике и автоматизации (ICRA 2005), стр. 629-634.

2 голосов
/ 18 июня 2010

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

2 голосов
/ 22 июня 2010

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

  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).МЧР может использовать этот сигнал для своей собственной подготовки ... МЧР хочет максимизировать количество сигналов, которые принимает SMC, и также хочет достичь цели: высокий балл для своей команды и низкий балл для команды противника.,Таким образом, CDM имеет свой собственный процессор, который развивается, чтобы удовлетворить обе эти потребности.Ваша ссылка предоставила трехслойный дизайн, в то время как мой - только двухслойный ... Я думаю, что мой был правильным шагом в направлении трехслойного дизайна.

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

2 голосов
/ 18 июня 2010

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

...