Cómo diseñar un algoritmo de movimiento para un robot hexápodo

En primer lugar, te envidio los servos Dynamixel 🙂 Me encantaría tenerlos en mis manos y construir mi hexápodo utilizando esos en lugar de los chinos baratos 🙂

Al diseñar un algoritmo de movimiento, no debe pensar en los servos o la estructura mecánica de sus robots. Debes pensar que hay cuerpo y luego hay 6 puntos finales de las piernas. Su algoritmo de movimiento funciona en estos 7 puntos abstractos (el cuerpo tiene orientación, pero los otros son solo puntos 3D). Luego tienes IK (cinemática inversa) encima de eso que se ajusta a la pierna entre el cuerpo y el punto final de una pierna. IK calcula los ángulos para cada servo. Divides las piernas en dos grupos 1,3,5 y 2,4,6. Y mueves estos grupos uno tras otro. Hay dos formas de mover toda la estructura:
* Impulsado por el cuerpo: simplemente mueve el cuerpo según la entrada (¿joystick?) Y simplemente mueve grupos de piernas hacia arriba y hacia abajo y los reubica según la posición (proyectada) del cuerpo.
* Basado en pierna: mueve grupos de piernas según la entrada y vuelve a colocar el cuerpo según la posición promedio entre dos grupos de piernas.

Este es un algoritmo personalizado escrito por el cuerpo en acción. Tenga en cuenta que el primer eje en una pata no es vertical, se encuentra en un ángulo de 45 grados. Esto hace que el posicionamiento de las piernas parezca menos mecánico. Como mencioné, el algoritmo de movimiento no se preocupa por eso: IK se encarga de calcular los ángulos correctos para cada servo.

Cuando caminamos, un pie permanece en el suelo mientras el otro se mueve, luego intercambian roles. Parece fácil, pero si te detienes con un pie en el aire, no eres muy estable.

Lo bueno de los hexapodos es que los trípodes son muy estables. Y un hexápodo es … dos trípodes. Uno proporciona estabilidad mientras que el otro se mueve. Entonces … mueva las piernas de tres en tres, 1,3,5 y luego 2,4,6. Por supuesto, hay pasos más rápidos y menos estables (trotar, galopar), pero eso lo pondrá en movimiento.

Si fuera mío … lo pondría frente a mí y obtendría un conjunto de varios movimientos para cualquier pierna que se descubriera. Escribiría funciones para realizar cada uno de estos diversos movimientos, comenzando con movimientos de un solo servo y terminando con movimientos completos de tres servos. A partir de ahí, sería simple construir varios pasos combinando las funciones de una sola pierna que acabo de escribir. Si sueña con una nueva puerta que requiera diferentes movimientos de pierna que aún no haya programado, agregue esos nuevos movimientos de pierna.