В этом примере показано, как смоделировать гуманоидного робота с помощью Simscape Multibody™ и обучить его с помощью любого генетический алгоритм (который требует, что лицензия Global Optimization Toolbox) или обучение с подкреплением (который требует Deep Learning Toolbox™ и лицензий Reinforcement Learning Toolbox™).
Этот пример основан на гуманоидной модели робота. Можно открыть модель путем ввода sm_import_humanoid_urdf
в командной строке MATLAB®. Каждый участок робота привел в движение крутящим моментом шарнирные соединения в лобном бедре, колене и лодыжке. Каждая рука имеет два пассивных шарнирных соединения в лобном и стреловидном плече. Во время симуляции модель обнаруживает силы контакта, положение и ориентацию туловища, объединенных состояний и прямого положения. Рисунок показывает модель Simscape Multibody на разных уровнях.
Модель использует Пространственные блоки Силы контакта, чтобы симулировать контакт между ногами и землей. Чтобы упростить контакт и ускорить симуляцию, красные сферы используются, чтобы представлять нижние части автоматизированных ног. Для получения дополнительной информации смотрите Прокси Контакта Использования Симулировать Контакт.
Модель использует основанный на жесткости контроллер обратной связи, чтобы управлять каждым соединением [1]. Смоделируйте соединения как системы первого порядка со связанной жесткостью (K) и ослабляющий (B), который можно установить, чтобы сделать объединенное поведение критически ослабленным. Крутящий момент применяется когда заданное значение отличается от текущего объединенного положения :
.
Можно варьироваться пружинное заданное значение выявлять ответную реакцию, чтобы переместить соединение. Рисунок показывает модель Simulink контроллера.
Цель этого примера состоит в том, чтобы обучить гуманоидного робота идти, и можно использовать различные методы, чтобы обучить робота. Пример показывает методы обучения с подкреплением и генетический алгоритм.
Этот пример использует целевую функцию, чтобы оценить различные стили обхода. Модель дает вознаграждение () в каждый такт:
Здесь:
— Передайте (вознагражденную) скорость
— Потребление энергии (оштрафовано)
— Вертикальное смещение (оштрафовано)
— Боковое смещение (оштрафовано)
: Веса, которые представляют относительную важность каждого термина в премиальной функции
Кроме того, не падение вознаграждено.
Следовательно, общее вознаграждение () для обхода испытание:
Здесь время, в которое завершает работу симуляция. Можно изменить премиальные веса в sm_humanoid_walker_rl_parameters
скрипт. Симуляция завершает работу, когда время симуляции достигнуто или падения робота. Падение задано как:
Робот опускается ниже 0,5 м.
Робот перемещается со стороны больше чем на 1 м.
Туловище робота вращается больше чем 30 градусами.
Чтобы оптимизировать обход робота, можно использовать генетический алгоритм. Генетический алгоритм решает задачи оптимизации на основе процесса естественного отбора, который подражает биологической эволюции. Генетические алгоритмы особенно подходят для проблем, когда целевая функция является прерывистой, недифференцируемой, стохастической, или очень нелинейной. Для получения дополнительной информации смотрите ga
(Global Optimization Toolbox).
Модель устанавливает угловой спрос на каждое соединение к повторяющемуся шаблону, который походит на центральные генераторы шаблона, замеченные по своей природе [2]. Повторяющийся шаблон дает к контроллеру разомкнутого контура. Периодичность сигналов является периодом походки, который является временем, потраченным, чтобы завершить один полный шаг. В каждый период походки сигнал переключается между различными угловыми значениями спроса. Идеально, гуманоидный робот идет симметрично, и шаблон управления для каждого соединения в правой ноге передается к соответствующему соединению в левой ноге с задержкой половины периода походки. Генератор шаблона стремится определять шаблон оптимального управления для каждого соединения и максимизировать целевую функцию обхода.
Чтобы обучить робота с генетическим алгоритмом, откройте sm_humanoid_walker_ga_train
скрипт. По умолчанию этот пример использует предварительно обученного гуманоида Уокера. Чтобы обучить гуманоида Уокера, установите trainWalker
к true
.
В качестве альтернативы можно также обучить робота с помощью агента обучения с подкреплением глубоко детерминированного градиента политики (DDPG). Агент DDPG является агентом обучения с подкреплением критика агента, который вычисляет оптимальную политику, которая максимизирует долгосрочное вознаграждение. Агенты DDPG могут использоваться в системах с непрерывными действиями и состояниями. Для получения дополнительной информации об агентах DDPG, смотрите rlDDPGAgent
(Reinforcement Learning Toolbox).
Чтобы обучить робота с обучением с подкреплением, откройте 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.
Point | Point Cloud | Spatial Contact Force