Andeantrees

A place dedicated to Andean forests

ATTA CEPHALOTES. 3: MODELAMIENTO DE MARCHA TRÍPODE

Orlando Rodríguez

NOTA DEL AUTOR:Para comprender el contenido de este blog recomiendo leer de manera cronológica los  dos blogs anteriores , los cuales hacen referencia a la anatomía y fisiología locomotora de la Hormiga Arriera, Atta cephalotes.

PRESENTACIÓN DEL PROYECTO

Desde 2016 se viene trabajando en un modelo robótico basado en la estructura anatómica y fisiológica de la hormiga arriera,  Atta cephalotes, un hexápodo que reúne una serie de características ideales para convertirlo en modelo biomimético.

Los blogs que se presentarán a continuación resumen el trabajo realizado a lo largo de un año, desde el desarrollo de los modelos matemáticos que deben gobernar el mecanismo de marcha hasta la construcción y puesta en funcionamiento del modelo físico.

En términos generales,  el orden de publicación corresponderá  al orden lógico de desarrollo del proyecto, y comprende los siguientes elementos, en su orden:

  • MODELACIÓN MATEMÁTICA
  • DISEÑO  ROBÓTICO
  • SISTEMA MOTOR
  • SISTEMA DE CONTROL
  • SOFTWARE

El proyecto deberá evolucionar en todos los elementos mencionados arriba a lo largo del tiempo, en busca de  una mejora tecnológica continua. En consecuencia, los blogs deberán sobre escribirse permanentemente con las mejoras correspondientes.

Sobra decir que el proyecto evolucionará en la medida que aportes, opiniones, sugerencias y comentarios sean recibidos por parte de los seguidores de este blog.

SOBRE LOS MODELOS MATEMÁTICOS

La marcha de un hexápodo comprende los siguientes pasos:

  • Definición de ángulo de giro.  En la naturaleza, el ángulo de giro corporal debe estar  definido por la información sensorial global procesada en el cerebro, incluyendo información visual (procesada por los ojos compuestos),  bioquímica (sensores de antenas ) y táctil (sensores corporales).  En el modelo a desarrollar, se pretende procesar información visual, mediante cámara Pixy CMU Cam5 de Charmed Labs,  sensores de ultrasonido y sensores lasser (Lidar).
  • Definición de velocidad de recorrido.    Al igual que el punto anterior, en la naturaleza  depende igualmente de estímulos externos,  incluyendo estímulos de alarma (presencia de predadores o incendios forestales, entre otros), temperatura (actividad metabólica) , cantidad y calidad de estímulos bioquímicos, tipo de sustrato, etc.   Para el modelo se trabajará inicialmente con seguimiento de objetivo en movimiento a velocidad equivalente a la velocidad del objetivo.
  • Definición amplitud de paso.  Para cumplir la velocidad deseada, limitado por las definiciones de construcción del modelo.
  • Definición del  recorrido de patas , particularmente aquellas en  función  de  empuje. Para este paso se propone un modelo basado en Matrices de Transformación Homogénea, el cual toma como información de entrada el ángulo de rotación y la distancia de translación deseada. La presentación del  modelo correspondiente y sus alcances y limitaciones será el objetivo del presente blog y del siguiente.
  • Definición posiciones espaciales de los segmentos articulados  a inicio y final de recorrido. Lo cual a su vez viene definido por:  a) La posición angular de los elementos que gobiernan los movimientos articulares (servomotores como una primera aproximación), tres por pata, tres grados de libertad.  b) La longitud  de Fémur y Tibia (en un primer desarrollo no se incluirán en la construcción  los segmentos  Tarsales). c) La geometría Torax Coxa, que se explicará en el blog de construcción del modelo.  Para este paso se propone un modelo basado en Cinemática Inversa,  el cual será expuesto en blogs futuros.
  • Ejecución de movimientos. Que en el caso del modelo será gobernado por Hardware (Sistema embebido y  electrónica de control de motores) y Software de control. Igualmente, este punto será descrito en blogs futuros.

Los puntos 4 y 5 se han resaltado en negrilla pues son los dos puntos que involucran modelaJe matemático. A continuación se discute el modelo que define los recorridos de las patas, basado en Matrices de Transformación Homogénea.

MODELO PARA DEFINICIÓN DE  RECORRIDOS DE EMPUJE EN MARCHA TRÍPODE

Como se ha mencionado en blogs anteriores, la marcha trípode se caracteriza por una alternancia de función (empuje – ataque) entre el  triángulo formado por la pata Anterior derecha (Ad), posterior derecha (Pd) y central izquierda (Ci),   y el triángulo formado por la pata Anterior izquierda, (Ai), Posterior izquierda (Pi) y central derecha (Cd).

