2.4 Controladores de cuerpo completo
2.4.1 Clasificación
Una vez definidos todos los aspectos de un controlador de cuerpo completo, es posible encontrar una política de control de distintas formas. En general, se diferencia entre las
2.4. Controladores de cuerpo completo 19
políticas de control basadas en velocidad o en fuerza por un lado, y en los controladores basados en formas cerradas o en optimización, por otro.
La primera de estas distinciones hace referencia a las salidas producidas por el controlador: los controladores de velocidad producen consignas de velocidad mientras que los controlado- res de fuerza producen consignas de fuerzas y torques (para articulaciones prismáticas y de revolución, respectivamente). En última instancia, estas consignas son llevadas a los controla- dores de bajo nivel de los motores, donde son transformadas en señales de corriente eléctrica. Lo que realmente diferencia a estas dos aproximaciones del control es la política de retroali- mentación de las tareas y el lugar donde las leyes de control son calculadas. En la actualidad, todavía es un tema de debate la preferencia de usar un tipo de controlador u otro.
La segunda distinción hace referencia al método de encontrar la salida del controlador. Como se ha comentado, se puede calcular mediante formas cerradas o mediante optimización. En el primer caso, las salidas son obtenidas tras realizar una serie de cálculos algebraicos predefinidos. En el caso de la optimización, se reformula el problema como un problema de optimización, para ser posteriormente enviado a un optimizador para encontrar la salida del controlador. En general, todos los WBC que se pueden representar en forma cerrada también se pueden reformular como problemas de optimización. Pero conviene no hacerlo ya que la complejidad computacional es menor para los controladores de forma cerrada, haciéndolos considerablemente más rápidos en la mayoría de los casos.
1. Controladores de velocidad de forma cerrada
Dado un conjunto de tareas expresadas con respecto a sus velocidades [ ˙x1, ˙x2, . . . , ˙xk]
(donde ˙xi = ki(xdesi − xi) es la tarea i), la definición más general de un WBC es:
˙
q = J1#x˙1+ J2#x˙2+ . . . + Jk#x˙k (2.23)
donde Ji es una transformación diferencial, como por ejemplo podría ser una jacobiana
cinemática, que mapea las velocidades articulares con las velocidades en el espacio de la tarea i. De la misma manera, Ji# es la pseudoinversa de Ji. Existen numerosas formas
de calcular posibles pseudoinversas, cada una de ellas dando a lugar a controladores con comportamientos ligeramente distintos. Se enumeran las principales:
• La pseudoinversa de Moore-Penrose: Ji#= JiT (JiJiT )−1 (2.24) • La pseudoinversa ponderada: Ji#= W−1JiT (JiW−1JiT )−1 (2.25)
donde W es una matriz diagonal. Se usa para dar más importancia a unas articu- laciones con respecto del resto.
• Proyección óptima mediante mínimos cuadrados:
Ji#= (JiNi)T
(
JiNi(JiNi)T
)−1
Esta última pseudoinversa únicamente se puede usar cuando se está haciendo uso de un controlador jerárquico. En los WBC jerárquicos se ordenan por prioridades cada tarea que se quiere realizar. La idea está en que la primera tarea tiene prioridad total y no es interferida en absoluto por el resto de tareas. Gracias a la redundancia del robot, es posible que este pueda llevar a cabo la siguiente tarea con los grados de libertad redundantes que sobran, o lo que es lo mismo, en el espacio nulo de la tarea anterior. Esta jerarquía se puede escribir como:
˙
q = J1#x˙1+ J2#|1x˙2+ . . . + Jk#|p(k)x˙k (2.27)
donde
Ji|p(i) = JiNp(i) (2.28)
es la transformación diferencial asociada a la tarea i definida en el espacio nulo Np(i) de las tareas con más prioridad p(i). Np(i) se calcula de la siguiente forma:
Np(i)= i−1 ∏ j=1 Nj (2.29) donde Nj = ( I− Jj#Jj ) (2.30) Cabe mencionar que al trabajar con humanoides (o cualquier otro robot de base flotante) las expresiones 2.23 y 2.27 se tienen que premultiplicar por una matriz de proyección P que mapea las $n$-dimensiones de las velocidades a las $na$-dimensiones de las
velocidades de los grados de libertad actuados. 2. Controladores de fuerza de forma cerrada
De manera similar a los controladores de velocidad de forma cerrada, si se define Fi = kpi(xdesi − xi) + kdi(− ˙xi) la definición genérica de la ley de control queda como:
τ = J1TF1+ J2TF2+ . . . + JkTFk (2.31)
De forma similar al controlador anterior, las prioridades a las tareas se pueden asignar de manera ponderada o jerárquica. En el primero de los casos la ley de control queda como:
τ = w1J1TF1+ w2J2TF2+ . . . + wkJkTFk (2.32)
mientras que en el caso de usar una jerarquía:
2.4. Controladores de cuerpo completo 21
Estas dos representaciones tienen sus inconvenientes: en los controladores jerárquicos es necesario definir un orden estricto de las prioridades de las tareas, mientras que en los controladores ponderados es necesario ajustar los parámetros para encontrar el comportamiento óptimo, tarea que en la actualidad carece de un proceso automático o riguroso. La elección de un tipo u otro de controlador depende en gran medida de la tarea que se tiene que realizar.
Como alternativa, se puede usar un controlador híbrido, el cual mezcla ambas ideas. El objetivo es tener una serie de tareas (generalmente pocas) que se consideran de alta prioridad y que no pueden ser interferidas por tareas con menos importancia. A estas tareas de alta prioridad se les aplica el mismo tratamiento que en un controlador jerárquico. Por otro lado, las demás tareas con menos importancia se les aplica el mismo tratamiento que en un controlador ponderado, pero la diferencia es que dichas tareas sólo pueden actuar en el espacio nulo de las tareas de alta prioridad.
3. Controladores basados en optimización
Como ya se ha comentado, siempre que se pueda resolver un problema de control con un WBC de forma cerrada no conviene convertirlo a un problema de optimización ya que en general estos suelen requerir de más recursos computacionales que sus contrapartes algebraicas. Sin embargo, los controladores de forma cerrada son incapaces de expresar desigualdades, cosa que los controladores basados en optimización sí que pueden ma- nejar. Por lo que en el caso que se requiera trabajar con desigualdades es estrictamente necesario realizar un controlador basado en optimización.
Al igual que en los tipos anteriores de WBC, se pueden tratar las tareas de manera jerárquica o ponderada. Con los mismos efectos y desventajas, y siendo un método u otro más conveniente según la aplicación.
Un ejemplo de WBC jerárquico basado en optimización se puede encontrar en el trabajo realizado por Kanoun y cols. (2011). Con anterioridad a este trabajo, las desigualdades se gestionaban de una manera muy ineficiente. De manera similar a la robótica móvil, se imponían dinámicas no lineales mediante un campo de fuerza, usando fuerzas de atracción hacia las tareas que se quieren realizar y de repulsión para alejar al robot de los estados que se quiere evitar. De esta manera se podía reformular el problema de nuevo solamente mediante igualdades, formulación que resulta ser más restrictiva que las desigualdades originales. Kanoun y cols. (2011) soluciona esta limitación mediante el cálculo de la ley de control mediante una cascada secuencial de programas cuadráticos. Se considera una estructura cinemática de n grados de libertad con un vector de confi- guración q ∈ Rn, y una secuencia de k tareas descritas por las funciones f
k(q). Normal-
mente estas funciones son no-lineales y sin inversas sencillas, por lo que se suele recurrir a métodos numéricos para operar con ellas. Considérese la siguiente EDO:
∂f1(q)
∂q q =˙ −λf1(q) (2.34)
Donde λ∈ R+. Siguiendo la trayectoria de esta EDO, q converge a q∗ de manera que
EDO está infradeterminado, dando lugar a infinitas posibles soluciones para q∗. Es de especial interés la solución con la mínima norma, por lo que se puede reformular la EDO de la siguiente manera:
˙ q1 = arg min x∈S1 1 2∥x∥ 2 (2.35) donde: S1 ={arg min x 1 2∥A1x− b1∥ 2} (2.36) Ai = ∂fi(q) ∂q (2.37) bi =−λfi(q) (2.38)
Se puede ver fácilmente que la solución es:
˙
q1= A#1b1 (2.39)
El conjunto S1 es un subespacio afín tal que:
S1={ ˙q1+ P1z1, z1 ∈ Rn} (2.40)
donde P1 es el operador de proyección ortogonal sobre el espacio nulo de la matriz A1:
P1 = I− A#1A1 (2.41)
Como se puede observar, para cualquier valor que tome z1 se cumple la restricción
expuesta en 2.34. Por lo tanto, es posible optimizar con respecto a otros objetivos con menor prioridad que f1(q) dentro del conjunto de soluciones S1 que ya satisface la
restricción 2.34.
Considérese una segunda EDO:
A2q = b˙ 2 (2.42)
Procediendo de la misma manera que en el primer caso, pero teniendo en cuenta que las soluciones que se buscan tienen que estar dentro de S1, se calcula el conjunto de soluciones S2 como: S2={arg min x∈S1 1 2∥A2x− b2∥ 2} (2.43)
2.4. Controladores de cuerpo completo 23
Al igual que con la primera tarea, la solución de interés es la que minimiza la norma:
˙ q2=arg min x∈S2 1 2∥x∥ 2 (2.44)
El resultado puede obtenerse de nuevo con la matriz pseudoinversa de A2. Pero primero,
es necesario proyectarla sobre el espacio nulo de la matriz A1.
˙
q2= ˙q1+ (A2P1)#(b2− A2q˙1) (2.45)
Si se quisieran añadir más tareas, el procedimiento sería el mismo. Se puede observar un patrón entre las expresiones 2.39 y 2.45, el cual se repite recursivamente para todas las tareas. Los subespacios S1, S2, . . . se calculan resolviendo los programas cuadráticos
definidos por las expresiones 2.36, 2.43, ….