Этот пример показов, как смоделировать гуманоидный робота с помощью Simscape Multibody™ и обучить его с помощью генетического алгоритма (который требует лицензии Global Optimization Toolbox) или обучения с подкреплением (который требует лицензий Deep Learning Toolbox™ и Reinforcement Learning Toolbox™).
Этот пример основан на модели человекоподобного робота. Можно открыть модель, введя sm_import_humanoid_urdf
в командной строке MATLAB ®. Каждая ножка робота имеет вращающие шарниры в переднем бедре, колене и лодыжке. Каждая рука имеет два пассивных шарнира вращения в лобном и сагиттальном плече. Во время симуляции модель определяет силы контакта, положение и ориентацию туловища, состояния соединений и прямое положение. Рисунок показывает модель Simscape Multibody на разных уровнях .
Модель использует блоки Spatial Силы контакта (Simscape Multibody), чтобы симулировать контакт между ногами и землей. Чтобы упростить контакт и ускорить симуляцию, красные сферы используются, чтобы представлять днища роботизированных стоп. Для получения дополнительной информации смотрите Использование контактных прокси для моделирования контакта (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] Калверам, Карл Т., Томас Схинауэр, Штеффен Бейрле, Стефани Рихтер и Петра Янсен-Османн. Threading Neural Feedforward to a Mechanical Spring: How Biology Usits Physics in Limb Control (неопр.) (недоступная ссылка). Биологическая кибернетика 92, № 4 (апрель 2005): 229-40. https://doi.org/10.1007/s00422-005-0542-6.
[2] Цзян Шань, Чэн Цзюньши и Чэнь Цзяпин. Проект центрального генератора шаблонов для человекоподобного робота на основе многообъектного GA. В производстве. 2000 Международная конференция IEEE/RSJ по интеллектуальным роботам и системам (IROS 2000) (кат. № 00CH37113), 3: 1930–35. Takamatsu, Япония: IEEE, 2000. https://doi.org/10.1109/IROS.2000.895253.
Point (Simscape Multibody) | Point Cloud (Simscape Multibody) | Spatial Contact Force (Simscape Multibody)