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?
10
Respuestas:
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.
fuente
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.
fuente
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.
fuente