1. Introducción
En la actualidad, la mayoría de los robots están diseñados para desplazarse en superficies lisas, niveladas o ligeramente inclinadas. Los ambientes externos con superficies irregulares e inestables como arena, nieve, lodo o grava, y los interiores como escaleras, puertas y esquinas, se consideran ambientes difíciles para el desplazamiento de robots móviles [17]. En la naturaleza existe una gran diversidad de animales de los cuales se puede imitar su locomoción para diseñar robots capaces de sortear este tipo de terrenos [10], por ejemplo, los animales hexápodos, cuya estructura y modelo de locomoción les permite evitar pequeños obstáculos y caminar por terrenos inclinados, lo que ha inspirado la creación de robots que imiten su locomoción. La habilidad de un robot hexápodo para eludir obstáculos, caminar en distintos tipos de terreno y su eficiencia energética depende en gran medida de la relación entre el largo de sus patas y su peso.
En el movimiento y desplazamiento de un robot hexápodo se tienen que controlar y coordinar al mismo tiempo sus seis patas, cada una de las cuales se representa normalmente utilizando la estructura de una cadena cinemática de tres eslabones con tres grados de libertad [3], por lo que el control de un robot hexápodo es un problema en el que se tienen que controlar 18 uniones al mismo tiempo.
El caminado de un hexápodo de acuerdo al número de patas que se encuentran en apoyo, se puede clasificar en secuencias de caminado, que pueden ser de tipo onda, tetrápodo, transición y trípode. Para crear estas secuencias de caminado se puede utilizar un generador central de patrones [3, 12, 6], redes neuronales [7], algoritmos genéticos [11] o un generador aleatorio basado en aprendizaje [5]. En el caminado cada pata puede tener dos estados: avance y recuperación.
Un robot hexápodo al considerarse como un sistema aislado sus patas se pueden mover libremente sin embargo al poner las patas sobre la superficie estas ya no se pueden mover libremente sino que estarán restringidas por la fricción entre el piso y las patas, sus movimientos se limitan de manera similar a lo que sucede cuando una mano robótica con tres dedos sujeta un objeto uniforme [2]. Durante la etapa de avance en el caminado trípode un robot hexápodo se asemeja a un robot paralelo tipo Delta como el presentado en [18], la plataforma móvil es el cuerpo del robot y la plataforma fija es el triángulo de apoyo que forman las tres patas que se encuentran en contacto con el suelo. En [1] se presenta el diseño de una estructura de un robot hexápodo paralelo, el cual de forma similar al robot tipo Delta, su plataforma superior está fija, la longitud de cada una de sus patas varía utilizando uniones tipo pistón para mover la plataforma inferior, de este tipo de robots en [8] se presenta un análisis de su exactitud y de la simetría en el campo de trabajo; en [13], se presenta un método para resolver el problema de la cinemática directa de este tipo de robots utilizando un algoritmo genético.
Este trabajo contribuye con un método para encontrar el campo de trabajo de un robot hexápodo, utiliza la similitud existente entre un robot hexápodo y uno tipo Delta. La representación del robot hexápodo utilizada es similar a la presentada en [8, 13, 1] con la diferencia que éstos son robots estáticos, la representación de un robot hexápodo móvil como un robot paralelo también se utiliza en [15] donde se hace un análisis de la estabilidad del robot antes del caminado. El método propuesto en este trabajo permite encontrar todas las posibles combinaciones de las articulaciones de las tres patas en soporte del hexápodo que hacen que su cuerpo avance o gire manteniendo las puntas de las patas en el mismo triángulo de apoyo.
De acuerdo con la investigación realizada, no hay un trabajo donde se encuentre el campo de trabajo para un robot hexápodo móvil, las investigaciones reportadas generan solo el movimiento con patrones de caminado en línea recta [3, 12, 6, 5]. Para encontrar el campo de trabajo del robot, se requiere una solución que satisfaga de manera simultánea y óptima varios objetivos, por lo que este problema intrínsecamente es un problema de optimización multiobjetivo, en el cual se deberán minimizar los errores de los ángulos, el perímetro entre el triángulo de apoyo de la posición actual, y el de la nueva posición. La propuesta utiliza el algoritmo MOEA/D (del inglés Multiobjective Evolutionary Algorithm Based on Decomposition) propuesto en [19], cada punto en la frontera de Pareto representa una posición viable para un robot hexápodo.
Este trabajo está organizado de la siguiente manera: En la sección 2 se describe el modelo matemático de los robots hexápodos. En la sección 3 se describe la secuencia de caminado utilizado para el robot hexápodo y la formulación multiobjetivo del problema de mantener el triángulo de apoyo en la misma posición para encontrar el campo de trabajo, también se describe el algoritmo MOEA/D. Los resultados y experimentos se muestran en la sección 4. Finalmente, en la sección 5 se presentan las conclusiones.
2. Modelo cinemático de un robot hexápodo
En la Figura 1, se observan las patas del modelo del robot hexápodo utilizado las cuales están distribuidas simétricamente al eje y, que es el eje sobre el cual se desplaza el robot. En la Figura 2, se presenta el modelo cinemático utilizado para representar cada pata del robot. Considerando que el origen se encuentra en el punto de anclaje de la pata con el cuerpo, la altura z1 es la distancia entre el origen y la superficie de contacto, cada pata de un robot hexápodo se puede analizar como una cadena cinemática de tres eslabones, la cual inicia en la unión 0 donde está sujeta la pata al cuerpo del robot, el eslabón 1 es la coxa, el eslabón 2 es el fémur y el eslabón 3 es la tibia [9, 14]. La Tabla 1 muestra los parámetros de Denavit-Hartenberg (D-H) del robot: longitud del eslabón (ai), giro del eslabón (αi), distancia de la unión (di) y ángulo de la unión (θi).
La matriz de transformación homogénea que describe la traslación y rotación entre el i-ésimo y el (i − 1)-ésimo sistema de coordenadas se representa en (1). La ubicación de la punta de la pata con respecto al origen está definida en las ecuaciones (5), (6) y (7), las cuales se obtienen utilizando las matrices de transformación homogénea definidas en (2), (3) y (4) [14]:
Resolviendo las ecuaciones de posición (5), (6) y (7), se pueden determinar los valores de los ángulos de las articulaciones de cada pata utilizando las ecuaciones (8), (9) y (10):
3. Identificación del campo de trabajo del robot hexápodo
El caminado trípode del robot hexápodo se dividió en seis estados a partir de la posición inicial en la cual las patas 1, 3 y 5 están en apoyo y las patas 2, 4 y 6 están levantadas. El proceso de caminado se muestra en la Figura 3.
En el primer estado las dos patas extremas del lado izquierdo 1 y 3, y la pata central 5 del lado derecho se encuentran en apoyo, estas patas se desplazan hacia atrás cambiando el valor de los ángulos θ1,1 y θ1,3 por −∆θ1, y el ángulo θ1,5 por ∆θ1, esto provocará que el robot avance en línea recta hacia enfrente; en el segundo estado (recuperación), las dos patas extremas del lado derecho 4 y 6, y la pata central 2 del lado izquierdo se ponen en la posición inicial, a los ángulos θ1,4 y θ1,6 y θ1,2 se les asigna el valor cero; en el tercer estado (transición), las patas 4, 6 y 2 se ponen en apoyo, posteriormente las patas 1, 3 y 5 se levantan; en el estado cuatro las patas 4, 6 y 2 realizan el avance; en el estado cinco las patas 1, 3 y 5 se recuperan a su posición inicial; en el estado seis se realiza la transición y se vuelve a repetir el ciclo.
El primer y el cuarto estado son los que controlan el desplazamiento del hexápodo. En el avance en línea recta el ángulo θ1,i de las patas del lado derecho y del lado izquierdo en apoyo deben tener la misma magnitud pero con sentido diferente. La acción de girar el cuerpo de un robot hexápodo es compleja ya que se tiene que encontrar los valores de los ángulos Θ1,a que permitan al robot girar manteniendo el triángulo de apoyo en la misma posición inicial. En el primer estado el movimiento del cuerpo de un robot hexápodo es controlado por los ángulos Θ1,a = {θ1,1, θ1,3, θ1,5} y en el cuarto estado es controlado por los ángulos Θ1,a = {θ1,2, θ1,4, θ1,6}.
Durante la etapa de avance de un robot hexápodo con caminado trípode se forma un robot paralelo tipo Delta (Figura 4). Esta clase de robots está compuesta por una plataforma fija y una plataforma móvil conectadas por tres cadenas cinemáticas idénticas e igualmente distribuidas [16]. En el robot hexápodo la plataforma móvil es el cuerpo y la plataforma fija es el triángulo de apoyo que se forma con las tres patas en el piso.
3.1. Definición multiobjetivo del problema
Un problema de optimización multiobjetivo se define como minimizar o maximizar las funciones objetivo F(x) en el espacio objetivo Z, sujeto a restricciones de igualdad, de desigualdad y los límites de las variables de decisión x ∈ Ω. La meta en un problema de optimización multiobjetivo es encontrar el conjunto óptimo de Pareto *, es decir el conjunto de soluciones x ∈ Ω para las cuales no existe ninguna solución x′ ∈ Ω que domine x. Una solución x′ domina a otra solución x (x′ ⪯ x) si x′ es parcialmente menor que x, asumiendo que todos los objetivos se minimizarán (x′ sera menor o igual que x para todos los objetivos y menor al menos que uno de los objetivos).
Para mantener el triángulo de apoyo en la etapa de avance se debe asegurar que el triángulo formado por la posición de las patas 1 , 3 y 5 en apoyo en el primer estado antes de avanzar, sea el mismo que el formado por las patas 1 , 3 y 5 después de avanzar. El triangulo de apoyo antes y después del avance será igual si dos de sus ángulos y su perímetro es igual. Para cumplir con lo anterior, se planteó una formulación matemática de optimización multiobjetivo, la cual se muestra en la ecuación (11). El primer objetivo, es minimizar el error entre el ángulo , y el mismo ángulo después del avance; el segundo objetivo, es minimizar el error entre los ángulos y ; el tercer objetivo, es minimizar el error del perímetro del triángulo de apoyo en el primer estado pt y el perímetro del triángulo después de avanzar pt+1:
Minimizar
sujeto a
Los ángulos y son dos de los ángulos formados por el triángulo de apoyo de las patas en el tiempo t los cuales permanecen constantes. Para encontrar sus valores se utilizan las ecuaciones (12) y (13), las cuales se obtienen descomponiendo el triángulo de apoyo en tres triángulos rectángulos como se muestra en la Figura 5, y utilizando las ecuaciones de la cinemática (5) y (6) se encuentra la posición de las patas 1, 3 y 5. El perímetro pt del triángulo de apoyo se calcula utilizando la ecuación (14). Los ángulos y y el perímetro pt+1, después de que el cuerpo del robot se movió, se calculan utilizando las mismas ecuaciones con los valores de las patas en la nueva posición.
en donde:
Las variables de búsqueda del problema de optimización multiobjetivo son los ángulos , estos ángulos provocan que las patas se coloquen en una nueva posición, la cual se encuentra utilizando las ecuaciones (5), (6) y (7). Con esta nueva posición se calculan los ángulos y y el perímetro pt+1 que definen el nuevo triángulo de apoyo.
En el problema de restricción del triángulo de apoyo el conjunto óptimo de Pareto * son todas las soluciones en el espacio de búsqueda Ω tal que no exista ninguna solución que sea dominante de . Para que domine a , se debe cumplir para todo j = 1, 2, 3 y para al menos una j = 1, 2, 3.
Todos los triángulos de apoyo que cumplen esta condición, es decir todas las posiciones en las que se puede mover el hexápodo manteniendo sus patas en el mismo lugar es el campo de trabajo, el cual como se muestra en la Figura 3 se tiene que encontrar al iniciar el caminado del robot entre los estados 0 y 1, y después en la transición de los estados 3 y 4, y 6 y 1.
La condición para que el robot hexápodo no se caiga durante el caminado, es que el centro de gravedad de la parte superior del cuerpo permanezca siempre dentro del polígono de apoyo, como se muestra en la Figura 6. Esta condición se cumple mientras la distancia Sf sobre el eje x a la diagonal que se forma entre la pata central y la pata de enfrente, o la distancia Sb sobre el eje x a la diagonal que se forma entre la pata central y la pata de atrás, sean mayor que cero.
3.2. Algoritmo para optimización multiobjetivo basado en descomposición (MOEA/D
Los problemas de optimización multiobjetivo se resuelven principalmente usando métodos que asignan un valor de peso a cada objetivo de acuerdo a su importancia en el problema (métodos escalados), que lo convierten en un problema de un solo objetivo o usando algoritmos evolutivos los cuales ofrecen la ventaja de poder encontrar múltiples soluciones óptimas de Pareto en una sola corrida. También es relativamente más sencillo adaptarlos a diferentes problemas de aplicación. En optimización multiobjetivo es importante encontrar la mayor cantidad de soluciones óptimas de Pareto, pero también que éstas estén distribuidas uniformemente sobre el frente de Pareto.
Para encontrar las posiciones en las que se puede mover un robot hexápodo se utilizó el algoritmo MOEA/D propuesto en [19], el cual divide un problema de optimización multiobjetivo en N subproblemas de un solo objetivo que descompone el espacio objetivo en espacios igualmente distribuidos. La dispersión de las soluciones en el frente de Pareto es superior a otros algoritmos evolutivos de acuerdo a lo reportado en [19].
Cada subproblema i tiene un vector de pesos diferente para cada función objetivo, y tiene asignado un conjunto Bi con los τ vectores de peso más cercanos. Para resolver cada subproblema se utiliza el enfoque de Tchebycheff definido en la ec. (15):
donde es el vector de pesos del individuo j, cada subproblema se resuelve utilizando los τ vectores de pesos uniformemente distribuidos λ1, λ2, . . . , λN más cercanos a cada λj. El algoritmo MOEA/D resuelve todo los N subproblemas en una sola corrida, su funcionamiento se muestra en el Algoritmo 1.
4. Resultados experimentales
La comprobación del método propuesto se realizó utilizando la herramienta Robotics [4] de Matlab para simular un robot hexápodo y ver el movimiento de sus articulaciones. En el experimento se consideró que las patas 1, 3 y 5 están en apoyo como se muestra en la Figura 4 y los ángulos iniciales son , y . Las longitudes de los eslabones de las patas son l1 = 1 cm., l2 = 3,5 cm. y l3 = 6 cm, el ancho del cuerpo del robot es W = 10 cm y el largo L = 7 cm.
Estas medidas se eligieron porque son las características físicas de un robot hexápodo que se tiene en el laboratorio de sistemas digitales del CITEDI-IPN. Las variables de búsqueda son los ángulos , y todos entre −pi/6 y pi/6. Los ángulos θ2 = −π/8 y θ3 = −π/4 permanecen constantes, por lo tanto la altura de las tres patas también permanece constante z = −6,8827 cm.
En el algoritmo evolutivo se utilizó una población de 300 individuos con un vecindario τ = 20, y se ejecutó durante 100 generaciones. En la Figura 7 se observa el frente de Pareto obtenido después de 100 generaciones, en esta Figura también se indica la ubicación en el espacio objetivo de las soluciones a, b, c, y d, de las cuales se muestra el movimiento que provocan en las patas del robot en la Figura 9, estas soluciones fueron elegidas aleatoriamente para ejemplificar el comportamiento del robot hexápodo. En la Tabla 2 se muestran los valores de ángulos, la posición de las tres patas en apoyo en los ejes x y y, así como los valores de las funciones objetivo de las soluciones a, b, c, y d.
En la Figura 8a se observa el campo de trabajo del robot hexápodo obtenido por las mismas soluciones del frente de Pareto mostrado en la Figura 7, estas soluciones solo provocan que el robot se mueva en un sentido ya que el algoritmo multiobjetivo no utiliza ningún criterio para determinar la posición de la patas.
El campo de trabajo completo mostrado en la Figura 8b se obtiene creando soluciones simétricas a las obtenidas por el algoritmo y uniendo estos dos conjuntos de soluciones.
En la Figura 9 se observan cuatro soluciones representativas del conjunto óptimo de Pareto, donde se muestra la nueva posición de las tres patas (1, 3 y 5) que provocan el movimiento del robot y el triángulo de apoyo permanece en la misma posición.
En la misma figura se muestra que lo que se mueve son las patas que forman el triángulo de apoyo y no el cuerpo, ésto se debe a que en la herramienta Robotics de Matlab, el sistema de referencia del modelo cinemático del robot es la parte superior del cuerpo, sin embargo, en un robot real, el sistema de referencia es el piso, por lo que el cuerpo del robot es lo que se mueve.
En la Figura 9b se muestra una solución dentro del espacio de trabajo que no es viable ya que el centro geométrico del cuerpo superior del robot esta fuera del triángulo de apoyo.
5. Conclusiones
En este trabajo se analizó un robot hexápodo como un robot paralelo tipo Delta, y se propuso un método innovador para obtener el campo de trabajo, ya que de acuerdo a las fuentes bibliográficas consultadas, éstas se enfocan a que el robot avance en línea recta.
El método propuesto permite encontrar los posibles movimientos que puede realizar un robot hexápodo, y tiene como propósito mantener en la misma posición sobre el piso al triángulo de apoyo después del movimiento, lo cual se planteó como un problema de optimización multiobjetivo. El método propuesto permite que un robot hexápodo se pueda mover en todas las direcciones durante la etapa de avance del caminado trípode.