Обучите гуманоида Уокера

В этом примере показано, как смоделировать гуманоидного робота с помощью Simscape Multibody™ и обучить его с помощью любого генетический алгоритм (который требует, что лицензия Global Optimization Toolbox) или обучение с подкреплением (который требует Deep Learning Toolbox™ и лицензий Reinforcement Learning Toolbox™).

Модель гуманоида Уокера

Модель гуманоида Уокера основана на Импорте в качестве примера Гуманоидная Модель URDF. Каждый участок привел в движение крутящим моментом шарнирные соединения в лобном бедре, колене и лодыжке. Каждая рука имеет два пассивных шарнирных соединения в лобном и стреловидном плече. Силы контакта, положение и ориентация туловища, объединенных состояний и прямого положения все обнаруживаются системой.

Свяжитесь с моделированием

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

Объединенный контроллер

Основанный на жесткости контроллер обратной связи используется, чтобы управлять каждым соединением [1]. Соединения обработаны как системы первого порядка со связанной жесткостью (K) и ослабляющий (B), который может собираться сделать объединенное поведение критически ослабленным. Следовательно, крутящий момент, примененный, когда заданное значение θ0 отличается от текущего объединенного положения θ :

T=Bθ+K(θ0-θ).

Можно варьироваться пружинное заданное значение θ0 выявлять ответную реакцию, чтобы переместить соединение. Это может быть реализовано в simulink как:

Обучение гуманоида Уокера

Можно использовать различные методы, чтобы обучить гуманоида идти.

Целевая функция обхода

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

  1. Передайте скорость (vy ) вознагражден.

  2. Не падение вознаграждено.

  3. Потребление энергии (p) оштрафован.

  4. Вертикальное смещение (Δz) оштрафован.

  5. Боковое смещение (Δx) оштрафован.

Общее вознаграждение в каждый такт:

rt=w1vy+w2ts-w3p-w4Δz-w5Δx

где w1,...,5 веса, которые представляют относительную важность каждого термина в премиальной функции. Следовательно, общее вознаграждение (R) для обхода испытание:

R=t=0Trt

где T время, в которое завершает работу симуляция. Премиальные веса могут быть изменены в sm_humanoid_walker_rl_parameters скрипт. Симуляция завершает работу, когда время симуляции достигнуто или падения робота. Падение задано как:

  1. Робот, опускающийся ниже 0,5 м.

  2. Робот, перемещающийся со стороны больше чем на 1 м.

  3. Туловище робота, вращающееся больше чем 30 градусами.

Обучение с генетическим алгоритмом

Чтобы оптимизировать обход, можно использовать генетический алгоритм. Для получения дополнительной информации смотрите ga (Global Optimization Toolbox), который решает задачи оптимизации на основе процесса естественного отбора, который подражает биологической эволюции. Генетические алгоритмы особенно подходят для проблем, когда целевая функция является прерывистой, недифференцируемой, стохастической, или очень нелинейной.

Угловой спрос на каждое соединение установлен в повторяющийся шаблон, который походит на центральные генераторы шаблона, замеченные по своей природе [2]. Это - контроллер разомкнутого цикла. Периодичность этих сигналов является периодом походки, который является временем, потраченным, чтобы завершить один полный шаг. В каждый период походки сигнал переключается между различными угловыми значениями спроса. Идеально, гуманоидный робот идет симметрично. Следовательно, шаблон управления для каждого соединения в правой ноге передается к соответствующему соединению в левой ноге с задержкой половины периода походки. Генератор шаблона стремится определять оптимальный шаблон управления для каждого соединения и максимизировать целевую функцию обхода.

Чтобы обучить использование генетического алгоритма, откройте sm_humanoid_walker_ga_train скрипт. По умолчанию этот пример использует предварительно обученного гуманоида Уокера. Чтобы обучить гуманоида Уокера, установите trainWalker к true.

Обучение с обучением с подкреплением

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

Чтобы обучить обучение с подкреплением использования, откройте sm_humanoid_walker_rl_train скрипт. По умолчанию этот пример использует предварительно обученного гуманоида Уокера. Чтобы обучить гуманоида Уокера, установите trainWalker к true.

Ссылки

[1] Kalveram, Карл Т., Томас Шиноер, Штеффен Байрле, Штефани Рихтер и Петра Янсен-Османн. “Распараллеливая Нейронный Feedforward в Механический Spring: Как Физика Использования Биологии в Управлении Конечностью”. Биологическая Кибернетика 92, № 4 (апрель 2005): 229–40. https://doi.org/10.1007/s00422-005-0542-6.

[2] Цзян Шань, Ченг Джунши и Чен Джиэпин. “Проект Центрального Генератора Шаблона для Гуманоидного Робота, Идущего На основе Многоцелевого GA”. В Продолжениях. 2000 Международных конференций IEEE/RSJ по вопросам Интеллектуальных Роботов и Систем (IROS 2000) (CAT. № 00CH37113), 3:1930–35. Такамацу, Япония: IEEE, 2000. https://doi.org/10.1109/IROS.2000.895253.

Похожие темы