Ответы, которые я получил на вопрос об обучении робота, следующего за роботом, используя методы обучения с подкреплением , заставили меня задуматься о том, как тренировать робота. Я считаю, что по сути есть два пути -
- Тренируйте физического робота.
- Смоделируйте робота и смоделируйте тренировку.
- Я что-то пропустил?
Подход 2, безусловно, лучший подход. Тем не менее, априорные знания о движении (ответ), определенный сигнал ШИМ (стимул) будет вызывать, когда робот находится в данном состоянии, не требуется. Движение, вызванное сигналом ШИМ, может зависеть от ( 1 ) текущего напряжения аккумулятора, ( 2 ) массы робота и ( 3 ) текущей скорости (я что-то пропустил?).
Как мне моделировать такого робота? И как мне смоделировать это быстро? Если я заменю батарею или добавлю несколько плат и других периферийных устройств и поменяю массу робота, мне придется реконструировать и переобучить робота. Могу ли я сделать это, предоставив некоторые ШИМ со случайным стимулом и измерив ответ?
Добавлено: мой связанный вопрос в dsp.SE
Обновление: предлагаемое редактирование заголовка Иана, заслуживающее упоминания: « Как мне моделировать тренировку робота, чтобы, если его динамика изменилась, ему не требовалось полное переобучение? », Я думаю, что это тоже хороший вопрос, но отличный от один я спрашиваю здесь. Сейчас я в порядке с переподготовкой.
источник
Ответы:
На мой взгляд, здесь есть два основных вопроса. Во-первых, как мне моделировать робота? Это часто делается с формулировкой уравнений движения в пространстве состояний . Точные уравнения зависят от физической конструкции вашего робота. Да, для того, чтобы смоделировать их с входом ШИМ, вам нужно определить передаточную функцию из значений ШИМ, которые вы подаете на выход ваших приводов. Затем вы подключаете эту функцию для управляющего сигнала в вашей модели. Опять же, происхождение этой функции зависит от робота. Текущее напряжение батареи и масса робота, вероятно, были бы полезны, но я не знаю о скорости.
Второй вопрос, учитывая математическую модель моего робота, каков наилучший способ обучить алгоритм обучения подкреплению (RL) для управления им? Короче нет лучшего способа. Обучение непосредственно на роботе, как правило, отнимает много времени, поскольку для выполнения испытаний роботу требуется больше времени. Однако симуляции могут привести к политике, которая менее точна, потому что физика симуляции обязательно упрощается. Другой подход заключается в обучении обучающегося моделированию для получения разумного приближения, а затем передачи полученной политики роботу для дальнейшей доработки. Это конечно терпит неудачу, если модель не достаточно точна. Это также требует дополнительной разработки.
Наконец, вы спрашиваете: «Могу ли я [реконструировать и переобучить робота], предоставив несколько ШИМ со случайным стимулом и измерив ответ?» В случае RL нет никаких оснований полагать, что новая оптимальная политика похожа на предыдущую оптимальную политику, и поэтому нет особых оснований полагать, что несколько случайных элементов управления предоставят достаточную информацию для соответствующего изменения политики. Конечно, переподготовку нужно проводить только в том случае, если изменения, которые вы вносите в своего робота, влияют на формулировку модели пространства состояний и / или модели действия, которую вы используете. Например, если ваша модель действия относится к действиям высокого уровня («идти влево», «идти вправо», «идти вперед»), то для изменения динамики необходимо изменить способ реализации этих движений, но политика все равно должна выполняться. ,
источник
Для моделирования
Denavit–Hartenberg parameters
обычно используется кинематика . курс Введение в робототехнику, предоставленный Стэнфордским университетом, доступен на YouTubeисточник