Симулятор обучения четверок

10

В настоящее время я строю робота с четырьмя ногами ( четверной ), 3 степенями свободы (степени свободы), и здесь было предложено использовать симулятор для обучения на компьютере, а затем загружать алгоритмы в робота. Я использую Arduino Uno для робота и какое программное обеспечение я могу использовать для имитации обучения, а затем смогу загрузить его на плату Arduino?

Иордания
источник
Будете ли вы использовать существующего робота или разрабатывать его и создавать его самостоятельно?
DaemonMaker
1
Я построил робота уже с нуля :)
Джордан

Ответы:

3

Беседка - хороший инструмент для того, что вы хотите сделать. Поскольку вы используете собственного робота, вам нужно будет создать модель для симулятора. Им удалось сделать это довольно легко, но для четвероногих я могу себе представить, что это займет немного времени.

Беседка также хороша, потому что она хорошо работает с ROS, что означает, что если вы строите, вы можете создать программу для управления вашим роботом и посылать команды моделируемому роботу через интеграцию или реальному роботу через rosserial . Просто имейте в виду, что если вы не использовали ни один из этих инструментов, то для разработки вашего решения потребуется некоторое время.

DaemonMaker
источник
1
Я посмотрел на некоторые шаги, чтобы установить это, и это выглядит как длительный процесс, и я очень незнаком с большинством из них, и я использую Mac, который, кажется, не имеет большой поддержки. +1 для правдоподобного решения, но мне, возможно, придется продолжать искать
Джордан
Альтернативой может стать создание собственного симулятора с чем-то вроде OpenGL. Сложность этого зависит от кинематики вашего робота и от того, будете ли вы имитировать динамику.
DaemonMaker
2

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

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

OpenCv также является стандартной библиотекой и, вероятно, будет хорошо интегрироваться с другим симулятором для самого робота.

WildCrustacean
источник
Будет ли это действительно работать? Может ли библиотека OpenCV ML поместиться на Arduino?
DaemonMaker
1
Нет, но вы можете использовать его для обучения параметров алгоритма обучения на Arduino.
WildCrustacean
Это очень сложно для меня, я учусь только в старшей школе, и я прыгал в поисках более простой и дружелюбной альтернативы. Возможно, программа, которая позволяет мне создавать виртуального робота, похожего на мой, и затем отображать позиции для каждой ноги, которые я могу просто скопировать и вставить (по существу) в код моего проекта
Джордан
В этом случае, возможно, взгляните и на этот вопрос: robotics.stackexchange.com/questions/697/… Робототехника сложна, и робототехника с машинным обучением не является исключением. Если вы серьезно относитесь к робототехнике в будущем, было бы неплохо изучить что-то вроде OpenCV
WildCrustacean
1
Кроме того, не думайте, что что-то слишком сложно усложнить только потому, что вы в старшей школе. Есть много мест (включая этот сайт), где вы можете найти помощь, если застряли.
WildCrustacean
2

Недавно созданный симулятор V-REP с открытым исходным кодом может удовлетворить ваши потребности. Я нашел его более доступным, чем Gazebo, и он может работать на Windows, OSX и Linux. Их уроки довольно просты. Существует множество различных способов программного взаимодействия с ним (в том числе с ROS). Похоже, что есть даже учебник по созданию шестнадцатеричного кода , который вы, вероятно, могли бы использовать в качестве отправной точки, если у них еще нет четвероногого примера. К сожалению, я считаю, что симулятор напрямую связан с рендерингом пользовательского интерфейса, что, на мой взгляд, не обязательно относится к Gazebo.

Таким образом, ваша программа должна будет использовать один из многих способов взаимодействия с V-REP, а затем передать производительность определенной походки, определенной по некоторому датчику в V-REP, в алгоритм машинного обучения (возможно, что-то из OpenCV, как @WildCrustacean упоминается). Затем вам придется придумать перевод из описания походки, используемого симулированным роботом, в нечто, используемое для управления реальными моторами на вашем Arduino.

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

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

Robz
источник