¿Cuál es un buen enfoque para una marcha cuadrúpeda?

12

Tengo un pequeño cuadrúpedo con tres patas de libertad en las que he estado trabajando: 3DOF Mini cuadrúpedo .

Mi código original era un servocontrolador simple en el arduino, y un código Scala que enviaba comandos servo por cable. Hice toda la lógica de la cinemática inversa y la marcha en Scala, y conseguí que caminara: 3d de la primera marcha cuadrúpeda .

Mi lógica de marcha en Scala era algo ingenua; dependía de que las piernas estuvieran en la posición correcta al principio (un lado extendido hacia adelante y hacia atrás, el otro lado hacia el otro). La lógica era simplemente trasladar los cuatro pies hacia atrás en 1 mm a lo largo de y, y cada vez que un ángulo coxa se volviera excesivamente hacia atrás, detenerse y realizar una pequeña rutina donde ese pie se levanta 10 mm en z, luego se traslada hacia adelante 60 mm a lo largo de y, y se vuelve a bajar. Ingenuo, pero efectivo.

Ahora, he reescrito mi código IK en arduino C, y estoy tratando de decidir cómo avanzar con la dinámica de Gait. He tenido dificultades para encontrar recursos buenos y fáciles de entender sobre los modos de andar. Tengo cierto conocimiento acerca de la diferencia entre los andar dinámicamente estables (como los andares de arrastre) donde el cuerpo es un trípode estable en todo momento y los andar dinámicamente inestables (caminar, trotar), donde dos piernas están levantadas del suelo a la vez y el cuerpo esencialmente cae hacia adelante en la pierna que avanza.

Tenía algunas ideas sobre las máquinas de estado y tratar de calcular si el centro del cuerpo cae dentro de un triángulo formado por los pies restantes para decidir qué pie era seguro levantar, pero no estoy seguro de si vale la pena explorar estas ideas.

Sé que esta es una pregunta demasiado general, pero me interesa ver cómo otras personas han atacado este problema, y ​​todo lo que he podido encontrar son trabajos de investigación.

Ian McMahon
fuente
Estoy impresionado por el trabajo que has hecho en los robots. Necesito su ayuda para buscar algunas soluciones valiosas. He estado buscando soluciones durante los últimos 6 meses para resolver la cinemática del hexápodo sin resultados positivos. Logré encontrar ecuaciones para todos los servo ángulos con el cuerpo paralelo al piso, pero no pude hacerlo con el cuerpo inclinado hacia un lado. Agradezco si podría ayudar :-) Saludos Gary
Bienvenido a R.Se @ user2350 - por favor no haga preguntas suplementarias (no importa cuán relacionadas) como respuestas
Andrew

Respuestas:

5

La marcha que tienes en realidad no es tan mala, aunque los pies no tienen suficiente tracción, por lo que es difícil ver qué tan buena es realmente.

No estoy seguro acerca de su terminología de pasos dinámicamente estables. Como siempre he entendido, la marcha de dos trípodes se conoce como una marcha estáticamente estable, mientras que un buen bípedo que camina como Petman usa una marcha dinámicamente estable. Nunca he oído hablar de una marcha dinámicamente inestable. Eso suena más como borrachera.

Dos patas en el suelo es probablemente el límite inferior para este diseño de robot. En general, es más fácil hacer que esto funcione con robots altos y humanoides, que tardan mucho en caerse. Los robots anchos y planos deben levantar y colocar sus pies con bastante rapidez si no dejan muchos en el piso.

Pero cómo desarrollar una gair para tu robot. En primer lugar, debe decidir qué quiere lograr de la marcha. ¿Busca la velocidad máxima en una superficie plana o la máxima estabilidad en superficies irregulares?

Si su objetivo es la estabilidad, entonces creo que vale la pena que el robot sea consciente de su centro de gravedad en relación con sus pies. Para ayudarlo a saber esto, incluso podría valer la pena agregar algunos sensores de fuerza a sus pies para que pueda calcular esto fácilmente.

Si su objetivo es solo la velocidad máxima, simplemente me concentraría en financiar un patrón de marcha óptimo. Esto es más difícil de hacer. Hay dos buenas formas de abordarlo:

  1. Modelado. Cree un modelo informático completo del robot, que incluya masa, rigidez, par, etc. Utilice este modelo para comprender completamente el comportamiento dinámico.

  2. Prueba y error. Puede hacerlo de la manera más difícil, programando en pasos aleatorios, ajustándolos en una corazonada y midiendo su rendimiento. Intenta hacerlo caminar tanto hacia adelante como en diagonal. O puede usar un algoritmo genético para ayudarlo a buscar automáticamente mejores modos de andar. La dificultad de usar un GA es que necesita tener alguna forma de medir automáticamente el rendimiento de la marcha.

Una tercera forma es convertir al robot en un científico que realice experimentos conscientes sobre sí mismo para validar hipótesis sobre sí mismo y descubra cómo caminar, como el robot estrella de mar de la Universidad de Cornell .

Rocketmagnet
fuente