Si proyectamos la superficie corporal de la hormiga sobre un plano cartesiano con su centro corporal en el punto (0,0) , ver figura 1, y consideramos el plano A (plano azul, como el plano de la posición inicial de marcha, con coordenadas (X0,Y0)  correspondientes al centro corporal del hexápodo, despues de un tiempo t la marcha generará un segundo plano B (plano rojo),  de manera que las coordenadas del centro corporal  corresponderán a las coordenadas (X1,Y1)), con una translación del origen (0,0) (vector O(A_B)), y una rotación del plano cartesiano un ángulo PHI (si hay un giro involucrado), o sin rotación (PHI =0) (si se trata de marcha frontal). Puesto que en estas consideraciones básicas lo que varía es la posición corporal, el triángulo de empuje (en este caso el triángulo Ad-Ci-Pd ) permanecerá invariante,  esto es, fijo al suelo ejecutando la función de empuje, de manera que los puntos de inicio de empuje corresponderán a las coordenadas de los puntos de apoyo sobre el plano A , vector PA en la figura 20, y los puntos de apoyo de fin de empuje corresponderán a las proyecciones de los mismos puntos sobre el plano B ,Vector PB misma figura.

La figura 2.  ilustra un movimiento de avance con giro en sentido CW con participación de empuje del triángulo AdPdCi, lo cual implica recorridos relativos (cuerpo estático, patas en movimiento) de las patas derechas Ad y Pd hacia atrás y hacia el eje corporal, mientras que la pata izquierda Ci ejerce un recorrido relativo hacia atrás y alejandose del eje corporal.

Los valores de los vectores PB de cada pata pueden calcularse mediante las Matrices de Transformación Homogenea correspondientes, valores que dependerán de:

 

  • Angulo de giro deseado
  • Recorrido deseado
  • Posiciones de inicio de empuje (vectores PA)

Fig. 2. Modelamiento marcha tripode, subciclo de empuje triángulo Ad-Pd-Ci. Para simplificación de la gráfica no se dibula el triángulo alterno AI-PI-CD, el cual está en ataque en el mismo subciclo.

De la gráfica 2, se cumple que

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

El desarrollo matemático anterior, en referencia al hexápodo, parte de un principio de rotación y translación simultanea del cuerpo mientras se mantiene el triángulo de apoyo estático (fijo respecto a la superficie de apoyo).

Es possible sin embargo, visualizar los diferenciales de recorridos (en magnitud y dirección) de las patas que conforman el triángulo de apoyo durante la fase de empuje, bajo un marco de referencia contrario ,   en el cual el cuerpo permanence inmóvil y son los puntos de apoyo de las patas (trayectoria de empuje) las que se mueven.

La figura 3 ilustra las trayectorias aparentes de los puntos de apoyo por pata (efectores) como flechas rojas apuntando en la dirección de movimiento desde el punto inicial al final para lograr el ángulo y translación especificadas el las matrices de transformación lineal. Figura válida para giro clock wise.

Fig. 3.   Recorrido aparente de las patas del triángulo de empuje para un giro Clock Wise. La figura contempla una trayectoria lineal desde el punto inicial al punto final, lo cual es una simplificación matemática, Ver texto a continuación.

Ahora bién, estas trayectorias lneales son solo una solución simplificada de la dinámica real de marcha , dado que es el resultado de un único cálculo de matrices de transformación.

Para obtener una mejor aproximación a la trayectoria real es necesario subdividir la trayectoria en n segmentos y para cada uno calcular la matriz de transformación correspondiente.

La figura 4 ilustra las nuevas trayectorias con calculos segmentados.

Fig. 4.   Recorrido aparente de las patas del triángulo de empuje para un giro Clock Wise obtenida subdividiendo la translación y la rotación en n segmentos y calculando para cada uno la posición final

La decision de construccion de software mediante planeación de ruta simplificada lineal o segmentada no lineal dependerá de las limitaciones de capacidad de proceso del o los controladores encargados de los calculos matemáticos.

Se debe realizar un análisis de rendimiento para varias plataformas (Arduino, Raspbery etc), y en caso de ninguna proporcionar una velocidad de cálculo suficiente para lograrse un movimiento de acuerdo a las espectativas de velocidad de Atta, se deberá optar por procesamiento distribuido por pata.

 

 

 

————————————————————————————————-

/*

MATRICES DE TRASFORMACION HOMOGENEA APLICADAS A DEFINICION DE PUNTO FINAL DE EMPUJE

manipulando la relación si PrA = f(T_BrA , PrB) => PrB = f(T_BrA’ , PrA)

*/

#include <MatrixMath.h>

 

// DIMENSIONES MATRICES INVOLUCRADAS

#define M (4)         // # Filas matriz A

#define N (4)         // # Filas vector B

#define O (1)         // # Columnas vector C

#define P (3)         // # Filas matriz D

#define Q (3)         // # Filas vector E

#define R (1)         // # Columnas vector F

void setup()

