Simulador de aprendizaje cuadrúpedo

10

Actualmente estoy construyendo un robot con cuatro patas ( cuadrúpedo ), 3 DOF (grados de libertad) y aquí se ha sugerido que use un simulador para aprender en una computadora y luego cargue los algoritmos en el robot. Estoy usando un Arduino Uno para el robot y ¿qué software podría usar para simular el aprendizaje y luego poder cargarlo en la placa Arduino?

Jordán
fuente
¿Utilizará un robot existente o lo diseñará y lo construirá usted mismo?
DaemonMaker
1
Ya he construido el robot desde cero :)
Jordan

Respuestas:

3

Gazebo es una buena herramienta para lo que quieres hacer. Como está utilizando un robot personalizado, necesitará construir un modelo para que lo use el simulador. Se las han arreglado para que hacerlo sea bastante fácil, pero para un quadraped, me imagino que tomará un poco de tiempo.

Gazebo también es bueno porque funciona bien con ROS, lo que significa que si construyes puedes construir un programa para controlar tu robot y enviar los comandos al robot simulado a través de la integración o al robot real a través de rosserial . Solo tenga en cuenta que si no ha utilizado ninguna de estas herramientas, llevará tiempo desarrollar su solución.

DaemonMaker
fuente
1
He echado un vistazo a algunos de los pasos para instalar esto y parece un proceso largo y no estoy muy familiarizado con la mayoría y estoy usando una Mac, que no parece tener mucho apoyo. +1 para una solución plausible, pero puede que tenga que seguir buscando
Jordan
Una alternativa sería construir su propio simulador con algo como OpenGL. La complejidad de hacerlo dependerá de la cinemática de su robot y de si simulará la dinámica.
DaemonMaker
2

Esto no cubriría la simulación del robot, pero la Biblioteca de Aprendizaje Automático de OpenCV podría ser útil para evaluar algoritmos de aprendizaje y parámetros de entrenamiento para descargar al robot.

Incluye una implementación de red neuronal, que puede ser de particular interés para este problema.

OpenCv también es una biblioteca estándar, y probablemente se integraría bien con algún otro simulador para el robot.

Crustáceo Salvaje
fuente
¿Funcionaría realmente esto? ¿Puede la biblioteca OpenCV ML encajar en un Arduino?
DaemonMaker
1
Bueno, no, pero podría usarlo para entrenar los parámetros para un algoritmo de aprendizaje en un Arduino.
WildCrustacean
Esto es complicado para mí, solo estoy en la escuela secundaria y esperaba una alternativa mucho más fácil y amigable. Tal vez un programa que me permita diseñar un robot virtual similar al mío y luego muestre las posiciones para cada tramo que puedo copiar y pegar (esencialmente) en el código de mi proyecto
Jordania
En ese caso, quizás eche un vistazo a esta pregunta también: robotics.stackexchange.com/questions/697/… Sin embargo, la robótica es complicada y la robótica con aprendizaje automático no es una excepción. Si usted es serio acerca de la robótica en el futuro, no sería una mala idea aprender algo como OpenCV
WildCrustacean
1
Además, no pienses que algo es demasiado difícil de complicar solo porque estás en la escuela secundaria. Hay muchos lugares (incluido este sitio) donde puede encontrar ayuda si se atasca.
WildCrustacean
2

El simulador V-REP de código abierto recientemente puede satisfacer sus necesidades. Lo encontré más accesible que Gazebo, y puede ejecutarse en Windows, OSX y Linux. Sus tutoriales son bastante sencillos. Hay muchas formas diferentes de interactuar con él mediante programación (incluso con ROS). Parece que incluso hay un tutorial para hacer un hexápodo , que probablemente podría usar como punto de partida si aún no tienen un ejemplo de cuadrúpedo disponible. Desafortunadamente, creo que el simulador está vinculado directamente con la representación de la interfaz de usuario, lo que creo que no es necesariamente el caso con Gazebo.

Por lo tanto, su programa tendría que usar una de las muchas formas de interactuar con V-REP, y luego alimentar el rendimiento de una marcha particular, determinada por algún sensor en V-REP, en un algoritmo de aprendizaje automático (quizás algo de OpenCV como @WildCrustacean mencionado). Luego, tendría que encontrar una traducción de la descripción de la marcha utilizada por el robot simulado a algo utilizado para controlar los motores reales de su Arduino.

Por otro lado, podría hacer su propio simulador utilizando un motor de física existente, renderizándolo con una biblioteca de gráficos. Bullet y OGRE, respectivamente, podrían usarse para este propósito, si le gusta C ++. Hay muchos otros para otros lenguajes de programación.

También analizaría cómo los investigadores que trabajan en la generación de la marcha hacen sus simulaciones. Puede haber un proyecto de código abierto existente dedicado a él.

Robz
fuente