{

Serial.begin(9600);

// 1. EJEMPLO DE PARAMETRIZACION

float grados     = -30; // Angulo de rotación (negativo = clockwise); Lo debe proporcionar Pixy

float O_magnitud = 40; // Magnitud escalar de translacion en mm. Lo debe limitar el programa por parámetros de modelaje

float X_AD_B = O_magnitud*(sin(-grados*PI/180)); // Coordenada X de O en B respecto a A

float Y_AD_B = O_magnitud*(cos( grados*PI/180)); // Coordenada Y de O en B respecto a A

float AD[][1] = {{120},{110},{0},{1}};// Coordenadas {X},{Y},{0},{1} inicio empuje patas AD

float PD[][1] = {{120},{-70},{0},{1}};// Coordenadas {X},{Y},{0},{1} inicio empuje patas PD

float CI[][1] = {{-120},{20},{0},{1}};// Coordenadas {X},{Y},{0},{1} inicio empuje patas CI

// 2. RESOLUCION FUNCION TRANSFORMACIONES HOMOGENEAS

float D[][3] = {{cos(grados*PI/180),sin(grados*PI/180),0},{-sin(grados*PI/180),cos(grados*PI/180),0}, {0,0,1}}; // ROTACION GRAL

float E[][1] = {{X_AD_B},{Y_AD_B},{0}}; //TRANSLACION GRAL

float F[][1] = {{0},{0},{0}};

Matrix.Multiply((float*)D, (float*)E, P, Q, R, (float*)F);

float A[][4] = {{cos(grados*PI/180),sin(grados*PI/180),0, -F[0][0]},{-sin(grados*PI/180),cos(grados*PI/180),0, -F[1][0]}, {0,0,1,-F[2][0]}, {0,0,0,1}};

float C[][1] = {{0},{0},{0},{0}};

Matrix.Multiply((float*)A, (float*)AD, M, N, O, (float*)C); // COORDENADAS FIN EMPUJE ANTERIOR DERECHA

Serial.println(“\nVector Posicion final AD”);

Matrix.Print((float*)C, M, O, “C”);

Matrix.Multiply((float*)A, (float*)PD, M, N, O, (float*)C); // COORDENADAS FIN EMPUJE POSTERIOR DERECHA

Serial.println(“\nVector Posicion final PD”);

Matrix.Print((float*)C, M, O, “C”);

Matrix.Multiply((float*)A, (float*)CI, M, N, O, (float*)C); // COORDENADAS FIN EMPUJE CENTRAL IZQUIERDA

Serial.println(“\nVector Posicion final CI”);

Matrix.Print((float*)C, M, O, “C”);

}

void loop()

{

}

———————————————————————————————-

Puesto que C++ no manipula de manera nativa operaciones entre matrices, , es necesario incluir una librería del tipo MatrixMath.h, disponible en github: https://github.com/codebendercc/MatrixMath

Para el modelo físico de ATTA, por tratarse de un hexápodo autónomo, el ángulo q lo deberá proporcionar el sensor de posición del objetivo a seguir , sea un sensor de ultrasonido, una cámara dotada de reconocimiento de imágen (Pixy cam5 o similar) o un sensor Lasser (Lidar). Dependiendo del valor de q giro podrá alcanzarse en uno o varios sub-ciclos de empuje, o podrá ser realizado mediante giro tetrápodo (ver mas adelante).

El vector de recorrido  

 

estará limitado a los parámetros de construcción, esto es, dependerá de los valores máximos de recorido de las patas tanto en giros en ángulo como en giros frontales.

Los vectores

 

 

por pata son parametrizables, correspondiendo a las posiciones de inicio de empuje por pata.

 En cuanto a los recorridos de las patas en estado de ataque, el punto inicial de ataque corresponde al punto final de empuje calculado anteriormente, y el punto de fin de ataque el parametrizado para el hexápodo. Las trayectorias parabólicas se tratarán posteriormente.

CALCULOS GIROS TETRÁPODOS

Videos tomados por el autor han evidenciado en Atta un mecanismo de giro tetrapodo, en el cual las dos patas delanteras se levantan del piso durante un lapso de tiempo en el cual las cuatro patas restantes combinan movimientos simultaneos de paneo en un mismo sentido (sentido de las manecillas del reloj para giros a izquierda y viceversa), resultando en un cambio significativo de orientación del eje corporal.

Este comportamiento se ha evidenciado como un caso particular a finalización de operaciones rutinarias de acicalamiento de las antenas, durante los cuales  las hormigas permanecen estáticas levantando las patas delanteras para dicha labor de limpieza. Finalizada esta labor los individos reanudan la marcha con o sin el mecanismo de giro descrito.

Aunque no se ha evidenciado dicho comportamiento de manera independiente a las operaciones de acicalamiento, puede resultar útil involucrarlo en el modelo robótico para lograr giros pronunciados rápidos sin avance , los cuales no se pueden lograr con el mecanismo de marcha trípode descrito anteriormente.

Para el modelamiento del giro tetrapodo la ecuación (4) es igualmente válida, salvo que solo hay giro  (valor  O(AB)= 0,0,0 ).

 

 

August 14, 2017 - Posted by | Biomimesis

Sorry, the comment form is closed at this time.