Vous êtes sur la page 1sur 177

Apuntes para la asignatura

Mdulo optativo recomendado para 30 de Ingeniera Informtica Mdulo optativo para Ingeniera Electrnica

Robtica

Juan Domingo 3 de febrero de 2001

Apuntes de Robtica

Ingeniera Informtica

Segn se indica en la introduccin que sigue inmediatamente al ndice, estas notas no son un libro de Robtica. Fueron escritas en principio slo para facilitar el trabajo a mis alumnos, todos ellos de las titulaciones de Ingeniera Informtica e Ingeniera Electrnica de la Universitat de Valencia , y slo a ellos iban destinadas cuando se incluyeron en la pgina web de la asignatura. No obstante, atrajeron la atencin de los responsables de la excelente web http://www.ingenieroseninformatica.org que es, ms que una simple pgina, un foro sobre variados aspectos cientcos, tecnolgicos y profesionales de la ingeniera informtica. Con la intencin de contribuir en lo posible a ella he cedido gustoso estas notas, con la nica condicin de que la presente advertencia gure siempre como cabecera del texto, y sea difundida junto con el resto del mismo, o incluso con partes separadas de l, si ste se fragmentase. En cualquier caso debo manifestar que  Gran parte del material, y en particular muchas de las guras, han sido extradas de los libros que se citan en la bibliografa (aun cuando ninguna ha sido directamente reproducida por medios electrnicos). Por tanto, la bibliografa debiera ser tambin difundida con el texto o cualesquiera partes de l, de modo que el reconocimiento a los autores originales se preserve.  Ocasionalmente se citan en el texto marcas comerciales o empresas. El autor no tiene relacin contractual ni de ningn otro tipo con ninguna de ellas, y no promueve ni tampoco desaconseja el uso de sus productos.  El texto puede contener errores, tanto de tipografa como conceptuales. El autor no se hace responsable de las consecuencias que el uso de la informacin pueda provocar.  Las posibles opiniones vertidas en el texto son propias del autor, y no reejan de modo implcito ni explcito ninguna postura ocial de su institucin (la Universitat de Valencia ).  Del mismo modo, las posibles responsabilidades legales de su difusin si las hubiere correspondern slo al autor y al responsable legal de la pgina web en que se inserten. La insercin de todo o parte del texto en una pgina web sin el acompaamiento de esta advertencia exime al autor de toda responsabilidad. Burjasot (Valencia) a 3 de Febrero de 2001 Juan Domingo Esteve ( Juan.Domingo@uv.es)

ADVERTENCIA IMPORTANTE

ndice general
P . refacio 1. Introduccin P/1 1/ 1

1.1. Historia. Orgenes y concepto de robot . . . . . . . . . . . . . . . . . . . . . 1/ 1 1.2. Tipos de robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1/ 3 1.3. Componentes mecnicos de un robot . . . . . . . . . . . . . . . . . . . . . . 1/ 5 1.3.1. Deniciones, componentes y sus tipos . . . . . . . . . . . . . . . . . . 1/ 5 1.3.2. Accesibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1/ 5 2.1.
2/ 1 Conceptos bsicos de geometra espacial . . . . . . . . . . . . . . . . . . . . 2/ 2 2.1.1. Sistemas de coordenadas . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 2 2.1.2. Traslaciones y rotaciones . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 2 2.1.3. Descripcin de la orientacin . . . . . . . . . . . . . . . . . . . . . . . 2/ 6 2.1.4. Transformaciones entre sistemas de coordenadas . . . . . . . . . . . . 2/ 7 2.1.5. El sistema de la mano . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 9 2.1.6. Inversa de una transformacin homognea . . . . . . . . . . . . . . . 2/ 9 Cinemtica directa del manipulador . . . . . . . . . . . . . . . . . . . . . . . 2/ 10 2.2.1. El formalismo de Denavit-Hartenberg . . . . . . . . . . . . . . . . . . 2/ 10 2.2.2. Estudios de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 15 Cinemtica inversa del manipulador . . . . . . . . . . . . . . . . . . . . . . . 2/ 24 2.3.1. Aproximacin directa . . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 25 2.3.2. Aproximacin geomtrica . . . . . . . . . . . . . . . . . . . . . . . . 2/ 25 2.3.3. Manipulacin de matrices simblicas . . . . . . . . . . . . . . . . . . 2/ 28

2. Mecnica de robots

2.2. 2.3.

2.3.4. Transformaciones de velocidad: el Jacobiano, singularidades y manipulabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 30 2.4. Dinmica del manipulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 33 2.5. Generacin de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 41 2.5.1. Trayectorias en el espacio de articulaciones . . . . . . . . . . . . . . . 2/ 41 2.5.2. Trayectorias en el espacio cartesiano . . . . . . . . . . . . . . . . . . 2/ 47
3. Sensorizacin

3.1. Necesidad e importancia. Tipos . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Sensores internos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. Sensores de posicin . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2. Sensores de velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3. Acelermetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Sensores externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1. Sensores de proximidad . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. Sensores de tacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3. Sensores de fuerza . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.4. Sensores de visin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3/ 1 . 3/ 1 . 3/ 3 . 3/ 3 . 3/ 8 . 3/ 9 . 3/ 10 . 3/ 11 . 3/ 15 . 3/ 16 . 3/ 18

Apuntes de Robtica
4. Tecnologa de actuadores robticos

Ingeniera Informtica
4/ 1 . 4/ 1 . 4/ 2 . 4/ 3 . 4/ 4 . 4/ 7 . 4/ 12 . 4/ 13 . 4/ 18 5/ 1

4.1. Actuadores hidrulicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Actuadores neumticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Actuadores elctricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1. Motores de corriente contnua (CC) . . . . . . . . . . . . . . . . . . 4.3.2. Motores paso a paso . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. Servo-amplicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5. Transmisiones mecnicas y dispositivos de conversin . . . . . . . . . . . . 4.6. Precisin, repetibilidad y resolucin . . . . . . . . . . . . . . . . . . . . . .

5. Introduccin al control de robots

5.1. Tcnicas de control clsico sobre motores CC . . . . . . . . . . . . . . . . . . 5/ 1 5.2. Control de una articulacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 5/ 7 5.3. Nota al control adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5/ 9 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 1 Requerimientos de los lenguajes de programacin de robots . . . . . . . . . . 6/ 2 Sistemas operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 3 Clasicacin de los lenguajes de prog. de robots . . . . . . . . . . . . . . . . 6/ 4 Niveles de programacin. Cuadro resumen . . . . . . . . . . . . . . . . . . . 6/ 5 Lenguajes orientados al robot . . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 6 6.6.1. Movimientos del robot . . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 6 6.6.2. Evolucin y caractersticas . . . . . . . . . . . . . . . . . . . . . . . . 6/ 7 6.6.3. Estudios de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 8 6.7. Lenguajes orientados a la tarea . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 14 6.7.1. Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 14 6.7.2. Estudios de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6/ 17 6.8. Planicacin global de tareas. Nota sobre sistemas CIM . . . . . . . . . . . . 6/ 20 7.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 1 7.2. Cinemtica de robots mviles . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 1 7.3. Navegacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 12 7.3.1. Mapas del entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 13 7.3.2. Autolocalizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 15 7.3.3. Planicacin y seguimiento de caminos . . . . . . . . . . . . . . . . . 7/ 16 7.4. Tecnologas de construccin y conexin senso-motora . . . . . . . . . . . . . 7/ 19 8.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. La nocin de inteligencia y su aplicacin en Robtica . . . . . . . . . . . . 8.3. La relacin Inteligencia Articial-Robtica . . . . . . . . . . . . . . . . . . 8.3.1. Robtica clsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.2. Robtica comportamental . . . . . . . . . . . . . . . . . . . . . . . 8.4. Estudios de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.1. HANDEY: un sistema clsico de ensamblado . . . . . . . . . . . . . 8.4.2. Ejemplo comportamental: Herbert . . . . . . . . . . . . . . . . . . . 3
8/ 1 . 8/ 1 . 8/ 2 . 8/ 3 . 8/ 3 . 8/ 5 . 8/ 6 . 8/ 7 . 8/ 11 7/1 6/ 1

6. Programacin de robots

7. Robots mviles

8. Inteligencia en robots

Apuntes de Robtica
A . pndices

Ingeniera Informtica
ApA/ 1

A. Algunas identidades trigonomtricas tiles . . . . . . . . . . . . . . . . . . . ApA/ 1 B. Bibliografa comentada y tabla por temas . . . . . . . . . . . . . . . . . . . ApB/ 1

ndice de guras
1.1. Clasicacin de los robots por la geometra . . . . . . . . . . . . . . . . . . 1/ 4 1.2. Tipos de articulaciones y su representacin . . . . . . . . . . . . . . . . . . 1/ 6 2.1. Diversos sistema de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 2 2.2. Rotacin alrededor de un eje . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 3 2.3. Rotacin alrededor de un eje arbitrario . . . . . . . . . . . . . . . . . . . . . 2/ 5 2.4. Sistemas de ngulos de Euler e y/p/r . . . . . . . . . . . . . . . . . . . . . 2/6 2.5. Transformaciones entre sistemas . . . . . . . . . . . . . . . . . . . . . . . . 2/ 8 2.6. Esquema del sistema de la pinza (punto terminal) . . . . . . . . . . . . . . . 2/ 9 2.7. Cadena cinemtica abierta y su numeracin . . . . . . . . . . . . . . . . . . 2/ 11 2.8. Parmetros DH de un enlace genrico . . . . . . . . . . . . . . . . . . . . . 2/ 12 2.9. Sistemas de coordenadas jos a una articulacin . . . . . . . . . . . . . . . 2/ 13 2.10. Esquema del brazo de Stanford . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 16 2.11. Estructura del RT100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 19 2.12. Esquema y cotas del robot RT100 . . . . . . . . . . . . . . . . . . . . . . . 2/ 20 2.13. Colocacin de los sistemas en el RT100 . . . . . . . . . . . . . . . . . . . . . 2/ 20 2.14. Manipulador con los 3 ltimos g.d.l. rotacionales . . . . . . . . . . . . . . . 2/ 26 2.15. Aproximacin lineal de una funcin . . . . . . . . . . . . . . . . . . . . . . . 2/ 31 2.16. Giro de un sistema de referencia centrado en C . . . . . . . . . . . . . . . . 2/ 34 2.17. Posicion de los sistemas O, i e i+1 . . . . . . . . . . . . . . . . . . . . . . . 2/ 35 2.18. La velocidad del CM conocida la del origen . . . . . . . . . . . . . . . . . . 2/ 38 2.19. Cuadro resumen del uso de las ecuaciones dinmicas . . . . . . . . . . . . . 2/ 40 2.20. Eleccin de la velocidad intermedia . . . . . . . . . . . . . . . . . . . . . . . 2/ 43 2.21. Interpolacin lineal con extremos parablicos . . . . . . . . . . . . . . . . . 2/ 45 2.22. Gracas de la variable de articulacin, su velocidad y aceleracin . . . . . . 2/ 46 2.23. Aproximacin lineal-parablica para dos puntos . . . . . . . . . . . . . . . . 2/ 46 2.24. Brazo con 3 g.d.l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2/ 48 3.1. Esquemas del sensor potenciomtrico . . . . . . . . . . . . . . . . . . . . . . 3/ 3 3.2. Tensin obtenida y esperada . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 3 3.3. Esquema del sincro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 4 3.4. Esquema del Inductosyn . . . . . . . . . . . . . . . . . . . . . . . . . . . 3/5 3.5. Discos con una o varias muescas . . . . . . . . . . . . . . . . . . . . . . . . 3/ 5 3.6. Disco de un codicador ptico absoluto de 16 sectores, 4 pistas . . . . . . . 3/ 6 3.7. Ondas en los dos canales de un encoder incremental . . . . . . . . . . . . . 3/ 6 3.8. Estados/salidas para el circuito de incremento de la resolucin . . . . . . . . 3/ 7 3.9. Esquema de la dinamo tacomtrica . . . . . . . . . . . . . . . . . . . . . . . 3/ 8 3.10. Esquema de un acelermetro inercial . . . . . . . . . . . . . . . . . . . . . . 3/ 10 3.11. Acelermetro de estado slido . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 10 3.12. Sensor de contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 11 3.13. Sensor de reexin luminosa . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 11 3.14. Intensidad emitida y reejada en modo pulsante . . . . . . . . . . . . . . . 3/ 12 3.15. Reexin total y sensores con bra ptica . . . . . . . . . . . . . . . . . . . 3/ 13 3.16. Dos tipos de sensores laser de distancia . . . . . . . . . . . . . . . . . . . . 3/ 13 5
TM

Apuntes de Robtica
TM

Ingeniera Informtica

3.17. Esquema del sensor Polaroid . . . . . . . . . . . . . . . . . . . . . . . . 3/14 3.18. Sensor tctil de varillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 15 3.19. Sensor de elastmeros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 16 3.20. Sensor de presin neumtica . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 16 3.21. Galga extensiomtrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 17 3.22. Sensor de fuerza-momento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3/ 18 4.1. Esquema de la servovlvula hidrulica . . . . . . . . . . . . . . . . . . . . . 4/ 2 4.2. Cilindro y pistn hidrulicos lineales . . . . . . . . . . . . . . . . . . . . . . 4/ 2 4.3. Control de un sistema hidrulico . . . . . . . . . . . . . . . . . . . . . . . . 4/ 3 4.4. Controlador proporcional neumtico . . . . . . . . . . . . . . . . . . . . . . 4/ 4 4.5. Construccin de un motor elctrico de CC . . . . . . . . . . . . . . . . . . . 4/ 4 4.6. Curvas V/T e I/T para un motor de CC . . . . . . . . . . . . . . . . . . . . 4/ 5 4.7. Modelo para un motor de CC . . . . . . . . . . . . . . . . . . . . . . . . . . 4/ 5 4.8. Diagrama de bloques para el motor CC . . . . . . . . . . . . . . . . . . . . 4/ 6 4.9. Funcionamiento del motor paso a paso VR . . . . . . . . . . . . . . . . . . . 4/ 8 4.10. Esquema de un motor paso a paso de imn permanente . . . . . . . . . . . 4/ 10 4.11. Esquema de un motor paso a paso lineal . . . . . . . . . . . . . . . . . . . . 4/ 10 4.12. Esquema del motor brushless . . . . . . . . . . . . . . . . . . . . . . . . . . 4/ 11 4.13. Seales para control contnuo de motores paso a paso . . . . . . . . . . . . . 4/ 11 4.14. Esquema de los servo-amplicadores lineales . . . . . . . . . . . . . . . . . . 4/ 12 4.15. Tensin en bornes de un motor CC con control PWM . . . . . . . . . . . . 4/ 13 4.16. Par de engranajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4/ 14 4.17. Tornillo jo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4/ 15 4.18. Dispositivos de conversin rotacional-lineal . . . . . . . . . . . . . . . . . . 4/ 16 4.19. Transmisin universal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4/ 17 4.20. Alinealidad en engranajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4/ 18 4.21. Resolucin y medidas de repetibilidad . . . . . . . . . . . . . . . . . . . . . 4/ 19 5.1. Control de un motor CC: gura principal . . . . . . . . . . . . . . . . . . . 5/ 2 5.2. Lugar de las races con K = 0 . . . . . . . . . . . . . . . . . . . . . . . . . 5/2 5.3. Control de un motor CC: realim. en velocidad . . . . . . . . . . . . . . . . . 5/ 3 5.4. Lugar de las races con K = 0 . . . . . . . . . . . . . . . . . . . . . . . . . 5/4 5.5. Diagrama del motor CC no simplicado . . . . . . . . . . . . . . . . . . . . 5/ 5 5.6. Diagrama completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5/ 5 5.7. Control PID de un motor CC . . . . . . . . . . . . . . . . . . . . . . . . . . 5/ 6 5.8. Respuesta a escaln de un motor CC . . . . . . . . . . . . . . . . . . . . . . 5/ 7 5.9. Control de una articulacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 5/ 8 5.10. Oscilacin digital provocada por la cuantizacin . . . . . . . . . . . . . . . . 5/ 8 5.11. Esquema de control adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . 5/ 9 6.1. Cuadro resumen del software de un sistema robotizado . . . . . . . . . . . . 6/ 5 6.2. Ejemplo de tarea para resolver en AL . . . . . . . . . . . . . . . . . . . . . 6/ 10 6.3. Ejemplo de tarea para resolver en VAL . . . . . . . . . . . . . . . . . . . . . 6/ 13 6.4. Accin de un lenguaje a nivel tarea . . . . . . . . . . . . . . . . . . . . . . . 6/ 14 6.5. Ejemplos de cilindros generalizados . . . . . . . . . . . . . . . . . . . . . . . 6/ 16 6.6. Ejemplo de pieza en AUTOPASS . . . . . . . . . . . . . . . . . . . . . . . . 6/ 17 6.7. Ejemplo de tarea para resolver en RAPT . . . . . . . . . . . . . . . . . . . 6/ 18 6
g g

Apuntes de Robtica

Ingeniera Informtica

7.1. Esquema de la rueda de un robot mvil . . . . . . . . . . . . . . . . . . . . 7/ 3 7.2. Sistemas de referencia para un robot mvil . . . . . . . . . . . . . . . . . . 7/ 4 7.3. Coordenadas de posicin-orientacin de un robot mvil . . . . . . . . . . . . 7/ 4 7.4. Grafo de transformaciones entre sistemas . . . . . . . . . . . . . . . . . . . 7/ 5 7.5. Angulos de giro de la rueda . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 7 7.6. Ejemplo de robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 10 7.7. Construccin visual del mapa de ocupacin . . . . . . . . . . . . . . . . . . 7/ 14 7.8. Mapa de espacio libre, y su dual . . . . . . . . . . . . . . . . . . . . . . . . 7/ 14 7.9. Odometra afectada por el terreno . . . . . . . . . . . . . . . . . . . . . . . 7/ 16 7.10. Autolocalizacin por balizas . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 16 7.11. Caminos en espacio libre y negociacin de esquinas . . . . . . . . . . . . . . 7/ 18 7.12. Ejemplo de campo potencial . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 18 7.13. Esquema del robot Tut-Bot . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 19 7.14. Movimiento del Tut-Bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7/ 20 8.1. Sistemas de smbolos y su relacin con el mundo . . . . . . . . . . . . . . . 8/ 4 8.2. Descomposicin funcional y vertical . . . . . . . . . . . . . . . . . . . . . . 8/ 5 8.3. Descomposicin horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8/ 7 8.4. Parmetros del espacio de conguraciones . . . . . . . . . . . . . . . . . . . 8/ 10 8.5. Un ejemplo de espacio de conguraciones . . . . . . . . . . . . . . . . . . . 8/ 10 8.6. Otro ejemplo de espacio de conguraciones . . . . . . . . . . . . . . . . . . 8/ 11 8.7. Esquema de Herbert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8/ 12 8.8. La mano de Herbert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8/ 12 8.9. Sistema de visin de Herbert . . . . . . . . . . . . . . . . . . . . . . . . . . 8/ 13

Apuntes de Robtica

Ingeniera Informtica

Prefacio
El volumen que el lector tiene ahora en su mano es un compendio pormenorizado de contenidos que se integran en el mdulo "Robtica". A partir de la introduccin de los nuevos planes de estudios, esta disciplina, presente en los planes antiguos a veces como una asignatura autnoma, o generalmente como parte de una asignatura mayor, ha pasado a ser un mdulo integrante de los planes de la mayora de las ingenieras en Informtica, Ingenieras Industriales, y similares de casi todas las universidades de Espaa. Partiendo de las orientaciones generales del MEC, que aparecen como descriptores genricos que indican contenidos bsicos que deben ser explicados, cada licenciatura o ingeniera estructura su plan de estudios, el cual especica en qu mdulos (y en su caso, en que cursos) deben ser impartidos estos conocimientos. Las notas que siguen han sido redactadas como gua del mdulo impartido como optativo en las titulaciones de Ingeniera Informtica e Ingeniera Electrnica de la Univ. de Valencia. Como es preceptivo, se siguen las indicaciones generales del MEC explcitas en forma de descriptores, pero adaptndolas a los conocimientos que se juzgan apropiados para un alumno de esta licenciatura en esta universidad, dado que por supuesto el contenido hace referencia a otros mdulos y se conecta con ellos. Por tanto, aun cuando este documento ha sido escrito con intencin de generalidad, y tratando de introducir debidamente los conocimientos previos, no pretende ser un texto completo de Robtica, y no debiera ser tomado como tal. A este respecto, se recuerda encarecidamente a los alumnos que los apuntes no sustituyen a un buen texto, y mucho menos al seguimiento puntual y atento de las explicaciones dadas en el aula. Quieren ser, ms bien, una ayuda, especialmente en aquellos temas en que la abundancia de frmulas diculta la comprensin, porque el alumno obligado a transcribirlas se ja ms en la letra que en el contenido y signicado fsico de stas. Se ver, sin embargo, que estos apuntes no son una mera sucesin de frmulas, y que no se ha escatimado texto en ellos; esto responde, precisamente, al deseo de explicar y comentar debidamente los aspectos fsicos o computacionales, de los que las matemticas son aqu mera expresin. En Robtica, este ltimo comentario es especialmente importante. En nuestra opinin, la Robtica no es software, ni hardware, ni siquiera una suma de stos. Una de las ideas ms importantes que se intenta que un alumno adquiera en este mdulo es que la Robtica intenta establecer una conexin entre las ideas que tenemos sobre el mundo fsico y el ujo de informacin en l, las cuales plasmamos mediante programas, y el mundo fsico mismo. Los problemas de la programacin cuando se enfrenta a sistemas reales son, en general, bastante diferentes de los que se plantean en un ordenador aislado; esto se maniesta patente a los alumnos en las prcticas que constituyen el mdulo asociado a ste. Como se ver en el ndice, el curso se estructura en ocho temas. En el primero se introduce el concepto de Robtica (el cual ser discutido y modicado posteriormente en el tema 8), una resea histrica y algo de la terminologa bsica. El segundo tema explica la relacin entre las variables propias del robot (variables de articulacin) y las coordenadas cartesianas usadas normalmente por humanos, as como entre sus velocidades, aceleraciones, y fuerzas aplicadas; para ello se introduce la formulacin de Denavit-Hartenberg, comunmente aceptada. Los temas tercero y cuarto hablan respectivamente de sensores y actuadores, desde un punto de vista principalmente tecnolgico, pero haciendo hincapi en su papel de recolecP/1

Apuntes de Robtica

Ingeniera Informtica

tores de informacin, y alteradores del mundo, respectivamente, lo cual permitir despus hablar de Robtica como conexin entre percepcin y accin. El tema quinto explica los modelos usados para los actuadores ms comunes hoy da (motores de CC) as como algunas tcnicas bsicas para su control. La correcta comprensin de este tema requiere conocimientos previos sobre control, al menos de sistemas contnuos, de carcter elemental. Esto es cierto en el caso de nuestros alumnos que cursan al menos una asignatura obligatoria sobre el tema anteriormente; pero es necesario resear que otras facultades de Informtica podran no encontrarse en el mismo caso, y, por contra, algunas de Ingeniera Industrial encontraran este tema parco. Se ha buscado el compromiso ms adaptado a nuestro caso. El tema sexto, programacin, es uno de los ms importantes para un alumno de informtica, al que se le supone uidez en ella, y ha sido planteado con el objetivo de intentar mostrar las diferencias esenciales entre programar un dispositivo fsico que interacta con el mundo real y programar un ordenador; en los ejemplos de lenguajes dados se incide en ello. El tema sptimo, sobre robots mviles, ha sido introducido para dar cuenta de una tecnologa an en desarrollo, pero que ya comienza a tener algunas bases, a nuestro entender, sucientemente rmes como para inclurla en un temario acadmico, y que creemos que tendr un impacto industrial y cientco importante en un futuro prximo. Finalmente, el tema octavo explica la conexin entre Inteligencia Articial y Robtica, haciendo hincapi en la fructfera relacin entre ambas disciplinas, no exenta sin embargo de tensiones, que se estableci en su da, y que hoy se ha revitalizado. Pensamos que una visin genrica de este tipo de cuestiones es apropiada para un estudiante de Ingeniera Informtica. Finalmente, hay que indicar que estas notas son preliminares, y sometidas constantemente a revisin. Pese al trabajo de mecanografa los ms cuidadoso posible, y a una organizacin estricta y presentacin cuidada, que son ms mrito de L TEX que del autor, multitud de erratas pueden haber subsistido. Se pide disculpas de antemano por ellas, y se ruega al lector interesado que las haga notar, para su correcin en futuras versiones.
A

P/2

Tema 1: Introduccin
1.1. Historia. Orgenes y concepto de robot

El primer punto que debemos considerar en un curso de Robtica debera ser, obviamente, la denicin. Se admite que Robtica es la ciencia de los robots, con lo que se traslada el problema a la denicin de robot. Sin embargo, y como luego veremos, darla no es tan simple. Antes de hacerlo, veamos mejor algunas ideas informales sobre qu es un robot, y qu concepto se ha ido formando histricamente de ellos. Una nocin usual es que un robot es un dispositivo humanoide, ms o menos inteligente, que reemplaza a los humanos en la realizacin de tareas tiles. Generalmente, la imaginacin popular no considera robots a las mquinas que no tienen una forma al menos vagamente humana. Desde el punto de vista literario o cinematogrco, que ha ido creando esta visin popular, el origen se suele poner en 1921, con la obra de teatro "RUR"( Rossum Universal Robota ), del checo Karel Capek, de donde surge la palabra robot ( robota en checho signica esclavo, o trabajador obligado). Ms tarde esta visin fue reforzada por Fritz Lang en su pelcula "Metrpolis", de 1926, y bastante despus, una versin ms humanizada es la que presenta Isaac Asimov en su archiconocida serie de relatos, escritos a partir de 1942 (en los que, por cierto, se introduce por primera vez el trmino Robtica con el sentido de disciplina cientca encargada de construir y programar robots). Entre los ltimos ejemplos de esta forma ingnua de ver los robots se encuentran los androides R2D2 y C3PO de la serie de pelculas de George Lucas "La Guerra de las Galaxias". Por otra parte, desde la generalizacin del uso de la tecnologa en procesos de produccin con la Revolucin Industrial (y aun antes) se intent la construccin de dispositivos automticos que ayudasen o sustituyesen al hombre, o simplemente fuesen en s mismos objetos curiosos. Entre ellos destacaron: -Los Jaquemarts, muecos de dos o ms posiciones que golpean campanas accionados por mecanismos de relojera. Entre los ms famosos estn el "papamoscas", de la Catedral de Burgos, o los de la Catedral de San Marcos, de Venecia. Su importancia radica en el hecho de transferir la tecnologa usada en relojera al movimiento preciso de piezas pesadas. -En la misma lnea, pero mucho ms sosticados, son los autmatas de engranajes y mecanismos de relojera que surgen sobre todo en Francia y Alemania entre los siglos XVII y XVIII. El ms famoso fu el llamado "concertista de tmpano", construdo por Kintzing y Roentgen y regalado a Mara Antonieta en 1784. Funcionaba mediante un mecanismo de cuerda que activaba una compleja sucesin de palancas y rboles de levas, y tiene importancia por ser uno de los primeros dispositivos "programables"(tocaba cualquier meloda cambiando el tambor metlico con dientes que la codicaba). -En 1801, C. Spencer inventa una mquina, antecesora de las modernas mquinasherramienta, que produca tornillos, tuercas y arandelas. El tipo de pieza, tamao y paso de la misma era variable, mediante la sustitucin de unas guas intercambiables, que actuaban a modo de "programa". -En 1938-39, el americano Pollard inventa el primer brazo mecnico articulado para ser usado en aplicaciones de pintura al spray. Ciertamente, uno de los campos de aplicacin ms extendidos de los robots son las cadenas de montaje en general, y las de automviles en particular. Recordemos que haca ya tiempo, desde 1906, que Henry Ford haba instalado la primera cadena de montaje para su mtico modelo T, que signic una revolucin en el ROB1/1

Apuntes de Robtica

Ingeniera Informtica

campo de la produccin industrial en general. De todos modos, ninguno de los ingenios citados hasta ahora puede realmente considerarse un robot. Algunos se pueden programar, pero todos carecen de la capacidad de ejecutar tareas diversas, puesto que estn por su propia estructura mecnica, concebidos para una sla aplicacin. Inmediatamente comenzaron a aparecer otros dispositivos no sujetos a esta limitacin: -En 1947, Goetz construye el primer manipulador elctrico servocontrolado, es decir, capaz de conocer su propio estado (posicin), y modicarlo para llevarlo al estado deseado por el programador. -En 1952 aparece la primera mquina de control numrico, o sea, que se programa no de modo mecnico o elctrico, sino mediante intrucciones simblicas (en cierto modo, un lenguaje) codicadas apropiadamente. En principio, se trataba slo de tornos programables, pero su importancia est en que introducen el concepto de "sotware"de un robot. -En 1954 Devol desarrolla el que puede considerarse el primer robot: un manipulador con memoria legible y escribible (o sea, programable) que almacena trayectorias punto a punto. Devol fund entonces Unimation, la que sera la mayor compaa productora de robots durante los aos siguientes. -Al mismo tiempo que los robots industriales se hacan ms complejos, durante las dcadas de los 60 y 70, la Robtica comienza a introducirse como disciplina acadmica y a formar parte de la investigacin de algunos centros universitarios especcos, que an hoy mantienen su preeminencia; cabe citar al Massachussets Institute of Technology (MIT), las Universidades de Carnegie Mellon (Illinois) y Stanford (California), el Technological Institute of California (CALTECH) y la Universidad de Edimburgo (Escocia). De hecho, en 1969 los investigadores de Stanford contruyen el primer prototipo de Shakey, un robot cilndrico mvil dotado de sensores de ultrasonidos y una visin rudimentaria, y en 1970 comienza a funcionar el brazo de Stanford, uno de los robots acadmicos ms extendidos; tiene 6 grados de libertad, es elctrico y servocontrolado. -La investigacin espacial en la dcada de los 70 tambin impuls la tecnologa robtica, especialmente los proyectos VIKING-I y II, para un descenso no tripulado en Marte. El brazo de la sonda del VIKING-I requiri la invencin de la mano con remote compliance center (centro de giro remoto, RCC), especialmente usada luego en tareas de ensamblado. -En 1978 Unimation lanza el PUMA, probablemente el robot comercial ms difundido, y en torno a la misma fecha se dan en las universidades algunos avances en visin que todava estn por incorporarse a los robots industriales. -Durante los aos 80 y 90, la investigacin contina, aunque no al ritmo que las compaas desearan para una mayor aplicabilidad industrial de los robots, y la diversicacin es enorme. Existen multitud de modelos de brazo articulado, varios tipos de robots mviles, e incluso robots que andan (como el ODEX, desarrollado por la rma Odetics Inc. para manejo de material radiactivo). De todo lo dicho se deduce que debe haber un nivel de complejidad a partir del cual un dispositivo puede considerarse robot. Esto ser aclarado en la denicin, pero en cualquier caso, los tres niveles de complejidad de un dispositivo de manipulacin puede considerarse que son: Teleoperacin: Es la manipulacin a distancia por un operador humano. En este nivel estn, p. ej., los brazos desarrollados a partir del nal de la segunda guerra mundial para la manipulacin de material radiactivo. ROB1/2

Apuntes de Robtica

Ingeniera Informtica

Telepresencia: Una teleoperacin a la que adems se aaden sensores que informan al operador del estado de la tarea, idealmente, como si ste se encontrase en el lugar de ejecucin de la misma. Los dispositivos mviles para desactivacin de explosivos dotados de cmaras de TV y sensores de contacto o fuerza son ejemplos de esto. Autonoma: El robot hace su trabajo tomando las decisiones oportunas a partir del programa que almacena, y de las seales recibidas de los sensores en cada instante, sin necesidad de intervencin del operador durante la ejecucin de la tarea. Lo idneo sera que todo robot funcionase de este modo, e incluso con capacidad para variar su programa, y aprender. Si esto puede o no ser posible en el futuro, es objeto de investigacin. Ahora estamos por n en condiciones de dar una denicin de robot. Segn el Robot Institute of America , que, signicativamente, se transform despus en la Robot Industries Association (RIA) , un robot es "Un manipulador reprogramable multifuncional, diseado para mover material, partes, herramientas o dispositivos especializados mediante movimientos programados variables para la ejecucin de tareas diversas" Las caractersticas importantes que aparecen en esta denicin y que distinguen a un robot de otros dispositivos manipuladores, como mquinas-herramienta o similares, son la multifuncionalidad, es decir, el robot debe ser lo sucientemente verstil como para ejecutar tareas diversas, no previstas a priori por su diseador, y la programabilidad , o sea, la capacidad de cambiar de una tarea a otra sin ms que cambiar el programa (la secuencia de instrucciones) que debe ejecutar. Esta denicin es correcta y sucientemente general, en el sentido de que no restringe la tecnologa usada para la construccin del robot, ni el mtodo por el que se le programe. Pero peca de excesivamente ingenieril, en cuanto que olvida el aspecto estrictamente cientco de los robots: su uso como herramientas para entender los procesos de la percepcin y la accin en entornos reales. Se incidir ms sobre esto en el captulo 8. Por el momento, se puede dar una denicin alternativa de Robtica como "La ciencia que estudia los robots como sistemas que operan en algn entorno real, estableciendo algn tipo de conexin inteligente entre percepcin y accin" Aqu no nos referimos a inteligencia general, en el sentido humano del trmino, sino slo a la capacidad de realizar bien la tarea encomendada, aun ante cualesquiera cambios razonables en el entorno. Existen hoy da multitud de robots, algunos de ellos muy especcos, por lo que es difcil establecer una nica clasicacin vlida. No obstante, hay dos criterios que ayudan: +Clasicacin por la geometra (llamada tambin por las coordenadas): -Cilndricos: cada eje es de revolucin total (o casi) y est encajado en el anterior -Esfricos: hay ejes de rotacin que hacen pivotar una pieza sobre otra. -De paralelogramo: La articulacin tiene una doble barra de sujeccin. -Mixtos: poseen varios tipos de articulacin, como los SCARA. -Cartesianos: las articulaciones hacen desplazar linealmente una pieza sobre otra. ROB1/3
1.2. Tipos de robots

Apuntes de Robtica

Ingeniera Informtica

Pueden ser de tipo cantilever, o prtico (ver gura 1.1)

Cilindrico

Esferico
Eje vertical usual Articulacion cilindrica

Artic. de paralelogramo

Mixto (SCARA)

z y

Cartesiano tipo cantilever

Cartesiano tipo portico

Figura 1.1: Clasicacin de los robots por la geometra +Clasicacin por el mtodo de control: -No servo-controlados: son aquellos en los que cada articulacin tiene un nmero jo (normalmente, dos) posiciones con topes y slo se desplazan para jarse en ellas. Suelen ser neumticos, bastante rpidos y precisos. -Servo-controlados: en ellos cada articulacin lleva un sensor de posicin (lineal o angular) que es ledo, y enviado al sistema de control que genera la potencia para el motor. Se pueden as parar en cualquier punto deseado. -Servo-controlados punto a punto: Para controlarlos slo se les indican los puntos iniciales y nales de la trayectoria; el ordenador calcula el resto siguiendo ciertos algoritmos que se vern en el tema 2. Normalmente pueden memorizar posiciones. +Clasicacin por la funcin: -De produccin, usados para la manufactura de bienes, pueden a su vez ser de manipulacin, de fabricacin, de ensamblado y de test. -De exploracin, usados para obtener datos acerca de terreno desconocido, pueden ser de ROB1/4

Apuntes de Robtica

Ingeniera Informtica

exploracin terreste, minera, ocenica, espacial, etc. -De rehabilitacin: usados para ayudar a discapacitados, pueden ser una prolongacin de la anatoma, o sustituir completamente la funcin del rgano perdido.
1.3. Componentes mecnicos de un robot

Daremos ahora unas deniciones que sern tiles para los temas posteriores. Un manipulador robtico consiste en una secuencia de cuerpos rgidos, llamados enlaces (links) que se conectan unos a otros mediante articulaciones (joints). Todos juntos forman una cadena cinemtica . Se dice que una cadena cinemtica es abierta si, numerando secuencialmente los enlaces desde el primero, cada enlace est conectado mediente articulaciones exclusivamente al enlace anterior, y al siguiente, excepto el primero, que se suele jar al suelo, y el ltimo, uno de cuyos extremos queda libre. Cada articulacin puede ser rotacional o traslacional, segn el enlace dado gire alrededor de un eje jo al enlace anterior, o se deslice sobre l en lnea recta. Estos dos tipos de articulaciones son las principales, aunque hay ms. Vase la gura 1.2, al nal del tema. Se dene grado de libertad como cada una de las coordenadas independientes necesarias para describir el estado de un sistema mecnico. Normalmente, en cadenas cinemticas abiertas, cada par enlace-articulacin tiene un slo grado de libertad, bien rotacional o traslacional, pero no necesariamente. Puede haber enlaces de longitud 0 (inexistentes), p. ej,. cuando una articulacin tiene dos o ms grados de libertad que operan sobre ejes que se cortan.
1.3.2. Accesibilidad

1.3.1. Deniciones, componentes y sus tipos

Lo que debemos hacer con un manipulador es normalmente situar su punto terminal en el punto del espacio pedido por el usuario, haciendo adems que la direccin por la que se aproxima a ese punto sea tambin una dada. En algunos manipuladores no todas las direcciones de aproximacin son posibles. Usando esta nocin se dice que un punto del espacio es totalmente accesible si el punto terminal del manipulador puede situarse en l, en todas las orientaciones que su construccin mecnica en principio le permita. Es parcialmente accesible si el punto terminal puede alcanzarlos, pero no en todas las orientaciones con las que puede alcanzar otros puntos. De modo obvio, se dene el espacio de accesibilidad total (en su caso, parcial) de un robot como el conjunto de todos los puntos del espacio totalmente (parcialmente) accesibles para ese robot. La accesibilidad viene limitada por varios factores: de tipo geomtrico (el punto est demasiado alejado para alcanzarlo, aun con el manipulador totalmente extendido), de tipo mecnico (unos enlaces del robot chocan con otros, impidiendo as el acceso a ciertas reas) o de tipo constructivo (las articulaciones tienen lmites a su movimiento, angular o lineal). Muy relacionado con el concepto de accesibilidad est el de manipulabilidad, que tiene que ver con la dicultad de controlar el robot para que acceda a ciertos puntos. Su denicin formal no puede darse hasta el tema 2, pero hay que sealar que existen puntos llamados singularidades que, aun siendo accesibles, requieren ciertas precauciones para llevar el extremo del manipulador hasta ellos. ROB1/5

Apuntes de Robtica

Ingeniera Informtica

Nombre de Movimien. Num. la union relativos de g.l.


Union empotra miento Union pivote (rotacional) 0 traslac. 0 rotac. 1 rotac. 0 traslac. 0

Simbolos (vistas lateral y frontal) C2 C1 C1

C1: cuerpo 1 C2: cuerpo 2

C1 C2 C2 C2 C1 C1 C2
C1

0 rotac. Union 1 traslac. deslizante (traslacional) Union deslizante helicoidal Union pivote deslizante Union apoyo plano Union rotula Union lineal deslizante Union lineal anular Union puntual Union libre 1 rotac. y 1 traslac. conjugadas 1rotac. 1 traslac. 1 rotac. 2 traslac. 3 rotac. 0 traslac.

C2
1

C1

C2

C2
2

C2 C1 C1

C2
3

C1 C1 C2 C1 C1 C2 C2 C2 C1 C1

2 rotac. 2 traslac.

C2
3 rotac. 1 traslac.

3 rotac. 2 traslac. 3 rotac. 3 traslac.

C1

C2

No hay simbolo No hay contacto entre los dos cuerpos

Figura 1.2: Tipos de articulaciones y su representacin

ROB1/6

Tema 2: Mecnica de robots


En este tema se desarrollarn la formulacin y las tcnicas apropiadas para caracterizar mecnicamente el comportamiento de un brazo robot. El brazo, como cualquier otro cuerpo, est sometido a las leyes usuales de la mecnica, las cuales, expresadas en alguna formulacin apropiada (Newton, Lagrange, etc.) debern aplicrsele para conocer cul es su movimiento, o sus condiciones de reposo. Hay dos objetivos ltimos, resultado de dicha aplicacin: conocer la posicin del punto terminal (o de cualquier otro punto) de un brazo robot respecto a un sistema de coordenas externo y jo (el sistema del mundo), y conocer cul ser el movimiento del brazo cuando los actuadores que lo controlan le apliquen determinadas fuerzas y momentos. El anlisis mecnico de un robot puede hacerse bien atendiendo exclusivamente a sus movimientos, o bien a stos y tambin a las fuerzas que actan sobre l. Cuando se estudian exclusivamente los movimientos (posicin y velocidad de cada articulacin o del punto terminal) se dice que hacemos un estudio cinemtico. Podemos pasar: Bien desde las coordenadas propias del robot (ngulos o longitudes de cada articulacin) hasta las coordenadas cartesianas de posicin y orientacin del punto terminal (usualmente, (x, y, z ) y tres ngulos. Esto se llama construir la cinemtica directa, y existe un mtodo sistemtico para hacerlo, basado en la llamada formulacin de Denavit-Hartenberg, que va a ser explicada con detalle inmediatamente. Bien desde las coordenadas cartesianas referidas a algn sistema externo jo a las coordenadas propias del robot (ngulos o longitudes). En esto consiste hallar la cinemtica inversa. No en todos los manipuladores existe una solucin expresable analticamente para este problema, y en la mayora de los casos la solucin no es nica; tambin se vern a continuacin mtodos y ejemplos. Por otra parte, cuando se estudian las fuerzas y momentos que ejerce la carga transportada sobre la ltima articulacin, as como las que ejercen los actuadores, y cada articulacin sobre las contiguas, es posible determinar el movimiento, aplicando las leyes de la mecnica en cualquiera de sus formulaciones (Newton, Lagrange, D'Alembert,...). En esto consiste hacer un estudio dinmico; nosotros lo haremos usando la formulacin de Newton. Para poder expresar de forma apropiada las ecuaciones que caracterizan estos fenmenos necesitamos conocer conceptos bsicos de geometra que permitan expresar las transformaciones entre sistemas de coordenadas. De lo dicho antes, es tambin obvio que necesitaremos conceptos bsicos de mecnica (las leyes de Newton). Cada uno de stos sirve respectivamente para describir el estado del robot nicamente en trminos de su movimiento (estudio cinemtico), y en trminos de las fuerzas y momentos que actan sobre l (estudio dinmico). Finalmente, y si somos capaces de describir la posicin y velocidad del brazo en cada instante, lo seremos igualmente de generar para l una trayectoria que cumpla requerimientos apropiados. Toda esta secuencia de objetivos estructura este tema en las secciones que siguen. ROB2/1

Apuntes de Robtica
2.1. Conceptos bsicos de geometra espacial
2.1.1. Sistemas de coordenadas

Ingeniera Informtica

Sabemos que la posicin de un punto en el espacio eucldeo tridimensional viene unvocamente determinada por tres cantidades, que llamamos sus coordenadas, y decimos que estn expresadas en algn sistema de referencia, formado por tres ejes, usualmente rectilneos. En lo sucesivo usaremos exclusivamente sistemas de referencia rectilneos, ortogonales (es decir, con sus tres ejes perpendiculares dos a dos), normalizados (es decir, las longitudes de los vectores bsicos de cada eje son iguales) y dextrgiros (el tercer eje es producto vectorial de los otros dos). Usaremos, pues, simplemente el trmino "sistema"para referirnos a sistemas ortonormales y dextrgiros. Vase la gura 2.1.
z x y x Sistema no ortogonal y y z z x

Sistema ortonormal dextrogiro: x y = z

Sistema ortonormal levogiro: x y = z

Figura 2.1: Diversos sistema de referencia Las coordenadas de un punto x, denotadas por (x, y, z), son las proyecciones de dicho punto perpendicularmente a cada eje, o, equivalentemente, las componentes del vector que lo une al origen de coordenadas. En lugar de usar stas, nos ser ms conveniente el uso de las llamadas coordenadas homogneas, en la forma

siendo w una cantidad arbitraria, que se suele tomar como 1. Si, como resultado de algn clculo, w fuese distinto de 1, las coordenadas usuales se reconstruyen simplemente dividiendo las tres primeras coordenadas homogneas entre esta cuarta.
2.1.2. Traslaciones y rotaciones

x y z w

donde

x y z

= xw = yw = zw

La traslacin de un punto x por un vector v es obviamente el punto x tal que x = x + v. Esto se puede escribir como

pero tambin como el producto de una matriz por un vector homogneo, en la forma

vx x x y y + = vy vz z z

x y z 1

1 0 0 0

0 1 0 0

0 vx x y 0 vy 1 vz z 0 1 1

ROB2/2

Apuntes de Robtica

Ingeniera Informtica
1

Esto tiene la ventaja de que, si x = H x, entonces x = (H ) la inversa, que resulta ser


(H )1
0 1 0 = 0 0 1

, donde se puede calcular

lo cual es consistente con el hecho de que, respecto a x , x est trasladado por un vector v . Respecto a la rotacin alrededor de un eje, en el caso bidimensional, vase la gura 2.2, en la cual se gira alrededor de un eje perpendicular al plano de la gura.
y x y j i j i x

1 0 0 vx vy vz 0 0 0 1

Figura 2.2: Rotacin alrededor de un eje Llamando i y j a los vectores bsicos del sistema original, e i y j a los del sistema girado, se tiene que cos i + sin j y tambin ji = x = xi + y j = x i + y j = sin i + cos j es decir que xi + yj = x (cos i + sin j) + y ( sin i + cos j) Igualando componente a componente, y escribiendo como matriz,
x y = cos sin sin cos x y

Si generalizamos a tres dimensiones, la coordenada z no vara, y la cuarta coordenada homognea sigue siendo 1, luego

x y z 1

cos sin sin cos 0 0 0 0

0 0 1 0

0 0 0 1

x y z 1

Para hallar la transformacin inversa, basta ver que desde el punto de vista de R , R est rotado un ngulo , luego

x y z 1

cos () sin () sin () cos () 0 0 0 0

0 0 1 0

0 0 0 1

x y z 1

cos sin 0 0 sin cos 0 0 0 0 1 0 0 0 0 1

x y z 1

ROB2/3

Apuntes de Robtica

Ingeniera Informtica

que es ms simple que invertir la matriz, aunque por supuesto, equivalente. En general, si hubiramos rotado alrededor de otro de los ejes bsicos, se puede ver que

Rot(x, ) =

1 0 0 0 cos sin 0 sin cos 0 0 0 cos 0 sin 0

0 0 0 1

Rot(y, ) =

0 sin 0 1 0 0 0 cos 0 0 0 1 0 0 1 0 0 0 0 1

Rot(z, ) =

Ntese el cambio de signo en la rotacin alrededor del eje y, debido a que, si el eje alrededor del cual rotamos nos apunta, los otros dos forman ngulo de 90 en el caso de x y z, pero de 90 en el caso de y . Es claro que se pueden aplicar a un punto tantas transformaciones sucesivas (rotaciones y traslaciones) como se quiera. La operacin resultante vendra expresada por una matriz que sera producto de las matrices de cada operacin, aplicadas en el orden debido , dado que el producto de matrices no es conmutativo. Se pone ms a la derecha la primera transformacin que se aplique. Ej.: Y = T R T R R X signica que se aplica al punto X la rotacin R , seguida de la R , seguida de la traslacin T , luego la rotacin R y por ltimo la traslacin T . Veamos ahora cul sera la matriz de rotacin respecto a un eje cualquiera. Sea un eje que pasa por el origen denido por un vector unitario r = (r , r , r ), alrededor del cual giraremos un ngulo . La matriz ser R . La rotacin se descompondr en otras tres alrededor de los ejes bsicos: (ver gura 2.3): Por este orden: Rotar un ngulo alrededor de x, con lo que P P Rotar un ngulo alrededor de y, con lo que P P Rotar un ngulo alrededor de z, que es la rotacin pedida. Rotar un ngulo alrededor de y, lo que deshace la segunda rotacin. Rotar un ngulo alrededor de x, lo que deshace la primera rotacin. Entonces, R = R R R R R o sea,
0 0 2 3 1 2 1 1 2 1 3 2 x y z r, r, x, y, z, y, x,

cos sin sin cos 0 0 0 0

Rr, =

1 0 0 0 0 c s 0 0 s c 0 0 0 0 1

c 0 s 0 0 0 0 1

0 s 0 c s 1 0 0 s c 0 c 0 0 0 0 0 1 0 0

0 0 1 0

0 0 0 1

c 0 s 0

0 s 1 0 0 c 0 0

1 0 0 0 c s 0 s c 0 0 0

0 0 0 1

ROB2/4

Apuntes de Robtica
Y

Ingeniera Informtica

ry

P
r

ry 2 + rz

rz

rx 1 5

ry 2 + rz

rx

z
3

2 4

P es el trasladado de P por la rotacion 1 (angulo ) P es el trasladado de P por la rotacion 2 (angulo )

Figura 2.3: Rotacin alrededor de un eje arbitrario Ahora bien, de la gura se ve que
s = c = s = c = ry
2 + r2 ry z rz 2 + r2 ry z

rx = rx |r|
2 + r2 ry z

Al multiplicar todo queda:

|r|

2 + r2 ry z

Rr, =

2 rx v + c rx ry v rz s rx rz v + ry c 2 rx ry v + rz s ry v + c ry rz v rx s 2 rx rz v ry s ry rz v + rx s rx v + c 0 0 0

0 0 0 1

siendo s = sin , c = cos y v = 1 cos . Naturalmente, si se hace r = r = 0 se obtiene la rotacin alrededor del eje z, y similarmente con los otros ejes. Debemos hacer hincapi en un detalle importante: cualquier secuencia consecutiva de transformaciones (rotaciones, traslaciones, o la transformacin homognea conjunta) se puede especicar de dos maneras: Realizando la rotacin que lleva un sistema al otro alrededor de uno de los ejes iniciales. En este caso, la matriz que describe esta transformacin deber premultiplicarse por la que ROB2/5
x y

Apuntes de Robtica

Ingeniera Informtica

describa las transformaciones efectuadas hasta ese momento, obteniendo la transformacin total. Realizando la rotacin que lleva un sistema al otro alrededor de uno de los ejes girados, es decir, los que resultaron de la ltima transformacin. En este caso, la matriz que describe esta transformacin deber postmultiplicarse por la que describa las transformaciones efectuadas hasta ese momento, obteniendo la transformacin total.
2.1.3. Descripcin de la orientacin

En vez de describir la orientacin en funcin de las componentes (r , r , r ) de un vector unitario, es apropiado para muchos propsitos describirlas en trminos de tres ngulos. Hay dos representaciones usuales: los llamados ngulos de Euler, y el sistema yaw/pitch/roll (desviacin/elevacin/giro, o, en trminos aeronuticos, deriva/cabeceo/balanceo). Vase la gura 2.4.
x y z
Z=Z Z=Z Y Y X X X X X=X Y r esta en el plano Z/Z p y p esta en el plano X/X/X y esta en el plano X/X X Angulos de Euler X Angulos y/p/r Y=Y r Z Z Z Z Y Y Y

Figura 2.4: Sistemas de ngulos de Euler e y/p/r Los ngulos de Euler permiten jar una orientacin cualquiera en el espacio. Es fcil ver que, dados dos sistemas cualesquiera cuyo origen coincida, uno puede superponerse al otro mediante la aplicacin de tres rotaciones consecutivas, del siguiente modo: Una rotacin de ngulo respecto al eje z Una rotacin de ngulo respecto al eje y (resultante de y por la rotacin anterior) Una rotacin de ngulo respecto al eje z (resultante de z por la rotacin anterior) Entonces,

R,, =

c s s c 0 0 0 0

0 0 1 0

0 0 0 1

c 0 s 0

0 s 0 c s 1 0 0 s c 0 c 0 0 0 0 0 1 0 0

0 0 1 0

0 0 0 1

Ntese la postmultiplicacin, debido a que las rotaciones segunda y tercera se hacen alrededor de los ejes girados. ROB2/6

ccc ss ccs sc cc 0 scc + cs scs + cc sc 0 sc ss c 0 0 0 0 1

Apuntes de Robtica

Ingeniera Informtica
y/p/r

Respecto a la segunda especicacin de orientacin (yaw/pitch/roll, presarse como: Una rotacin de ngulo r respecto al eje x Una rotacin de ngulo p respecto al eje y Una rotacin de ngulo y respecto al eje z De este modo,

), puede ex-

Ry,p,r =

cy sy sy cy 0 0 0 0

0 0 1 0

0 0 0 1

cp 0 sp 0

0 sp 0 1 0 0 1 0 0 0 cr sr 0 cp 0 0 sr cr 0 0 1 0 0 0

0 0 0 1

Ntese la premultiplicacin, por darse todas las rotaciones respecto a los ejes iniciales. Esta matriz deber, sin embargo, modicarse debido a ciertas asignaciones convencionales de direcciones. Vase la subseccin 2.1.5 Como dijimos anteriormente, un sistema de coordenadas es para nosotros un conjunto de tres ejes rectilneos y ortogonales, a cada uno de los cuales se asocia un vector unitario. Esto son sistemas ortonormales, pero adems nos restringimos a sistemas dextrgiros, en los que x y = z . Dados dos sistemas ortonormales dextrgiros (desde ahora, simplemente sistemas) cualesquiera, siempre es posible encontrar la trasformacin que liga las coordenadas de un punto cualquiera respecto al segundo con las coordenadas de ese mismo punto respecto al primero. Esta transformacin sera la que rotase y trasladase apropiadamente el segundo sistema de modo que sus ejes se superpongan a los del primero, y debera ser usada para pre- o postmultiplicar, segn a qu coordenadas queramos referirnos. Para deducir las ecuaciones de transformacin genrica que producirn las coordenadas de un punto cualquiera expresadas en un sistema de referencia a partir de las expresadas en otro, partamos de la gura 2.5. De ella, es claro que, dado un punto arbitrario X , se cumple que OX = OP + P X . Expresando esto en su descomposicin de coordenadas respecto a cada sistema,
1

cycp cyspsr sycr cyspcr + sysr sycp syspsr + cycr syspcr cysr sp cpsr cpcr 0 0 0

0 0 0 1

(2.1)

2.1.4. Transformaciones entre sistemas de coordenadas

xi + y j + z k = px i + py j + pz k + x i + y j + z k

Ahora bien, cada vector bsico del nuevo sistema puede a su vez ser descompuesto en una combinacin lineal de los vectores bsicos del sistema antiguo, en la forma:
i = cos(ix )i + cos(iy )j + cos(iz )k j = cos(jx )i + cos(jy )j + cos(jz )k k = cos(kx )i + cos(ky )j + cos(kz )k
1 Los

levgiros, en los que x y = z , son imagen especular de stos.

ROB2/7

Apuntes de Robtica
Z Z
X

Ingeniera Informtica

k P j

Y
k O i j

Figura 2.5: Transformaciones entre sistemas Por tanto, e igualando componente a componente,
x = px + x cos(ix ) + y cos(jx ) + z cos(kx ) y = py + x cos(iy ) + y cos(jy ) + z cos(ky ) z = pz + x cos(iz ) + y cos(jz ) + z cos(kz )

o expresado como matriz,


x y z 1

cos(ix ) cos(jx ) cos(kx ) px x cos(iy ) cos(jy ) cos(ky ) py y cos(iz ) cos(jz ) cos(kz ) pz z 0 0 0 1 1

Ntese que la matriz homognea ha subsumido rotacin y traslacin. Adems, las tres primeras columnas son las componentes de los vectores bsicos del nuevo sistema referidos al antiguo que, puesto que se trata de vectores unitarios, son los cosenos de los ngulos que cada nuevo vector forma con cada uno de los antiguos. Podemos considerar la matriz de transformacin homognea como descompuesta del siguiente modo:

T =

R33 f13

p 3 1 11

Rot. P ersp.

T ras. Esc.global

La submatriz de rotacin 3 3 cumple que: det(R) = 1, y si no hay perspectiva ni escalado, det(T ) = 1 El producto escalar de cualesquiera dos columnas es 0 R = R , o sea, una matriz de giro es ortogonal El vector f de la cuarta la se usa para dar cuenta de la transformacin perspectiva introducida por cmaras, y la componente de la (cuarta la, cuarta columna) representa un escalado global. Durante este tema no se considerarn tales aplicaciones, con lo que f = (0, 0, 0) y el escalado global ser 1. ROB2/8
1 T

Apuntes de Robtica
2.1.5. El sistema de la mano

Ingeniera Informtica

Se suele emplear para las componentes de la matriz de transformacin homognea la notacin n o a p


x x x x

Esto se hace porque la idea nal es realizar una cadena de transformaciones entre sistemas de coordenadas que relacione las coordenadas de los objetos medidas respecto a un ltimo sistema solidario al punto terminal (la pinza) del brazo con las coordenadas respecto a un sistema jo. El ltimo sistema se pondr de tal modo que su origen coincida con el punto terminal (el punto al centro de las dos garras de la pinza), y adems: Su eje z se site en la direccin de avance (aproximacin, a) Su eje y se site en la direccin de orientacin (de garra a garra de la pinza, o) Su eje x resultar normal a los dos anteriores ( n) Vese la gura 2.6

n y T = nz

oy ay py oz az pz 0 0 1

n o a p 0 0 0 1

o n a

Figura 2.6: Esquema del sistema de la pinza (punto terminal) Esta asignacin tiene consecuencias sobre la eleccin de los ngulos de orientacin. En concreto: al haberse deducido estos ngulos respecto a cualquier sistema de coordenadas jado segun las reglas, en particular, el del punto terminal del robot, no coinciden con la intuicin, que los supone jados respecto a los ejes del mundo. Cuando la mano del robot apunta al frente, entendemos como angulo de yaw su movimiento horizontal, o sea, alrededor del eje z del mundo, no alrededor del z de la mano (vector de aproximacin) que nos apunta frontalmente. Para ser consistentes con la forma en la que se suelen dar (y, p, r) deberemos, pues, permutar los ejes en los cuales estaban deducidos, del modo: x z, y x y z y, con lo que la matriz R dada por la ecuacin 2.1 quedar:
y,p,r

Ry,p,r =

cyspsr sycr cyspcr + sysr cycp 0 syspsr + cycr syspcr cysr sycp 0 cpsr cpcr sp 0 0 0 0 1

2.1.6. Inversa de una transformacin homognea

En varias ocasiones ser necesario calcular la inversa de una transformacin. Para ello, veamos la forma general de la inversa de una matriz de transformacin homognea. Dada ROB2/9

Apuntes de Robtica

Ingeniera Informtica

una matriz M de la forma

M =

hallaremos explcitamente cada elemento m (i, j) de la inversa de acuerdo a la frmula usual, (1) det(A(j, i)), donde A(j, i) es la matriz adjunta al elemento (i, j), obtenida al suprimir de M la la i, columna j. Hallemos dos de ellos:
1 i+j

nx ox ax px ny oy ay py nz oz az pz 0 0 0 1

oy ay py 1 oz az pz = det ( A ( n )) = m x 11 0 0 1
1 m14

= oy az oz ay = (o a)x = nx

donde se ha usado que el producto vectorial de dos de los vectores bsicos es el otro. Igualmente se efectan las operaciones para el resto de elementos, obteniendo nalmente que
M 1
o = x ax

ox ax px = det(A(041 )) = oy ay py oz az pz

ox oy oz = ax ay az px py pz

= (o a) p = n p

nx ny nz np oy oz op ay az ap 0 0 0 1

2.2. Cinemtica directa del manipulador


2.2.1. El formalismo de Denavit-Hartenberg

Despus de todo lo visto, estamos ya en condiciones de abordar el problema de la cinemtica directa, el cual trata de encontrar la forma explcita de la funcin que relaciona el espacio de articulaciones con el espacio cartesiano de posiciones/orientaciones. Esta funcin
f: J R6

toma como argumento un vector en el espacio de articulaciones, que tiene tantas componentes como grados de libertad tenga la cadena cinemtica que se considere, y devuelve un vector de 6 componentes; las tres primeras sern la posicin en el espacio del punto terminal de la cadena, expresada en un sistema de referencia externo, y las tres ltimas, la orientacin, expresada bien como las componentes (a , a , a ) del vector de aproximacin, bien como ngulos de orientacin (Euler o y/p/r). La forma en que conseguiremos conocer este vector de R ser mediante la construccin de la matriz de transformacin homognea T que relaciona el sistema solidario al punto terminal con un sistema de referencia jo arbitrariamente escogido, que llamaremos sistema del mundo. En principio, cada uno de los elementos (a , a , a , o , o , o , n , n , n , p , p , p ) de la matriz T ser funcin de algunas o todas las variables de articulacin, y de las constantes geomtricas del manipulador. Segn se vi al detallar la forma explcita de la matriz T , multiplicndola por el vector (0, 0, 0, 1), que expresa las coordenadas homogneas del punto terminal respecto a su propio sistema, obtendremos stas respecto al sistema del mundo. Y, por otra parte, segn se vi en la seccin anterior, existen frmulas que ROB2/10
x y z 6 x y z x y z x y z x y z

Apuntes de Robtica

Ingeniera Informtica

relacionan los ngulos de orientacin en cualquiera de sus expresiones con los elementos de la submatriz de rotacin de T . Seguidamente se describe con detalle el proceso de construccin de T para cademas cinemticas abiertas, en las que cada articulacin tenga un slo grado de libertad. El caso de las cadenas cinemticas cerradas es ms complejo, y queda fuera del alcance de este curso. En cambio, el caso de articulaciones con ms de un grado de libertad no presenta ningn problema: bastara con considerar la articulacin como si se tratase de dos, unidas por un enlace cticio de longitud 0. Sustancialmente, el proceso consiste en jar un sistema de coordenadas a cada enlace, que se mover con l, de acuerdo a un conjunto de normas jas. A continuacin, identicar ciertos parmetros geomtricos que lo relacionan con el sistema jo al siguiente enlace, y usarlos para escribir la matriz de transformacin homognea entre cada par de sistemas. Finalmente, el producto de todas las matrices de transformacin generar la matriz T . El conjunto de normas que establece cmo deben jarse los sistemas de coordenadas se conoce como convenio de Denavit-Hartenberg, descrito por stos en 1955, y a los parmetros geomtricos que relacionan los sistemas, parmetros de Denavit-Hartenberg (desde ahora, DH). Comenzaremos por establecer convenciones para la nomenclatura: Segn se vi en el tema 1, en cadenas cinemticas abiertas cada par enlace-articulacin (link-joint) era un grado de libertad. Numeraremos los links y joints secuencialmente, desde el inicio de la cadena. La base de sta, ja normalmente al suelo, ser el enlace (link) 0, y no se cuenta como grado de libertad. La articulacin (joint) 1 ser la que conecte la base al primer enlace mvil; los joints comienzan, pues, a numerarse desde 1, y no existe joint al nal del ltimo enlace. Vase la gura 2.7.
2
Fijo

J4 L1 J
1

L4
2

L3 J3

Figura 2.7: Cadena cinemtica abierta y su numeracin Eje de una articulacin es la recta denida como: La direccin de desplazamiento, en articulaciones traslacionales El eje de giro, en articulaciones rotacionales A continuacin los parmetros DH de cada enlace son cuatro nmeros reales, dos de ellos representando ngulos, y los otros dos, distancias, denidos del siguiente modo: a es la mnima distancia (distancia perpendicular) entre el eje de la articulacin i y el eje de la i + 1. Por extensin, tambin denotaremos por a al segmento de recta a lo largo de cual se da precisamente esa mnima distancia entre ejes. es el ngulo que forman el eje i y el i + 1, medido en un plano perpendicular al segmento a d es la distancia entre los puntos de interseccin de la normal a los ejes i/i + 1 con el eje i, y la normal a los ejes i 1/i tambin con el eje i, medida a lo largo del este eje.
i i i i i

es la notacin original de Denavit y Hartenberg, y es la ms usual. Pero existe la notacin modicada, que comienza a numerar los enlaces en el 1, usada, p.ej., por Craig

2 Esta

ROB2/11

Apuntes de Robtica
i

Ingeniera Informtica

es el ngulo entre la normal a los ejes i 1/i y la normal a los ejes i/i + 1, medido en un plano perpendicular al eje i. Vase la representacin de estos parmetros en la gura 2.8. Obsrvese que basta el conocimiento de los dos ejes en los extremos de un enlace (diagamos, el i) para conocer y a ; sin embargo, es necesario conocer los ejes anterior y siguiente para determinar y d . Daremos para estos parmetros una denicin alternativa cuando hayamos jado los respectivos sistemas de coordenadas.
i i i i
Eje i Eje i Enlace i1 Enlace i ai di i
Linea paralela a la normal eje i / eje i+1

Eje i+1 Enlace i ai

Eje i+1

Eje i1

a i1

Enlace i aislado

Enlaces i e i1

Figura 2.8: Parmetros DH de un enlace genrico Ahora, las normas para determinar los ejes de cada sistema ortonormal asociado a un link son las que siguen: El eje z es el eje de la articulacin i. (Con lo que z es el de la i + 1). No importa el sentido a lo largo de la recta en que se oriente. Se recomienda orientar todos los z que sigan la misma direccin en el mismo sentido. El eje x debe escogerse perpendicular a su propio z (z ) y tambin al z anterior (z ) y a lo largo de la perpendicular comn (el segmento a ). El eje y se determina de tal modo que el sistema forme un triedro directo (es decir, que x y = z ). El origen se ja en la interseccin de la normal eje i-1/eje i (es decir, el segmento a ) con el eje i. Vanse en la gura 2.9 los sistemas de coordenadas i 1 e i situados sobre los enlaces del ejemplo anterior. Hay algunas excepciones y casos particulares que deben tenerse en cuenta: El eje x debe jarse arbitrariamente como cualquier perpendicular a z , dado que no existe ningn z al cual hacerle ser tambin perpendicular. Anlogamente, el origen del sistema 0 es un punto arbitrario sobre el eje z . Debe existir un ltimo sistema de coordenadas, jo a la mano o herramienta, que no sigue las mismas reglas que los anteriores. Debe situarse de modo que su eje z est en la direccin de aproximacin (el avance natural de la mano) y su eje y (vector de orientacin) debe apuntar de garra a garra de la pinza (en caso de pinzas con simetra cilndrica, es arbitrario). Este sistema "especial" slo debe aadirse si el ltimo sistema obtenido por las reglas usuales no cumpliese estas condiciones. En ese caso, la transformacin entre el ltimo sistema natural y este sistema especial es ja, y se halla por observacin directa. ROB2/12
i1 i i i i1 i i i i i i1 0 0 1 0

Apuntes de Robtica
Linea paralela al eje z
i1

Ingeniera Informtica

Eje i

i Eje i+1 Enlace i z x


i i

Enlace i1 Eje i1 x di z i1 a i1

ai
i1

yi

i
Linea paralela a la normal eje i / eje i+1

yi1

Figura 2.9: Sistemas de coordenadas jos a una articulacin Cuando dos ejes z consecutivos son paralelos, hay innitas perpendiculares comunes. En ese caso, lo normal es tomar el origen a la altura del centro de la articulacin, y el eje x a lo largo de la normal comn que pasa por ese centro. Cuando dos ejes z consecutivos se intersectan, determinan un plano. La normal comn es la normal al plano, pero el segmento a tiene longitud nula. En ese caso el eje x se escoge normal al plano que determinan los dos z, en cualquiera de los dos sentidos. El origen se toma en el punto de interseccin de los dos ejes z. Cuando dos ejes z consecutivos son colineales (estn superpuestos), el origen se ja arbitrariamente, as como la direccin de x, a lo largo de cualquier perpendicular a los z (que son la misma recta). Se aconseja en ese caso tomar la direccin de x lo ms parecida posible a la direccin del x anterior. a , que no est denido, se toma como 0. Ntese que: En una articulacin rotacional, es el ngulo de rotacin, y d , a y son constantes. En una articulacin traslacional, d es distancia de traslacin, y , y son constantes. a es tambin constante, y usualmente 0 (suele corresponder al ltimo de los casos particulares anteriores). Todo parmetro constante en un robot lo es por construccin del mismo, y permanece constante en toda circunstancia, salvo que se altere mecnicamente al robot. La accin de los actuadores que provocarn el movimiento slo cambia el parmetro variable de cada articulacin, para rotacionales, y d para traslacionales. Por otra parte, lo normal es construir robots en los que los ejes de las articulaciones sean o bien paralelos, o bien perpendiculares entre s; esto hace que los valores para suelan ser bien 0 , 90 , 180 270 . El siguiente paso es determinar la transformacin que llevara el sistema i 1 hasta el i. Ntese que podemos hacerlos coincidir aplicando sucesivamente las siguientes transformaciones: Rotar alrededor de z un ngulo . Esto deja los ejes x y x paralelos, pues deja a las rectas a y a en el mismo plano, y siendo ambas perpendiculares a z . (aunque es el mismo que z ) el origen una distancia Trasladar a lo largo del eje z d . Esto deja los ejes x y x colineales. Ntese que no por ello los ejes z y z son an ROB2/13

i i i i i i i i i i i i i 0 0 0 0 i1 i i1 i i1 i i1 i1 i i i1 i i1 i

Apuntes de Robtica
i i

Ingeniera Informtica

coincidentes Trasladar a lo largo del eje x una distancia a . Esto hace coincidir los orgenes, y superpone los vectores bsicos en la direccin i (x y x ). Rotar alrededor de x (o de x , ahora coinciden) un ngulo . Esto har coincidir con z (y, por tanto, y con y ) y est concludo. z As pues, podemos escribir la transformacin desde el sistema i 1 hasta el i como
i1 i i1 i i i1 i i1 i i1

donde las matrices se han postmutiplicado, pues las transformaciones se efectan siempre respecto a los nuevos ejes que van resultando de la transformacin anterior. En forma explcita,

i1

Ai = Rotzi1 ,i T r(0,0,di ) T r(ai ,0,0) Rotxi ,i

Ai =

ci si si ci 0 0 0 0 0 0 1 0

0 0 1 0 0 0 di 1

0 0 0 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 di 1

1 0 0 0

0 1 0 0

0 0 1 0

ai 0 0 1

1 0 0 0 ci si 0 si ci 0 0 0

0 0 0 1

El resultado nal es la matriz DH para el enlace i, la cual, conociendo las caractersticas geomtricas de dicha articulacin y de su enlace, da la transformacin que lleva de coordenadas expresadas en el sistema i a coordenadas expresadas en el sistema i 1. Igualmente, da la posicin del origen del sistema i respecto al i 1 (viendo la 4 columna), as como su orientacin (viendo la submatriz de rotacin). Ahora estamos en condiciones de dar las deniciones alternativas para los parmetros de DH, que son: a es la distancia perpendicular (distancia mnima) entre los ejes z y z , medida en la direccin positiva de x . es el ngulo que forma el eje z con el eje z , girando alrededor de x , con x apuntando hacia el observador. es el ngulo que forma el eje x con el eje x , girando alrededor de z , con z apuntando hacia el observador. d es la distancia que queda entre los orgenes de los sistemas i 1 y i despus de haber trasladado el origen i a lo largo de la perpendicular comn a hasta situarlo sobre el eje z . Su signo viene dado por el eje z . Una vez todos los parmetros estn identicados, y las matrices DH escritas, recordemos que lo que se pretende es encontrar la transformacin entre el sistema del mundo (sistema 0) y el ltimo (sistema n). Es obvio que
a i i1 i i i i1 i i i i i1 i i1 i1 i i i1 i1 0

ci si si ci 0 0 0 0

1 0 0 ai ci si ci si si ai ci 0 ci si 0 si ci ci ci si ai si = 0 si ci 0 0 si ci di 0 0 0 1 0 0 0 1

Cada elemento de la matriz A es funcin de , a , y d , ( y a constantes para cada robot, y d o bien variables para cada tipo de articulacin), y por tanto cada elemento de A es, en principio, funcin de todos los ( , a , , d ) con i = 1 . . . n. Resumiendo: los pasos que deben seguirse para la construccin de la cinemtica directa son: ROB2/14
i1 i i i i i i i i i 0 n i i i i

An = 0 A1 1 A2 . . . n1 An

Apuntes de Robtica

Ingeniera Informtica

1. Identicar cuntos grados de libertad tiene el robot, y cuntas articulaciones; si tuviera alguna articulacin con ms de un grado de libertad (digamos, n) habr n sistemas superpuestos en un punto. 2. Asignar los ejes z, sabiendo que z es el eje de la articulacin i. 3. Asignar todos los ejes x, sabiendo que x es perpendicular a z , y a z y va en la direccin de la perpendicular comn . 4. Asignar los ejes y, de modo que se cumpla que x y = z 5. Determinar los parmetros ( , a , , d ) de cada enlace por inspeccin visual. 6. Construir la tabla de parmetros, y a partir de cada una de sus las, usando la frmula general de la matriz DH, escribir cada una de las A . 7. Multiplicar todas ellas para generar la A .
i1 i i i1 i i i i i i i i1 i 0 n

2.2.2. Estudios de caso

Veremos a continuacin dos ejemplos interesantes de robots de 6 grados de libertad a los que se aplicarn las normas anteriores con objeto de construir la matriz de transformacin homognea nal entre el sistema del mundo y el punto terminal. Este manipulador, construdo en la Universidad de Stanford con propsitos principalmente acadmicos, tiene 5 grados de libertad rotacionales, y uno traslacional, en el orden R T R , comenzando desde la base. Su estructura puede verse en la gura 2.10. Ntese que el robot tiene 5 enlaces, que numeraremos de 1 a 5, sin contar el nmero 0, que como dijimos debe estar jo al suelo, y en este caso es el propio suelo. El enlace (link) L es la columna vertical; el enlace L es el hombro, que gira y lleva jada una caja hueca, dentro de la cual se desliza la pieza prismtica que es el enlace 3. El enlace 4 es la pequea pieza prismtica que gira alrededor de un eje longitudinal al prisma, y el L es la pieza con dos caras paralelas que gira sobre un eje jo a la anterior. No existe enlace fsico L , pero debemos considerar uno cticio en el extremo del brazo que dar cuenta del ltimo grado de libertad. Ntese que ste no es el correspondiente al sistema especial jo al punto terminal, que slo cuando hayamos terminado la asignacin sabremos si debemos o no aadir. Identiquemos los ejes z: z es vertical, es el eje del sistema del mundo, de modo que es absolutamente jo, y se le elige de modo que coincida con el eje de la primera rotacin. z es horizontal; es el eje de la segunda rotacin, y est jo al hombro, de modo que el resto del brazo gira alrededor de l, mientras l mismo gira con el hombro alrededor de z z es un eje de traslacin, y sigue la direccin del enlace L . En la posicin concreta en la que se ha dibujado el robot, es horizontal, pero en general est inclinado al rotar el hombro. z sigue tambin la direccin de z , y es el primer eje de rotacin de la mano. En la posicin dibujada, es horizontal, pero se le aplica en esto la misma consideracin que a z z es el segundo eje de rotacin de la mano, y en esta posicin aparece vertical, aunque en general se encuentra sobre un plano vertical perpendicular al eje anterior. ROB2/15
2 3 1 2 5 6 0 1 1 2 3 3 2 2 4

El brazo de Stanford

Apuntes de Robtica
z5 6 z6=a x6=n d6 y6=o z3 4 x3 d3 y5 z4 x5 y3 5 x 4 y4

Ingeniera Informtica

Origenes coincidentes (d 4 = d 5 = 0) z 2 x2 2 z1 x1 y1 d1 y0 1 z0 x 0 Sistema del mundo d2

y2

Figura 2.10: Esquema del brazo de Stanford es el tercer y ltimo eje de rotacin de la mano, y apunta en su propia direccin. En este caso tambin es horizontal. z se sita colineal (superpuesto) a z . Aun no habiendo un enlace fsico al que vaya unido, es necesario incluirlo para que de cuenta de la ltima rotacin. Ntese que cuando las pinzas cambian su orientacin, x e y girarn con ellas, pero no el sistema 5. Por otra parte, el robot tiene 6 grados de libertad; por ello, debe haber 6 sistemas mviles (los nmeros 1 a 6, recordemos que el 0 era jo). Ahora jaremos los ejes x: x ser perpendicular a z , y por lo tanto horizontal, pero al no haber un eje z anterior, su direccin se puede elegir. Se elige hacia la derecha, como se ve en la gura. x debe ser perpendicular a su propio z (z ) y al z anterior ( z ). Estos dos ejes se cortan, y determinan un plano vertical. As pues, deber x ser perpendicular a un plano vertical, y en la posicin dibujada, hacia adelante o hacia atrs. Se elige hacia atrs. x es perpendicular a z y a z , que tambin se cortan, determinando un plano horizontal, por lo que x deber ir hacia arriba o hacia abajo. Se elige hacia arriba. x es un caso especial. Como z y z son coincidentes, hay innitas direcciones perpendiculares. Se escoje una, en este caso, hacia la izquierda. x ser perpendicular a z y a z , y como stos se cortan determinando un plano que contendra al eje z , x estara en dicho plano, y en este caso va hacia la izquierda, aunque girar estando siempre en el plano vertical antedicho. x est en el mismo caso, y en el mismo plano que el anterior. La posicin concreta que se ha escogido para dibujar no es particularmente indicativa. Parece dar a entender que que z y z siempre apuntan al frente (y, por tanto, que x y x coinciden). Esto no es cierto; al girar un ngulo arbitrario alrededor de z y otro ngulo cualquiera alrededor de z , z seguir apuntando al frente, pero no as z ROB2/16
z5
6 5 6 6 0 0 1 1 0 1 2 1 2 2 3 2 3 4 3 4 2 4 5 5 3 5 3 3 4 5

Apuntes de Robtica
x6
5 6 i i i

Ingeniera Informtica

se escoge arbitrariamente, por ser z y z colineales. En este caso, hacia la izquierda. Finalmente, los ejes y se escogen de modo que x y = z . Respecto a los orgenes, el del sistema 0 se ja arbitrariamente al suelo. Los de los sistemas 1 y 2 vienen determinados sin posibilidad de eleccin, ya que hay un nico punto donde z corta a z , y otro punto nico donde z corta a z . El del sistema 3 puede ponerse en cualquier punto a lo largo de la lnea, pero sabiendo que se desplazar con el prisma mvil. Se escoge ponerlo en el punto de inicio de la mano. Los orgenes 4 y 5 tambin son unvocos, dado que sus correspondientes ejes z se cortan. El origen del sistema 6 se escoge en el centro de la pinza. De este modo, si la orientacin de este sistema es adecuada, podra servir como sistema nal. Con respecto a esto, nos preguntamos si necesitamos poner otro sistema extra en la mano. Obsrvese que el ltimo sistema que nos result por aplicacin de las reglas era el 6, y que ste tiene: Su eje z en la direccin de aproximacin de la mano Su eje y en la direccin de orientacin (de garra a garra de la pinza) Su eje x normal a stos dos Por tanto, la convencin para los vectores n, o y a se cumple, y no es necesario aadir ningn otro sistema. Ahora, llenaremos la tabla con los parmetros DH de cada articulacin. De acuerdo a las deniciones dadas anteriormente, tendremos: es el ngulo entre z y z , girando alrededor de x , con x apuntando hacia el observador. En este caso, el observador mirara desde atrs. Vera a z apuntar hacia arriba, y a z hacia la derecha; el ngulo sera, pues, . a es nula, pues es la distancia entre z y z (a lo largo de la perpendicular comn) y stos se cortan. d es la distancia entra los orgenes, medida a lo largo de z , despus de haber trasladado el origen 0 a lo largo de la perpendicular comn. Al no haber perpendicular comn, no es necesario trasladar, y d es simplemente distancia entre orgenes. Es constante, y fsicamente es la altura de la columna. es el ngulo entre x y x girando alrededor de z , con z apuntando al observador. En este caso, y tal como se ha dibujado, el observador mirara desde arriba, vera x hacia el oeste, y x hacia el norte, de modo que el ngulo sera de . Pero no es constante, se trata precisamente de la variable de articulacin que representa el giro alrededor de la columna vertical. Anlogamente se obtienen los parmetros para las dems articulaciones, obteniendo al nal la tabla siguiente, en la que se indican entre parntesis los valores que son variables, y cuyo valor es el correspondiente a la posicin concreta en que se ha dibujado la gura.
0 1 1 2 1 0 1 1 1 0 1 2 1 0 1 1 0 1 1 0 1 0 0 0 1 2

Articulacion i i ai 1 ( 2 ) 0 2 2 ( ) 0 2 2 3 2 0 0 4 (0) 0 2 5 (0) 0 2 6 (0) 0 0

di d1 = 412mm. d2 = 154mm. (d3 ) 0 0 d6 = 263mm.

ROB2/17

Apuntes de Robtica

Ingeniera Informtica

i1

El vector de articulaciones es en este caso


J =

1 2 d3 4 5 6

Ahora se pueden escribir las matrices de transformacin sustituyendo en la frmula general:

Ai

para cada articulacin i,


0 s2 0 0 c2 0 1 0 d2 0 0 1 0 s4 0 0 c4 0 1 0 0 0 0 1 s6 0 0 c6 0 0 0 1 d6 0 0 1

A1 =

A3 =

A5 =

c1 s1 0 0 0 1 0 0 c5 s5 0 0

0 s1 0 c1 1 0 0 0 1 0 0 0 0 0 0 1 d3 0 0 1 0 s5 0 0 c5 0 1 0 0 0 0 1

0 0 d1 1

A2 =

A4 =

A6 =

c2 s2 0 0 c4 s4 0 0 c6 s6 0 0

Finalmente, debern multiplicarse todas las matrices. Dos de los productos parciales son:

A3 = 0 A1 1 A2 2 A3 =

c1 0 s1 0 s1 0 c1 0 0 1 0 d1 0 0 0 1

c2 s2 0 0

0 s2 0 0 c2 0 1 0 d2 0 0 1

0 1 0 0

1 0 0 0

0 0 0 0 1 d2 0 1

c1 0 s1 0 s1 0 c1 0 0 1 0 d1 0 0 0 1

0 c2 s2 d3 s2 0 s2 c2 d3 c2 1 0 0 d2 0 0 0 1

Como comprobacin, sea la posicin dibujada en la que = , siendo l la longitud a la que el prisma est extendido. En ese caso,
1 2

s1 c1 c2 c1 s2 d3 c1 s2 d2 s1 c1 s1 c2 s1 s2 d3 s1 s2 + d2 c1 0 s2 c2 d3 c2 + d1 0 0 0 1
2

= 2

yd

=l

A3 =

1 0 0 0

0 0 1 0

0 d2 1 l 0 d1 0 1

que es lo esperado, puesto que, de la gura, ntese que, respecto al sistema 0 (sistema del mundo) el origen del sistema 3 est en las coordenadas (d , l, d ), y adems, que el eje x , referido al sistema del mundo, tiene por componentes (1, 0, 0) (va en la direccin de x ), as como los ejes y y z van respectivamente en las direcciones de z e y , y por tanto sus componentes son (0, 0, 1) y (0, 1, 0). ROB2/18
2 1 3 0 3 3 0 0

Apuntes de Robtica

Ingeniera Informtica

Por otra parte, la transformacin entre el sistema del inicio de la mano y el punto terminal se obtendracomo:
c4
s 3 A 6 = 3 A4 4 A5 5 A 6 = 4 0

0 s4 0 c4 1 0 0 0 0 0 0 1

0 0 0 1

s 5 0

c5 0 s5 0 c5 1 0 0 0 0

0 0 0 1

s 6 0

c6 s6 c6 0 0 0

0 0 0 0 1 d6 0 1

c4 0 s4 s4 0 c4 0 1 0 0 0 0

c5 c6 c5 s6 s5 d6 s5 s5 c6 s5 s6 c5 d6 c5 s6 c6 0 0 0 0 0 1

La transformacin nal se obtendra multiplicando la


El RTX/RT100 c
3

c4 c5 c6 s4 s6 c4 c5 s6 s4 s6 c4 s5 d6 c4 s5 s4 c5 c6 + c4 s6 s4 c5 s6 + c4 s6 s4 s5 d6 s4 s5 s5 c6 s5 s6 c5 d6 c5 0 0 0 1
0

A3

por la A .
3 6

Los robots RTX y RT100 son manipuladores, construdo por una rma inglesa con propsitos de uso cientco, o para movimiento de objetos ligeros, tienen, igual que el brazo de Stanford, 5 grados de libertad rotacionales, y uno traslacional, pero esta vez el orden es T R , comenzando desde la base. Su estructura puede verse en la gura 2.11.
5
Correa del eje z Hombro Motor del hombro Parte superior del brazo

Motor del yaw Motor del antebrazo

Tubo para cables Polea intermedia Antebrazo Eje de la mueca Mueca y mano Motoreductor (eje z) Placa de conexiones Base

3 RTX

Figura 2.11: Estructura del RT100 En cuanto a sus dimensiones, y vistas lateral y superior, vase la gura 2.12.
y RT100 son marcas registradas de Oxford Intelligent Machines, Ltd.

ROB2/19

Apuntes de Robtica
694 mm 254 mm 254 mm

Ingeniera Informtica

Eje del elbow


180
0

Eje del yaw

(shoulder)

Eje del shoulder

915 mm
0

151

98

Desplazamiento en zed

180

(elbow)

220

(yaw)

33 mm

90 mm

Vista lateral

Vista superior

Figura 2.12: Esquema y cotas del robot RT100 La colocacin de los ejes se har segn las reglas; vase la gura 2.13
Z1 X1
2

Z2
3 a2 d3

Y1

Y2 X2
a3 d4

Z3
4

Y3 X4 X3 Y4 Z4,Y5 Y6 Z5 X5
d6

Z6
6

Z0

X6

X0 Y0

Figura 2.13: Colocacin de los sistemas en el RT100 Identiquemos los ejes z: z es vertical, es el eje del sistema del mundo, de modo que es absolutamente jo, y se le elige de modo que coincida con el eje de la primera traslacin. z es tambin vertical; es el eje de la primera rotacin, (segundo grado de libertad) y en este caso, coincide con z z es otro eje de rotacin, tambin vertical (por tanto, paralelo a z , y jo al enlace 2 (el primer elemento del brazo). z sigue tambin la direccin de z , y es el primer eje de rotacin de la mano (el que dar el ngulo de yaw). Es tambin vertical, y se mueve con el enlace 3 (el segundo elemento del brazo). ROB2/20
0 1 0 2 1 3 2

Apuntes de Robtica
z4
5 3

Ingeniera Informtica

es horizontal, y por tanto perpendicular a z , y dar el ngulo de inclinacin de la mano (pitch). z va hacia el exterior, y en la posicin dibujada es horizontal, aunque se inclinar con la mano. z se sita colineal (superpuesto) a z . Aun no habiendo un enlace fsico al que vaya unido, es necesario incluirlo para que de cuenta de la ltima rotacin (el ngulo de roll), Ntese que cuando las pinzas cambian su orientacin, x e y girarn con ellas, pero no el sistema 5. Por otra parte, el robot tiene 6 grados de libertad; por ello, debe haber 6 sistemas mviles (los nmeros 1 a 6, recordemos que el 0 era jo). Ahora jaremos los ejes x: x ser perpendicular a z , y por lo tanto horizontal, pero al no haber un eje z anterior, su direccin se puede elegir. Se elige hacia la izquierda, (mirando el robot de frente) como se ve en la gura. x debe ser perpendicular a su propio z (z ) y al z anterior ( z ). Estos dos ejes son colineales, por tanto cualquier perpendicular comn ser vlida. Se escoge la que sigue la misma direccin que el x anterior. x es perpendicular a z y a z , y sigue la direccin de la perpendicular comn, que va a lo largo del primer elemento del brazo. Tal como est dibujado, apunta hacia afuera. x es exactamente el mismo caso que x , y se le aplican, por tanto, las mismas considereciones. x ser perpendicular a z y a z , y como stos se cortan determinando un plano vertical cuyo vector normal sera (en la posicin del dibujo) y . x sera perpendicular a dicho plano, y en este caso va hacia atrs, aunque girar con el yaw. x es perpendicular a z y a z , que determinan un plano que en el dibujo es horizontal, luego x sera as vertical, y se escoge hacia abajo. No obstante, ntese que se inclinar con la mano. Cuando sta estuviese vertical (pitch de 90 ) x se habra puesto horizontal. x es perpendicular a los ejes colineales z y z , luego hay innitas elecciones; se escoge una por semejanza con x . Finalmente, los ejes y se escogen de modo que x y = z . Respecto a los orgenes, el del sistema 0 se ja arbitrariamente al suelo. El del sistema 1 sube y baja con todo el brazo. El del sistema 2 se podra poner a cualquier altura, se escoge el centro de rotacin de su articulacin. Lo mismo se puede decir del origen 3. El 4, sin embargo, est unvocamente determinado por la interseccin de z3 y z4. Lo mismo ocurre con el 5, que adems resulta estar superpuesto al 4. El origen 6 se podra escoger a lo largo de la recta que sigue la direccin de la mano; se toma en el centro de la pinza (punto terminal), por si de este modo el sistema 6 pudiera servir como ltimo sistema. Nos preguntamos si necesitamos poner otro sistema extra en la mano. Obsrvese que el ltimo sistema que nos result por aplicacin de las reglas era el 6, y que ste tiene: Su eje z en la direccin de aproximacin de la mano Su eje y en la direccin de orientacin (de garra a garra de la pinza) Su eje x normal a stos dos Por tanto, la convencin para los vectores n, o y a se cumple, y, como en el caso del brazo de Stanford, no es necesario aadir ningn otro sistema. Ahora, llenaremos la tabla con los parmetros DH de cada articulacin. De acuerdo a las deniciones dadas anteriormente, tendremos: es el ngulo entre z y z . Por ser colineales, es 0. a es nula, pues no hay distancia entre z y z . d es la distancia entra los orgenes, medida a lo largo de z , despus de haber trasladado ROB2/21
6 5 6 6 0 0 1 1 0 2 1 2 3 2 4 3 4 0 4 5 4 5 5 0 5 6 5 6 5 i i i 1 0 1 1 0 1 1 0

Apuntes de Robtica
1

Ingeniera Informtica

el origen 0 a lo largo de la perpendicular comn. Al no haber perpendicular comn, no es necesario trasladar, y d es simplemente distancia entre orgenes. Es precisamente el primer grado de libertad, d. es el ngulo entre x y x girando alrededor de z , con z apuntando al observador. En este caso, y tal como se ha dibujado, el observador mirara desde arriba, y vera x y x superpuestos, luego es constante, e igual a 0. es el ngulo entre z y z . Por ser paralelos, es 0. a es la distancia entre z y z , que es constante e igual a la longitud del primer elemento del brazo. d es la distancia entre los orgenes, despus de haber trasladado el origen 2 a lo largo de la recta a . Al hacer esto, quedaran superpuestos, pues el origen 2 est a la misma altura que el 1, y por tanto d es 0. es el ngulo entre x y x girando alrededor de z , con z apuntando al observador. En este caso, y tal como se ha dibujado, el observador mirara desde arriba, y vera x apuntando hacia el oeste, y x hacia el sur, luego el ngulo sera de , aunque cambia con el giro, por ser precisamente la variable de articulacin. Sobre el sistema 3, vale todo lo dicho para el dos, excepto el hecho de que en la posicin de dibujo, x y x son paralelos, y por tanto vale 0, y adems que una vez trasladado el origen 3 a lo largo de a , no se superpondra con el dos, sino que quedara por debajo. Por tanto, hay una distancia d , que es constante y negativa. es el ngulo entre z y z girando alrededor de x con x mirando al observador. El observador mirara, pues, desde atrs, y vera z hacia el norte, y z hacia el oeste, luego valdr . a valdr 0, pues z y z se cortan. es el ngulo entre x y x girando alrededor de z , con z apuntando al observador. En este caso, y tal como se ha dibujado, el observador mirara desde arriba, y vera x apuntando hacia el norte, y x hacia el sur, luego el ngulo sera de , aunque cambia con el giro, por ser precisamente la variable de articulacin. d ser simplemente la distancia entre orgenes, pues aqu no hay perpendicular comn a lo largo de la cual trasladar. Ser constante, y negativa, puesto que se mide a lo largo del eje z , y en este caso va en su sentido negativo. es el ngulo entre z y z girando alrededor de x con x mirando al observador. El observador mirara, pues, desde abajo, supongamos que tumbado con los pies hacia el sistema del mundo (el 0), con lo que vera z hacia el este, y z hacia el norte, luego valdr , en la posicin dibujada (aunque variar al girar). a es nula, por cortarse z y z . d es nula, por coincidir los orgenes 4 y 5. es el ngulo entre z y z , que son colineales, por tanto vale 0. a es la distancia entre estos mismo ejes, y por tanto es igualmente 0. es el ngulo entre x y x girando alrededor de z , con z apuntando al observador. En la posicin dibujada, ambos x apuntan hacia abajo, luego valdr 0. d es la distancia entre los orgenes 5 y 6 (no hay perpendicular comn a lo largo de la cual trasladar), y es constante e igual a la longitud de la mano. En este caso es positiva, ROB2/22
1 0 1 0 0 0 1 2 1 2 2 1 2 2 2 2 2 1 2 1 1 2 2 2 3 3 3 3 4 3 4 4 4 3 4 4 2 4 3 4 4 3 4 3 3 4 4 3 5 4 5 5 5 3 5 2 5 4 5 5 6 5 6 6 6 5 6 5 5 6 6

Apuntes de Robtica
5

Ingeniera Informtica

pues se mide a lo largo de z , cuyo sentido positivo apunta hacia el origen 6. Se obtiene al nal la tabla siguiente, en la que se indican entre parntesis los valores que son variables, y cuyo valor es el correspondiente a la posicin concreta en que se ha dibujado la gura.
Articulacion 1 2 3 4 5 6 i i ai di 0 0 0 (d) ( ) 0 a2 = 254mm. 0 2 (0) 0 a3 = 254mm. d3 = 75mm. ( ) 0 d4 = 85mm. 2 (2) 2 0 0 (0) 0 0 d6 = 176mm.

El vector de articulaciones es en este caso

Ahora se pueden escribir las matrices de transformacin sustituyendo en la frmula general:

J =

d 2 3 4 5 6

i1

Ai

para cada articulacin i,


s2 0 c2 0 0 1 0 0 0 s4 0 c4 1 0 0 0 s6 0 c6 0 0 1 0 0 a2 c2 a2 s2 0 1 0 0 d4 1 0 0 d6 1

A1 =

A3 =

A5 =

Finalmente, debern multiplicarse todas las matrices. Dos de los productos parciales son:

1 0 0 1 0 0 0 0 c3 s3 0 0 c5 s5 0 0

0 0 0 0 1 d1 0 1 s3 0 c3 0 0 1 0 0 0 s5 0 c5 1 0 0 0

A2 =

a3 c3 a3 s3 d3 1 0 0 0 1

A4 =

A6 =

c2 s2 0 0 c4 s4 0 0 c6 s6 0 0

A3 = 0 A1 1 A2 2 A3 =

1 0 0 0

0 1 0 0

0 0 0 0 1 d1 0 1

c2 s2 s2 c2 0 0 0 0

0 a2 c2 c3 s3 0 a2 s2 s3 c3 1 0 0 0 0 1 0 0

0 a3 c3 0 a3 s3 = 1 d3 0 1

cos(2 + 3 ) sin(2 + 3 ) sin(2 + 3 ) cos(2 + 3 ) 0 0 0 0

0 a3 cos(2 + 3 ) + a2 cos(2 ) 0 a3 sin(2 + 3 ) + a2 sin(2 ) 1 d2 + d3 0 1

c4 c5 c6 + s4 s6 c4 c5 s6 + s4 c6 c4 s5 c4 s5 d6 3 s4 s5 d6 A6 = 3 A4 4 A5 5 A6 = s4 c5 c6 c4 s6 s4 c5 s6 c4 c6 s4 s5 s5 c6 s5 s6 c5 c6 d6 d4

ROB2/23

Apuntes de Robtica
Los elementos de la matriz

Ingeniera Informtica
0A 6
resultan ser:

A11 A12 A13 A14 A21 A22 A23 A24 A31 A32 A33 A34 A41 A42 A43 A44

= c(2 + 3 + 4 )c5 c6 + s(2 + 3 + 4 )s6 = s(2 + 3 + 4 )c6 c(2 + 3 + 4 )c5 s6 = c(2 + 3 + 4 )s5 = d6 s5 c(2 + 3 + 4 ) + a3 c(2 + 3 ) + a2 c(2 ) = s(2 + 3 + 4 )c5 c6 c(2 + 3 + 4 )s6 = c(2 + 3 + 4 )c6 s(2 + 3 + 4 )c5 s6 = s(2 + 3 + 4 )s5 = d6 s5 s(2 + 3 + 4 ) + a3 s(2 + 3 ) + a2 s(2 ) = s5 c6 = s5 s6 = c5 = d1 d3 d4 d6 c5 =0 =0 =0 =1

2.3. Cinemtica inversa del manipulador

Hasta ahora, habamos obtenido las coordenadas para la posicin del punto terminal a partir de los valores de las variables de articulacin. Ahora nos planteamos el problema inverso: obtener los valores de los joints, que son realmente lo que se enva al sistema de control del manipulador, a partir de la posicin y orientacin deseadas para el punto terminal. Esto es lo ms usado, y absolutamente necesario, dado que las tareas a realizar o trayectorias a recorrer por un manipulador se dan casi siempre en coordenadas cartesianas referidas a algn sistema jo. La cinemtica inversa es, en general, mucho ms problemtica que la directa. Los problemas pueden ser: El punto pedido est, por su lejana, fuera del alcance del robot. El punto pedido est fuera del alcance, pero debido a problemas geomtricos (unos enlaces del robot chocan con otros). El punto pedido puede alcanzarse mediante dos o ms combinaciones (valores) del vector de articulacin. Cada una de estas combinaciones se llama conguracin; es tpico el caso de los brazos SCARA, como el del robot RT100, donde cualquier punto alcanzable puede alcanzarse con el codo doblado hacia la derecha, o hacia la izquierda (lo cual tambin modica, naturalmente, los valores de las dems articulaciones). Las ecuaciones que relacionan las variables de articulacin con las variables cartesianas no son solubles, en el sentido de que no se pueden encontrar soluciones separables, llamadas forma cerrada, que den el valor de cada variable cartesiana como funcin exclusivamente de las variables de articulacin. No obstante, se puede probar que para un manipulador de 6 grados de libertad tal que los tres ltimos sean rotacionales y sus ejes se intersecten en un punto comn siempre existe solucin cerrada. A diferencia de la cinemtica directa, no exista hasta ahora ningn mtodo sistemtico que permita resolver la cinemtica inversa de cualquier manipulador por aplicacin mecnica de una reglas jas. Existan, ms bien, tcnicas que ayudan, debiendo elegir la ms adaptada al caso particular. En 1998 se public el primer libro que contiene una exposicin ROB2/24

Apuntes de Robtica

Ingeniera Informtica

sistemtica del problema de la cinemtica inversa. Sus autores, C. D. Crane y J. Duy lo resuelven para el caso de cualquier robot de hasta 6 grados de libertad, dando complejas reglas de aplicacin de frmulas predeterminadas. El carcter introductorio de este curso y la extensin limitada de estos apuntes no permiten la exposicin de este mtodo. Por ello, nos limitaremos a ver ahora algunas de las tcnicas simples ms usadas para resolver la cinemtica inversa de robots.
2.3.1. Aproximacin directa

Se trata de usar las normas de construccin de la matriz de transformacin T entre el mundo y el punto terminal (cinemtica directa), escribiendo dicha matriz de modo simblico, es decir, dejando cada elemento en funcin de las variables de articulacin J de las que dependa. A continuacin, y usando la interpretacin dada para la matriz T , podemos escribir que
i

y, dados (X, Y, Z, y, p, r) que el usuario debe proveer como especicacin de la posicin y orientacin, se obtienen las ecuaciones
X = px (J1 . . . J6 ) Y = py (J1 . . . J6 ) Z = pz (J1 . . . J6 ) y = arctan( ay ) ax az ) ax / cos(y ) nz ) oz p = arctan( r = arctan(

n T = y nz

nx ox ax px oy ay py oz az pz 0 0 0 1

Se pueden dar diferentes ecuaciones para los ngulos de orientacin, usando otros elementos de la matriz. Adems, las ecuaciones seran por supuesto diferentes en caso de haber optado por otra representacin para la orientacin en lugar de la y/p/r (p.ej., los ngulos de Euler). En cualquier caso, la idea es simplemente plantear directamente tantas ecuaciones como grados de libertad haya, y tratar de resolverlas como se pueda. Si hubiera menos de 6 grados de libertad, habra, por supuesto menos ecuaciones. Generalmente, suelen ser ecuaciones no lineales bastante complejas, y es difcil encontrar de modo simple una solucin en forma cerrada.
2.3.2. Aproximacin geomtrica

Normalmente, las cadenas cinemticas constan de 3 grados de libertad para la posicin gruesa (enlaces mayores) ms otros 3 para la posicin na y orientacin (enlaces menores). Los ltimos suelen estar justo antes de la mano; unos y otros no son absolutamente independientes. No obstante, se puede probar que si los tres enlaces menores son rotacionales, y sus ejes se intersectan en un punto comn (caso de la mayora de los robots industriales con manos intercambiables), entonces las 3 ltimas articulaciones pueden ser sustitudas por una articulacin esfrica con tres grados de libertad, y un enlace cuya longitud, ja, es la distancia entre el extremo de los enlaces mayores y el extremo de la mano. Esta distancia es ja precisamente porque ninguno de los 3 ltimos enlaces es traslacional, y por tanto el punto terminal est restringido a moverse en la supercie de una esfera centrada en el nal de los enlaces mayores, cuyo radio sera la longitud de la mano. Vase la gura 2.14 ROB2/25

Apuntes de Robtica
Z S R P Y n o a

Ingeniera Informtica

Figura 2.14: Manipulador con los 3 ltimos g.d.l. rotacionales En esta gura, el vector R une el origen con el nal de los tres enlaces mayores (el punto de inicio de la mueca). El vector S une este punto con el punto terminal, apuntando, por tanto, en la direccin de la mano, y el vector P une el origen con el punto terminal, y sus componentes sern las que el usuario pedir como coordenadas (X, Y, Z ) de este punto respecto al sistema del mundo. El sistema situado sobre el punto terminal es el que determina la orientacin de la mano, con su vector a como aproximacin, o como orientacin (de dedo a dedo de la garra) y n normal a stos. Son conocidos los vectores P y a, puesto que el usuario da la posicin y orientacin. Adems, de la gura se observa que S y a van en la misma direccin; por lo tanto, y como a es unitario, podemos escribir que S =| S | a. Por otra parte, | S | es la longitud de la mano, y es tambin conocida. Por lo tanto, el vector S es completamente conocido. Entoces, podemos conocer R ya que R = P S. La simplicacin que este mtodo introduce consiste en que R, ya conocido, representa el nal de los tres enlaces mayores; por tanto, cada componente de R deber igualarse respectivamente a (p , p , p ) pero de la transformacin A , no de la A . Esto hace que se tengan que resolver slo tres ecuaciones con tres incgnitas, que son (J , J , J ). Cada J es bien un ngulo , bien una distancia d , segn la articulacin sea rotacional o traslacional. Respecto al planteamiento de estas ecuaciones, hay que hacer notar que los tres enlaces mayores pueden responder slo a una de las siguientes ocho conguraciones: R , R T , RT R, T R , RT , T RT , T R, T . Adems, en los casos usuales, ejes consecutivos suelen ser o bien paralelos, o bien perpendiculares, con lo que las son 0, . Planteando todas las posibles combinaciones de stos valores para cada i = 1 . . . 3, obtenemos 27 posibilidades por cada conguracin, lo que da un total de 8 27 = 216 diferentes matrices A . Existen tablas que listan todas estas matrices, y as, para cada robot con una conguracin dada y una terna dada de valores ( , , ) se consulta la tabla para obtener la matriz (y por tanto, las ecuaciones) correspondientes. Ejemplo: Sea el caso de un robot cuyas tres primeras articulaciones sigan la conguracin T R , como el RT100, y en el que = 0 (esto siempre es posible, escogiendo el sistema del mundo de modo que los ejes x y x coincidan, recurdese que la eleccin de la direccin de x era arbitraria, siempre que fuese perpendicular a z ). En este caso, la tabla para cada ROB2/26
x y z 0 3 0 6 1 2 3 i i i 3 2 2 2 2 3 i 2 2 0 3 1 2 3 2 1 0 1 0 0

Apuntes de Robtica

Ingeniera Informtica

posible valor de quedara:


i

i = 0

i =

i = 2

1 0 0 0 1 0 0 0 1 0 0 0

A1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0

A2 a2 c2 a2 s2 d2 1 a2 c2 a2 s2 d2 1 a2 c2 a2 s2 d2 1

0 0 d 1 0 0 d 1 0 0 d 1

c2 s 2 0 0 c2 s 2 0 0 c2 s 2 0 0

s2 0 c2 0 0 1 0 0 0 s2 0 c2 1 0 0 0 0 s2 0 c2 1 0 0 0
1

c3 s 3 0 0 c3 s 3 0 0 c3 s 3 0 0

A3 s3 0 c3 0 0 1 0 0 0 s3 0 c3 1 0 0 0 0 s3 0 c3 1 0 0 0

a3 c3 a3 s3 d3 1 a3 c3 a3 s3 d3 1 a3 c3 a3 s3 d3 1

En el caso del RT100, se tiene que

= 2 = 3 = 0

, con lo que
0 a3 c3 0 a3 s3 = 1 d3 0 1

A3 =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 d 1

c2 s2 s2 c2 0 0 0 0

0 a2 c2 c3 s3 0 a2 s2 s3 c3 1 d2 0 0 0 1 0 0

Suponiendo conocidas (por el procedimiento detallado al inicio de esta secin) las componentes del vector R, el sistema de tres ecuaciones cuyas tres incgnitas son d, y queda:
2

c(2 + 3 ) s(2 + 3 ) s(2 + 3 ) c(2 + 3 ) 0 0 0 0

0 a3 c(2 + 3 ) + a2 c2 0 a3 s(2 + 3 ) + a2 s2 1 d2 + d3 + d 0 1

Rx = a3 c(2 + 3 ) + a2 c2 Ry = a3 s(2 + 3 ) + a2 s2 Rz = d2 + d3 + d

De la tercera de estas ecuaciones se obtiene directamente d, como d = R d d . Las otras dos, usando el hecho de que en este robot a y a son iguales, y se denotarn slo como a, se reescriben as:
z 2 3 2 3

Rx = a(c(2 + 3 ) + c2 ) Ry = a(s(2 + 3 ) + s2 )

Por manipulacin de estas ecuaciones, usando las frmulas trigonomtricas para la suma de cosenos y la suma de senos se llega a
Rx = 2a cos(2 + Ry 3 3 ) cos 2 2 3 3 = 2a sin(2 + ) cos 2 2

ROB2/27

Apuntes de Robtica
g 2 3

Ingeniera Informtica

Por divisin de una ecuacin entre otra, y por suma de ellas, ayudndose de la variable auxiliar = + /2, se llega al nal a obtener
3 = 2 arc cos
2 + R2 Rx y

2a
2 + R2 Rx y

2 = atan2(Ry , Rx ) arc cos


0 1 2 3

Ahora, se halla R = P S , y de ahi, , y , usando las ecuaciones recien deducidas. Con ellas se puede escribir la matriz A , que necesitaremos inmediatamente. Respecto a los otros tres ngulos, se escribe la matriz A , que resulta ser
0 3 3 6

2a

A6 =

c4 c5 c6 + s4 s6 c4 c5 s6 + s4 s6 c4 s5 c4 s5 d6 s4 c5 c6 c4 s6 s4 c5 s6 c4 c6 s4 s5 s4 s5 d6 s4 c6 s4 s6 c5 c5 d6 d4 0 0 0 1

Como el vector S, que es conocido, une el origen del sistema 3 con el del 6, podemos escribir
3 Sx = c4 s5 d6 3 Sy = s4 s5 d6 3 Sz = c5 d6 d4

en las que S es el vector S , pero referido al sistema 3. Podemos hallarlo a partir del S , que conocemos, y de la matriz de rotacion entre los sistemas 0 y 3, la cual obtendremos a partir de la A . Es decir:
3 0 0 3

S 3 = 3 R0 S 0 3 R0 = ( 0 R3 )T

A partir de estas se puede por n despejar,


3 3 4 = atan2(Sy , Sx )

5 = arc cos(

Ntese que la posicin del punto terminal no depende de , y por tanto no encontramos aqu ninguna ecuacin para despejarla. La nica manera sera relacionarla con el vector de orientacin o, o con la orientacin especicada por el usuario de algn otro modo.
6

3 Sz + d4 ) d6

2.3.3. Manipulacin de matrices simblicas

A diferencia del anterior, este mtodo, en principio, puede valer para cualquier manipulador. Usa como base las expresiones simblicas para la cinemtica directa. Se trata de igualar una matriz T de transformacin homognea expresada en funcin de sus variables simblicas (n , n , n , o , . . . etc) al producto de las matrices de la cinemtica directa, y premultiplicar ambos lados de la igualdad por la inversa de cada una, despus de haber hallado sustituciones simblicas para la variable de articulacin de la cual dependa la que en este ROB2/28
x y z x

Apuntes de Robtica

Ingeniera Informtica

momento sea primera matriz del producto. Veamos el mismo caso del apartado anterior, los tres ltimos grados de libertad del RT100. Se igualaran

A6 =

c4 s4 0 0

0 s4 0 0 c4 0 1 0 d4 0 0 1

c5 s5 0 0

0 s5 0 c5 1 0 0 0

0 0 0 1

c6 s6 s6 c6 0 0 0 0

0 0 0 0 1 d6 0 1

nx ox ax px ny oy ay py nz oz az pz 0 0 0 1

o sea,

(2.2)

(2.3) Entonces, habr que tratar de usar la ecuacin 2.3 para encontrar una sustitucin que nos permita despejar en funcin de las variables simblicas de T . Entonces, se hallar la inversa de A bajo esta sustitucin, y se multiplicarn ambas partes de la ecuacin 2.2 por ( A ) . De este modo se conseguir tener en una parte de la igualdad cantidades conocidas, y en la otra, funciones, no ya de los tres ngulos iniciales, sino slo de dos ( y ). Repitiendo el proceso con las inversas de cada matriz, una en cada paso, se llegan a despejar todas. En concreto, de la ecuacin 2.3 podemos extraer que
4 3 4 3 4 1 5 6

A6 =

c4 c5 c6 + s4 s6 c4 c5 s6 + s4 s6 c4 s5 c4 s5 d6 s4 c5 c6 c4 s6 s4 c5 s6 c4 c6 s4 s5 s4 s5 d6 s4 c6 s4 s6 c5 c5 d6 d4 0 0 0 1

nx ox ax px ny oy ay py nz oz az pz 0 0 0 1

de donde

= atan2(ay , ax )

, y as

c4 s5 = ax s4 s5 = ay

cos 4 = sin 4

2 a2 1 + tan2 4 x + ay 1 ay = = 2 1 + cotan2 4 a2 x + ay 3

ax

Adems, escribiendo la inversa de


(3 A4 )1
0 = s4

A4

, tenemos que

x a 2

c4

s4 0 c4 0

Ahora, multiplicaremos por esta matriz ambas partes de la ecuacin 2.2. Se usa que o sea,

x a 2

0 0 1 d4 0 0 1 d4 = y ax a 0 0 0 0 2 2 +a2 a2 + a a x y x y 0 1 0 0 0 1
ax +a2 y ax +a2 y

y a 2

T = 3 A4 4 A5 5 A6 = (3 A4 )1 T = 4 A5 5 A6

0 y a 2 a2 x +ay

ax +a2 y

y a 2

ax +a2 y

0 x a 2 0

ax +a2 y

nx 1 d4 ny nz 0 0

ox ax px c5 oy ay py s5 = oz az pz 0 0 0 1 0

0 s5 0 c5 1 0 0 0

0 0 0 1

c6 s6 s5 c5 0 0 0 0

0 0 0 0 1 d6 0 1

ROB2/29

Apuntes de Robtica

Ingeniera Informtica

Multiplicando, queda

ax nx +ay ny 2 2 ax +ay ax ox +ay oy 2 2 ax +ay 2 a2 x + ay ax px +ay py 2 2 ax +ay

nz ay nx ax ny 2 2 ax +ay 0

oz ay ox ax oy 2 2 ax +ay 0

az 0 0

pz + d4 ay px ax py 2 2 ax +ay 1

Ahora aplicaremos nuevamente alguna sustitucin que nos permita despejar . En particular, usando los elementos (1, 3) y (2, 3) de las matrices anteriores, al dividirlos se obtiene
5

c5 c6 s c 5 6 = s 6

c5 s6 s5 d6 s5 s5 s6 c5 d6 c5 c6 0 0 0 0 1

tan 5 =

2 a2 x + ay

De este modo, y como


( A5 )
4 1

az

2 5 = atan2( a2 x + ay , az )

c5 s5 0 0 s5 c5 0 0

0 1 0 0

0 0 0 1

Se usar seguidamente que


6

az 0 2 ax + a2 y 0

2 a2 x + ay 0 az 0

0 1 0 0

0 0 0 1

de donde se puede despejar , que resulta ser

(4 A5 )1 (3 A4 )1 T = 5 A6

(ax nx ay ny )az 6 = arc cos + n z 1 a2 z 2 a2 + a x y

(equivalentemente, se podra haber despejado a partir de la penltima multiplicacin, en particular, de los terminos A y A , aunque se ha seguido el mtodo sistematico hasta el nal, como ilustracin). Como se ve, este mtodo es muy general, pero tiene el inconveniente de los signos para los ngulos, que debera eliminarse usando la funcin atan2 siempre que sea posible. En cualquier caso, el mayor inconveniente es que no siempre tenemos por qu encontrar ecuaciones de las cuales podamos en cada paso despejar la variable que nos interesa para poder continuar. Finalmente, al programar las ecuaciones obtenidas (y esto vale para todos los mtodos), es necesario comprobar cundo aparecen en los denominadores cantidades que puedan anularse (en el ejemplo anterior, a + a , que resultara nula si el vector de aproximacin coincidiera con el eje z del nal de los tres primeros enlaces). En ese caso, se debera buscar la frmula para tratar ese caso particular de un modo geomtrico.
31 32 2 x 2 y

Como hemos visto anteriormente, en la inmensa mayora de los robots la relacin entre coordenadas Cartesianas y coordenadas del robot (variables de articulacin) no es lineal; no obstante, sabemos que cualquier funcin f no lineal, pero contnua y derivable (de clase C ) puede ser aproximada en un entorno sucientemente pequeo de cualquier punto x por un desarrollo en serie de Taylor en torno a x que conserve slo los trminos de orden ROB2/30
1 0

2.3.4. Transformaciones de velocidad: el Jacobiano, singularidades y manipulabilidad

Apuntes de Robtica

Ingeniera Informtica

y0+y 0 y0

x0

x0+ x0

Figura 2.15: Aproximacin lineal de una funcin 0 y 1. En este caso, decimos que hemos aproximado linealmente f en un entorno de x . Intuitivamente, vase la gura 2.15 que se reere a una funcin de R en R. En el punto x , la funcin f vale y = f (x ). En un punto no muy alejado, podemos aproximarla por
0 0 0 0

f (x0 + x0 )

f (x0 ) + (tan())x0 = y0 +

df dx

x0
x= x0

De anloga manera esto se puede aplicar a una funcin de varias variables, y en concreto lo aplicaremos a la cinemtica directa, que como dijimos, va de R en R , siendo n el nmero de variables de articulacin (joints) del robot. Denotando genricamente por a las variables de articulacin, (incluso traslacionales), y al vector formado por todas ellas, y denotando por X al vector de variables cartesianas, se tiene que X = F () y, para un punto dado, X + X , prximo a X , se puede escribir
nj 6 j i 0 0

siendo J el Jacobiano de f evaluado en X


fX 0

F (X0 + X )

F (X0 ) + JfX 0
0

=(

x,y,z,y, p, r), denido como


x nj y nj z nj y nj p nj r nj

JfX 0

Esto vale para los robots de 6 grados de libertad. La mayora de stos, que pueden alcanzar todas las posiciones y orientaciones, tienen 6 joints, al igual que 6 son las componentes del vector X , con lo que el Jacobiano resulta cuadrado, pero no necesariamente tiene que ser as en todos los robots. Ntese que el Jacobiano vara con el tiempo (en realidad, con la posicin, que se supone est a su vez variando). La utilidad que tiene es relacionar velocidades del espacio de articulaciones con velocidades cartesianas; si a partir de la ecuacin de incrementos
X = JfX

x 1 y 1 z 1 y 1 p 1 r 1

... ... ... ... ... ...

(2.4)

ROB2/31

Apuntes de Robtica

Ingeniera Informtica

derivamos respecto al tiempo, obtenemos para un punto dado X o explcitamente,


= Jf X X

As pues, podemos conocer punto a punto la velocidad cartesiana para un movimiento para el cual habamos planeado una velocidad de articulacin. Sobre la recproca, dada una velocidad cartesiana de paso por un punto, nos preguntamos si es posible averiguar la velocidad que habra de imprimrsele a cada articulacin. Despejando tenemos

vx vy vz y p r

Jf

1 2 3 4 5 6

supuesto que el Jacobiano evaluado en el punto X tenga inversa. Los puntos en los que J no es invertible (o sea, aquellos en los que su determinante es nulo) se llaman singularidades. La inuencia de estos puntos en el movimiento es muy seria: para una velocidad cartesiana v constante, la velocidad de articulacin sera innita. Y aun sin llegar a ese extremo,
1 JX =

1 2 3 4 5 6

Jf

vx vy vz y p r

siendo Ad(J ) la matriz adjunta a J , traspuesta. Si det(J ) es muy pequeo, los elementos de J seran enormes, y as velocidades cartesianas constantes y de valor razonable para casi todos los puntos generaran sin embargo velocidades de articulacin enormes (y, por tanto, inmantenibles por los motores) en las cercanas de una singularidad. La forma de evitar esto es moverse lejos de las singularidades, o bien usar reglas heursticas (reglas jas codicadas a mano) para determinar el valor de las velocidades de articulacin en estos puntos. Para conocer cmo afecta este hecho a cada punto del espacio de trabajo, se dene el ndice de manipulabilidad de Ashada del robot dado en un punto X de su espacio de trabajo como:
X X X 1 X

1 Ad(JX ) det(JX )

siendo det el determinante, y J la traspuesta de la matriz Jacobiana en X . Si el Jacobiano es una matriz cuadrada, entonces es claro que
T X

m(X ) =

T det(JX JX )

m(X ) = det(J )

Cuanto mayor sea el valor de este ndice, ms pequeas sern las velocidades de articulacin que los motores deben procurar, y por tanto, ms fcil ser controlar el robot. ROB2/32

Apuntes de Robtica

Ingeniera Informtica

Veamos ahora brevemente sin demostracin unas frmulas para el clculo del Jacobiano en robots de 6 grados de libertad (en otros, hay que usar una frmula genrica del tipo de la denida en la ecuacin 2.4, hallada a partir de las frmulas de la cinemtica directa, derivando cada variable cartesiana existente respecto a cada una de las variables de articulacin). En el caso de robots de 6 g.d.l. se puede calcular la matriz T que da la cinemtica directa como: Entonces, para cada i = 1 . . . 6 se denen las matrices U como
i

T = 0 A1 1 A2 . . . 5 A6

es decir, el producto de todas las matrices DH de los enlaces que van desde el propio enlace i (includo) hasta el nal de la cadena. En cada caso se tendr una matriz de la forma

Ui = i1 Ai i Ai+1 . . . 5 A6

Ui =

nxi oxi axi pxi nyi oyi ayi pyi nzi ozi azi pzi 0 0 0 1

Entonces, la columna i-sima del Jacobiano es:


Si la art. es rotacional Si la art. i es traslacional De este modo, el procedimiento sera construir cada U segn la frmula anterior, y a partir de sus elementos, construir cada columna del Jacobiano usando bien la parte izquierda, o bien la derecha de la ecuacin anterior, segn el tipo de articulacin de que se trate.
i

pxi nyi pyi nxi pxi oyi pyi oxi pxi ayi pyi axi nxi oxi axi i

nzi ozi azi 0 0 0

2.4. Dinmica del manipulador

En el siguiente desarrollo trataremos de establecer la relacin entre las velocidades a las que se mueve cada articulacin y la velocidad a la que lo hace el punto terminal del brazo. Esto es importante porque no slo queremos que el manipulador pase por ciertos puntos del espacio, sino adems que lo haga cuando nosotros lo deseamos. Con este objetivo se denen: Camino: Una sucesin de puntos en el espacio. Trayectoria: Un camino con restricciones temporales. Una estrategia muy comn para construir caminos es interpolar en el espacio de articulaciones. Esto trae varios problemas: No se sabe cul ser el camino en el espacio cartesiano (real). Por ello, si se desea alguno en concreto para evitar choques o mantener una orientacin (p. ej., si se transporta un contenedor de lquido), este tipo de interpolacin no funciona. ROB2/33

Apuntes de Robtica

Ingeniera Informtica

No se conoce en principio la aceleracin cartesiana. Esto puede generar aceleraciones excesivas, que llevaran a grandes fuerzas de inercia, inaceptables para los motores. Por ello, es generalmente necesario disear y programar trayectorias en el espacio cartesiano. Por otra parte, es importante conocer la relacin entre trayectoria cartesiana y de articulaciones para pequeos desplazamientos a partir de una posicin dada; esta relacin, que es la misma que se da entre velocidades cartesianas y de articulacin en cada instante, se puede considerar lineal para pequeos desplazamientos, y, como se vi anteriormente, viene dada por la llamada matriz Jacobiana. Se usa especialmente en los movimientos nos al nal de un ensamblado. Para determinar velocidad y aceleracin del punto terminal necesitamos saber cmo se transforman estas magnitudes, o cualesquiera otras, cuando cambiamos de un sistema de coordenadas a otro que se mueve respecto al primero. Consideremos el caso de un giro.
C

z
s

A s+ s

Figura 2.16: Giro de un sistema de referencia centrado en C Supongamos unos ejes que giran con cierta velocidad angular, . Queremos conocer debida a un giro pequeo, de ngulo d. Las coordenadas de s referidas al sistema rotante cambian, aun cuando s no cambie en s. Ntese que
| s |=| AB |=| CA | d =| OA | sin() | | dt | s | =| OA | sin() | | dt

ds dt

Ntese que s como vector es perpendicular al plano que forman s y OC ( ) y que su mdulo es precisamente el del producto vectorial de s y , luego (en ese orden, regla de la mano derecha). En particular, para cualquier magnitud vectorial, esta ecuacin vale en cada sistema de referencia. En concreto, si queremos calcular la derivada temporal respecto al sistema de referencia del mundo, al cual representaremos con el superndice R, sabiendo la derivada en un sistema cualquiera, digamos el N,
R

ds =s dt

ds )= dt

TN N (

ROB2/34

ds ) + R TN s dt

Apuntes de Robtica

Ingeniera Informtica

El primer trmino representa la variacin, por as decirlo, propia del vector, mientras que el segundo representa la variacin debida al giro del sistema N respecto al R. En particular, si tomamos dos sistemas, el i y el i+1,
z i+1 yi+1

z0
rO,i+1

Oi+1 r i,i+1 x i+1 xi rO,i

zi

Oi

yi

y0

x0

Figura 2.17: Posicion de los sistemas O, i e i+1


ro,i+1 = ro,i + ri,i+1 dro,i+1 dt =
R

Entonces las velocidades son


R

dro,i dt

+
R

dri,i+1 dt

(2.5) Esto da la velocidad de un elemento (el i+1) conocidas la del anterior (el i), y el movimiento de un elemento respecto a otro. Ntese que si la articulacin es traslacional, r = d k , (siempre se colocaba el eje de traslacin en la direccin z) con lo que
vi+1 =
R

vi +

dri,i+1 dt

+ R i+1 R ri,i+1

Ri

i,i+1

i+1 i

Por otra parte, la velocidad angular del siguiente elemento respecto a la referencia ser la misma que el elemento i lleve, dado que no gira respecto a l. Por ello, Por contra, si la articulacin i es rotacional, r va a lo largo del eje z, que es precisamente el eje de giro, por lo cual no cambia al girar el segundo sistema, y por ello su derivada es nula, es decir,
i,i+1

dri,i+1 dt

i+1 ki =d
Ri

i+1 = i

Sin embargo, las velocidades angulares para el ltimo elemento se suman: se tiene la que ya llevaba el elemento anterior, que es con la que gira tambin el origen de i+1, ms la debida al propio giro de la articulacin, es decir,
Ri

dri,i+1 dt

=0

i+1 ki i+1 = i +

ROB2/35

Apuntes de Robtica

Ingeniera Informtica

Con respecto a la aceleracin: derivamos la ecuacin 2.5 anterior respecto al tiempo de nuevo y obtenemos
R

ai+1

que es
R

d2 ri,i+1 = R ai + dt2

dri,i+1 + R i+1 dt Ri

i+1 ri,i+1 + R i+1 dri,i+1 + R dt Ri

Ri

+ R i+1 ri,i+1

ai+1 =

ai +
R

d2 ri,i+1 dt2
i+1

+ 2 R i+1
Ri dri,i+1 dt Ri

dri,i+1 dt

i+1 ri,i+1 + R i+1 + R


Ri

i+1 ri,i+1

Los trminos y que intervienen en esta ecuacin se han calculado ya para la velocidad; los que aparecen nuevos son: k si i es traslacional dr d = 0 si i es rotacional dt = si i es traslacional d = = dt = + k + k si i es rotacional El resumen de las ecuaciones es (omitiendo en todos los casos el superindice , pues todo se mide respecto al sistema de referencia de la base, sistema del mundo, salvo que se indique lo contrario):
2 i,i+1 2 i+1 i Ri i+1 i+1 di i dt i+1 ki ) d(i + dt i i+1 i i i+1 i R

Articulacion i es traslacional i+1 ki + i+1 di+1 ki vi+1 = vi + d i+1 ki + 2i+1 d i+1 ki + ai+1 = ai + d i+1 di+1 ki + i+1 (i+1 di+1 ki ) + i+1 = i i+1 = i

Articulacion i es rotacional (T 1a) vi+1 = ai+1 = (T 2a) (T 3a) i+1 = i+1 = (T 4a) vi + i+1 ri,i+1 i+1 ri,i+1 + ai + +i+1 (i+1 ri,i+1 ) i+1 ki i + i + i+1 ki + i i+1 ki (T 1b) (T 2b) (T 3b) (T 4b)

La idea es que, conociendo las posiciones y velocidades lineales y angulares del elemento 0, se calcularn las del 1, y as sucesivamente, hasta llegar al punto terminal. Por supuesto, se deben conocer tambin las , , , o en su caso, d , d , d que los motores estn imprimiendo a cada articulacin. Como el enlace 0 (L ) est jo al suelo, los valores usuales son v = 0, a = g, = 0, = 0 siendo g el vector aceleracin de la gravedad. A partir de ellos se usan las frmulas , v y a , conociendo ( , , ) o anteriores de la columna apropiada para calcular , bien d , d , d , segn sea la articulacin. Usando estos valores y los ( , , ) se calculan , , v y a , y as sucesivamente. Las expresiones usadas representan la formulacin de Newton-Euler, y su uso en la forma indicada es el algoritmo de Luh-Walter-Paul. Las ecuaciones de la tabla anterior se llaman ecuaciones hacia adelante, porque van del origen al punto terminal; seran una especie de "cintica directa", en el sentido de que calculan la velocidad cartesiana del punto terminal a partir de las "velocidades de articulacin". El problema ms interesante sera el inverso: el que devolviese velocidades y aceleraciones para las variables de articulacin a partir de la velocidad y aceleracin deseadas para el punto terminal. Esto se puede hacer de dos maneras: numricamente y analticamente. En el ROB2/36
i i i i i i 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2

Apuntes de Robtica

Ingeniera Informtica

primer caso, un nmero suciente (idealmente, todos) los puntos de la trayectoria cartesiana, unido cada uno a su respectivo instante deseado de paso por ellos, son convertidos al espacio de articulaciones usando la cinemtica inversa. A partir de ah se interpola linealmente entre cada punto (deben estar muy juntos) cuidando de que la velocidad y aceleracin de las articulaciones sean tolerables. Conseguir que cada articulacin tome el valor dado por la interpolacin en todo instante es tarea del sistema de control, que debe, por tanto, conocer el valor de cada variable de articulacin en todo momento, lo que se consigue mediante sensores. Por contra, en la aproximacin analtica es necesario conocer las fuerzas y momentos que van a actuar sobre el punto terminal, y a partir de ellos, calcular los que deber ejercer cada motor (o actuador) sabiendo, adems, las velocidades y aceleraciones que deseamos que lleve. Para ello, debemos partir de dos ecuaciones fundamentales de la dinmica: la primera ley de Newton aplicada a la mecnica de traslacin, y a la de rotacin. Estas ecuaciones dicen que si existe un cuerpo de masa m sobre el que actan unas fuerzas, F y unos momentos, , se cumple dL F = m a y tambien = dt donde el torque o momento de una fuerza F respecto a un punto O se dene como = r F siendo r el vector que une el punto O con el punto de aplicacin de la fuerza. Por otra parte, L es el momento angular total del cuerpo, denido como
i i i i i i i i

L=
V

donde la integral se extiende a todo el volumen del cuerpo, siendo r el vector de posicin de cada partcula del cuerpo, y p su momento lineal, o sea, p = m v Por consideraciones de mecnica elemental que no entran dentro del contenido de este curso, se puede probar que, para un slido rgido que en un instante dado est girando con velocidad angular instantnea w respecto a un cierto eje de giro, el momento angular se puede escribir como L = Iw siendo I el llamado tensor de inercia, cuya expresin respecto a algn sistema de coordenadas dado es
i i i i i

ri pi dVi

siendo r = (r , r , r ) el vector de posicin del punto con masa m respecto al sistema de referencia escogido. Al derivar,
i ix iy iz i

I=

2 2 mi (riy + riz )dVi mi rix riy dVi mi rix riy dVi

mi rix riy dVi 2 2 mi (rix + riz )dVi mi riy riz dVi

mi rix riz dVi mi riy riz dVi 2 2 mi (rix + riy )dVi

se miden respecto a la referencia. donde tanto el tensor de inercia I como y


4 La

dL dt

+ I = I
R

transformacin del tensor de inercia desde el sistema de coordenadas de la articulacin, respecto al cual se le suele calcular, al sistema del mundo requiere el uso de consideraciones de lgebra tensorial fuera N del alcance de este curso. De todos modos, la frmula es R (I ) = R RotT (I ) R RotN siendo R RotN N la matriz de rotacin entre el sistema del mundo y el sistema N (T signica traspuesta)

ROB2/37

Apuntes de Robtica

Ingeniera Informtica

Queda un ltimo detalle antes de poder plantear las ecuaciones dinmicas: necesitaremos usar las ecuaciones hacia adelante dadas antes, pero con las velocidades y aceleraciones del centro de masas de cada articulacin, en lugar de las del origen del sistema de referencia asociado a ella. Esto es porque las ecuaciones de la ley de Newton las escribiremos referidas al centro de masas de cada enlace. La relacin entre unas y otras es sencilla. Dado un enlace cualquiera
vi
i

vci CM

Oi

c ii

Figura 2.18: La velocidad del CM conocida la del origen siendo c el vector de posicin del CM referido a su propio sistema. Es claro que Derivando la ecuacin anterior obtenemos
ii

vci = vi + i cii

dcii dt

(2.6) = 0.

(2.7) de donde, en cada paso de la iteracin se pueden obtener las v y a de las del origen de su enlace, recin obtenidas. Las necesitamos porque ahora aparecen en las ecuaciones dinmicas, que son:
i cii + i (i cii ) aci = ai +
ci ci

Fi = mi aci

que queda como


kl

siendo f en general la fuerza que un elemento k ejerce sobre otro elemento l, y donde la fuerza del siguiente elemento sobre ste, f , se ha escrito como f usando el principio de accin y reaccin. Como anteriormente, todo est referido al sistema del mundo. Por otra parte,
i+1,i i,i+1

fi1,i fi,i+1 + mi g = mi aci

i =

queda
i1,i

dL dt

siendo c = r + c . Reordenando estas ecuaciones, lo que tenemos es


i1,i ii i1,i i,i+1 i1,i ii i1,i

i + i Ii i i1,i i,i+1 ci1,i fi1,i + ci,i fi,i+1 = Ii

(2.8) + I = + (r c )f +c f +I (2.9) Ntese que ahora es necesario ir de adelante hacia atrs: conciendo la fuerza y el momento que ejerce la articulacin siguiente en la cadena sobre la dada, se calcula la que ejerce ella sobre la anterior, y as hasta el principio. ROB2/38
fi1,i = fi,i+1 mi g + mi aci
ii i,i+1 i i i i i

Apuntes de Robtica

Ingeniera Informtica

La idea es que si, p. ej., queremos levantar un objeto de masa M, situado con su CM en una posicin R respecto al origen, y el enlace n es el ltimo,
fn,n+1 = M g

es decir, el peso del cuerpo acta como un enlace suplementario cticio. El signo menos es debido al principio de accin y reaccin: esta es en realidad la fuerza con la que el ltimo enlace sostiene al cuerpo, y se opone a su peso. Adems,
n,n+1 = R (M g )

Esto signica que la fuerza y el momento que deber ejercer en ese instante el motor de la ltima articulacin sera que una vez calculada puede usarse en
cn n1

fn1,n = M g mn g + mn acn

donde las a y r se han calculado en ese mismo instante a partir de la tabla de ecuaciones hacia adelante dadas en la primera parte de esta seccin. (recurdese que a sera a = a + c + ( c )) El caso en que el robot no trata de levantar nada, sino slo moverse (levantarse a s mismo), es ms fcil: f = 0 y = 0 En realidad, las fuerzas no son cantidades que nos interese especialmente conocer (salvo la ltima) pero son un paso previo al clculo de los momentos; stos s nos interesan, porque, como se ver en el tema 5, en un motor elctrico el momento (torque) es proporcional a la intensidad de corriente que se le suministra. Al nal, el cuadro resumen de la utilizacin de todas las ecuaciones como algoritmo sera: (como notacin: supondremos que J es d segn proceda)
cn cn n n nn n n nn n,n+1 n,n+1 i i i

n + n In n n1,n = R (M g ) + (rn1 cnn ) fn1,n + cnn (M g ) + In

ROB2/39

Apuntes de Robtica

Ingeniera Informtica

Se conocen 0 0

Se conocen v0 a0 J 1 J 1 J 1
usando T1a/b, T2a/b

Se obtienen f0,1 y 0,1

usando T3a/b, T4a/b

Se obtienen v1 a1 1 1 y se conocen J2 J 2 J 2
idem, usando T1a/b, T2a/b, T3a/b, T4a/b usando 2.5 y 2.6

usando 2.7 y 2.8

vc1 ac1

Se obtienen f1,2 y 1,2

Se obtienen

usando 2.7 y 2.8 usando 2.5 y 2.6

vn1 an1 n1 n1
y se conocen JnJnJ n
usando T1a/b, T2a/b T3a/b, T4a/b

v cn1a cn1
Se obtienen fn1,n y n1,n
usando 2.7 y 2.8

vn an n n

usando 2.5 y 2.6

vcn acn
Se conocen fn,n+1 y n,n+1

Figura 2.19: Cuadro resumen del uso de las ecuaciones dinmicas

ROB2/40

Apuntes de Robtica
2.5. Generacin de trayectorias
2.5.1. Trayectorias en el espacio de articulaciones

Ingeniera Informtica

Hasta ahora hemos visto cules son las coordenadas de articulacin que llevaran el punto terminal de un brazo robot a la posicin deseada. En esta seccin trataremos de ver cmo debera moverse para trasladarse de un punto a otro. Esto signica conocer cul es la posicin, velocidad y aceleracin del brazo en funcin del tiempo. Es importante decir cmo vamos a especicar la trayectoria. El usuario no debera tener que dar especicaciones detalladas de posicin, velocidad y aceleracin para cada articulacin en cada punto, sino tan slo valores iniciales y nales; el robot debera saber cmo interpolar para hallar los puntos intermedios. La posicin, velocidad y aceleracin deben computarse en tiempo real, a una tasa que suele oscilar entre las 20 y 200 veces por segundo. La trayectoria que normalmente especicamos es la del efector nal, referida al sistema de coordenadas de la base. Adems de el punto inicial y nal, es usual dar algunos puntos intermedios para evitar choques con obstculos, e incluso el tiempo de paso por cada uno de esos puntos. La funcin que describir la trayectoria va de R en R o en R , puesto que a cada instante de tiempo (un nmero real) le asignar un vector de valores representando la posicin y orientacin, bien en el espacio cartesiano, bien en el de articulacin.
6 nj

f:

R R6 t [0 . . . t0 ] (x, y, z, y, p, r)

Se puede (y se suele) exigir a esta funcin que sea suave, entendiendo por tal que sea de clase C (contnua y con derivada contnua). Hay muchas formas de escoger la funcin f . Comentaremos las ms sencillas. En primer lugar, especicaremos la trayectoria en el espacio de articulaciones para cada una de ellas por separado. Esto no dar lugar a trayectorias simples para el punto terminal, pero le dejar al nal en el lugar requerido, y la trayectoria que ste ejecute ser suave (de clase C ) puesto que sera la composicin de la funcin que elijamos para la variable de articulacin (que ser C ) con la cinemtica inversa, que, salvo en las singularidades, tambin lo es. Para cada articulacin, , (puede ser rotacional o traslacional) deniremos una funcin
1 1 1

R R t (t) con t [0 . . . t0 ]

y es obvio que la funcin deber satisfacer ciertos requerimientos: Ser contnua. Esto es obvio: un objeto no puede encontrarse en una posicin en el espacio, y aparecer instantneamente en otra Ser derivable, y con derivada contnua; de otro modo, la derivada (que representa la velocidad lineal o angular) de esa articulacin estara en cierto instante no denida, o a su vez, su derivada (la aceleracin) sera innita. Debe cumplir que: (0) = 0 (0) = (2.10) (t ) = (t ) = 0 (2.11) ROB2/41
0 f f f

Apuntes de Robtica
0 f

Ingeniera Informtica

siendo respectivamente y los valores iniciales y nales de la articulacin, y sus derivadas son nulas, porque se supone que parte del reposo, y se llega al reposo. La eleccin ms sencilla para es un polinomio en t, y deber ser al menos de tercer grado, dado que uno de grado 0 es una constante, lo cual no movera la articulacin. Uno de grado 1 es lineal, con lo cual su derivada no podra ser nula en algn punto; y uno de grado dos slo tiene un mximo o un mnimo, con lo cual su derivada no podra anularse en dos puntos, como se pide. As pues, ser de la forma:
(t) = a0 + a1 t + a2 t2 + a3 t3

Para determinar los coecientes a aplicaremos las condiciones dadas en las ecuaciones 2.10 y 2.11, lo cual resulta en el sistema:
i

a0 a0 + a1 tf + + a3 t3 f a1 a1 + 2a2 tf + 3a3 t2 f a2 t2 f
i f

= = = =

0 f 0 0

que es lineal en las a (t es conocido), y por tanto, se puede resolver directamente, siendo la solucin:
a0 = 0 a1 = 0 3 a2 = 2 (f 0 ) tf 2 a3 = 3 (f 0 ) tf

Si el movimiento no partiese del reposo, o no parase al nal, se hace de modo similar, con condiciones ligeramente diferentes. Ahora, supongamos que queremos llevar la articulacin desde un valor inicial, hasta un valor nal , pero pasando por una serie de puntos intermedios, , con i = 1 . . . n. Si queremos que la articulacin se detenga en cada uno de estos puntos intermedios, no hay problema: se usa el mtodo anterior aplicndolo a cada tramo; pero si, como es usual, no deseamos esto, podemos jar la velocidad angular o lineal a la que queremos que la articulacin pase por cada punto, y aplicar el mtodo a cada segmento. En este caso se tiene para cada tramo:
0 f i

(ti1 ) (ti ) (ti1 ) (ti )

= = = =

i1 i i1 i

3 a0 + a1 ti1 + a2 t2 i1 + a3 ti1 3 a0 + a1 ti + a2 t2 i + a3 ti 2 a1 + 2a2 ti1 + 3a3 ti1 a1 + 2a2 ti + 3a3 t2 i

= = = =

i1 i i1 i

Este sistema tambin se puede resolver sin problemas para cada tramo, pues es lineal (los tiempos de paso, t , los ja el usuario, y por tanto en estas ecuaciones son contantes). Ahora bien, hay an que buscar alguna manera razonable de jar las velocidades de articulacin, (t ) en cada punto intermedio. Hay tres maneras: ROB2/42
i i

Apuntes de Robtica

Ingeniera Informtica

Especicar en cada punto intermedio velocidad cartesiana (lineal y angular) del punto terminal, y convertirla mediante la cinemtica inversa (o usando el Jacobiano para ese punto) en velocidades de articulacin. Dejar que el sistema escoja la velocidad de articulacin en cada punto intermedio usando alguna regla heurstica (codicada explcitamente). Una regla razonable sera escoger la velocidad (pendiente de la curva) como la pendiente media entre segmentos rectilneos contiguos, en el caso de que la velocidad no cambie de signo entre ese tramo y el siguiente, y cero, si dicha velocidad cambia de signo. Vase la gura 2.20
1 3 2 4

t0

t1

t2

t3

t4

Figura 2.20: Eleccin de la velocidad intermedia Hacer que la aceleracin en los puntos intermedios sea contnua. Para escribir las ecuaciones de este caso, llamaremos (t) a la funcin (polinomio de tercer grado) que da el valor de la articulacin en el primer tramo, y (t) al que lo da para el segundo tramo. Su forma explcita, junto con sus correspondientes derivadas, ser:
a b

a (t) = a10 + a11 t + a12 t2 + a13 t3 b (t) = a20 + a21 t + a22 t2 + a23 t3

a (t) = a11 + 2a12 t + 3a13 t2 b (t) = a21 + 2a22 t + 3a23 t2

a (t) = 2a12 + 6a13 t b (t) = 2a22 + 6a23 t

Entonces, las ecuaciones para este caso son las siguientes (suponiendo origen de tiempos en el inicio de cada tramo, lo que signica simplemente empezar a contar el tiempo en cada punto intermedio de paso. Se denota as por t al tiempo que le cuesta a la articulacin recorrer el primer tramo, y t al que le cuesta recorrer el segundo):
f1 f2

0 v v g a (tf 1 ) a (tf 1 ) a (0) b (tf 2 )

= a (0) = a (tf 1 ) = b (0) = b (tf 2 ) b (0) = b (0) = = 0 = 0

= = = = = = = =

a10 3 a10 + a11 tf 1 + a12 t2 f 1 + a13 tf 1 a20 3 a20 + a21 tf 2 + a22 t2 f 2 + a23 tf 2 a11 + 2a12 tf 1 + 3a13 t2 f1 2a12 + 6a13 tf 1 a11 a21 + 2a22 tf 2 + 3a23 t2 f2

= = = =

a21 2a22 0 0

(1) (2) (3) (4) (5) (6) (7) (8)

En este sistema, la ecuacin (1) expresa el valor inicial, la (2), el valor al nal del primer tramo, que hemos llamado , y que es igual al valor al principio del segundo tramo (ecuacin (3)) por continuidad. La ecuacin (4) es el valor nal que ha de tener , al cual hemos llamado . Por otra parte, la velocidad debe ser contnua, por lo que su valor al nal del primer tramo igualar al del inicio del segundo, lo cual expresa la ecuacin (5). La ecuacin (6) expresa la continuidad de las aceleraciones, y es la eleccin de la que partamos ROB2/43
v g

Apuntes de Robtica

Ingeniera Informtica

en este caso. Las ecuaciones (7) y (8) expresan que se parte del reposo al inicio del primer tramo, y que la articulacin se detiene al nal del segundo. Como se ve, ha resultado un sistema de 8 ecuaciones con ocho incgnitas, pero tres de ellas (las numeradas (1),(3) y (7)) son triviales. De este modo, las soluciones para tres de las incgnitas son: y las cinco ecuaciones resultantes, sustituyendo estas soluciones, son:
3 a12 t2 f 1 + a13 tf 1 3 a21 tf 2 + a22 t2 f 2 + a23 tf 2 2 2a12 tf 1 + 3a13 tf 1 a21 t3 f1 2a12 + 6a13 tf 1 2a22 a21 + 2a22 tf 2 + 3a23 t2 f2

a10 = 0 a20 = v a11 = 0

sistema que escrito en forma matricial queda:


= = = = =

v 0 g v 0 0 0

(2) (4) (5) (6) (8)

Hay que hacer dos consideraciones: una alternativa a la ecuacin (6) consistira en que, en lugar de exigir continuidad de la aceleracin, en el cambio de tramo, se exija que la velocidad, adems de ser contnua (ec. (5)) tuviera un valor dado, sea . En ese caso, la nueva ecuacin (6) sera (t ) = , o sea, (o bien, a = , lo cual, por la ec. (5), es equivalente). a + 2a t + 3a t = Adems de esto: al plantear para dos tramos, hemos obtenido 8 ecuaciones con ocho incgnitas. Anlogamente, se podra plantear el problema para n tramos, obteniendo en ese caso 4n ecuaciones con 4n incginitas. Hasta aqu se ha descrito el mtodo que usa como funciones de interpolacin polinomios cbicos. Otro mtodo posible es usar en el centro de cada tramo una interpolacin lineal, y en los extremos, parablas. Se escoge un tiempo t , menor que el tiempo total del tramo, t ; se trata de interpolar con una parbola desde 0 hasta t , con una recta desde t hasta t t , y nuevamente con otra parbola entre t t y t . Ntese que si el valor de la variable de articulacin es cuadrtico con el tiempo, su derivada (la velocidad) es una funcin lineal del tiempo, y a su vez la derivada de sta (la aceleracin) es constante. Esto es bueno para un control sencillo de los motores, ya que, como veremos en el tema 5, la fuerza (o momento) y la aceleracin lineal (o angular) se relacionan linealmente. La grca para la variacin de la variable de articulacin en funcin del tiempo en cada tramo sera la mostrada en la gura 2.21, la cual es antisimtrica respecto al punto medio. Entre los instantes 0 y t se tendr:
c a f1 c 11 12 f 1 2 13 f 1 c 21 c b f b b f b f b f b

t2 t3 0 0 0 f1 f1 3 0 0 tf 2 t2 t f2 f2 2tf 1 3t3 1 0 0 f1 2 6tf 1 0 2 0 0 0 1 2tf 2 3t2 f2

a12 a13 a21 a22 a23

v 0 g 0 0 0 0

por lo que

1 2 (t) = 0 + t 2 1 2 b = 0 + t 2 b

ROB2/44

Apuntes de Robtica
f

Ingeniera Informtica

b 0 0 tb th t f t b tf

Figura 2.21: Interpolacin lineal con extremos parablicos y la velocidad en cualquier punto de ese tramo ser (t) = t en particular, en t , (t) = t Ahora bien, sta debe ser igual a la velocidad en el tramo lineal, pues se exige, como siempre, continuidad de la velocidad. De ello se obtiene = (2.12) t t t Adems, como t = t /2, y el valor de la variable en este punto medio es, por simetra de la curva, la media de los valores lmite (o sea, = ( + )/2), la ecuacin 2.12 queda
b b h b b h b h f h 0 f

b= t

0 +f 2

1 2 (0 + 2 tb ) tf 2

de la que se obtiene operando

tb

que es una ecuacin de segundo grado con variable t (el resto de factores que aparecen en la ecuacin son conocidos, excepto , la aceleracin, que habremos de elegir. Al resolver en t obtenemos
b b

2 t f tb + (f 0 ) = 0 t b

Para que haya solucin, el discriminante de esta ecuacin de segundo grado debe ser positivo, o sea, para lo cual habr de escogerse de modo que
2 t2 f 4 (f 0 ) > 0 4(f 0 ) t2 f

tb =

tf 2

2 t2 4 (f 0 ) f 2

En el caso de escogerlo exactamente igual (no mayor), no habra segmento recto central, los dos tramos parablicos enlazaran directamente. ROB2/45

Apuntes de Robtica

Ingeniera Informtica

t t

Figura 2.22: Gracas de la variable de articulacin, su velocidad y aceleracin En el caso usual las grcas son las mostradas en la gura 2.22 El mtodo descrito tambin puede aplicarse al caso de una trayectoria que forzamos a pasar por una serie de puntos dados. En realidad, no pasar exactamente sobre ellos, a menos que nos detengamos. No obstante, ser suave. Dados dos puntos, cerca de los cuales se debe pasar en los instantes t y t , segn se aprecia en la gura 2.23, sean los respectivos valores de la variable en ellos y , el tiempo entre ambos instantes, t , y el tiempo ocupado por el tramo lineal, t .
j k j k djk jk

tj

tk

t jk l k

t djk

Figura 2.23: Aproximacin lineal-parablica para dos puntos Trazaremos el tramo lineal de modo que, si se prolongase, pasara por ambos puntos; en ese caso la velocidad durante l ser la pendiente de la recta que pasa por los puntos j ROB2/46

Apuntes de Robtica

Ingeniera Informtica
jk = k j tdjk

y k, que es
k

donde todos los datos que aparecen son conocidos. Por otra parte, la aceleracin para el tramo parablico, , deba jarse a un valor razonable. Se har esto, teniendo en cuenta que el signo de la aceleracin vendr dado por la diferencia de velocidades. o sea,
k = sig ( kl jk ) | k |

El tiempo que transcurre durante el tramo parablico ser


tk = kl jk k

(puesto que

kl

jk + = k tk

) y por ltimo, el tiempo de paso por el tramo recto sera


1 1 tjk = tdjk tj tk 2 2

Todo esto se aplica a segmentos intermedios. Para los tramos inicial y nal existen frmulas anlogas. Como hemos visto, este mtodo pasa de un modo suave cerca de los puntos intermedios, pero no estrictamente sobre ellos. Para forzar el paso por un punto concreto, i, una solucin es situar otros dos puntos intermedios antes y despus del mismo ( i 1 e i + 1), de modo que los tres sean colineales, y que el i est al centro de los otros. De esta forma, las rectas que unen i 1 con i e i con i + 1 son la misma, y cruzarn sobre el punto i, degenerando el tramo parablico t en una recta.
i

2.5.2. Trayectorias en el espacio cartesiano

Este caso es similar al anterior, pero ahora lo que se pretende es que el punto terminal describa una recta, o alguna curva arbitraria, dada en coordenadas cartesianas. Idealmente, debera calcularse la trayectoria que pase por los puntos indicados siguiendo para cada coordenada cartesiana los mtodos de interpolacin ya vistos para el espacio de articulaciones. Para interpolar la posicin esto no crea problemas, pero para interpolar las orientaciones no podemos usar las componentes de los vectores n,o y a, puesto que perderamos la ortogonalidad. Habr que interpolar sobre alguno de los sistemas de ngulos que se describieron anteriormente, los de Euler, o los y/p/r. Aun as, no se puede interpolar usando todos los puntos de la trayectoria (son innitos). En las situaciones prcticas, se escoge un conjunto discreto, se calcula la cinemtica inversa en ellos, y se interpola sobre cada componente del vector de articulacin. Esto har que en el espacio cartesiano la trayectoria no sea exactamente recta, sino que describa pequeos arcos entre cada dos puntos de interpolacin; no obstante, si stos estn sucientemente prximos, el efecto es el de un recorrido recto. Finalmente, hacer notar dos problemas adicionales: el primero es que parte del camino que se desea recorrer est fuera del espacio de accesibilidad; el programa de generacin de trayectorias debera darse cuenta de ello antes de iniciar el movimiento, y por tanto, no hacerlo, avisando al usuario, o incluso generando un camino alternativo. El segundo problema es que la trayectoria pase sobre o cerca de singularidades. Vemoslo con un ejemplo: ROB2/47

Apuntes de Robtica
Z r

Ingeniera Informtica

Y a z Y Recta x=a X X Vista en perspectiva Vista superior r vy

Figura 2.24: Brazo con 3 g.d.l. Sea el brazo con tres g.d.l. que se muestra en la gura 2.24. del tipo T RT Fcilmente se puede comprobar que las ecuaciones de la cinemtica directa para l resultan ser
x = r cos() y = r sin() z = z

y las de la inversa,
= atan2(y, x) x2 + y 2 r = z = z

El Jacobiano se calcula de la ecuacin 2.4, siendo


J =

De aqu podemos concluir que la relacin entre velocidades cartesianas y de articulacin ser
vx vz

x r y r z r

x y z

x z y z z z

cos() r sin() 0 = sin( ) r cos( ) 0 0 0 1

lo que, despejando las velocidades de articulacin por inversin de la matriz, y usando las coordenadas cartesianas, resulta en:
x r r cos() r sin() 0 vx x2 + y 2 1 y = sin( ) cos( ) 0 vy = x2 + y 2 r 0 0 r vz z 0

vy = sin( )

r cos() r sin() 0 r cos() 0 0 0 1 z

x2 + y 2 x x2 + y 2

v x vy 0 vz 1

ROB2/48

Apuntes de Robtica

Ingeniera Informtica

por tanto, tendremos


1 (xvx + yvy ) + y2 1 = (yvx + xvy ) 2 x + y2 z = z r = x2

Supongamos que queremos recorrer la trayectoria rectilnea stante, con velocidad v = 0 y v = cte. En ese caso,
x y

x=a

, siendo a una con-

y vy + y2 a = vy 2 a + y2 r = a2

En particular, para el punto x = a, y = 0, tendramos que imprimir a las articulaciones unas velocidades r = 0 y = . Esta ltima sera enorme, si a es muy pequea, es decir, si pretendemos pasar cerca del origen, y es posible que el motor que controla la articulacin rotacional no pudiera imprimrsela. Esto signica que la trayectoria rectilnea que habamos planeado no puede recorrerse a velocidad constante, aun cuando no pasa sobre la singularidad (que est en (0, 0)) sino simplemente cerca de ella.
vy a

ROB2/49

Apuntes de Robtica

Ingeniera Informtica

ROB2/50

Tema 3: Sensorizacin
3.1. Necesidad e importancia. Tipos

El desarrollo con xito de la tarea de un robot depende absolutamente de que ste tenga informacin correcta y actualizada a un ritmo sucientemente rpido, de su propio estado y de la situacin del entorno. En particular, deben conocerse posicin, velocidad y aceleracin de las articulaciones (al menos, una representacin digital de estas magnitudes) para estar seguros de que el robot sigue una determinada trayectoria (segn sta fue denida en en tema 2) y tambin de que alcanza la posicin nal deseada en el instante requerido, y con la mnima o ninguna sobreoscilacin. Los sensores que permitirn este conocimiento, as como en general todos aquellos que produzcan informacin sobre el estado del propio robot, sern llamados sensores internos. Por otra parte, en la mayora de las tareas es necesario conocer datos del mundo que rodea al robot, como distancias a objetos (o contacto con ellos), fuerza ejercida por la mano en las operaciones de prensin, o ejercida por objetos externos (su peso), etc. Este tipo de conocimiento se puede adquirir con dispositivos muy diferentes, desde los ms simples (microinterruptores) a los ms complejos (cmaras de TV). Todos estos sensores que dan informacin acerca de lo que rodea al robot sern llamados externos. La importancia de los procesos de sensorizacin en Robtica debiera ser obvia sin ms que examinar el desarrollo de cualquier tarea mnimamente compleja. Sin sensores internos sera imposible establecer los lazos de realimentacin (normalmente negativa) que se estudiarn en el tema 5, y que hacen posible el posicionado correcto. Sin sensores externos, cualquier evento inesperado bloqueara el robot, pudiendo daarlo, y la imprecisin, siempre presente en las magnitudes que denen cualquier tarea (p. ej., las posiciones de las piezas) abortara cualquier intento de ejecucin able. A continuacin se detallan las clases de sensores correspondientes a cada tipo que se describirn en el resto del tema.

ROB3/1

Apuntes de Robtica

Ingeniera Informtica

 Sensores internos  De posicin  Elctricos  Potencimetros  Sincros y resolvers  El Inductosyn  Opticos  Optointerruptores  Codicadores absolutos e incrementales  Sensores de velocidad  Electricos: Dinamos tacomtricas  Opticos: medicin de la velocidad con un encoder  Acelermetros  Sensores externos  De proximidad  De contacto: microinterruptores  Sin contacto fsico  De reexin lumnica (incluyendo infrarrojos)  De bra ptica  Scanners laser  De ultrasonidos  De corriente inducida  Resistivos  De efecto Hall  De tacto  De varillas  De fotodetectores  De elastmeros de conductividad  De presin neumtica  De polmeros (piel articial)  De transferencia de carga  De fuerza  Por corriente en el motor  Por deexin de los dedos  De visin  Cmaras de tubo  Cmares lineales CCD  Cmaras usuales CCD ROB3/2

Apuntes de Robtica
3.2. Sensores internos
3.2.1. Sensores de posicin

Ingeniera Informtica

Como su nombre indica, son los que dicen en qu posicin, o, ms exactamente, en qu punto de su recorrido permitido se encuentra una articulacin. Segn sta sea rotacional o traslacional, el sensor deber tener una estructura mecnica adaptada a la medicin de ngulos o de distancias. Existen dos tipos fundamentales: elctricos y pticos. Entre los primeros destacan: Potencimetros : Consisten en un contacto que se mueve sobre un hilo de material resistivo (p. ej. constantn) arrollado en espiral. La resistencia es proporcional a la cantidad de hilo desde el inicio hasta la posicin del contacto mvil. El esquema es:
Lamina de contacto Vs Vs

r Devanado de hilo d R V0 R r

Figura 3.1: Esquemas del sensor potenciomtrico Como se ve, pueden construrse lineales, o circulares, segn el tipo de articulacin que los requiera. La tensin en el punto intermedio es
V0 =

Por supuesto, debe procurarse que la construccin haga que r sea lineal con la distancia d (o con el ngulo ). El porcentaje de no linealidad viene dado por 100 donde es la mxima desviacin de la linealidad.
Vs

r Vs R

Tension esperada

Tension obtenida

Figura 3.2: Tensin obtenida y esperada Por otra parte, si la bobina es de hilo, la mxima resolucin viene dada por la anchura de una espira, con lo que el porcentaje de resolucin es
%(res) = 100 Vs /N 100 = Vs N

ROB3/3

Apuntes de Robtica

Ingeniera Informtica

La resolucin no suele ser muy buena. Para evitarlo se pueden emplear potencimetros de lmina resistiva, donde el hilo devanado se sustituye por una supercie resistiva. Tienen, adems, menos ruido, (no hay cambio de espira a espira) pero la pletina roza lo cual provoca deterioro. Existen tambin versiones bipolares de los potencimetros, que dan seal tanto positiva como negativa, lo cual podra usarse como entrada a un sistema de control analgico, aunque hoy raramente se hara. Sincros y resolvers : Son sensores de posicin exclusivamente angulares, que no requieren contacto fsico entre las piezas, por lo que se deterioran menos. Hoy da no se suelen emplear porque dan seal analgica, y adems por su peso y coste. Se basan en un montaje similar a un transformador, en el que tres bobinas dispuestas en estrella rodean a un primario, que est mecnicamente jo, pero al que se aplica una tensin variable como V (t) = V sin (t). El secundario gira alrededor de un eje perpendicular al plano de la gura. Con esta disposicin, se puede probar que la tensin inducida en l tiene la forma V (t) = V cos sin (t) cuyo valor ecaz, extrado mediante un circuito al efecto, es proporcional el coseno del ngulo que el secundario est girado respecto al primario del transformador.
0 0

S1

S1

Tension de ref. (alterna) S2 S3 S2 S3

R1 R2

Figura 3.3: Esquema del sincro Los resolvers son similares a los sincros, pero con las bobinas colocadas en posicin diferente (separadas 120 ) El Inductosyn En su variante lineal, este sensor est formado por dos reglas que se desplazan una sobre otra, con circuitos (pistas) dibujados sobre cada una en forma de lneas almenadas, como se muestra en la gura. En la regla ja las lneas ocupan toda su longitud. En la regla mvil, que se deplaza sobre sta con sus lneas superpuestas, pero sin contacto elctrico con las lneas de la regla ja, slo hay dibujados dos grupos de almenas, desfasadas un cuarto de periodo una con respecto a otra (y por tanto, con respecto a las jas). Al aplicar una tensin alterna a la lnea ja de valor V (t) = V sin (t) en los grupos de lneas de la regla mvil aparecen sendas tensiones inducidas de valor ) sin (t) y V = V sin ( V = V cos ( ) sin (t) donde X es el desplazamiento lineal de la regla mvil desde el inicio de su recorrido, y S la longitud de una onda (almena) de la escala. A partir del valor ecaz de estas dos tensiones es posible extraer el valor de X . La seal es similar a la de los syncros y resolvers, pero mucho ms exacta, porque resulta de un promedio sobre muchas espiras (almenas). Existe una versin rotacional que alcanza precisiones de hasta 5 milsimas de grado. ROB3/4
o TM 1 2 2X S 2X S

Apuntes de Robtica

Ingeniera Informtica
Regleta fija

Parte movil

Pistas en la regleta fija Pistas en la parte movil

Figura 3.4: Esquema del Inductosyn El siguiente apartado se reere a sensores de posicin de tipo ptico . Estos son especialmente importantes por ser los ms usados, y entre ellos el ejemplo casi exclusivo son los codicadores (o encoders) pticos de posicin, que se basan en el principio del optointerruptor. Vemoslos en detalle. Optointerruptores : Son interruptores de nal de carrera (es decir, no detectan cul es la posicin de la articulacin, sino slo si sta ha llegado o no a un punto determinado de su recorrido, usualmente el tope). No usan contactos mecnicos, sino un fotodiodo (o fotoresistencia) y un LED (diodo emisor de luz) que emite frente a l. Al moverse la articulacin un disco o tope acoplado con ella (o, ms usualmente, con el motor) interrumpe la luz del LED, dando en el fotodiodo un anco negativo que es detectado por la circuitera apropiada. Hay versin tanto lineal como rotacional. En ste ltimo caso tiene el problema de que no se conoce el sentido en que giraba el motor antes de llegar al punto de interrupcin; esto puede ser un problema porque una articulacin tpica suele necesitar varias vueltas de motor para completar su recorrido. El disco puede tener una sla marca, o varias, y en este caso un circuito apropiado detendra el motor a cada una de ellas, llevando el robot a travs de una secuencia de movimientos con detenciones en puntos establecidos. "Programar"este tipo de robots signica cambiar los discos por otros con las muescas apropiadas.
TM

Figura 3.5: Discos con una o varias muescas Codicadores pticos : Se construyen como los microinterruptores, pero con numerosas muescas apropiadamente distribudas. Hay dos tipos fundamentales: +Absolutos: El disco que gira est impreso de tal modo que resulta opaco en ciertas reas, y stas estan dispuestas como sectores, de modo que para cada sector radial la alternancia de zonas claras y oscuras corresponda a un cdigo binario asignado de modo ROB3/5

Apuntes de Robtica

Ingeniera Informtica

nico al sector. Cada uno de los "bits"de ese cdigo es ledo por un fotodiodo diferente que se encuentra cada vez ms lejos del eje. La secuencia de asignacin para sectores contiguos puede ser correlativa, o dar, p. ej., el nmero de sector en el cdigo BCD.

Figura 3.6: Disco de un codicador ptico absoluto de 16 sectores, 4 pistas Tiene la ventaja de que "conserva"la lectura incluso sin corriente, de modo que al conectar el sensor se puede saber por lectura directa el sector en que se est. La resolucin mxima en grados es, por supuesto, 360/N sectores, y el nmero de pistas (por tanto: de partes LED-fotodiodo) debe ser tal que 2 = N sectores. Esto los hace caros y complejos, y por ello, no muy usados. +Incrementales : De construccin similar a los anteriores, pero con slo una pista que contiene muescas (o marcas opacas regulares) y dos pares LED-fotodiodo, colocados con una separacin angular tal que las ondas cuadradas que cada uno genera cuando el eje se mueve estn desfasadas un cuarto de periodo. En realidad, la seal generada por el fotodiodo no es cuadrada, debido a que la transicin no es lo abrupta que debiera, y a que puede recoger luz de estras vecinas, si stas son nas (de hecho, resoluciones comunes estn en el rango de 200 a 1000 lneas/vuelta). Esto se soluciona pasando la seal por circuitos comparadores que generan un 1 lgico para tensiones mayores que un umbral, y 0 para las menores. Aparte, todo el dispositivo se encapsula hermticamente para evitar el polvo, suciedad e inuencia de la luz ambiente. Las ondas generadas son como se muestra en la gura 3.7
o N o pistas o

SH SA

1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

(a)

Figura 3.7: Ondas en los dos canales de un encoder incremental ROB3/6

Apuntes de Robtica

Ingeniera Informtica

Dadas estas seales, es imposible conocer la posicin angular absoluta, pero el hecho de usar dos canales permite conocer el sentido de giro. Como ejemplo, supongamos que estamos en la situacin (a) de la gura 3.7, leyendo por tanto {1,1} en cada canal, y las entradas siguientes son respectivamente {1,0}. En ese caso, es claro de que estamos girando en sentido antihorario (SA). De otro modo, las siguientes entradas habran sido {0,1}. En principio, cada muesca genera una onda cuadrada completa, de modo que la resolucin crece con el nmero de muescas. Pero es posible aumentarla electrnicamente, dndose cuenta de que en cada onda completa hay, contando los dos canales, 4 transiciones, de tal modo que contando transiciones la resolucin queda multiplicada por 4. Un posible circuito apropiado para procesar esta seal sera un combinacional asncrono con dos entradas (los dos canales) y dos salidas (U,D) que vayan a las entradas de un contador UP/DOWN, producido por el autmata de la gura 3.8 (sin simplicar):
11 10 B
10

C
10

01 D 10 00
10

00 E
10

A
00

01 10 01 F
01

01 01

11 10 H 00

I
01

11

G
01

10

01

Entradas sobre las flechas de transicion: canal1/canal2 Salida (en negrilla) bajo los estados: (UP counter,DOWN counter)

Figura 3.8: Estados/salidas para el circuito de incremento de la resolucin Hay otras posibilidades, como el uso de un combinacional asncrono implementado en ROM, o contadores en chip. Y an ms, es posible sustituir las seales cuadradas por seales sinusoidales o triangulares usando un disco de transmitancia ptica variable, lo cual genera una pareja de valores analgicos para cada posicin concreta. Codicadores pticos incrementales como los descritos son el medio ms habitual de conocer la posicin de una articulacin robtica. Pero como sta debe ser conocida de modo absoluto, es preciso al conectar el robot proceder al proceso llamado calibrado , que consiste en poner cada articulacin en su posicin inicial, lo cual se hace mandando corriente a cada motor, hasta que se observe que no se mueve ms (la lectura del codicador deja de cambiar); esto debe hacerse durante breve tiempo, para no quemar el motor. A continuacin se sita el valor elegido como referencia en cada registro contador de pulsos. Una forma posible de convertir un codicador incremental en absoluto es usar juntos el codicador y un potencimetro, ste ltimo unido a un engranaje desmultiplicador de modo que no de ms de una vuelta en todo el recorrido. As, el potencimetro da la posicin gruesa (con poca precisin) y el codicador la posicin na. La calibracin se hara aqu de modo similar, pero sin necesidad de ir al tope, slo hasta la siguiente salto discreto del potencimetro. Antes de concluir es necesario apuntar dos problemas que se presentan en el uso de codicadores pticos: ROB3/7

Apuntes de Robtica

Ingeniera Informtica

+Oscilacin: Cuando se levanta una carga a una cierta altura, el motor recibe corriente hasta que el codicador marque la posicin deseada; pero al estar en ella, el sistema de control no debe mover ms el motor, y por tanto no le enva corriente, con lo cual, por el propio peso de la carga, la articulacin cae hasta la posicin inferior del encoder (recurdese que hay un error de 360/N grados) lo que da un seal de error de 1 pulso, que activa el motor de nuevo, y as sucesivamente. Esta oscilacin se puede reducir aumentando la resolucin del encoder, y se elimina si hay una cierta friccin, que amortigue o elimine las oscilaciones (sistema sobreamortiguado). La eliminacin total slo se conseguira haciendo control analgico sobre la "raw-signal"(la seal original de los encoders, antes de pasar por los comparadores). Otro problema est relacionado con la velocidad de cambio de la seal y el periodo de muestreo, y se estudiar en el tema 5.
3.2.2. Sensores de velocidad

Como su nombre indica, miden la velocidad (normalmente, angular, puesto que suelen ser rotacionales) a la que gira la articulacin a que se conectan. Existen dos tipos: elctricos y pticos. Elctricos : Slo veremos un caso: el tacmetro o dinamo tacomtrica, que es un dispositivo similar a un motor, que genera una tensin alterna de amplitud proporcional a la velocidad angular de giro. Se disean de tal modo que esta amplitud sea lo ms lineal posible con la vel. angular en el rango de uso. Suelen dar muy poca corriente (no es necesario que den ms) dado que se usan pocas espiras en su bobinado, para que sean ligeros. Consisten en un devanado que gira perpendicularmente a un campo magntico creado (normalmente) por un imn permanente. Vase la gura
Iman permanente V resultante
da

Devanado Escobilla Onda alterna Onda rectificada V resultante

da

Varios devanados

Figura 3.9: Esquema de la dinamo tacomtrica Recurdese que la tensin que aparece en un conductor que se mueve dentro de un campo magntico es
V =

Como se ve, esta es una tensin alterna cuya amplitud ( BS ) es porporcional a . Las escobillas hacen que, al producirse un cambio de sentido de la corriente a cada media vuelta (semiperiodo) la tensin salga recticada, pero sigue sin ser contnua. Para paliar esto se ROB3/8
0

d d(BS ) dS0 cos d = = B = BS0 sin = BS0 sin (t) dt dt dt dt

Apuntes de Robtica

Ingeniera Informtica

pueden usar n devanados, arrollados en planos regularmente espaciados angularmente, y escobillas de 2n contactos. La onda resultante sigue sin ser estrctamente constante, aunque se parece ms. La pequea oscilacin, reducible todava ms con un condensador, se llama rizado, y puede ir del 3 al 5% del valor medio. Otra alternativa es usar una armadura mvil (hacer girar el imn), y poner en el centro, que ya no gira, ms bobinas (de 19 a 23); adems, se puede eliminar el ncleo de hierro sobre el que iban bobinadas. Estos tacmetros son ms caros, pero dan un rizado menor (del orden del 1%). +Opticos: Tratan de usar los codicadores pticos antes explicados para medir la velocidad, realizando una aproximacin discreta, pues como se vio, estos sensores generaban seal digital. Hay dos mtodos para obtener el valor de la velocidad. Estos son: - La conversin frecuencia-voltaje: consiste en usar circuitos que realizan una aproximacin discreta a la derivada en la forma dx x siendo x el nmero de pulsos contados en el tiempo t. Constan de un contador, un reloj interno y normalmente un conversor D/A que convierte el nmero de cuentas a voltaje. Esto ltimo slo es necesario si estamos haciendo un control analgico en velocidad del motor. Estos dispositivos tienen dos problemas: un pequeo retraso (que habra que modelizar en contnuo como un retraso de transporte, e ) y el hecho de que el conversor D/A genera una seal contnua a trozos (aunque esto siempre es mejor que el rizado de los tacmetros). - El otro mtodo es efectuar la aproximacin por software mediante un programa que implementase un algoritmo similar al siguiente: Hacer posicin_presente P (kT ) v (k ) (posicin_presente - posicin_anterior)/T posicin_anterior posicin_presente (ejecucin del algoritmo de control) k k+1 espera(T t) hasta (desconexin del dispositivo) donde T es es periodo de muestreo, la funcin P lee el hardware para dar la lectura del encoder en ese momento, v es la velocidad en el instante discreto k (contnuo: kT ) y t es el tiempo que cuesta la ejecucin del clculo en cada pasada del bucle. Por supuesto, debe ser menor que T , en caso contrario, habra que buscar un ordenador ms rpido. El clculo de v(k) puede realizarse con un algoritmo ms complejo que tome en cuenta el valor de la posicin en varios instantes anteriores (recurdense los bloqueadores de orden superior). La eleccin del periodo de muestreo T es importante. Si se toma demasiado grande, podra provocar inestabilidad, porque la lectura de los encoders habra cambiado mucho entre cada dos periodos, y el comportamiento del sistema durante ese tiempo sera incontrolable. Pero si escoge demasiado pequeo tambin tendremos problemas debidos al carcter cuantizado de la seal generada por los encoders. Se incidir en este punto en el tema 5
ts

v=

dt

3.2.3. Acelermetros

Miden la aceleracin del dispositivo al que van fsicamente unidos, y se basan en la ley de Newton. Al mover el cuerpo con cierta aceleracin a aparece sobre l una fuerza de inercia, F = ma, que puede ser medida con un resorte, usando la ley de Hooke, F = kx, ROB3/9

Apuntes de Robtica

Ingeniera Informtica

siendo x el alargamiento del resorte y k su constante elstica. Para medir el alargamiento se puede a su vez usar un encoder lineal.
Resorte

Masa m F=ma=kx

a=

kx m

Encoder lineal
x es leida por el encoder k es la cte. del sistema equivalente de los dos resortes

Figura 3.10: Esquema de un acelermetro inercial Este tipo de sensores se usa poco; generalmente, suelen ser para monitorizar problemas debidos a la falta de rigidez de los brazos. Deben tener cierto amortiguamiento para llegar pronto a la posicin de equilibrio y no oscilar. Recientemente han aparecido tambin acelermetros de estado slido, que constan de una base de silicio con estras y un material conductor sobre l formando un condensador cuya capacidad vara de acuerdo a la distancia entre las placas, que cambia ligeramente cuando stas se comban debido a la accin de la fuerza de inercia.
Base de silicio F

(vista lateral)

Superficie inferior de material conductor

Figura 3.11: Acelermetro de estado slido


3.3. Sensores externos

Como se dijo, estos sensores dan informacin acerca de sucesos y estado del mundo que rodea al robot, es decir, monitorizan dinmicamente la relacin de un robot con su entorno, y el desarrollo de la ejecucin de una tarea. Idealmente, deben alterar lo menos posible el entorno que monitoricen. ROB3/10

Apuntes de Robtica
3.3.1. Sensores de proximidad

Ingeniera Informtica

Sealan la distancia entre el punto terminal (u otro punto) del robot, y otros objetos. Pueden ser de contacto, o sin contacto fsico. +De contacto : Son simples microinterruptores colocados en cabeza del brazo, o en algn punto que se piense que puede chocar. Detienen o hacen retroceder el elemento cuando se activan. Pueden usarse para controlar cundo una articulacin llega a su lmite, o a una posicin dada. En este caso se llaman de fn de carrera. Otro tipo de sensores con contacto fsico son codicadores lineales acoplados a un vstago que se desliza sobre la supercie del objeto; si lo hace a velocidad constante, sirve para conocer el perl del objeto por lectura sucesiva de su valor.

Figura 3.12: Sensor de contacto +Sin contacto : Hay tres tipos, cada uno con varios ejemplos: - De reexin luminosa: constan de una fuente de luz, una lente para focalizar la luz aproximadamente sobre el objeto, otra lente para concentrar la luz reejada, y una fotoresistencia, que medir la intensidad de luz recibida. Esta est relacionada con la distancia al objeto, pero tambin con la intensidad a travs de la fotoresistencia (a tensin constante), lo cual relaciona indirectamente a sta con la distancia segn una grca como la que se muestra en la gura 3.13.
Puntos focales I

Objeto

Figura 3.13: Sensor de reexin luminosa Aparecen tres problemas con este dispositivo: el primero es que hay dos puntos a diferente distancia que dan la misma intensidad (los que se encuentran a un lado y al otro del punto focal de la lente). Esto se resuelve usando otro sensor, o viendo si la seal crece o ROB3/11

8/10 cm

Apuntes de Robtica

Ingeniera Informtica

decrece al avanzar. El segundo problema es que son sensibles a las variaciones de la luz ambiente y de la temperatura. Esto se resuelve mandando la luz no de modo contnuo, sino pulsante, a una frecuencia de unos 6KHz. En este caso de la seal recibida se puede ltrar la componente interesante y ver su amplitud (vase la gura).
Int. emitida

Int. reflejada

Figura 3.14: Intensidad emitida y reejada en modo pulsante El ltimo problema es que la intensidad reejada depende de la naturaleza del material. Esto no se puede evitar del todo; se intenta paliar usando luz infrarroja. Esto hace que se usen ms como aviso (de un modo similar a un microinterruptor, pero sin contacto) que como medidores de distancia absoluta. - De bra ptica: La bra ptica es bra de vidrio que conduce la luz basndose en el fenmeno de la refraccin y el ngulo lmite. Cuando la luz incide en la supercie de separacin de dos medios viniendo desde el que tiene mayor ndice de refraccin hacia el que lo tiene menor, si incide con un ngulo ms pequeo que cierto valor (el llamado ngulo lmite) pasa al segundo medio, refractndose. Pero si lo hace con ngulo mayor, se reeja de nuevo hacia el interior del primer medio. Esto se observa en la parte superior izquierda de la gura 3.15, donde el rayo 1 incide con ngulo menor que el ngulo lmite, el 2 exactamente con el ngulo lmite, y el 3, con un ngulo mayor. Un conjunto de reexiones sucesivas pueden "conducirn rayo de luz por el interior de un tubo de vidrio de geometra apropiada. (gura 3.15, parte superior derecha). A partir de este principio se pueden construir sensores de distancia (o de presencia de objeto) de tres tipos: de corte del haz, en el que el objeto intersecta el haz entre dos cabos de la bra ptica, si est all; de retroreector, en el que el mismo cabo de bra ptica emite y recibe el rayo de luz reejado por un catadiptrico, y de reexin difusa, igual que el anterior, pero en el que la reexin la realiza la propia supercie del objeto. Todos ellos son sensibles a los mismos problemas que el tipo anterior, y por ello tambin se usan ms como detectores de presencia que para medir distancias. - Sensores laser: Se basan en dos espejos perpendiculares acoplados a motores elctricos que permiten deectar un laser de modo que apunte en cualquier direccin deseada del espacio. Para usarlos hay que mover el laser barriendo la supercie con velocidad angular constante. Adems, se sita un dispositivo colimador apuntando en una direccin conocida, y se observa cundo el punto brillante que el laser marca en la supercie del objeto se observa precisamente en esa direcin. De acuerdo al tiempo que el punto laser ha tardado en pasar por ella se determina la distancia de la supercie al colimador. Vase la gura, donde la misma supercie S est puesta ms adelante (SA) o ms atrs (SB). Si el rayo se desplaza sobre el plano del papel en la direccin de la echa, el colimador lo ver antes si incide en A (lo que indicar que la supercie era la SA) que si incide en B (la supercie era ROB3/12

Apuntes de Robtica
1 2 2 1 3

Ingeniera Informtica

Objeto Objeto

Catadioptrico

Sensor de corte de haz

Sensor de retrorreflector

Figura 3.15: Reexin total y sensores con bra ptica SB), dado que el ngulo es menor que , y el rayo se desplazar antes con este ngulo.
A B

B A B

Espejos moviles Laser Laser

Lente cilindrica

Colimador

Objeto

Camaras

SA

SB

Cinta transportadora

Figura 3.16: Dos tipos de sensores laser de distancia Otro montaje alternativo usa una lente cilndrica, que abre el rayo dando una "cortina. lmina de luz, que incide perpendicularmente a una cinta transportadora que desplaza al objeto sobre ella. Dos cmaras colocadas con sus ejes pticos apuntando al punto central y formando ngulos de 45 con el plano horizontal recogen imgenes donde aparecen lneas brillantes sobre el perl del objeto, a distintas posiciones dependiendo de su altura. +Sensores de ultrasonidos : Estos son uno de los tipos ms usados de sensores de distancia sin contacto fsico. Se basan en emitir pulsos de ultrasonidos, y medir el tiempo de vuelo entre la emisin y la recepcin, conociendo la velocidad del sonido (340 m/s, en aire seco a 20 C , y vara con la temperatura). La frecuencia de emisin es ja, normalmente 40 KHz. Se suelen emitir pulsos de aproximadamente 1 ms. (40 ondas completas). El receptor tiene un ltro pasa-banda no sintonizado a los 40KHz, o bien es un dispositivo fsico, cristal u otro, que oscila slo a esa frecuencia. Entre los ms populares se encuentran los sensores Polaroid para cmara fotogrca. Emiten pulsos a varias frecuencias para evitar que alguna frecuencia desaparezca debido a la forma o caractersticas de reexin del objeto. ROB3/13
0 0 TM

Apuntes de Robtica
Rejilla protectora Condensador Lamina de plastico con recubrimiento de oro

Ingeniera Informtica
22.5 45 0 22.5 45

67.5

67.5

tierra

90

Lamina de aluminio Lamina que actua con orificios como muelle 300 V (frec. de ultrasonidos)

Anillo de aislamiento

Respuesta en dB en funcion del angulo, normalizada a la respuesta para angulo 0


TM

0 10 30 50

50 30 10 0

90

Figura 3.17: Esquema del sensor Polaroid

Se usan normalmente varios de stos, orientandolos en diferentes direcciones. La precisin puede llegar a ser de unos 0.5 cm en 2 m., pero esto es en condiciones ptimas. En general, tienen mucho ruido y se ven sometidos a reexiones esprias. Una forma alternativa de medir la distancia usando sensores de ultrasonidos es la medicin de la amplitud de la onda reejada. Se observa una atenuacin aproximadamente cuadrtica de sta con la distancia al objeto, pero en general tambin son poco precisos y dependen del material que reeja. +Sensores de corriente inducida : Se basan en usar una bobina por la que circula una corriente alterna que genera un campo magntico variable. Cuando esta bobina se acerca a un objeto de material ferromagntico (Fe, acero o Al) se generan en l corrientes parsitas, las cuales a su vez generan otro campo que tiende a anular al primero, con lo que la intensidad que circula por el solenoide vara, siempre que el voltaje se mantenga constante. Esta variacin no es lineal con la distancia, y depende de la forma del objeto, del material, y del ngulo de aproximacin del sensor; por ello, es necesario un calibrado para cada uso concreto. No obstante, son robustos y apropiados para ser usados en ambientes hostiles (polvo, grasa, etc.). +Sensores resistivos : Se usan en aplicaciones de soldadura por arco voltico, donde hay que mantener constante la altura sobre el material (normalmente, dos planchas metlicas) que est siendo unido. Se basan en el hecho de que la resistencia del arco voltico (ms exactamente: la intensidad que circula a voltaje constante) es proporcional a la longitud del arco, que es precisamente la distancia entre el electrodo colocado en la punta del brazo y la supercie. Esta intensidad est entre 100 y 200 amperios. +Otros tipos de sensores de distancia sin contacto : Se mencionarn simplemente las sondas capacitivas, que usan el objeto a detectar (que debe ser conductor) como una de las placas de un supuesto condensador, y la punta del brazo, o una pieza metlica adosada a ella, como la otra placa. La capacidad vara en funcin de la distancia. Si la placas fueran planas y paralelas, lo cual es slo una aproximacin, la capacidad sera C = , siendo la cte. dielctrica del aire, S la supercie de las placas, y d la distancia entre ellas. Otro sensor interesante de este tipo es el de efecto Hall. Se basan en que algunos materiales semiconductores varan su conductividad en cierta direccin cuando estn sometidos a la accin de un campo magntico. Por ello, es necesario colocar un imn, aun pequeo, jo al objeto cuya distancia (o, ms habitualmente, presencia o ausencia) queremos detectar. ROB3/14
S d

Apuntes de Robtica
3.3.2. Sensores de tacto

Ingeniera Informtica

No siempre es posible usarlos, pero cuando lo es son muy tiles; van desde los que slo dan seal ON/OFF en puntos seleccionados, hasta los que dan una medida de la presin en cada punto. Por ahora, la mayora son experimentales. Entre ellos cabe citar: +De varillas: Son simplemente una matriz de varillas que se coloca horizontalmente y desciende hasta hacer contacto con el objeto. Si es de tipo ON/OFF, hay que bajarlo hasta que todos los sensores se activan, y entonces ir subiendo lentamente y tomar nota del instante en que cada uno se desactiva. Otro tipo ms evolucionado consiste en varillas de material ferromagntico que se introducen ms o menos en bobinas, variando su inductancia, que se mide, y resulta ser proporcional a (o relacionada con) la longitud de varilla que quede dentro de la bobina.

Figura 3.18: Sensor tctil de varillas +De fotodetectores: Se basan en un principio idntico a los anteriores, pero aqu la varilla corta el rayo de luz que va de un LED a un fotodiodo. Todas las varillas estn cubiertas por una capa elstica. Son siempre de tipo ON/OFF, y presentan los problemas de que la capa elstica tiene cierta histresis, y adems se desgasta y hay que reemplazarla. +De elastmeros de conductividad: Se basan en que ciertos materiales elsticos (algunos plsticos, normalmente) pueden hacerse ms o menos conductores impregnndolos con polvo de hierro o similar. De este modo pueden poner en contacto dos electrodos con una resistencia mayor o menor, segn sea la supercie de contacto. Tienen un problema esencial: el elastmero tiene una vida limitada; tras unos cientos de operaciones, su resistencia no vuelve al valor original desus de decomprimir, o, en otros tipos, lo hacen al cabo de un tiempo excesivo. +De presin neumtica: Se basan en unos contactos regularmente distribudos, y una lmina metlica que se sita sobre ellos, pero no los toca, porque entre ambos queda unas cavidades que se llenan con aire comprimido. Slo cuando se presiona por la parte exterior la lmina vence la presin del aire y toca el contacto. Estrictamente, son binarios, pero cambiando la presin del aire que circula pueden dar una idea de la fuerza con que se presiona: oprimiendo exactamente hasta que haga contacto, la fuerza es entonces justo la necesaria para vencer la presin del aire. Se us para operaciones de insercin; slo daba lecturas de presin de 0 a 50 gramos. +De polmeros (piel articial): Se basan en que ciertos materiales, como el cuarzo o algunos polmeros sintticos, presentan el fenmeno conocido como piezoelectricidad, que consiste en que generan una pequea corriente elctrica cuando se les presiona mecnicamente. Los sensores de polmeros se construyen con una capa protectora, una del material ROB3/15

Apuntes de Robtica

Ingeniera Informtica
Senal a la circuiteria de desacoplo

Electrodos Lamina de plastico Lamina de elastomero

Figura 3.19: Sensor de elastmeros


Cavidad Capa plastica Lamina metalica Tubo de aire comprimido Contactos

Figura 3.20: Sensor de presin neumtica piezoelctrico (uoruro de polivinilo, PVDF) y otra con electrodos en las y columnas que se sita debajo. Al presionar en cierta rea, el PVDF genera una carga local que es recogida por los electrodos; este fenmeno dura unos pocos segundos, lo cual es suciente para medir el mximo de carga generada, que est relacionada con la presin. Este sensor puede usarse en modo binario, o analgico. Tiene el problema del acoplo entre unos circuitos y otros, correspondientes a electrodos vecinos, que se debe solucionar con circuitos de desacoplo de bajsima capacidad (menor de 5 pF). El PVDF es tambin piroelctrico (genera carga al variar la temperatura), lo cual puede ser ventajoso en ciertas aplicaciones, pero en general es un inconveniente, ya que obliga a corregir las medidas con la temperatura ambiente.
3.3.3. Sensores de fuerza

Son necesarios para ajustar correctamente la presin que ejercen los motores de la pinza de un brazo robot en operaciones de prensin, particularmente, en ensamblado de piezas, para as estar seguros de no romper stas. Tambin son prcticamente imprescindibles en operaciones de insercin en las que otros sensores no pueden actuar, por no tener acceso al lugar fsico de la insercin. Es importante medir tanto la fuerza ejercida, como el momento o torque respecto a algn punto, normalmente el eje de rotacin. Existen dos casos importantes de sensores de fuerza: +Por variacin de la corriente del motor: Como se ver en el tema siguiente, para servomotores elctricos de corriente contnua el momento o torque T ejercido por el motor es directamente proporcional a la intensidad que circula por su devanado (corriente de armadura, I ). Si T = K I , entonces midiendo I con un ampermetro podremos conocer el momento ejercido por el motor. La transformacin de esto en fuerza depende del dispositivo de conversin de movimiento rotacional-lineal que se use, p. ej., si se usa un pin de radio ROB3/16
a T a a

Apuntes de Robtica
R

Ingeniera Informtica

conectado a un tornillo sin n, entonces


T = RF = F = KIa R

siendo la eciencia de la transmisin, una constante del orden de 0,9. De este modo pueden darse valores mximos y mnimos de I para cada pieza que haya que ensamblar. Ntese que esto no mide realmente la fuerza, sino una magnitud relacionada, I , y que por tanto si la relacin entre ambas vara (p.ej., por variar K o ) podra ejercerse con la misma corriente una fuerza mayor o menor, que podra respectivamente romper o dejar caer el objeto. +Por deexin de los dedos (galgas extensiomtricas): Se basan en la variacin de resistencia elctrica de cualquier material en funcin de su longitud y seccin. En particular, sabemos que para una amplia gama de materiales, su resistencia es
a a T

R=

L S

siendo L la longitud y S la seccin de la porcin de material. Dada una na lmina de material jada sobre una base exible, si se dobla como se muestra en la gura, la variacin de seccin es despreciable; sin embargo, la variacin de longitud es signicativa, y hace cambiar R, que se puede medir. Normalmente se usan dos lminas unidas de diferentes materiales, como platino-tungsteno o cobre-aluminio, lo cual se llama galga extensiomtrica, o bien con un semiconductor sobre una base de silicio. Las dos lminas forman las resistencias opuestas de un puente de Weathstone, y la variacin de tensin se mide con un amplicador operacional.
L L

Flexion V Extension Vs

Figura 3.21: Galga extensiomtrica Pueden usarse simplemente unidas a cada una de las caras de la pinza de agarre, pero la conguracin ms inteligente, que permite medir fuerza y momento, es la disposicin en los brazos de una cruz metlica como se muestra en la gura 3.22 En este caso, la fuerza F = (F , F , F ) y el momento M = (M , M , M ) ejercidos ROB3/17
x y z x y z

Apuntes de Robtica
Mx f x 1 x 3 My y z 5 fy 4 2

Ingeniera Informtica

Mz fz 6

Figura 3.22: Sensor de fuerza-momento pueden relacionarse con las lecturas de cada sensor, (w , . . . , w ) como
1 8

Fx Fy Fz Mx My Mz

0 0 K13 0 0 0 K17 0 K21 0 0 0 K25 0 0 0 0 K32 0 K34 0 K36 0 K38 0 0 0 K44 0 0 0 K48 0 K52 0 0 0 K56 0 0 K61 0 K63 0 K65 0 K67 0

w1 w2 w3 w4 w5 w6 w7 w8

3.3.4. Sensores de visin

Como su nombre indica, envan al sofware de control y programacin del robot una imagen de la escena o rea de trabajo, que programas adecuados deben encargarse de interpretar para extraer la informacin til sobre posiciones y orientaciones de los objetos presentes (o simplemente, su presencia o ausencia). Este objetivo entra dentro del campo de la visin por computador, y por tanto no se tratar aqu. Por otra parte, los dispositivos de captura de la imagen son cmaras de televisin, bien de tubo de rayos catdicos, bien de tipo CCD, las ms usadas hoy da en aplicaciones robticas. Su tecnologa tampoco se cubrir aqu, puesto que ya fue expuesta en el mdulo "Sistemas de percepcin", o en los mdulos apropiados de Ingeniera electrnica.

ROB3/18

Tema 4: Tecnologa de actuadores robticos


Actuador es todo dispositivo que ejerce fuerzas o momentos sobre las partes de un robot haciendo que stas se muevan. Transforman algn tipo de energa en energa mecnica, y para que sean tiles en Robtica deben poder ser controlados con rapidez y precisin. Las tecnologas fundamentales que se usan hoy en robots son hidrulica, neumtica y elctrica. Estas emplean respectivamente un uido en circulacin, aire comprimido y electricidad. Los motores de combustin interna o de vapor no se usan por la dicultad de controlarlos con precisin y su largo tiempo de respuesta.
4.1. Actuadores hidrulicos

Se usan para levantar cargas mayores de 6 o 7 Kg., o para potencias aproximadas de 5 a 7 HP. El udo que transmite la potencia, normalmente aceite especial, circula por tuberas a presin de unas 200 atmsferas y un caudal de unos 0.25 l/seg. Ejercen presiones aplicando el principio de la prensa hidrulica de Pascal para aumentar la fuerza al disminuir la supercie sobre la que se aplica, y para su control se usan las llamadas servovlvulas, que son dispositivos que controlan el ujo de udo que las atraviesa de acuerdo a la corriente elctrica que se les suministra. El ujo, mayor o menor, que aparece tras la servovlvula hace que un cilindro o pistn se mueva, provocando desplazamiento lineal, que puede ser convertido en rotacional mediante un sistema biela/manivela, como se ver al nal de este tema. Una servovlvula es esencialmente un motor elctrico de baja velocidad y alto torque, que no gira vueltas enteras, sino fracciones de vuelta en contra de una resistencia mecnica; este motor tira de un tubo exible que sujeta una pieza que hace que el ujo de entrada se reparta desigualmente entre cada uno de los tubos de salida, modicando as el ujo que sale por stos. En la gura 4.1, parte (b), se observa la pieza centrada, lo que da un caudal igual por ambas salidas, y en (c) descentrada, lo que da mayor caudal por la salida derecha que por la izquierda. El dispositivo completo se puede ver en la misma gura, parte (a). Su objetivo nal es conseguir que la presin en las salidas C y C , que forman otro circuito hidrulico con el canal central como drenaje sea bien igual, o bien mayor en uno que en el otro. Ello es porque estos dos canales se conectan al actuador nal, segn se muestra en la gura 4.2, el cual mueve la masa M . La velocidad con que se mueve es aproximadamente proporcional a la diferencia de caudales. Se pueden obtener fuerzas mayores con la misma seal para la electrovlvula simplemente aumentando el caudal que circula por el segundo circuito hidrulico. Para cerrar el lazo de realimentacin, la posicin de la masa se puede medir con un encoder lineal cuya seal servir al sistema de control para generar la seal de control de la electrovlvula. Si hay una friccin externa o resistencia al movimiento de la masa, F , habr al nal un error de posicin que se puede solucionar mediante el control integral apropiado. El esquema del sistema completo puede verse en la gura 4.3. ROB4/1
1 2 d

Apuntes de Robtica
P

Ingeniera Informtica

(b)

(a)

C1

C2

(c)

Figura 4.1: Esquema de la servovlvula hidrulica


C1 C2 C1 C2

P1 Piston Cilindro P1 < P2

P2 Masa

P1 Piston Cilindro Desp. izq.

P2 Masa

P1 > P2

Desp. der.

Figura 4.2: Cilindro y pistn hidrulicos lineales


4.2. Actuadores neumticos

Su principio de funcionamiento es similar al de los actuadores hidrulicos, pero a diferencia de aquellos, que empleaban un uido incompresible, stos emplean aire, altamente compresible. El no llevar uidos potencialmente inamables los hace ms seguros, y adems no hay que reemplazar peridicamente el uido. Pero al ser el aire tan compresible suelen ser subamortiguados, lo cual es malo, y una vez alcanzada su posicin nal presentan poca rigidez. Se suelen usar para mover pistones lineales punto a punto, usando topes, pero existe la posibilidad de usar control neumtico. Una especie de controlador proporcional sera el mostrado en la gura 4.4 Se supone que P es la presin producida por un compresor que es aproximadamente (aunque no exactamente) constante. Se trata de que P s lo sea, independientemente de variaciones en la resistencia mecnica o masa de las piezas que el pistn conectado a P mueva. Este movimiento deber ser transmitido al dispositivo a travs de la palanca e. El funcionamiento del controlador es como sigue: si la barra e se mueve hacia la derecha, ROB4/2
1 0

Apuntes de Robtica
Ec Ef Transductor de posicion Fd x,v Kpq A i Q0 + Servo + amplif. Carga F Ka Actuador i Servo valvula

Ingeniera Informtica

Ks

Fd

Servovalvula

Ec

Ee + Ef

Ksa Servo amplif.

Kq

1 v x Vdt A Actuador Integrador

Kfx Transductor

Figura 4.3: Control de un sistema hidrulico la espita x se abre con lo cual P decrece. Esto hace que el sensor A , por la accin de los muelles inferiores, se mueva hacia arriba. Con ello la pieza que bloquea la salida a la atmsfera sube, y esto hace que P aumente (es decir, se aproxime ms a P ). Esto a su vez provoca que la vlvula A (sensor) se mueva hacia la izquierda, tendiendo a cerrar de nuevo la espita x. Cambiando las constantes elsticas de los muelles de los sensores se consigue equilibrar el sistema para mantener una cierta presin de salida deseada, P , constante. Recprocamente, si e se mueve hacia la izquierda, la espita x se cierra, P aumenta, A baja y deja escapar ms aire a la atmsfera, con lo que P disminuye, alejndose de P . Finalmente, P se conecta a un dispositivo de mbolo-pistn semejante al visto en la gura 4.2 para actuadores hidrulicos. Para concluir, comentar que existen actualmente combinaciones de sistemas neumticos y elctricos; la parte neumtica genera el movimiento grueso con bastante fuerza, mientras que la parte elctrica controla el posicionado no. Un uso muy apropiado de stos es en plataformas para simulacin, en la conguracin llamada plataforma Stewart, con 3 o 6 actuadores neumticos lineales unidos a los vrtices de un tringulo equiltero sobre el que se ja una plancha, y sobre ella la cabina del simulador propiamente dicho.
2 2 0 1 f 0 2 0 1 0

4.3. Actuadores elctricos

Son, con gran diferencia, los ms usados actualmente en robots comerciales y experimentales. Los habituales son los motores de corriente contnua (CC) y, en menor medida, los motores paso a paso. Los de corriente alterna se usan raramente por no poderlos controlar con precisin, y por depender su velocidad de giro de la frecuencia de la corriente alterna que los alimenta, la cual no se puede variar ms que con dispositivos electrnicos caros y no extraordinariamente precisos. Es realmente la facilidad de control lo que hace de los motores CC los ms usados. ROB4/3

Apuntes de Robtica
e

Ingeniera Informtica

Compresor P1 P2
x

A2 Af P0
Atmosfera

P1

P0

Hacia el sistema a controlar

Figura 4.4: Controlador proporcional neumtico


4.3.1. Motores de corriente contnua (CC)

Se basan en la fuerza de Lorentz, que aparece sobre una carga que se mueve (es decir, una corriente) cuando lo hace en el interior de un campo magntico. La corriente antedicha circula por un devanado de hilo de cobre, y el campo magntico externo puede estar creado bien por un imn permanente, bien por otra bobina.
B1

Escobillas

Figura 4.5: Construccin de un motor elctrico de CC El campo interno o inducido ( B ) tiende a oponerse al campo externo o inductor ( B). Los motores de contnua se pueden clasicar en dos tipos: controlados por armadura, y por campo. En los primeros, el campo externo es constante, y en los segundos, ambos campos pueden variar. Es claro que en los motores de imn permanente el campo externo tiene que ser constante, pues es el que crea el imn, y por tanto todos los de este tipo han de ser controlados por armadura. De hecho, es el tipo ms usado, y ser el que estudiaremos con detalle. Presenta algunas ventajas:  Genera un alto torque a bajas velocidades. Esto es bueno para acelerar partiendo del reposo y para levantar cargas. ROB4/4
1

Apuntes de Robtica

Ingeniera Informtica

 Tienen un menor tamao y peso que los controlados por armadura. Esto es especialmente importante si, como suele ser el caso, hay que mover el motor junto con la articulacin.  La curva velocidad/torque es lineal, lo cual simplica el control. Las curvas velocidad/torque e intensidad/torque son:
Vel () I

Torque

Torque

Figura 4.6: Curvas V/T e I/T para un motor de CC Si se combinan podemos saber la dependencia velocidad/intensidad para el motor sin carga .
La Ra Res. arm. Va Induc. arm. Res. per. mag. RL
+

Eg

Figura 4.7: Modelo para un motor de CC Un motor de CC controlado por armadura se puede modelizar segn se muestra en la gura 4.7, donde R es la resistencia elctrica de la armadura, L la inductancia de la armadura, R una resistencia equivalente que da cuenta de las prdidas de energa en el campo magntico, y E la fuerza electromotriz. V es el voltaje que se aplica a la armadura mediante una fuente externa, y la velocidad angular, en principio variable con el tiempo, con la que gira el motor. La ecuacin elctrica del circuito, unida a la ley de Faraday y a la ecuacin que da la dependencia lineal entre el torque y la intensidad, sern el punto de partida para el anlisis del motor. R suele ser despreciable a las frecuencias normales de funcionamiento. As, se cumple: dI (t) V (t) = R I (t) + L + E (t) (4.1) dt E (t) = K (t) (4.2) T (t) = K I (t) (4.3) ROB4/5
a a L g a L a a a a a g g E T a

Apuntes de Robtica
M

Ingeniera Informtica

Por otra parte, el motor se usa para hacer girar a su propio eje y devanado, y a cargas externas mecnicamente unidas a l. Si llamamos J al momento de inercia del motor (para no confundir con la I de intensidad), J al momento de inercia de la carga, B al coeciente de rozamiento viscoso, T al torque necesario para vencer la friccin, y T al torque ejercido por la fuerza de gravedad, si es que se est actuando contra ella, podemos escribir la ecuacin de Newton para la dinmica de rotacin ( T = J = J ) como: T (t) = (J + J ) (t) + B (t) + T (t) + T (t) (4.4) Tomaremos ahora transformadas de Laplace de todas estas ecuaciones, sustituyendo E para eliminarlo, e igualando T de las dos ecuaciones en que aparece. Por (s) denotaremos la transformada de (t). Adems, el momento de inercia total ser denotado por J = J + J
L f g M L f g g T M L

Va (s) = Ra Ia (s) + La sIa (s) + KE (s) T (s) = KT Ia (s) = JT s(s) + B (s) + Tf (s) + Tg (s)

Obsrvese que podemos escribir


Va (s) KE (s) Ra + La s T (s) (Tf (s) + Tg (s)) (s) = JT s + B Ia (s) =

(4.5) (4.6)

(4.7) (4.8) y as puede verse que el diagrama de bloques del sistema descrito por estas ecuaciones sera el mostrado en la gura 4.8
Tf+ Tg V
+

VE g Eg

1 R a + La s

Ia

KT

1 J T s+B

KE

Figura 4.8: Diagrama de bloques para el motor CC Supongamos ahora que el motor hace girar una carga externa, pero no en contra de la gravedad (p. ej., en un plano horizontal) con lo que T = 0, y que la friccin es despreciable, T = 0. En este caso, la funcin de transferencia total para el motor, denida como el cociente de las transformadas de Laplace de la salida, que es la velocidad angular a la que gira el motor, y la entrada, que es la tensin que aplicamos a la armadura, V , sera:
g f a

funcin de transferencia de segundo rden, que tiene dos polos cuyas posiciones determinarn el comportamiento transitorio del sistema. Estas posiciones dependen de los valores de las constantes fsicas que intervienen en las ecuaciones. No obstante, con los valores ROB4/6

(s) (Ra +La s)(JT s+B ) Gm (s) = = = 2 La T Va (s) s + (R + 1 + KE (Ra +LaK s)(JT s+B ) a

KT

KT La JT B JT BRa )s + ( L + a JT KT KE ) LA JT

(4.9)

Apuntes de Robtica

Ingeniera Informtica

habituales en motores reales los polos resultan siempre reales y negativos, lo que implica que la respuesta sin carga es de tipo sobreamortiguado; en ciertos casos, uno de los polos est mucho ms cercano al origen que el otro, y puede por tanto considerrsele como dominante, con lo que se puede adoptar para el motor una funcin de transferencia aproximada de primer orden, es decir, (s) K G (s) = (4.10) V (s) 1+ s lo cual es bastante comn. Observando de nuevo el diagrama de bloques, notamos que se trata de un sistema realimentado. Esto puede parecer extrao, puesto que aparentemente no hemos puesto en el motor ningn tipo de sensor que mida la salida, ni restador alguno que la sustraiga de la entrada. En realidad, s los hay. El propio motor es, de por s, un sistema realimentado, y a sta se la llama realimentacin interna. Su manifestacin fsica consiste en que, si aumentamos el torque que el motor debe ejercer, por ejemplo, aumentando de repente la carga, en principio, la velocidad disminuye. Pero recordando las grcas de la gura 4.6, el torque deber aumentar, lo que har a su vez que la intensidad que circula por la armadura aumente, haciendo crecer la velocidad, y oponindose de este modo en parte a la disminucin inicial. Es decir, se trata claramente de realimentacin negativa. Finalmente, comentar que la funcin de transferencia ha sido dada dependiendo de la velocidad angular. Si se necesita relacionarla con el ngulo, recordemos que (t) = y por tanto, (s) = s(s) Esta funcin de transferencia, tanto en su versin completa como simplicada, se usar como punto de partida en el tema 5 para el diseo de controladores apropiados.
m m a m d(t) dt

4.3.2. Motores paso a paso

Igual que los motores de CC, stos van tambin a convertir energa elctrica en movimiento rotacional. A diferencia de los motores CC, aqu el devanado no est en el rotor (parte mvil) sino en el esttor (parte ja). El rotor es, o bien una sustancia paramagntica, o bien un imn permanente. Estos motores tienen varias ventajas: + Operan en lazo abierto, con una precisin de 1,8 (o mejor, si se usa un control apropiado). En principio, el usuario puede razonablemente suponer que la seal de control que envi se ejecutar, aun sin comprobarlo con un sensor. + Tienen alto torque a baja velocidad angular, lo cual es bueno para levantar cargas. + Tienen alto torque de sostenimiento (se quedan bloqueados al mandarles una corriente constante). + Son directamente compatibles con seales digitales de control, pues se activan y mueven cambiando el estado de sus bobinas jas de energizada a no energizada. + Los errores en la posicin no son acumulativos de un movimiento a otro, en realidad, el error cometido no depende del punto en que se inici el movimiento, pues se mueven por pasos discretos. + No necesitan encoders ni tacmetros (si no hay lazo cerrado, no hacen falta sensores internos).Esto, sin embargo, es en cierto sentido un inconveniente, porque el controlador no sabe si algo extrao est ocurrindole al motor (obstculo, etc.) Se puede, en todo caso, usar algn tipo de sensor barato y poco preciso. + Si se quedan detenidos o agarrotados no sufren ni se queman + Si falla la fuente de potencia, por cortocircuito del emisor y el colector de uno de los transistores de potencia (fallo bastante comn), un motor CC se mueve a mxima velocidad, ROB4/7
0

Apuntes de Robtica

Ingeniera Informtica

salindose de recorrido. Estos simplemente se paran. Con todas estas ventajas el uso de este tipo de motores resultara la eleccin obvia, pero desgraciadamente presentan tambin algunos graves inconvenientes: + La potencia mecnica que pueden suministrar es, por el momento, demasiado pequea para su uso en la mayora de las aplicaciones robticas. + Tienen un rendimiento muy bajo, pues buena parte de la energa suministrada se disipa en forma de calor en las bobinas del esttor. Cuando ms disipan es cuando estn parados, a diferencia de los de CC. + Pueden producirse errores de posicin si se manda una secuencia de pasos a velocidad excesiva y al motor no le da tiempo a seguirlos, saltndose uno o ms pasos de la secuencia. + Tienden a ser subamortiguados, es decir, oscilan alrededor de la posicin nal durante cierto tiempo. Hay dos tipos principales de motores paso a paso, cuyo esquema y funcionamiento describiremos a continuacin. +Motores de reluctancia variable (VR) : Estn formados por un esttor y un rotor, el primero, torneado sobre una pieza cilndrica con seccin estrellada de cierto nmero de dientes, N . El esttor est vaciado en otro cilindro, mostrando tambin un nmero diferente de dientes ( N ) hacia el interior, alrededor de cada uno de los cuales hay arrollada una bobina. De hecho, el esttor puede ser simplemente un conjunto de bobinas apropiadamente orientadas. El rotor se debe construir en material paramagntico. Para entender el funcionamiento vase la gura 4.9
r s

1 6 2

C
5 4 3

Figura 4.9: Funcionamiento del motor paso a paso VR El mostrado en la gura es un motor de cuatro fases, que llamaremos A,B,C y D. Las bobinas de cada fase (p.ej., A y A') estn colocadas en posiciones opuestas, y estn en serie, pero devanadas al revs, de modo que se energizan simultneamente al darles corriente, mostrando una su polo magntico N hacia el interior, y otra el polo S. De este modo las lneas de campo magntico uyen de la una a la otra por el interior del rotor. Pero como ste era paramagntico, tiende a alinearse de modo que el mximo nmero de lneas de fuerza lo atraviesen. En la gura, esto est ocurriendo al alinearse el diente 1 del rotor ROB4/8

Apuntes de Robtica

Ingeniera Informtica

con A, y el diente 4 con A'. Mientras se siga enviando corriente a A-A', el rotor tender a mantenerse as. Supongamos que ahora se desenergiza el par A-A', y se energiza B-B'. El rotor se mueve de modo que los dientes 6 y 3 se alineen respectivamente con B y B'. El resto de la secuencia es anlogo, y se ve en la gura. Despus de un ciclo de energizacin A-B-C-D-A..., el rotor ha girado 60 . En este caso, el ciclo completo consta de 4 pasos. Para calcular el ngulo girado en cada paso, dmonos cuenta de que es la resta del ngulo entre cada par de dientes del rotor menos el ngulo entre cada par de bobinas. As pues
0

rad/paso = (
s

siendo N el nmero de bobinas del esttor y N el nmero de dientes del rotor. Esta sera tambin la mxima precisin angular obtenible. Por otra parte, el nmero de pasos por revolucin es 2 rad/rev NN
r

2 2 Ns Nr ) = 2 Nr Ns N s Nr

pasos/rev =

En el ejemplo de la gura, el ngulo por paso sera 2 = = 15 , y el nmero de pasos por revolucin, = 24 La circuitera lgica ira generando impulsos para cada bobina, en la forma . . . 1000 0100 0010 0001 1000 . . . en un sentido o en otro, segn se desee el movimiento. Aparece un problema: cada impulso es como una entrada escaln, y la respuesta suele ser subamortiguada, de modo que a cada paso el eje oscilara. La amplitud de estas oscilaciones depende del ngulo del paso; por ello, una buena solucin sera reducirlo. Usualmente se puede llegar a 100 pasos por revolucin, que son 3,6 por paso, pero se puede usar el control llamado de semipaso. Se consigue energizando con la misma intensidad bobinas contiguas. La secuencia, en vez de ser A B C D A sera A AB B BC C CD D DA. El rotor quedar en los pasos de dos bobinas en medio de ambas, siempre que ambas sean iguales y se energizen por igual. Habr entonces doble nmero de puntos de equilibrio. La circuitera de conmutacin es slo un poco ms complicada, generando la secuencia . . . 1000 1100 0100 0110 0010 0011 0001 1001 . . . Otra solucin al problema de la sobreoscilacin consiste en cambiar a la secuencia de energizacin anterior justo antes de que el rotor llegue al paso dado, e inmediatamente volver a cambiarla. El instante de cambio es crtico, y puede depender de la carga externa. Otro tipo interesante de motores paso a paso son los de imn permanente (PM). El rotor es un imn cilndrico, tallado en los extremos con varios dientes que estn desfasados entre la parte superior y la inferior (es decir, un diente de la parte superior del cilindro, polo N, se encuentra en la vertical de un vano del polo S, y viceversa). Vase la gura 4.10. La estructura del esttor es prcticamente idntica a los motores VR. Para controlarlos se requiere una fuente bipolar; las dos bobinas de cada fase (en este caso, dos fases, A-A' y B-B') se energizan al revs, de modo que la superior, creando un polo N, atraera al S directamente enfrentado a ella, y la inferior, creando un S, al N igualmente enfrentado. El siguiente paso sera energizar B de modo que crease un S, y B' de modo que crease un N, con lo cual el imn gira en sentido antihorario. Existen tambin motores paso a paso lineales. Funcionan mediante un principio similar, aunque un poco ms complicado que los rotacionales. Estn constitudos por una regleta dentada de material paramagntico, con los huecos de los dientes rellenos de material diamagntico, que tiene encima un imn permanente en cuyos extremos hay dos electroimanes. ROB4/9
8 6 8 6 8 6 86 12 0 0

s Nr 2 N N s Nr

rad/paso

Ns N r

pasos/rev

Apuntes de Robtica
A Iman permanente S B S S S S Rotor Vista lateral A Vista superior B S S NN B

Ingeniera Informtica
A

N N N

N N B

A Vista inferior

Figura 4.10: Esquema de un motor paso a paso de imn permanente Esta pieza superior se sustenta en equilibrio sobre la inferior gracias a un colchn de aire a presin inyectado por pequeos oricios.
Paso 1

I 1= +I N 1 2 S

I 2= 0

Paso 2

I 1= 0 N S 3

I 2= +I

Paso 3

I1= I N 1 2 S 3

I2= 0

Paso 4

I1= 0 N S 3

I 2= I

Figura 4.11: Esquema de un motor paso a paso lineal El funcionamiento sigue el esquema que se muestra en la gura 4.11. Cuando hay intensidad de corriente en un sentido dado, el campo magntico creado por la bobina anula el ujo magntico del imn por uno de sus polos, lo que hace que todo el sistema avance hasta situar el otro polo sobre el diente de material paramagntico. La secuencia es I/0, 0/I, -I/0, 0/-I, ...que hace avanzar el bloque completo la longitud de medio diente. Existen tambin versiones bidimensionales con dos imanes perpendiculares. El ltimo tipo reseable de motores paso a paso son los llamados "brushless"(literalmente, sin escobillas, aunque en realidad ningn motor paso a paso las tiene). Estn formados por varias bobinas e imanes permanentes que giran al dar la secuencia de energizacin apropiada. Para la conmutacin de las bobinas se pueden usar sensores de efecto Hall colocados en un extremo; stos se activan cuando el campo magntico de los imanes pasa bajo ellos. Finalmente, comentar que todos los tipos de motores paso a paso se pueden controlar ROB4/10

Apuntes de Robtica

Ingeniera Informtica

Paso 0 Paso 1

Figura 4.12: Esquema del motor brushless por pasos, por semipasos, o en modo contnuo. Para este ltimo caso, imaginemos p. ej. un motor de dos fases de imn permanente, y que a cada fase se le manda una seal de la forma que se muestra en la gura 4.13.

Paso 0 Paso 1

Figura 4.13: Seales para control contnuo de motores paso a paso Se puede parar el envo de estas seales de tensin, no necesariamente en 'Paso 0' o en 'Paso 1', sino en cualquier punto intermedio; esto dara una energizacin diferente a ambas bobinas, y situara el rotor en un punto intermedio arbitrario entre una y otra. A efectos de clculo, el seno y el coseno no tienen por qu ser calculados llamando a las funciones trigonomtricas en cada instante; pueden ser obtenidos a partir del valor en el instante anterior, ya que, si es el incremento angular que deseamos para cada periodo (dependiente de la velocidad angular pedida), se tiene que
sin (x + ) = sin x cos + cos x sin cos (x + ) = cos x cos sin x sin si+1 = si c + ci s ci+1 = ci c + si s si+1 c s si = ci+1 s c ci

lo cual slo requiere unas pocas multiplicaciones y sumas, pues es constante, y por tanto lo son su seno y coseno. Para girar al revs la matriz es anloga, cambiando por . ROB4/11

Apuntes de Robtica
4.4. Servo-amplicadores

Ingeniera Informtica

Como complemento a este tema, mencionemos estos dispositivos que, aun cuando no son propiamente robticos, son necesarios para el funcionamiento de los actuadores elctricos. Los servo-amplicadores convierten la seal de baja tensin generada por el sistema de control en una de ms alta tensin y la suciente intensidad como para hacer girar el motor y la carga a l unida. Hay dos tipos esenciales: lineales, y de modulacin PWM. +Servo-amplicadores lineales : Estn basados en el uso de transistores de potencia que funcionan en la zona de caracterstica lineal, es decir, en clase A, con lo que la intensidad que circula entre colector y emisor es proporcional a la intensidad de base, o sea, I = I , donde la constante est entre 10 y 200, dependiendo del transistor. Existen dos variantes, el tipo H y el T. Sus esquemas pueden verse en la gura 4.14
c B

VCC C1 Q 1 Q2 I1
M

VCC Q1 Vi
M

C2

I2 Q 3 Q4

Q2 VCC Tipo H Tipo T

Figura 4.14: Esquema de los servo-amplicadores lineales Respecto al tipo H, si C 1 es un voltaje positivo, y C 2 se conecta a tierra, Q y Q conducen, y la corriente es I , con lo que el motor gira en cierto sentido. Si, por contra, C 1 se conecta a tierra y C 2 es positivo, son Q y Q los que conducen, y entonces la intensidad es I , con lo que el motor gira en sentido opuesto. La velocidad se controla cambiando la intensidad de base, I , la cual es proporcional a la tensin de entrada. En esta conguracin el motor est "otante"(es decir, no conectado a tierra). En el tipo T no ocurre esto, pero se require alimentacin bipolar; este caso usa slo dos transistores complementarios. La V debe ponerse positiva o negativa, segn el sentido de giro deseado. En ambos tipos es necesario poner diodos de proteccin (el motor tiene alta inductancia y provoca extracorrientes de apertura y cierre), y tambin disipadores de calor para los transistores, pasivos, o incluso activos (ventiladores). +Amplicadores tipo PWM : Los amplicadores controlados por anchura de pulso (Pulse Width Modulation, o PWM) se basan en el hecho de que la funcin de transferencia del motor puede verse como la de un ltro pasa-baja, y por tanto si se le enva una onda, digamos cuadrada, de frecuencia mayor que la frecuencia de corte, el motor se comporta aproximadamente como un integrador, y gira con una velocidad proporcional al valor de la integral de la corriente (a impedancia ja, de la tensin) que lo atraviesa. Son iguales a los anteriores, pero la tensin de entrada es un onda cuadrada, de amplitud tal que haga trabajar a los transistores en saturacin cuando da el valor mximo, y en corte cuando da el mnimo. De este modo los transistores trabajan en clase C, y esto hace que apenas disipen calor. Ello es porque la potencia disipada en un transistor es W = V I , siendo V la ROB4/12
1 4 1 2 3 2 B i dis CE C CE

Apuntes de Robtica
C CC C C

Ingeniera Informtica
CE

tensin colector-emisor, e I la intensidad de colector. Con el transistor en corte, la V vale V , pero la I es nula; en saturacin, la I es la I que circula por el motor, pero la V es nula. La onda enviada a la entrada har que la tensin en bornes del motor sea como se muestra en la gura 4.15.
CE

T1 T

T2

Ideal

Real

Figura 4.15: Tensin en bornes de un motor CC con control PWM El periodo T , suma de T y T , es jo, y suele ser tal que la frecuencia va de 1 a 10 KHz. Sin embargo, T es variable (y con l, por supuesto, T ), lo cual da una tensin ecaz diferente. Esta es:
1 2 1 2

Vef =

Es claro que, si T = T , la tensin ecaz es cero, con lo que el motor est parado, pero frenado. En los casos extremos ( T = T y T = 0, o bien T = 0 y T = T ) el motor gira a mxima velocidad en uno u otro sentido. Las ventajas principales de este mtodo, que lo convierten en el ms usado, son la precisin que se puede obtener en el control, y la idealmente nula prdida de potencia en los transistores. En realidad, la conmutacin del transistor no es instantnea, con lo cual la tensin real en bornes del motor es la mostrada en la parte derecha de la gura 4.15, de modo que s se da cierta disipacin de calor.
1 2 1 2 1 2

1 T

V (t)dt =
0

1 T

T1 0

(VCC )dt +

T1

VCC dt =

1 VCC [VCC T1 + VCC (T T1 )] = [T2 T1 ] T T

Para concluir este tema veremos los elementos que ligan al actuador con el eje fsico al que hacen girar o desplazan, el efector. A este eje, y a todo lo que est unido a l, lo llamaremos la carga. La misin de las transmisiones es cambiar la direccin de rotacin (caso de los piones acodados), cambiar el eje de rotacin (correas), multiplicar el torque y reducir (usualmente) la velocidad de rotacin. Tambin pueden convertir movimiento rotacional en lineal, o viceversa. En cualquier caso, siempre debe procurarse que se transmita la mxima energa desde el actuador a la carga. Un problema es que en muchos actuadores la relacin movimiento del actuador/movimiento del efector es absolutamente no lineal, lo cual hace difcil el control. Desde luego, sera deseable no tener que usar transmisiones y mover los elementos directamente con el actuador, pero esto no suele ser posible por razones de coste o de tamao. Una notable excepcin es el actuador tipo Megatorque que equipan los robots ADEPT , cuyo eje es el propio eje de rotacin. Pasemos ahora a analizar cada uno de los posibles tipos de conversin de movimiento. +Conversin de movimiento rotatorio a rotatorio : Se usa cuando se desea variar la velocidad angular (y, como veremos, el torque ejercido) por un motor. El dispositivo ROB4/13
TM TM

4.5. Transmisiones mecnicas y dispositivos de conversin

Apuntes de Robtica

Ingeniera Informtica

usual para esto es un par o un tren de engranajes. Idealmente, los engranajes debieran ser perfectamente circulares, y rotar exactamente sobre su centro, sin inercia, y sin rozamiento entre sus supercies. Uno de los engranajes ser la entrada, y el otro la salida. Vase la gura 4.16
T1 1 r1 r2 T2 2

Figura 4.16: Par de engranajes Supongamos que la entrada tiene un radio r y N dientes, y la salida tiene radio r y N dientes. Ambos estn unidos a ejes que ejercen torques repectivos T y T , y que giran ngulos y . Vase la gura 4.16. Para que puedan encajar, deben construirse de modo que el nmero de dientes sea proporcional a la longitud de su circunferencia, y por tanto, proporcional al radio, pues la medida de cada diente debe ser igual en uno y otro engranaje. As, se tiene N N
1 1 2 2 1 2 1 2

Adems, N y N son enteros. Al cociente , usualmente denotado N : N , se le llama relacin de acoplo. Si no hubiese perdidas por rozamiento, la energa, aqu obtenida como trabajo de rotacin, debe conservarse, y la longitud de arco recorrida tambin debe ser la misma, pues encajan, por lo que r =r (4.11) T =T (4.12) De aqu se obtiene N r T
1 2 1 2 1 1 2 2 2 2 1 1 1

= r1 r2 N1 /N2

donde se ha derivado respecto al tiempo la ecuacin 4.11 para obtener a partir del ngulo las velocidades angulares y las aceleraciones angulares . Estas igualdades sirven para calcular cualquier caracterstica de la salida, conocidas las de la entrada. Un par de engranajes acta como un transformador de torques, y por tanto de momentos de inercia. Si a la salida hay una carga con momento de inercia J que se mueve con una aceleracin angular , se tiene que
2 2

N2

r2

T2

T2 = J2 2 = T1

luego
T1 =

N2 N1

Ntese que el eje 1 gira con una aceleracin angular = . Ahora, nos preguntamos qu momento de inercia debiera tener una carga simple (es decir, ja al eje 1) para que ROB4/14
1 N2 N1 2

N1 J2 2 N2

Apuntes de Robtica
1 1 eq

Ingeniera Informtica

ste girase con la misma acelaracin angular con que lo hace ( ) al serle aplicado el mismo torque, T . Lo llamaremos momento de inercia equivalente, J , y por denicin,
T1 = Jeq 1

Es claro que J es el que ve el eje 1 al conectrsele el engranaje y la carga 2. Entonces,


eq

Jeq 1 = Jeq

por tanto
Jeq =
2 2 1

N2 N1 2 = J2 2 N1 N2 N1 N2
2

J2

En el caso de que la salida tenga ms dientes (ms radio) que la entrada, la inercia reejada es menor que la J real; en ese caso, < (se reduce la velocidad) y T > T (se aumenta el torque ejercido). Este es el caso usual en robots, donde pequeos motores pueden as mover cargas grandes. Hay un lmite: si se transmite demasiado torque, las fuerzas tangenciales sobre cada diente aumentan, y pueden llegar a romperlos. Aparte, hay un lmite de tamao; si quisiramos una relacin, digamos, de 100 : 1, un pin de entrada con radio pequeo, p. ej., 1 cm, necesitara uno de salida de radio 1 metro. Esto se puede solucionar usando trenes de n engranajes, cada uno de los cuales multiplicase el nmero de dientes por un factor p, con lo cual la relacin de acoplo total sera de n : 1, pero situndolos engarzados, para reducir espacio. Si, por contra, el actuador y el eje estn muy separados, se pueden usar engranajes grandes, pero suelen ser pesados, e incrementar demasiado la inercia. Una solucin es la llamada transmisin armnica, que usa un soporte cilndrico externo, jo o no, con la cara interna dentada. Como ltimo dispositivo de conversin de movimiento rotatorio a rotatorio hay que mencionar las correas y cadenas, que se usan uniendo dos poleas o ruedas dentadas cuando hay que transmitir el movimiento a distancias mayores. A veces, las correas pueden tener muescas que encajan en engranajes anchos para evitar el deslizamiento. Un problema con estos dispositivos es una cierta holgura provocada por la deformacin de la correa o cadena que hace que un bloqueo en una de las partes conectadas no sea inmediatamente percibido por la otra. Adems, el desgaste obliga a reemplazamientos peridicos. Conversin de movimiento rotacional a lineal : Se usan sobre todo cuando motores usuales deben mover articulaciones traslacionales. Hay varios dispositivos apropiados para realizar esta conversin: +Tornillo jo: Se basan en una tuerca ancha enroscada al centro de un tornillo que puede girar libremente, y la carga se ja a esta tuerca. Vase la gura 4.17.
2 1 p

Eje

Carga

Rodamiento fijo (tope)

Figura 4.17: Tornillo jo ROB4/15

Apuntes de Robtica

Ingeniera Informtica

Aqu la razn de acoplo, P , se dene como el ngulo que hay que girar la entrada para obtener en la salida un desplazamiento lineal unitario. Un valor tpico puede ser P = 4 vueltas/cm. A veces se usa su inversa, L = 1/P . Siendo x el desplazamiento lineal, el ngulo, la velocidad angular, la aceleracin angular, y v y a la velocidad y aceleracin lineales de la salida, las ecuaciones son: = Px (4.13) = Pv (4.14) = Pa (4.15) Respecto al momento de inercia equivalente que ve el motor que hace girar el tornillo, se puede calcular por igualacin de energas: la cintica de rotacin del tornillo, que se convierte en energa cintica de traslacin de la carga (suponiendo que no hay prdidas de energa por rozamiento, lo cual no es en realidad nada correcto). En este caso de donde J = M/P . Otros posibles dispositivos de conversin rotacional-lineal son el sistema pin-cremallera, la correa con polea doble, el sistema biela-manivela y las transmisiones variables con levas. Estas ltimas se usan para movimientos irregulares. Todos estos se muestran en la gura 4.18.
eq 2

1 1 1 M v 2 = Jeq 2 = Jeq P 2 v 2 2 2 2

Carga

Carga

Carga

Figura 4.18: Dispositivos de conversin rotacional-lineal +Acopladores : Son dispositivos mecnicos usados para conectar dos ejes que no sean exactamente paralelos, o estn ligeramente desalineados. Suelen hacerse con materiales exibles, pero resistentes, como un trozo de espiral de nylon, o muelle de acero. Tambin existe la llamada transmisin universal, formada por dos tubos conectados por una cruz de ejes perpendiculares, como se muestra en la gura 4.19. +Transferencia de potencia : Es necesario mencionar que en cualquiera de estos dispositivos la potencia se transmite desde el motor hasta la carga de tal manera que la mxima transmisin se da cuando la inercia equivalente (o reejada) que ve el eje de entrada es igual a la inercia de l mismo junto con el motor que lo mueve. Se puede conseguir que esto se cumpla eligiendo la relacin de acoplo apropiada; p.ej., en un par de engranajes, se vio que
Jeq = N1 N2
2

J2

ROB4/16

Apuntes de Robtica

Ingeniera Informtica

Si elegimos

N1 N2

J1 J2

Figura 4.19: Transmisin universal , se tiene que


Jeq = J1 J2
2

J2 = J 1

+Problemas con componentes reales : Todo lo indicado hasta ahora supone dispositivos mecnicos perfectos. Desde luego, esto no es as, y se presentan siempre varios problemas que se deben comentar: +Rozamiento: Provoca invariablemente prdidas, a veces sustanciales, de energa. Para evaluarlas se dene el rendimiento como:
=

P. ej., en un tren de engranajes, si T es es torque, sera


= Tsal (real) Tsal (real) s = Tent e Tent
N1 N2

P ot. suministrada T rab. suministrado = P ot. consumida T rab. realizado

_ Cuanto menor sea el rozamiento del sistema, ms se acercar a uno ( 100 %) el rendimiento. En la prctica, puede tomar valores tan bajos como el 20 %. Rendimientos menores que 1 no afectan a las relaciones especicadas entre ngulos, velocidades y aceleraciones, pero s a la relacin entre torques. +Excentricidad: Es el problema que se presenta por el hecho de que las ruedas o engranajes no giren alrededor de su autntico centro, sino de un punto separado dcimas o centsimas de mm. de l. Esto provoca fuerzas (y por tanto, torques) no constantes sobre el otro engranaje, adems de rozamientos altos en determinados puntos, y por tanto, desgaste. +Holgura: Es la falta de encaje perfecto de ciertos dientes de un engranaje con los de su par cuando existe excentricidad. Se trata de los dientes situados a menor distancia (radio) del centro. La holgura provoca que el movimiento no se transmita inmediatamente de un engranaje al otro al arrancar desde la situacin esttica; el problema se agudiza en la inversin del sentido de movimiento. +Errores diente a diente: No todos los dientes de un engranaje son exactamente iguales, y esto provoca irregularidad en el movimiento de la carga, y alinealidades. Una grca que representa el error en el ngulo (es decir, valor esperado menos valor obtenido) en funcin del propio ngulo de giro, suponiendo relacin de acoplo de 1:1, podra ser la mostrada en la gura 4.20. En ella, la sinusoide mayor es provocada por la excentricidad, y las menores superpuestas a ella, por los errores diente a diente. ROB4/17
=

Tsal (real) Tent rel acoplo

Apuntes de Robtica
= error en el angulo

Ingeniera Informtica

= angulo girado

Figura 4.20: Alinealidad en engranajes +Vibraciones: Estrictamente, no son un problema propio slo de las transmisiones, sino de toda parte mecnica del robot, pero se incluyen aqu por similitud. La aparicin de vibraciones en un robot es debida a resonancias mecnicas de piezas o conjuntos de ellas cuya frecuencia natural de oscilacin es momentnemente excitada por golpes o por el propio movimiento de los motores. Suelen ser transitorias, excepto si la perturbacin que las provoca es peridica, en cuyo caso debieran evitarse completamente por la posibilidad de provocar resonancias que causan fatiga en el metal, y a la larga, rotura. Se debe procurar disear los sistemas mecnicos bien rgidos, y en cualquier caso, de modo que su frecuencia natural no coincida con ninguna perturbacin peridica presente en el entorno. La determinacin de la frecuencia natural de oscilacin de un sistema mecnico complejo, como un robot, es difcil, y se puede realizar bien por simulacin mediante tcnicas de anlisis de elementos nitos, bien mediante respuesta experimental al impulso, o respuesta en frecuencias.
4.6. Precisin, repetibilidad y resolucin

Estos son tres conceptos importantsimos en un robot, y estn relacionados con la capacidad de posicionarse en el punto deseado. Dependen de muchos factores externos, tales como carga, temperatura, velocidad, direccin del movimiento, punto del espacio de trabajo en que se opera, etc. Los deniremos uno por uno a continuacin. +Resolucin: es la mnima diferencia entre dos puntos consecutivos en que el robot puede situarse, siendo capaz de distinguir uno de otro. Hay dos tipos de resolucin: +En el control: es la variacin ms pequea entre puntos consecutivos que el sistema de control es capaz de detectar. +En la posicin: Es la mxima distancia entre dos puntos consecutivos que la articulacin puede adoptar, debida a imprecisiones mecnicas. Mxima distancia signica en el peor de los casos, es decir, cuando el error cometido en un punto y en el consecutivo se oponen. Estos dos tipos de error se aprecian en la gura 4.21, suponiendo, p. ej., desplazamiento lineal. +Precisin: es el mximo error con el que se alcanza un punto del espacio no visitado previamente. Aparentemente, sera la mitad de la resolucin en la posicin, pero si el punto viene dado en coordenadas cartesianas, suele ser mucho mayor, porque a la imprecisin mecnica antedicha se suman la imprecisin numrica en el clculo de la cinemtica inversa, ms la debida a las diferencias provocadas por el uso de los parmetros tericos para el robot en lugar de los reales (los valores imprecisos de d , a y en las matrices DH). Esto puede provocar grandes diferencias (de hasta varios milmetros) entre las posiciones predicha y real a las que se llega. Segn la zona del espacio de trabajo que se considere, la precisin vara, por lo que se suele distinguir entre precisin global (la media) y local para una determinada zona. ROB4/18
i i i

Apuntes de Robtica
+Repetibilidad:

Ingeniera Informtica

Es la capacidad de un manipulador robtico de posicionarse en el mismo punto al que fue mandado anteriormente. Idealmente, las medidas debieran realizarse en idnticas condiciones de temperatura, direccin y velocidad de aproximacin. La forma correcta de medir la repetibilidad es usar mtodos estadsticos, enviando muchas veces el brazo a la misma posicin. Las grcas de posicin alcanzada podran ser similares a las mostradas en la gura 4.21, donde la derecha muestra la diferencia que puede darse segn cul sea la direccin de aproximacin.
Res. en la posicion Res. en control

Puntos consecutivos

Desp. desde la izquierda

Desp. desde la derecha

Figura 4.21: Resolucin y medidas de repetibilidad

ROB4/19

Apuntes de Robtica

Ingeniera Informtica

ROB4/20

Tema 5: Introduccin al control de robots

En este tema se estudiarn las diversas formas de control de actuadores robticos a partir de las tcnicas y mtodos de modelizacin vistos en mdulos anteriores, en concreto, usando la formulacin de Laplace aplicada a sistemas lineales. Aun cuando, segn se vio en el tema 4, es posible controlar los actuadores hidrulicos y neumticos, la absoluta preponderancia de los motores elctricos de CC har que nos centremos particularmente en ellos. Ms restringidamente, se estudiar el control de un motor, que se supone acta sobre una articulacin aislada. Esto es slo una aproximacin, dado que cuando el robot se mueve, la inercia que ve cada articulacin depende de la posicin, y por tanto, no se puede considerar que la funcin de transferencia admitida para motor ms carga sea constante, lo que excluira en principio las tcnicas bsicas de control de sistemas lineales. No obstante, la inmensa mayora de los robots comerciales hoy en uso admiten esta aproximacin, que sigue dando resultados, al menos, tolerables usada con las debidas precauciones. Se incidir en ello al hablar de diseo de controladores.
5.1. Tcnicas de control clsico sobre motores CC

Como se vio en el tema anterior, un motor de CC puede ser modelizado mediante una funcin de transferencia de segundo orden, que en muchos casos (uno de los polos suele ser dominante) es incluso aproximable mediante una de primer orden. Esto simplicar el anlisis inicial, y permitir tomar en cuenta un aspecto ms: el amplicador de potencia que alimenta al motor, y que tambin se describi en el tema anterior. Un amplicador ideal debera ser absolutamente lineal, es decir, tener como funcin de transferencia una constante A; pero en la prctica el modelo correcto resulta ser
Gamp (s) =

Para ejercer control realimentado deberemos medir posicin y/o velocidad. Si disponemos de un sensor analgico de velocidad (un tacmetro) la posicin se puede obtener por integracin con el circuito apropiado. Si, por contra, tenemos un sensor digital de posicin (un codicador ptico) la velocidad se obtiene por derivacin numrica. Suponiendo el motor aproximado por la f.d.t. de primer orden
Gm (s) =

A 1 + a s

el lazo de realimentacin tpico para el control del motor sera el mostrado en la gura 5.1 En esta gura, K es la constante del tacmetro que relaciona la velocidad angular medida con la seal que ste genera. La K es la constante de realimentacin de posicin, que el usuario deber jar. El bloque situado a la salida del motor representa en cierto sentido al codicador ptico, y da cuenta del hecho de que la f.d.t. del motor relaciona tensin V con velocidad angular, = , mientras que lo que se lee usando el codicador es la posicin angular . La entrada al bucle ms interno es el error en la velocidad en cada momento, y puede ser visto como un comando de velocidad deseada. ROB5/1
g p 1 s

Km 1 + m s

Apuntes de Robtica
d + + A 1 + s a Kg Kp

Ingeniera Informtica
(t) Km 1 + s m (s) 1 s (t) (s)

Figura 5.1: Control de un motor CC: gura principal Analizaremos este esquema segn los diferentes casos que pueden darse: Si no hay realimentacin de velocidad (no hay tacmetro) podemos considerar la K y en ese caso la f.d.t. en lazo abierto sera
G(s) = AKm s(1 + sm )(1 + sa )
p

=0

siendo el bloque de realimentacin H = K , y por tanto la ecuacin caracterstica para trazar el lugar de las races es
1 + GH = 0
m p

1+

siendo K = AK K la constante que vara para generar los polos en lazo cerrado segn sus distintos valores. Los polos en lazo abierto estn en s = 0, s = 1/ y s = 1/ . Por ser la constante de tiempo del amplicador, , de tipo elctrico, menor que la constante relacionada con aspectos mecnicos, se cumple que | |>| | con lo que el polo del amplicador est ms lejos del origen. El lugar de las races tendr tres ramas, que comenzarn en cada polo y acabarn en el innito, pues no hay ceros. Se puede comprobar que hay tres asntotas, que forman con el eje real ngulos de 0, y , y que cortan a este eje en el punto = . El lugar de las races se puede ver en la gura 5.2
m a a m 1 a 1 m 3 3 a +m 3a m

K =0 s(1 + sm )(1 + sa )

1 a

1 m

Figura 5.2: Lugar de las races con K = 0 Para unos valores dados de y , deberamos escoger la K (modicable cambiando la ganancia A del amplicador, y la constante de realimentacin K ) de modo que los ROB5/2
g a m p

Apuntes de Robtica

Ingeniera Informtica

polos sean reales, es decir, de modo que el sistema en lazo cerrado sea sobreamortiguado. Lo idneo sera tener los polos muy cerca (o incluso sobre) el punto de ruptura (sistema crticamente amortiguado), pues de este modo se llegara al estado estacionario lo ms rpidamente posible, pero sin oscilar. Hay, en cualquier caso, un valor de K que no debe excederse, pues el sistema se volvera inestable (las ramas del lugar de las races entran en el semiplano derecho). La eleccin de la K (via A o K ) plantea un problema importante: depende de la K , la cual no es realmente constante (vanse las ecuaciones para el motor elctrico en el tema 4) sino que depende del momento de inercia de la carga que mueve el motor, y por tanto, de en qu ngulo se encuentre ste (no es lo mismo mover un brazo robot contrado que extendido). Una solucin sera buscar una K o A diferentes para cada posicin angular. Veamos ahora el caso en que se aplica realimentacin en velocidad, y por tanto, K no es nula. El diagrama de bloques de la gura principal se puede transformar segn se muestra en la gura 5.3
p m p g

A 1+s a Kg s Kp

Km 1+s m

1 s

+ +

equivalente a
d + A 1+s a Km 1+s m 1 s

Kp + Kg s

Figura 5.3: Control de un motor CC: realim. en velocidad En este caso la ecuacin caracterstica que servir para dibujar el lugar de las races queda:
1 + GH = 0 GH
Kp Kg

1+

tiene un cero en s = , y los mismos polos que el caso anterior. En este caso hay dos asntotas, que forman con el eje real ngulos de y lo cortan en el punto = ( ) Los puntos de ruptura resultan de la resolucin de una ecuacin de tercer grado, y de los tres, slo uno es real y pertenece al L.R. En este caso, hay dos posibles lugares de las races segn cules sean los valores de las constantes que intervienen en el sistema. Un caso se da cuando el cero est ms cerca del origen que el primer polo, y el otro cuando est entre los dos polos. Ambos se muestran en la gura 5.4 A la vista de los lugares de las races, una ventaja obvia es que ya no hay inestabilidad, independientemente del valor de las constantes K , K u otras. Adems, si se elige la segunda posibilidad (buscando los valores de K y K de modo que > ) puede hacerse que los polos en 0 y sean dominantes frente al del amplicador, que aparte de estar ms lejos ROB5/3
1 Kp 2 Kg 2 1 m 1 g p g p g Kp Kg 1 m 1 m

AKm (Kp + Kg s) s(1 + sm )(1 + sa )

Apuntes de Robtica

Ingeniera Informtica

1 a

1 m

K p Kg

1 a

K p 1 K g m

Figura 5.4: Lugar de las races con K = 0 del origen, queda parcialmente compensado por la proximidad del cero. De este modo el sistema total, incluyendo al amplicador, se puede aproximar como un sistema de segundo orden. Otra forma tambin usada habitualmente de aproximar el motor realimentado en velocidad como un sistema de segundo orden es la que se aplica cuando se considera que el amplicador tiene una respuesta mucho ms rpida que el motor, su polo, 1/ , est tan a la izquierda que puede ser despreciado, con lo que su funcin de transferencia queda reducida simplemente a la constante A. En ese caso, y volviendo a la gura principal (gura 5.1), la f.d.t. del lazo ms interno (ya cerrado) quedara
g a

Gin (s) =

y la f.d.t. total resultara


G(s) = 1
AKm 1 m s+AKg Km +1 s AKm 1 + m s+AK Kp g Km +1 s

AKm 1+sm AKm + Kg 1+ sm

AKm m s + AKg Km + 1

1 Kp s 2 +

donde se observa que este sistema puede escribirse en la forma del sistema standard de segundo orden, donde AK K 1 1 + AK K = (5.1) = 2 AK K
m p m p g n m m m

AKm Kp m AKg Km +1 p Km s + AK m m

2 1 n 2 Kp s2 + 2n s + n

Podemos variar K y K , y variar con ello , dando al sistema el carcter sobreamortiguado que deseamos, pues el amortiguamiento es directamente proporcional a K e inversamente proporcional a la raz de K . Para nalizar, veamos el caso ms general no simplicado de control de un motor de CC, en el que no se considera que los torques gravitacionales ni de las fuerzas externas sean nulos. Aqu ya no se puede simplicar el motor considerndolo un sistema de primer orden, sino que debe ser tomado como un sistema con dos entradas, segn se vio en el tema 5. Recurdese que el diagrama de bloques era (gura 5.5). Si introduciomos este diagrama dentro del diagrama de bloques principal del control realimentado tenemos el resultado que muestra la gura 5.6 ROB5/4
p g g p

Apuntes de Robtica
Tf + Tgr
+

Ingeniera Informtica
KT R a+ L a s
+ +

1 B + J Ts

Km 1 + s m

sin suponer Tf + Tgr=0

KE

Figura 5.5: Diagrama del motor CC no simplicado


d
Tf + T gr

A 1+s a Kg Kp

KT R a+ L as

+ +

1 B + J Ts

(s) (t) 1

(t)
(s)

KE

Figura 5.6: Diagrama completo Del diagrama de bloques se ve que siendo (s) = L {(t)} y (s) = L {(t)} = L
(s) = 1 (s) = (s) s
d(t) dt

; adems,

de donde se obtiene donde se denota


Geq (s) =

1 KT A KE (s) + (Kg (s) Kp (s) + d (s)) (Tf (s) + Tgr (s)) B + JT s Ra + sLa sa + 1

(s) = Geq (s) d (s)

[Tf (s) + Tgr (s)] (sa + 1)(Ra + sLa ) AKT

(5.2)

Para estudiar este sistema, que tiene dos entradas, aplicaremos el principio de superposicin, que sabemos se cumple en todo sistema lineal. La forma de hacerlo es suponer sucesivamente nulas cada una de las entradas, y obtener en cada caso la salida ante la otra entrada. Supongamos primero que T + T es nula, y apliquemos a la entrada un escaln unitario de valor . Entonces, aplicando la ecuacin 5.2, se tiene que
f gr d d0

AKT s(sa + 1) [KE KT + (sJT + B )(Ra + sLa )] + AKT (sKg + Kp )

(s) = Geq (s)

ROB5/5

d0 s

Apuntes de Robtica

Ingeniera Informtica

Para obtener su valor nal, aplicamos el teorema del mismo nombre:


t

l m (t) = l m s(s) = l m sGeq (s)


s0 s0

Esto signica que si queremos alcanzar un cierto valor nal, el comando de control que en realidad hay que enviar es el valor deseado, dividido entre K (pero recurdese que K era variable a voluntad). Ahora, supongamos que es nula (lo cual no resta generalidad, pues el origen de ngulos puede jarse arbitrariamente), pero que hay unos ciertos torques externos, cuya transformada de Laplace denotaremos como T (s) = T (s) + T (s), y introduzcamos al sistema una entrada escaln ( T (s) = T /s, una carga asida de repente). En este caso, la ecuacin 5.2 nos sirve de nuevo para calcular el valor nal de la posicin angular:
p p d L f gr L L0 t

AKT d0 d0 = d0 = s AKT Kp Kp

l m (t) = l m s(s) = l m sGeq (s)


s0 s0

Hay, pues, error de posicin (la posicin deba haber sido 0, segn pedamos). A este error se le suele llamar histresis. Se reduce aumentando la K (dado que el resto son constantes que no controlamos, excepto quiz la A del amplicador). No obstante, aumentar K tiene el problema de hacer el sistema subamortiguado (recurdese el lugar de las races). Hay que evitar esto usando un valor alto para K . Una forma alternativa, y ampliamente usada, de conseguir el comportamiento deseado es anteponer un controlador PID al motor. Un posible esquema sera el mostrado en la gura 5.7
p p g

Ra TL0 (TL0 )(1 + sa )(Ra + sLa ) = AKT s AKT Kp

Kp

K ds KI s

+ + +

Tf + T gr

A 1+s a Kg

KT R a+ L as

+ +

1 B + J Ts

1 s

KE

Figura 5.7: Control PID de un motor CC Posibles respuestas del motor ante entrada escaln para varios tipos de control derivados del PID pueden verse en la gura 5.8. En la grca (a) (control proporcional) se observa como se puede eliminar la sobreoscilacin disminuyendo K , pero a costa de aumentar el error de posicin. En la (b) (control PD) sigue habiendo error de posicin, pero, a igualdad de dicho error (es decir, para la misma K ) el sistema oscila menos. En el caso mostrado en (c) (control PI) el integrador libre del controlador anula el error de posicin, pero no evita la sobreoscilacin. La mejor alternativa (caso (d)) es el uso de un controlador PID, con los parmetros apropiadamente ajustados (respuesta en lnea contnua) para la cual se alcanza la posicin deseada sin sobreoscilacin, y en el mnimo tiempo posible. Aun cuando existen mtodos apropiados para el diseo de PIDs, obtener esta combinacin no es sencillo, y en realidad, no existe un nico ROB5/6
p p

Apuntes de Robtica
P K p3 PD Kd3

Ingeniera Informtica

K p2 K p1 K p1 < K p2 < K p3 (a)

K d2 K d1

K d1 > K d2 > Kd3 (b)

PI

PID

(c)

(d)

Figura 5.8: Respuesta a escaln de un motor CC conjunto de valores vlido, debido a que, como se coment antes, la inercia de la carga ja al motor vara, por lo que sera necesario disear un controlador diferente para cada posicin de partida y llegada. Esto hace que se suelan escoger parmetros "conservadores"(es decir, que tiendan ms hacia el sobreamortiguamiento) aun cuando esto haga el funcionamiento del sistema ms lento de lo que sera posible. Supongamos que las estrategias de control descritas deben aplicarse a una articulacin concreta de un brazo robot. En este caso, la seal de referencia, , que indica en qu posicin debe colocarse el motor es siempre digital, pues viene del ordenador de control (en concreto, del programa generador de trayectorias). Las seales de los sensores, sin embargo, pueden ser analgicas o digitales. Lo normal es que el ordenador de control compute lo ms rpido posible las seales de referencia para las articulaciones, y las enve en secuencia a cada una de ellas. En cada articulacin hay un pequeo microprocesador o microcontrolador que ejecuta el algoritmo de control (el PID, u otro, que se la haya programado, normalmente en rmware); en ocasiones un mismo microcontrolador se ocupa de dos o ms articulaciones. Los datos de posicin y velocidad presente se pueden obtener de varios modos. Veamos los posibles casos: +Posicin digital y velocidad analgica con sensores diferentes: se usan un codicador ptico para medir la posicin y un tacmetro para medir la velocidad. (gura 5.9. Como la seal de control es en ocasiones proporcional al error en la velocidad (si se usa, p. ej., un PD) se podra evitar el uso del conversor A/D del tacmetro, segn se muestra en la parte inferior de la gura 5.9. Esto reduce el coste, porque el restador analgico, hecho con un operacional, es ms barato que el conversor A/D. +Posicin digital y velocidad digital: Aqu slo se usara un codicador ptico que generara una seal digital para la posicin, y la velocidad se obtendra numricamente a partir de sta. Es la solucin ms comunmente aceptada hoy, pues los tacmetros son caros y pesados (a veces, tanto como el propio motor). El circuito digital apropiado procesa las ROB5/7
d

5.2. Control de una articulacin

Apuntes de Robtica
Pos. des. Senal Proces. D/A (digital) control (kT) (kT) A/D + Amp. Motor Amp. Motor

Ingeniera Informtica
Tac. Enc Carga

Pos. des. Vel. Proces. D/A (digital) dig. (kT)

Tac. Enc

Carga

Figura 5.9: Control de una articulacin seales del encoder y la velocidad se obtiene midiendo a intervalos regulares de tiempo como Si, como suele ser habitual, T es constante, no hace falta dividir. No obstante, esto presenta un grave problema: la velocidad as obtenida est cuantizada, por ser diferencia de valores enteros (el nmero de pulsos en instantes de medicin consecutivos), y debe ser almacenada en un registro de logitud nita. Esto hace que presente oscilaciones, especialmente para valores pequeos de la velocidad (cuando el motor est parando). Este fenmeno, llamado "digital jitter"(oscilacin digital) se aprecia en la gura 5.10.
(kT ) T

Senal analogica

Valor digital obtenido

Ampliacion

Aprox. digital correcta

Figura 5.10: Oscilacin digital provocada por la cuantizacin Como ilustracin, imaginemos que a la mxima velocidad tenemos 100 cuentas por periodo de muestreo; deberemos usar un registro de 7 bits. Pero en la fases de aceleracin y deceleracin (baja velocidad) hay un cambio muy pequeo en el nmero de cuentas entre dos periodos consecutivos. De hecho, si el periodo de muestreo es pequeo, podemos incluso estar leyendo la misma posicin cuantizada del encoder (el ngulo recorrido en el tiempo T es menor que la precisin). As, la seal de velocidad sera una sucesin de ceros y unos. Esto puede incluso provocar inestabilidad en el sistema de control. Hay varias soluciones, pero ninguna realmente apropiada: usar encoders de ms resolucin (es caro), reducir la constante de realimentacin, K , para hacer el sistema ms amortiguado y evitar que las oscilaciones le afecten demasiado (enlentece la respuesta), obtener la velocidad con una aproximacin de segundo orden o superior (conlleva ms clculo), usar un periodo de ROB5/8
g

Apuntes de Robtica
g

Ingeniera Informtica

muestreo variable con la velocidad (complica mucho la circuitera y el diseo del sistema de control), o usar varios valores diferentes de K segn la velocidad medida. Esto es lo ms factible; el valor de K debera ser grande en aceleraciones y deceleraciones, y ms pequeo el resto del tiempo. +Otros casos: -Uso de un sensor analgico de velocidad y medida de la posicin por integracin analgica: se usara un tacmetro y un integrador hecho con un operacional a la salida. Presenta dos problemas: la integracin no es ideal, y la deriva trmica hace que el oset del operacional vare con el tiempo. Se pierde precisin y repetibilidad. Adems, no es completemente lineal, y requiere conversores A/D, puesto que hoy da todo el control es digital. -Uso de un sensor de posicin analgico y medida de la velocidad por derivacin: Se usara, p. ej, un potencimetro y un derivador analgico a la salida. Tiene el problema de la poca precisin del potencimetro, y de que la derivacin no es ideal, y adems amplica mucho el ruido, especialmente de alta frecuencia. +Nota nal: Recurdese que estamos controlando la posicin de los motores, no la del efector nal. Esto signica que nos amos de la rigidez del sistema mecnico y de la abilidad de las transmisiones mecnicas (engranajes, correas o cadenas). Esto suele ser razonable si tenemos en cuenta que los sensores (normalmente, encoders) se suelen poner acoplados al eje del motor antes de desmultiplicar el movimiento, de modo que una vuelta (N cuentas) es slo una fraccin pequea de vuelta en el efector nal.
g

5.3. Nota al control adaptativo

Hemos suspuesto en todo momento que la carga que el brazo mova, y sus inercias, eran constantes. Esto no es cierto. De hecho, el conjunto de parmetros de control ( K ,K o bien K ,K ,K ) diseados para movimientos alrededor de cierta posicin pueden no ser vlidos para otra. Lo que se suele hacer es tomar parmetros muy "conservadores", en el sentido de que el punto de funcionamiento (los polos del sistema) estn muy lejos de la inestabilidad; pero esto provoca un fuerte amortiguamiento, y el sistema es lento. Para evitarlo, se tratara de que los parmetros del controlador dependieran de la posicin presente, de la carga (a travs del error de posicin), y de la seal de control. El esquema sera el mostrado en la gura 5.11
p g p I d

Pos. des.

error

Controlador

Motor en una artic.

Pos. presente

par.

Modulo de adaptacion

Figura 5.11: Esquema de control adaptativo El mdulo de adaptacin que se muestra tendra dos partes: un medidor de cun bien (o mal) est actuando el controlador, deniendo un ndice de eciencia, y otro mdulo que genere cambios en los parmetros del controlador, los cuales dependeran de la posicin, del error en la posicin y de la seal de control, de tal modo que se consiguiera minimizar el ndice de eciencia. Este mdulo puede ser una red neuronal, un sistema basado en reglas que use lgica difusa, u otro similar. ROB5/9

Apuntes de Robtica

Ingeniera Informtica

ROB5/10

Tema 6: Programacin de robots


6.1. Introduccin

Hasta ahora hemos visto cmo se modeliza un robot mediante su cinemtica directa e inversa; cmo se obtienen caminos en el espacio para el punto terminal que cumplan ciertas condiciones de velocidad, aceleracin, etc; qu sensores se usan, y qu seales dan, qu actuadores mueven al robot, y qu seales hay que enviarles. Es el momento de ensamblar todas estas piezas para conseguir que el robot realice tareas tiles. Obviamente, la conexin entre todas ellas est en el software, es decir, en los programas y sistemas operativos que, corriendo sobre uno o ms ordenadores o microcontroladores, coordinarn todo el proceso. Como veremos seguidamente, la programacin de robots es sustancialmente diferente a la de ordenadores aislados, aun cuando un programa escrito en un lenguaje para robots semeje a cualquier otro programa convencional. El hecho de estar controlando sistemas reales aade complejidad debido a un cierto grado de impredictibilidad que deberemos asumir y manejar. Por supuesto, cualquiera de las tareas antedichas podra, en principio, programarse en cualquier lenguaje que pudiese acceder al hardware, pero programar una tarea normal en trminos de estas tareas simples sera horriblemente complejo. Veamos un ejemplo: algo aparentemente simple, como pintar al spray un coche. Habra que detallar todos los puntos por los que se debe pasar en funcin del tiempo, calcular su cinemtica inversa, especicar las posiciones, velocidades y aceleraciones de cada articulacin como funcin del tiempo, y programar los parmetros y lazos de realimentacin del sistema de control. Adems, atender al mismo tiempo a las seales de los sensores de cada articulacin y procesarlas, ms las posibles seales de interrupcin provocadas por sensores externos, si los hay. Esto explica que sean necesarios lenguajes para especicar las tareas en trminos accesibles a los humanos. Estos lenguajes sern usados para dos nes:  Denir la tarea que el robot tiene que realizar.  Controlar al robot mientras la realiza. De lo dicho se entiende que un lenguaje que pretenda ser usado para programar robots deber ser, en algn sentido, diferente a los lenguajes convencionales. Esas diferencias son debidas a que:  El entorno del robot no puede describirse slo en trminos cuantitativos; usa relaciones espaciales (arriba de, abajo de, sobre,...) e incluso temporales, o de causalidad (A no puede ponerse sobre B hasta que B no est en X,...)  El robot opera en un mundo real impreciso, y el modelo del mundo que el programa maneja puede no dar cuenta debida de l, precisamente a causa de esa imprecisin. Adems, hay que tener en cuenta que los programas de robot deben atender a seales sensoriales que se producen en instantes impredecibles, y por tanto, deben estar preparados para interrumpirse en cualquier momento. Por otra parte, y como vimos en el tema 2, las posiciones y orientaciones de robot y objetos son adecuadamente descritas mediante transformaciones homogneas; cualquier lenguaje de robots debera incorporar un fcil manejo de stas. ROB6/1

Apuntes de Robtica

Ingeniera Informtica

6.2. Requerimientos de los lenguajes de programacin de robots

Veamos ahora en detalle qu consideraciones debern tenerse en cuenta al disear un lenguaje (o modicar uno existente) para programar robots o sistemas robotizados en general.  El lenguaje deber incorporar estructuras de datos apropiadas para manejar posiciones, orientaciones, y transformaciones espaciales. En particular, las matrices de transformacin homognea debern estar presentes, as como las operaciones de rotacin y traslacin sobre ellas, equivalentes al cambio de sistema de referencia. Por otra parte, debern poder especicarse de modo simple rdenes de movimiento, preferentemente en el espacio cartesiano, y con posibilidad de elegir la forma de la trayectoria del punto terminal entre la posicin actual y la deseada. Esto exige el conocimiento de la cinemtica inversa, y por tanto, si el lenguaje debe adaptarse a varios manipuladores, tambin deber haber formas de especicar la cinemtica de un manipulador cualquiera. Finalmente, se deber conocer la posicin actual en todo momento, para continuar desde ella una orden de movimiento anormalmente interrumpida.  El lenguaje deber permitir alguna forma de paralelismo, puesto que al menos dos niveles distintos de l se dan en todo robot: el control simultneo de todas sus articulaciones, y el funcionamiento concurrente quiz con otros brazos, y siempre con sus propios sensores externos que pueden mandar seales en cualquier momento. Las formas de implantar este paralelismo son, o bien con varios elementos de computacin (caso comn en las articulaciones, donde suele haber un microcontrolador por cada dos o tres de ellas), bien con software que simule el paralelismo mediante la comparticin del tiempo del nico procesador; este software es un sistema operativo multitarea, o un lenguaje que permita concurrencia.  Si varios procesos (en general, tareas) deben funcionar simultneamente, el lenguaje deber permitir la comunicacin entre ellos; las tres formas ms comunes para esto son el uso de memoria compartida, la llamada remota a procedimientos, y el paso de mensajes. Cada uno de stos presenta ventajas e inconvenientes.  Al actuar el robot en el mundo real, la activacin de mandatos para realizar acciones, e incluso la secuencia en que stos se ejecuten, depende de que determinados eventos reales hayan sucedido ya, o no (o nunca lleguen a ocurrir). Por ello, es necesario que el lenguaje provea mecanismos de sincronizacin de eventos, que detengan o alteren la ejecucin normal en tanto ciertos hechos (por ejemplo, la activacin de un sensor) no sucedan. Adems, otras acciones deben ser ejecutadas en respuesta a seales de error (p.ej., un sensor de choque que se activa). Por ello, se suelen sincronizar las acciones para atender a cuatro tipos de eventos: activacin (iniciar la accin al recibir cierta seal), terminacin (cese de la accin ante la seal), error (inicio de accin de seguridad o recuperacin ante seal de error) y anulacin (cese de la accin al NO recibir seal del terminacin despus de un tiempo prudencial).  Determinadas condiciones (sobre todo, sobre los valores de los sensores) deben ser comprobadas constntemente (o al menos, peridicamente). Esto exige que haya mecanismos de comprobacin de eventos, que pueden ser procesos que corren como un bucle innito que monitoriza, o interrupciones hardware. Asociado a esto deber ROB6/2

Apuntes de Robtica
1

Ingeniera Informtica

haber un mecanismo de prioridades, para decidir qu se contina monitorizando en caso de activacin simultnea de varios eventos.  El lenguaje deber proveer estructuras y acceso a variables sensoriales, es decir, que contienen valores de las seales recogidas por los sensores, y que, a diferencia de las variables convencionales, no se inicializan explicitamente en el programa, y su alcance es siempre global. Se puede dar una actualizacin contnua de algunas o todas estas variables, o bien a intervalos discretos de tiempo. Adems, en el caso de que varios procesos (generalmente, todos ellos relacionados con los sensores) puedan actualizar la misma variable, debern considerarse prioridades entre ellos.  Debern estar presentes mecanismos para especicar las acciones de inicializacin y terminacin . Tpicamente, al comenzar un programa de robot puede ser necesario el calibrado del mismo (ver tema 3) y su posicionamiento en un lugar concreto, as como un auto-test del hardware, si es posible. Del mismo modo, al acabar tambin se puede llevar al robot a algn lugar conocido, y luego se suele anular la ganancia de todos los amplicadores de los motores, para evitar el movimiento accidental. Se ver despus cmo algunos de estos requerimientos, pero no todos, se realizan en lenguajes como AL.
6.3. Sistemas operativos

Es necesario hacer un breve comentario sobre qu caractersticas debiera tener el sistema operativo que soporte un lenguaje con los requerimientos especicados en el apartado anterior. Es preciso decidir si todos estos requerimientos quedan al lenguaje, o si algunos de ellos son dejados al sistema. Generalmente, esta decisin depende de la velocidad del computador usado; si es sucientemente rpido como para soportar un sistema y un lenguaje manteniendo los requerimientos de respuesta a los eventos externos en tiempo acotado (y sucientemente corto), entonces esta solucin vale la pena, pues simplica enormemente la programacin. En otro caso, deber usarse un lenguaje que mantenga varios procesos con el tiempo de conmutacin entre ellos ms breve posible. La caracterstica ms importante del sistema operativo que debe vericarse es, en cualquier caso, el que sea de tiempo real (es decir, responda a cualquier peticin en un tiempo acotado, y no pueda quedar bloqueado). El ejemplo ms tpico de esto es la necesidad de mantener los lazos cerrados de realimentacin de los controladores de las articulaciones, lo que exige un muestreo de los sensores con un intervalo peridico T , y el envo de la accin de control calculada con ese mismo intervalo. Ignorar las seales durante ms tiempo provocara inestabilidad, y el consiguiente movimiento descontrolado del robot. El usar un microcontrolador dedicado a esa articulacin alivia el problema, pero no lo resuelve, puesto que, p. ej. el mantenimiento de una trayectoria rectilnea exige el envo de posiciones de referencia en el espacio de articulacin tambin en instantes especcos. La conclusin de esto es que no todo estriba en mejorar la velocidad del hardware, y que un diseo cuidadoso de cada proceso para garantizar su terminacin en un tiempo acotado es imprescindible.
en este contexto signica sucientemente prxima en el tiempo, es decir, el tratamiento dado a un evento no ha concludo an cuando el siguiente se produce
1 Simultnea

ROB6/3

Apuntes de Robtica

Ingeniera Informtica

Aunque ningn lenguaje de programacin hoy da cumple todos los requerimientos especicados anteriormente, hay varios que resultan tiles, dependiendo de la tarea especca a que se les destine. Veamos la divisin y algunos lenguajes principales. En primer lugar, estableceremos una clasicacin por la sintxis y complejidad. Aqu se distinguen tres tipos:  Secuenciadores de instrucciones: simplemente almacenan y posteriormente repiten una secuencia de posiciones y acciones (apertura/cierre de la pinza, etc.) en un rden ms o menos jo. Tales posiciones y acciones se aprenden, de varias maneras:  Mediante movimiento del robot con un joystick, ratn o teclado especial suspendido del techo ( "teach pendant" )  Mediante movimiento manual y almacenamiento de las posiciones de los encoders . En este caso, se pueden ejecutar los movimientos a diferente velocidad de la que se almacenaron. Normalmente, estos lenguajes incorporan tambin rdenes especiales para retraso (dejar que concluya la ejecucin de un movimiento) o para especicacin de las acciones requeridas ante seales sensoriales especcas (errores, etc.) o ausencia de ellas. La facilidad de "programarn robot de este modo hace comn el uso de secuenciadores en entornos industriales poco exibles (cadenas de montaje de automviles, etc.).  Extensiones a lenguajes clsicos: son mdulos especcos para el manejo de sensores y actuadores, ms estructuras de datos adaptadas (matrices homogneas, etc.) conservando la sintxis general y control de ujo del lenguaje escogido. Se pueden basar en BASIC, PASCAL, C, etc. Por las razones expuestas en el apartado anterior, es necesario que estos lenguajes corran sobre un S.O. de tiempo real.  Lenguajes especcos para robots: fueron diseados por rmas comerciales (salvo uno de la Univ. de Stanford) para ser vendidos junto con sus manipuladores, teniendo en cuenta los sensores y actuadores a que se deban conectar. Todos ellos incorporan el manejo de las seales de los sensores, y de acuerdo a sus valores pueden cambiar en tiempo real el ujo del programa. Adems, incorporan descripcin y razonamiento en trminos geomtricos, e interfaces a sistemas CAD/CAM. Por otra parte, y respecto al nivel de abstraccin que permiten a la hora de especicar la tarea, podemos clasicar estos lenguajes en:  Orientados al robot: sus primitivas son comandos de movimiento para el robot, o peticiones de lectura de sensores. Se deja al usuario la tarea de establecer explcitamente, y de modo secuencial, cules deben ser los movimientos a ejecutar, as como cul ser el comportamiento segn los valores de los sensores en cada instante. El nivel de especicacin es, sin embargo, sucientemente alto, como veremos en los ejemplos, como para que una tarea simple se pueda programar con rapidez.  Orientados a la tarea: permiten al usuario especicar qu debe hacer el robot, pero no necesariamente cmo debe hacerlo, al menos, hasta cierto punto. Las especicaciones de tarea se pueden dar en forma textual, o ayudndose de un interface grco (simulador del mundo del robot). ROB6/4

6.4. Clasicacin de los lenguajes de prog. de robots

Apuntes de Robtica
6.5. Niveles de programacin. Cuadro resumen

Ingeniera Informtica

Es conveniente ahora dar y comentar un esquema que explique cul es el software que genricamente se emplea en la programacin y uso de un sistema robotizado, cules son las relaciones entre sus partes y a qu nivel se emplea cada una. Lo que sigue explica la gura 6.1. En ella encontramos, de abajo a arriba:
Usuario Definicion de la tarea (offline) Modelador de solidos Herramientas de programacion Programa a nivel tarea

Visualizacion

Base de datos CAD

Sistema op. multitarea

Modelado geom. de la tarea

Simulacion

Control del robot (online)

Modelador geometrico

Programa a nivel robot

Modelos cinematico y dinamico

Sensorizacion externa interna

Sistema op. de tiempo real Controladores de articulacion Herramientas de medicion y test

Proceso

externos internos Sensores

Instrumentos de medida

Actuadores

Objetos a manipular

Robot

Figura 6.1: Cuadro resumen del software de un sistema robotizado El nivel del proceso: esto no es software, sino hardware actuando sobre el mundo fsico (los objetos). Los sensores y actuadores tpicos ya fueron comentados en los temas correspondientes. Respecto a los instrumentos de medida externos al robot, que pueden estar presentes o no, se usan en su caso para tareas de monitorizacin externa, esencialmente para comprobar si el robot realiza su tarea correctamente, y si las condiciones son apropiadas. Pueden ser sensores de temperatura, corriente de los circuitos de alimentacin, etc., as como herramientas de vericacin y control de calidad, que detecten defectos en la pieza manufacturada. El control del robot: aqu aparecen las herramientas de medicin y test (slo si existan los instrumentos de medida) que procesan sus seales y mandan los oportunos mensajes al usuario en caso de encontrar algo anormal. Adems, tenemos los procesos bsicos que ROB6/5

Apuntes de Robtica

Ingeniera Informtica

tratan la seal en bruto ( raw-data) de los sensores, y dirigen sus resultados bien al sistema de control, para cerrar los lazos de realimentacin de posicin/velocidad (sensores internos) bien al programa a nivel robot, que, como hemos dicho, puede necesitar comprobar la seal de sensores externos (p. ej., un microinterruptor que avise del contacto con un objeto), bien a un mdulo de modelado geomtrico que genere las primitivas geomtricas necesarias para el reconocimiento de los objetos de la escena. A este nivel de control de robot se hallan tambin los controladores de cada articulacin, que usualmente son programas escritos en C o ensamblador que corren en microcontroladores dedicados. Por encima, pero an actuando on-line (es decir, al mismo tiempo que se ejecuta la tarea) tenemos el modelo cinemtico y dinmico del robot, que suministra las seales de referencia a los bucles de control para conseguir de este modo las trayectorias, velocidades y aceleraciones requeridas. Y directamente conectado a l, el programa a nivel de robot, que como dijimos, est compuesto de la secuencia de acciones (posiblemente variable en funcin de condiciones externas) que el robot realizar. Todos estos mdulos estn bajo la supervisin y control de un sistema operativo de tiempo real. Las razones para que tenga que ser as ya han sido sucientemente comentadas antes, excepto en el caso del modelador geomtrico: si es necesario que opere en tiempo real es porque los objetos del mundo pueden estar movindose, y las trayectorias deben variar en consonancia. Pero si estuviesemos dispuestos a admitir un entorno esttico durante todo el desarrollo de la tarea, como hace p. ej. Handey, este mdulo podra no operar on-line. En cualquier caso, por el momento es irrelevante, puesto que no existe un mdulo efectivo de tal tipo, ni siquiera para ambientes industriales genricos y funcionando o-line . La denicin de la tarea: En este nivel encontramos dos ramas: una que conecta el modelador geomtrico de la tarea, la base de datos de modelos geomtricos, y el programa a nivel tarea, y otra, que puede existir, o no, y que hace una simulacin del proceso real, bien concurrentemente con l, bien previamente, para depurar errores. La primera rama determina qu objetos estn presentes en el mundo del robot, as como su posicin y orientacin. A partir de este conocimiento, el planicador de tareas includo en el lenguaje obtiene una secuencia de acciones que deben realizarse teniendo en cuenta cules son los objetos y dnde estn, para evitar as colisiones. La rama de simulacin requiere tcnicas de informtica grca para el modelado y representacin de objetos en 3D. Finalmente, el cuadro de herramientas de programacin representa los editores, compiladores, y similares que se usan de modo normal. Todos estos mdulos no necesariamente deben funcionar en tiempo real, y sincronizados con la ejecucin de la tarea, de modo que un sistema operativo multitarea, pero no de tiempo real (p. ej., Unix) puede gestionarlos.
6.6. Lenguajes orientados al robot
6.6.1. Movimientos del robot

Como dijimos, estos lenguajes generan rdenes de movimiento para el robot. Por ello, para entenderlos correctamente es necesario ver cules son los tipos fundamentales de movimientos que un manipulador robtico necesita ejecutar. En un entorno con varios objetos, el brazo debe poder moverse, asir y desplazar cualquiera de ellos sin chocar con nada. Antes de asir un objeto debe acercarse cuidadosamente a l, y a la inversa cuando se le deposita. Si se trata de insertarlo en un lugar estrecho, o de la forma justa para que el objeto encaje, ciertas restricciones sobre la fuerza y direccin de movimiento debern cumplirse. Por ello, los movimientos pueden ser: ROB6/6

Apuntes de Robtica

Ingeniera Informtica

 Movimientos en espacio libre ( free motions ): el brazo se mueve sin limitaciones sucientemente lejos de los obstculos.  Movimientos condicionados ( guarded motions ): el brazo se mueve comprobando simultneamente alguna condicin que se vericar de modo instantneo en cierto momento; cuando lo hace, el movimiento debe cesar. El depsito de una pieza descendiendo sobre la mesa hasta que el sensor de fuerza vertical detecta resistencia (la reaccin del plano de la mesa) es un ejemplo de esto.  Movimientos con restricciones ( compliant motions ): el brazo se mueve comprobando una o ms condiciones que deben satisfacerse en todo momento; si no lo hacen, entonces o bien el movimiento se interrumpe, o bien se ajusta su direccin o fuerza para que se sigan cumpliendo. La insercin de un pivote en un oricio manteniendo una fuerza de rozamiento constante con las paredes es un ejemplo tpico.  Movimientos de las partes sin ser capturadas ( constrained motions ): consisten en empujar con la pinza algn objeto sucesivamente, de tal modo que, usando su rozamiento con el suelo, se consiga situarlo en un intervalo de posicin y orientacin pequeo (es decir, reducir su incertidumbre) de modo que la pinza lo capture luego apropiadamente. La mayora de los lenguajes orientados a robot (especialmente, los de ms alto nivel) incorporan rdenes de movimiento de los tres primeros tipos. El cuarto debe ser programado explcitamente.
6.6.2. Evolucin y caractersticas

Algunos ejemplos de lenguajes de programacin orientados al robot son: En el nivel ms bajo, los lenguajes de aprendizaje, que son secuenciadores de instrucciones ampliados para permitir la lectura automtica de variables de posicin a peticin del usuario, y su modicacin en modo texto, adems de la incorporacin de estructuras de control simples y rdenes de comprobacin de sensores que son intercalables mediante interfaces con mens en la secuencia de movimientos aprendida. Un ejemplo de este tipo es APT, desarrollado por las fuerzas areas de EEUU para su incorporacin en plantas de fabricacin y ensamblado de componentes de aviones y que deriva de lenguajes usados antes para control de mquinas-herramienta. Evolucion despus a MCL, que inclua comprobaciones sensoriales. En el siguiente nivel encontramos los lenguajes con estructuras amigables para la denicin de posiciones/orientaciones y su manipulacin, clculo implcito de trayectorias en el espacio cartesiano (lo que permite movimientos de aproximacin en cualquier direccin deseada) y comprobacion contnua o a peticin del usuario de seales sensoriales. Entre stos se encuentran: KAREL, basado en Pascal; SRL y AL, que fueron los primeros en introducir manejo concurrente de los eventos sensoriales. AL fue desarrollado en la Universidad de Stanford, y tiene caractersticas de Algol y de Pascal concurrente. ROBEX, otro lenguaje posterior, tambin maneja los sensores pero por medio de un sistema de seales y semforos. AML, creado por IBM, y hoy ya en desuso por haber dejado de fabricarse el robot 7535 para el que se dise, ampla las estructuras de datos bsicas para introducir el "agregado"(una estructura compuesta arbitraria que contiene los datos y mtodos necesarios para ejecutar una operacin elemental). Por ltimo, VAL y VAL-II, creados por la compaa Unimation para el robot industrial ms difundido, el PUMA, tiene una sintaxis similar a ROB6/7

Apuntes de Robtica

Ingeniera Informtica

BASIC, con comandos aadidos. Se vende con su propio sistema operativo que corre slo sobre su propio ordenador de control. Tanto lenguaje como sistema fueron programados en C y en el ensamblador de sus controladores (Motorola 6502). VAL-II posee prcticamente todas las caractersticas de tiempo real y manejo de eventos antes citadas. En el nivel ms alto de los lenguajes orientados a robot estn dos prototipos de investigacin, LM y XPROBE. El primero, creado por J.C. Latombe, parece similar a un lenguaje de aprendizaje, pero su resultado no es una mera repeticin de las acciones, sino la generacin de un programa con rdenes de movimiento y variables libres, que puede luego editarse para cambiar las posiciones absolutas, de modo que el robot ejecutar la accin en otro lugar de su espacio de trabajo (cosa muy til cuando las partes estn inicialmente en posicin desconocida), y se pueden tambin aadir las rdenes de comprobacin contnua o puntual de sensores. Un nivel an ms alto es el de XPROBE, en el que el usuario ensea al robot no slo posiciones y movimientos, sino estrategias sensoriales; esto es posible porque el robot almacena en todo momento los valores de sus sensores, y extrae los conjuntos de valores que considera claves, porque en ellos el usuario ha variado o interrumpido el movimiento. En una siguiente seccin se darn ejemplos de programas escritos en algunos de stos lenguajes que se consideran representativos. Ntese que buena parte de la tarea tediosa que se trataba de automatizar es realizada por estos lenguajes. Concretamente:  Calculan la cinemtica inversa, puesto que el usuario especica posiciones cartesianas (normalmente, en forma de matrices homogneas).  Planican la forma de las trayectorias entre dos puntos (inicial y nal) usualmente rectilneas, y deciden las velocidades y aceleraciones apropiadas, lo cual genera unas funciones de movimiento de las articulaciones con el tiempo.  Envan los valores pertinentes al controlador: stos entran como valores de referencia para los lazos de control de cada variable de articulacin.  Procesan los datos de los sensores, dejndolos en una forma til para su manejo directo por las rdenes o comprobaciones del programa.
6.6.3. Estudios de caso AL

Como se indic anteriormente, AL fue desarrollado en la Universidad de Stanford para la programacin de su manipulador de 6 g.d.l. (el brazo de Stanford, descrito como ejemplo en el tema 2). Posee sintaxis y caractersticas similares a ALGOL y a PASCAL concurrente, y permite las especicaciones de las rdenes a nivel robot, y, muy restringidamente, algo a nivel tarea. Para entender el ejemplo que seguidamente daremos, veamos primero algunas rdenes bsicas en AL. Existe el tipo de datos MH, cuyos elementos son matrices de transformacin homognea. Las posiciones y orientaciones no tienen por qu introducirse explcitamente, sino que pueden calcularse a partir de otras, mediante el uso de ciertas rdenes para la especicacin de posicin, que son: VECTOR(x,y,z) : devuelve la matriz homognea (MH) que representa una traslacin cuyo ROB6/8

Apuntes de Robtica

Ingeniera Informtica

vector de traslacin es (x,y,z). ROT(eje,angulo) : donde eje es x,y o z, y angulo es un nmero real. Devuelve la MH que representa una rotacin de ngulo dado alrededor del eje dado. TRANS(rotacion,traslacion) : donde rotacion y traslacion son MH. Devuelve la MH que representa la rotacin y traslacin combinadas. FRAME(rotacion,traslacion) : donde rotacion y traslacion son MH. Devuelve la MH que representa la transformacin de coordenadas entre el sistema rotado y trasladado segn los argumentos, y el sistema del mundo. Existen tambin rdenes para la especicacin del movimiento. Las ms importantes son: MOVE barm TO A: donde A es una MH y barm es el punto terminal del brazo. Mueve el brazo interpolando en el espacio de articulaciones (y por tanto, no necesariamente en lnea recta) de tal modo que el sistema de la pinza, tal como se deni en el tema 2, quede al nal rotado y trasladado respecto al sistema del mundo segn especica la transformacin A. MOVE barm TO A VIA B : Igual que el caso anterior, pero la trayectoria ser tal que en algn momento el sistema de la pinza venga descrito respecto al sistema del mundo por B. Esto sera similar a la sucesin de rdenes MOVE barm TO B; MOVE barm TO A; con la diferencia que en este ltimo caso el brazo se detendra en B, no as usando VIA. : Mueve el punto terminal con las mismas condiciones sobre el sistema de la pinza y la MH que en el apartado anterior, pero lo hace siguiendo la direccin del eje (que puede ser x, y o z) del sistema cuya posicin/orientacin dene la MH . Adems, emplea en realizar el movimiento el tiempo pedido. OPEN bhand y CLOSE bhand: Ordenes para abrir y cerrar la pinza, respectivamente, Por ltimo, las rdenes para el uso de sensores son: MOVE barm TO A ON FORCE(eje) >limite_fuerza DO ABORT : Mueve el punto terminal a A, con las mismas consideraciones que antes, pero comprobando en todo momento que la componente de la fuerza de reaccin ejercida sobre el brazo en la direccin del eje eje del sistema de la mano no cumpla la condicin dada (en este caso, ser mayor que un cierto lmite). Si la cumpliese, se ejecuta la orden ABORT, que interrumpe el programa.
MOVE barm TO A WITH FORCE(eje) = fuerza WITH DURATION = tiempo MOVE barm TO A WITH DEPARTURE = eje WRT B WITH DURATION = tiempo A eje B

: Mueve el punto terminal a A, como siempre, pero ahora de modo que en todo momento se cumplan las condiciones requeridas, en este caso, que la fuerza de reaccin que se ejerce sobre el eje eje sea la pedida. Es necesario hacer notar una vez ms que estas rdenes requieren la ejecucin de proROB6/9

Apuntes de Robtica

Ingeniera Informtica

cesos concurrentes, y que adems involucran al tiempo, lo que maniesta la necesidad de uso de un sistema operativo de tiempo real, como dijimos. Por otra parte, la diferencia entre ellas es que la primera responde a lo que antes llamamos movimiento condicionado (la condicin se comprueba de modo instantneo y genera una accin concreta en el tiempo) mientras que la segunda corresponde a lo que denotabamos por movimiento bajo restricciones (las condiciones se comprueban constntemente para garantizar su cumplimiento, es decir, se establece un lazo cerrado de realimentacin negativa). Respecto al movimiento libre, lo efectan las rdenes MOVE sin condiciones. Como ejemplo de tarea programada en AL, vase la gura 6.2. Consiste en tomar un tornillo del alimentador, e insertarlo (no enroscarlo) en el oricio del bloque marcado con una D.
C D z x y x z Mundo y z y x bloque B taladrobloque

A o n a cabeza_tornillo

alimentador

BEGIN insercion

Figura 6.2: Ejemplo de tarea para resolver en AL El programa sera el que se lista a continuacin:
dia_tor := 0.5*cm; long_tor := 1*cm; alt_bloque := 5*cm; intentos := 0; sujeccin := false; bloque := FRAME(ROT(Z,90*grad),VECTOR(20,5,0)*cm); alimentador := FRAME(nilrot,VECTOR(25,20,0)*cm); punta_tor := alimentador * TRANS(nilrot,nilvect); cabeza_tor := punta_tor * TRANS(nilrot,VECTOR(0,0,long_tor)); tal_bloque := bloque * TRANS(nilrot,VECTOR(0,0,alt_bloque));

ROB6/10

Apuntes de Robtica
A B C D := := := :=

Ingeniera Informtica

alimentador * TRANS(nilrot,VECTOR(0,0,5)*cm); alimentador * TRANS(nilrot,VECTOR(0,0,alt_bloque+2*long_tor)); tal_bloque * TRANS(nilrot,VECTOR(0,0,2*long_tor); tal_bloque * TRANS(nilrot,VECTOR(0,0,long_tor);

OPEN bhand TO dia_tor + 1*cm; MOVE barm TO cabeza_tor VIA A WITH APPROACH = -Z WRT alimentador; DO CLOSE bhand TO 0.9*dia_tor; IF bhand < dia_tor THEN BEGIN OPEN bhand TO dia_tor + 1*cm; MOVE barm TO - 1*Z*cm; END ELSE sujeccin := verdadero; intentos := intentos + 1; UNTIL sujeccin OR (intentos > 3); IF NOT sujeccin THEN ABORT; MOVE barm TO B VIA A WITH DEPARTURE = Z WRT alimentador; MOVE barm TO D VIA C WITH APPROACH = -Z WRT tal_bloque; MOVE barm TO - 0.1*Z*cm ON FORCE(Z) > 10*Nw DO ABORT; MOVE WITH WITH WITH WITH barm TO tal_bloque DIRECTLY FORCE(Z) = -10*Nw FORCE(X) = 0.1*Nw FORCE(Y) = 0.1*Nw DURATION = 5*seconds;

END insercin

En este programa se comienza inicializando varias variables necesarias, tanto numricas, como de tipo MH. Obsrvese que, efectivamente, el sistema llamado bloque ha sido obtenido trasladando el sistema del mundo a (20,5,0) y rotndolo 90 alrededor de su eje Z . A continuacin, otros sistemas de referencia tiles se inicializan a partir de los anteriores usando las rdenes de traslacin y rotacin. A la hora de llevar el brazo a coger el tornillo, no procedemos directamente (lo cual, probablemente, hara chocar a la pinza con el tornillo) sino que, con la pinza abierta sucientemente, nos situamos arriba del tornillo (punto A) y bajamos hacia l en la direccin del eje Z del sistema alimentador. Las ventajas de una programacin as son obvias: si el alimentador cambiase de lugar, el cambio en la inicializacin de su variable de posicin/orientacin sera lo nico que habra que hacer. A continuacin obsrvese el uso de un bucle de comprobacin ( DO ... UNTIL) que baja sucesivamente el brazo si ste, por la razn que fuere, no hubiera podido asir el tornillo, intentando hasta tres veces. El smbolo usado es una pseudo-variable que contiene la MH de transformacin del punto terminal (la posicin/orientacin presente) en todo momento. El proceso de aproximacin para el depsito es similar, buscando un punto superior desde ROB6/11
0

Apuntes de Robtica

Ingeniera Informtica

donde descender verticalmente, y la fase nal se compone de un movimiento condicionado, que debera dejar al tornillo exactamente sobre el oricio, sin chocar con el bloque, seguido de un movimiento bajo restricciones, que introduce el tornillo asegurndose de que no toque las paredes (condiciones sobre la fuerza en los ejes X e Y ). Como se explic antes, VAL y VAL-II son los lenguajes creados por Unimation para su robot PUMA. Su sintaxis recuerda a BASIC o FORTRAN, y las ordenes de movimiento son un poco ms compactas que las de AL. Las necesarias para entender el ejemplo son: REMARK: Introduce un comentario al programa SET/SETI: Inicializan variables de tipo MH o entero, respectivamente. TYPE/TYPEI: Imprimen el valor de una string/variable de entero. SHIFT: Traslada un sistema de coordenadas denido por su transformacin DH mediante el vector dado. OPENI/CLOSEI: Abre/cierra la pinza, atendiendo a los sensores de fuerza. MOVE: Lleva el punto terminal a la posicin/orientacin descritas por la MH dada, haciendo coincidir el vector de aproximacin de la pinza con el eje Z del sistema dado. MOVES: Igual que MOVE, pero ejecuta el movimiento en linea recta. APPRO: Hace que el punto terminal se aproxime al sistema dado en la direccion del eje Z de dicho sistema, es decir, de modo que el vector de aproximacin del sistema de la pinza siga la direccin de dicho eje durante la aproximacin. Un segundo parmetro real opcional indica la distancia a la que debe quedar el punto terminal del origen del sistema. DEPPARTS: Igual que APPRO, pero separndose del sistema dado. La tarea esta vez consistir en tomar cuatro bloques, que algn otro robot, una cinta transportadora, o un humano sitan en una posicin de depsito conocida, y apilarlos formando una torre en otra posicin dada. Vase la gura 6.3. El programa, que llamaremos APILA, se lista en la pgina siguiente.
VAL-II

ROB6/12

Apuntes de Robtica
.LOAD APILA

Ingeniera Informtica

Origen del robot (0,0,0)

4 3 2 1 Punto de deposito Origen del plano xy (0,0,448)

75 mm

Figura 6.3: Ejemplo de tarea para resolver en VAL


.PROGRAM APILA .LOCATIONS OK .LISTP APILA .PROGRAM APILA 1. REMARK ESTE PROGRAMA TOMA PIEZAS DE UN PUNTO CONOCIDO 2. REMARK (PICKUP), Y LAS DEPOSITA EN UNA LOCALIZACION LLAMADA B 3. REMARK SE ASUME QUE DEBEN APILARSE 4 CUBOS, UNO SOBRE OTRO 4. OPENI 5. SET B = DEPOSIT 6. SETI COUNT=0 7. 10 APPRO PICKUP, 200.00 8. MOVES PICKUP 9. CLOSEI 10. DEPARTS 200.00 11. APPRO B, 200.00 12. MOVES B 13. OPENI 14. DEPARTS 200.00 15. SETI COUNT = COUNT + 1 16. TYPEI COUNT 17. REMARK COUNT INDICA EL NUMERO DE CUBOS 18. REMARK YA APILADOS EN ESTE MOMENTO 19. IF COUNT EQ 4 THEN 20 20. REMARK ACTUALIZAR LA LOCALIZACION DE SUBIENDOLO 75.00 MM. 21. SHIFT B BY 0.00, 0.00, 75.00 22. GOTO 10 23. 20 SPEED 50.00 ALWAYS 24. READY 25. TYPE *** FIN DEL PROGRAMA APILA *** .END .

ROB6/13

Apuntes de Robtica
.LISTL

Ingeniera Informtica
.

X/JT1 Y/JT2 Z/JT3 O/JT4 A/JT5 T DEPOSIT -445.03 130.59 -448.44 -87.654 88.890 -180.000 PICKUP 163.94 433.84 -448.38 178.006 88.896 -180.000 .EXEC APILA COUNT = 1. COUNT = 2. COUNT = 3. COUNT = 4. ** END OF PROGRAM APILA *** PROGRAM COMPLETED: STOPPED AT STEP 25 .

Obsrvese el uso de APPRO y DEPPART que suplen el uso de puntos va, como en AL. El texto anterior representa, no slo el listado, sino tambin la salida por pantalla, y las rdenes escritas en el prompt del sistema (un punto). Las variables de posicin/orientacin usadas (DEPOSIT y PICKUP) no se han inicializado, sino que se han cargado de un chero de localizaciones adjunto al programa con la orden LOCATIONS, y pueden ser visualizadas con LISTL, as como el texto del programa lo es con LISTP.
6.7. Lenguajes orientados a la tarea
6.7.1. Caractersticas

Pese a relevar al programador de la realizacin de todas las tareas que se han citado arriba, la programacin de cualquier accin mnimamente compleja en lenguajes orientados al robot sigue siendo tediosa, y est sometida a gran probabilidad de fallo debido a imperfecciones en las partes, o a la aparicin de eventos no previstos. Para paliar este problema surgen los lenguajes orientados a tarea, en los que el programador especica qu quiere hacer, y es el sistema el que decide qu movimientos y comprobaciones sensoriales, y en qu orden, habr que realizar. Esta decisin se toma en funcin de dos factores: los objetivos marcados, y el estado del mundo en cada momento. En los lenguajes orientados a tarea el usuario la describe en un lenguaje de alto nivel, y un mdulo planicador consulta una base de datos, conocida como el modelo del mundo, y transforma las especicaciones de la tarea en un programa orientado a robot. Esto est relacionado con las tcnicas usadas en Inteligencia Articial para la generacin automtica de programas. El esquema sera como se muestra en la gura 6.4.
Especificaciones de la tarea Descripcion de la tarea Conocimiento externo Planificacion de las subtareas Modelo del mundo

Programa a nivel robot

Figura 6.4: Accin de un lenguaje a nivel tarea ROB6/14

Apuntes de Robtica

Ingeniera Informtica

Como ejemplo, imaginemos que se trata de tomar un tornillo de un soporte en que se encuentra apoyado e insertarlo en un oricio localizado. Esta tarea global podra descomponerse en: - Situarse sobre el tornillo. - Asir el tornillo. - Llevar el tornillo sobre el bloque. - Insertar el tornillo. A su vez, la primera subtarea se dividira en: - Conocer dnde est el robot, y dnde est el tornillo. - Conocer dnde estn todos los dems objetos (para no chocar con ellos). - Determinar una trayectoria libre de colisin. Las dems subtareas se podran dividir similarmente, teniendo en cuenta adems que la ltima requerira informacin de los sensores de fuerza. Conocer dnde est el robot es relativamente fcil: hay que leer los sensores internos (codicadores pticos, normalmente) y usar la cinemtica directa. Pero conocer dnde est el tornillo (y los dems objetos) es asunto mucho ms complejo. La aproximacin ms usada hasta ahora a este problema consiste en almacenar modelos geomtricos para los objetos y tratar de obtener a partir de los sensores externos descripciones, tambin geomtricas, que encajen en los objetos almacenados. A los sistemas que ayudan a la modelizacin geomtrica, almacenamiento, consulta y modicacin de los modelos se les llama sistemas CAD (por Computer Aided Design , Diseo Asistido por Computador) y son habitualmente usados en ingeniera. En aplicaciones robticas la mayora de los objetos a manejar son los llamados MMO (man made objects , objetos hechos por el hombre), y suele ser posible describirlos usando un conjunto discreto y pequeo de primitivas geomtricas. Los dos tipos esenciales de descripcin son en trminos de volmenes, llamada CGS ( constructive solid geometry , geometra constructiva de slidos) y en trminos de los lmites del objeto, sean stos dados como bordes o como supercies; esto es el llamado BR ( boundary representation , representacin de lmites). Muchos de los formalismos habituales usan:  Un conjunto de fronteras (bordes) dados como curvas en el espacio cuyas ecuaciones paramtricas se explicitan, adems de un conjunto de puntos lmite de dichos bordes.  Un conjunto de supercies, dadas tambin por sus ecuaciones, as como los planos u otras supercies que las limitan.  Un conjunto de cilindros generalizados. Un cilindro generalizado es el volumen abarcado por una porcin de supercie plana arbitraria, que se mueve a lo largo de una curva alabeada, manteniendo en todo momento su vector normal en la direccin de la tangente a la curva. La forma de la porcin de supercie plana puede variar al desplazarse por la curva. Por eso, para describir un cilindro generalizado deberemos dar la ecuacin de la curva alabeada, los puntos de inicio y nal del desplazamiento, y la ley de variacin de los lmites de la supercie al desplazarse sta. Ejemplos: ROB6/15

Apuntes de Robtica

Ingeniera Informtica

+ Un cilindro usual de radio r y altura H se puede describir como la circunferencia de radio r constante desplazndose con su centro sobre la recta x = y = 0 (el eje z) entre z = 0 y z = H + Un cono sera una circunferencia de radio r desplazndose con su centro sobre la recta x = y = 0 (el eje z) entre z = 0 y z = H , pero esta vez siendo su radio r = K (H z ), con K y H constantes. + Un prisma poligonal sera un polgono regular con su centro sobre el eje z, en las mismas condiciones que el primer caso. + Una pirmide poligonal sera el mismo polgono sobre la misma recta, pero para el que la apotema fuese variable como a = K (H z). Vase la gura 6.5  Una descomposicin en clulas: consiste en dividir el espacio en celdillas, normalemente regulares (p. ej., una retcula cbica) e indicar cules de sus elementos pertenecen al slido que se describe. Esta representacin es ineciente en trminos de memoria, pero muy simple para calcular las condiciones de movimiento que no violen la impenetrabilidad de la materia.

H h
r r a a

Cilindro r=cte.

Cono r=K(Hh)

Prisma a=cte.

Piramide a=K(Hh)

Figura 6.5: Ejemplos de cilindros generalizados Cada una de las descripiciones propuestas tiene sus ventajas e inconvenientes en trminos de introduccin de los modelos, almacenado, modicacin, etc. No obstante, la caracterstica que ms nos interesa en Robtica es su capacidad de instanciacin. Instanciacin es el llenado de una estructura vaca que representa a un objeto con valores para cada uno de sus campos (parmetros denitorios del objeto) para compararla con una o varias estructuras llenas almacenadas. A la hora de la comprobacin hay que permitir una cierta tolerancia en los valores de los parmetros, puesto que stos deben haber sido (supuestamente) obtenidos por los sensores, que, como dijimos, son siempre afectados por ruido. Ejemplos de sistemas de modelado geomtrico destinados a ser usados por lenguajes de programacin a nivel tarea son AUTOPASS, y RAPT. Ambos se vern con detalle en los ejemplos. Un caso (prcticamente, el nico) de lenguaje (ms bien, sistema) de programacin a nivel tarea es Handey, desarrollado en el MIT por T. Lozano-Prez. Se ver con ms detenimiento como ejemplo de sistema robtico clsico, en el tema 8. ROB6/16

Apuntes de Robtica
6.7.2. Estudios de caso AUTOPASS

Ingeniera Informtica

Aunque no es realmente un lenguaje orientado a tarea, AUTOPASS fue creado por IBM para usos robticos, y pretende ser el modelador geomtrico que debera ser consultado por las rutinas de planicacin de tareas. De hecho, es un sistema CAD, pero con aadidos, que permiten describir los objetos de un modo estructurado, que hace que su forma de almacenamiento represente de modo natural su estructura geomtrica, lo cual permita despus reconocer objetos instanciando sus estructuras (de hecho, mediante un encaje ( matching ) sintctico). Cada objeto se dene en AUTOPASS mediante un procedimiento que invoca a otros, bien previamente denidos, bien primitivas del lenguaje. Cada procedimiento admite parmetros que denen las caractersticas del objeto. Todos los objetos se consideran polidricos, y los cilindros se aproximan como prismas de base poligonal (de hecho, la primitiva CYLIND es realmente un prisma). Ejemplo: Un tornillo sera un slido compuesto por otros tres, todos "cilndricos": la cabeza, el cuerpo y la punta, Vase gura 6.6
Cabeza Cuerpo

Punta

La denicin sera:

Figura 6.6: Ejemplo de pieza en AUTOPASS

Tornillo: PROCEDURE(l_pun,r_pun,nf_pun,l_cuer,r_cuer,l_cab,r_cab,nf_cab) DECLARE l_pun,r_pun,nf_pun,l_cuer,r_cuer,l_cab,r_cab,nf_cab: FLOAT; ag1,ag2: MERGED; BEGIN CALL SOLID(CYLIND,"Punta",l_pun,r_pun,nf_pun); CALL SOLID(CYLIND,"Cuerpo",l_cuer,r_cuer,_); CALL SOLID(CYLIND,"Cabeza",l_cab,r_cab,nf_cab); CALL ag1 := MERGE("Cabeza","Cuerpo",union); CALL ag2 := MERGE(ag1,"Punta",union); Tornillo := ag2; END Tornillo;

donde el subrayado en la denicin de "Cuerporepresenta una variable libre (cualquier valor para ella ser posible). Supongamos que el sistema de sensores de tacto o visin da una descripcin del tornillo de la forma ROB6/17

Apuntes de Robtica

Ingeniera Informtica

MERGE( MERGE( SOLID(CYLIND(_,2,2.5,6)),SOLID(CYLIND(_,12,2,14))), SOLID(CYLIND(1,2,6)) );

AUTOPASS usa operaciones de lgica y un encaje sintctico que puede instanciar el dato en alguno de los procedimientos, haciendo as encajar la descripcin proporcionada por los sensores con la almacenada. Obsrvese el uso de MERGE, que especica una pieza como ja a la otra (y, por tanto, a la hora de hacer razonamiento geomtrico teniendo en cuenta el movimiento de las partes cuando son capturadas por el brazo, el programa tendr en cuenta que ambas partes se deben mover conjuntamente). En AL exista una orden similar (AFFIX) que declara sistemas de coordenadas como jos unos a otros. Pero las rdenes de AUTOPASS son ms potentes, en cuanto que tambin permiten denir adosamiento condicional, el cual se usa sobre todo para modelizar el comportamiento de la gravedad (un objeto A sobre un objeto B est adosado a l slo si B tiene cierta orientacin. En otro caso, A caera). Lo que no permite AUTOPASS, y sera deseable al trabajar con robots, es la posibilidad de manejar adosamientos no rgidos, y tolerancias. RAPT, uno de los primeros, pero ms brillantes intentos de modelizacin y razonamiento geomtrico, fue propuesto por R. Popplestone y otros en la Univ. de Edimburgo. Los objetos pueden ser modelizados de un modo un poco ms exible que en AUTOPASS. Exactamente, pueden ser cuerpos con caras planas o esfricas, o bien ser cilindros generalizados, o tener oricios cilndricos. Las relaciones entre los objetos se denen mediante primitivas que se consideran naturales desde el punto de vista humano; concretamente, las relaciones de contacto son AGAINST, FIT y COPLANAR. A RAPT deben drsele las especicaciones de un conjunto de objetos en forma de descripciones de sus aspectos (caras y vrtices), y declaracin explcita de las relaciones entre stos en un cierto instante (estado inicial), as como la misma descripcin para el estado deseado (estado nal). RAPT genera un programa compuesto por acciones que son traslaciones o rotaciones referidas al sistema de coordenadas del mundo de los sistemas de los objetos. A partir de ah es fcil encontrar el conjunto de movimientos del robot que efectan esto: basta asir el objeto con la pinza, y declarar como unidos los sistemas de objeto y pinza. Un ejemplo de tarea para RAPT sera la que se muestra en la gura 6.7, en la que hay que pasar de la situacin inicial con dos cubos apilados, a la nal, en la que el no apilado queda entre los otros dos.
Cara 3 Bl2 Bl1 Bl3 Situacion inicial Bl2 Bl3 Bl1 Situacion final Cara 1

RAPT

Figura 6.7: Ejemplo de tarea para resolver en RAPT ROB6/18

Apuntes de Robtica

Ingeniera Informtica

Las descripciones seran: Estado inicial


(Bl1_cara1 AGAINST Mesa) (Bl2_cara1 AGAINST Bl1_cara3) (Bl3_cara1 AGAINST Mesa)

Estado nal

(Bl1_cara1 AGAINST Mesa) (Bl3_cara1 AGAINST Bl1_cara3) (Bl2_cara1 AGAINST Bl3_cara3)

El lenguaje generar instrucciones de alto nivel que codiquen una secuencia de acciones como: 1. Llevar brazo sobre Bl2 7. Llevar Bl3 sobre Bl1 2. Asir Bl2 8. Soltar Bl3 3. Llevar Bl2 sobre Mesa 9. Llevar brazo sobre Bl2 4. Soltar Bl2 10. Asir Bl2 5. Llevar brazo sobre Bl3 11. Llevar Bl2 sobre Bl3 6. Asir Bl3 12. Soltar Bl2 A partir de aqu es fcil la generacin de un programa de robot. P. ej., las rdenes 6 a 8 se podran codicar en AL como
Bl2Up := FRAME(Bl2,VECTOR(0,0,5)*cm) AFFIX Bl3 TO barm MOVE barm TO Bl2 VIA Bl2Up WITH DEPARTURE=Z WRT Bl2 MOVE barm TO -5.5*cm ON FORCE(Z) >10*Nw DO STOP OPEN bhand TO 10*cm DETTACH Bl3 FROM barm

En todos los casos los detalles geomtricos que luego aparecen en el programa de robot (cunto ha de abrirse la pinza, etc.) los resuelve el sistema, puesto que conoce el modelo geomtrico de todos los objetos. Para efectuar el razonamiento geomtrico RAPT dene un sistema de coordenadas asociado a cada aspecto de cada objeto, segn su tipo (vrtice, borde, plano, esfera, cilindro u oricio) y se denen las relaciones AGAINST, FIT y COPLANAR en trminos de las relaciones entre los sistemas de coordenadas asociados a cada aspecto. Luego se detallan los efectos que sobre cada relacin tiene cada accin. Un mecanismo complicado de resolucin de restricciones por inferencia lgica genera el plan de accin (secuencia de acciones). Aqu se usan reglas de transformacin del tipo neg (sin(x)) sin(neg (x)) o como twix() twix() twix( + ), donde neg es el cambio de signo, y twix una rotacin de ngulo dado alrededor del eje x. Como comentario nal, hacer notar que la prensin de los objetos es un aspecto no sucientemente tratado por estos lenguajes. Habra que saber cmo debe asirse un objeto (en qu conguracin del brazo, con qu fuerza, y en qu punto del objeto). La prensin debe ser posible y estable. Para planearla se usa:  Conocimiento sobre la geometra del objeto y de la mano: stos se pueden modelizar como poliedros, y vericar que las intersecciones de sus planos caigan fuera de el espacio ocupado por los propios poliedros. ROB6/19

Apuntes de Robtica

Ingeniera Informtica

 Conocimiento de la distribucin de masas del objeto: si es homogneo, coincidir con su centro geomtrico, pero si no, es conveniente que el c.d.m. est sobre la lnea que une los puntos de agarre.  Reduccin de la incertidumbre en la posicin del objeto: esto es preciso para cerrar los dedos sobre los puntos correctos. Incluso sin necesidad de sensores que den la posicin del objeto con precisin, se puede connarlo exactamente abriendo y cerrando dos veces la pinza sobre l en direcciones perpendiculares, de modo que el objeto se vea empujado a quedar en un punto conocido. Este es un ejemplo de movimiento de las partes sin ser capturadas ( constrained motion ). Los problemas expuestos anteriormente (y sobre los que se incidir en el tema 8) relativos a la dicultad de construccin de los modelos y el manejo de la incertidumbre hubieran frenado, si no impedido del todo, el uso industrial de los robots, de haber intentado resolverlos completamente. La solucin obvia ha sido evitarlos, en aplicaciones que lo permitan. De hecho, los robots industriales suelen funcionar en entornos sucientemente estructurados como para que la incertidumbre en las posiciones de las partes a manipular est reducida a un mnimo. Adems, todas las partes que sufren un paso concreto del proceso de fabricacin son casi siempre idnticas. Esto hace que los procesos elementales de manipulacin sean simples, y que el estado del proceso (la factora) completa pueda ser descrito como un conjunto de variables discretas con valores bien denidos, que indican, p. ej., el nmero de piezas de tipo X que se encuentran en ese momento sobre la cinta C , el nmero de piezas de tipo Y en almacn, el mximo numero de piezas que el robot Z puede procesar en un tiempo T , etc. Esto signica que cada subproceso puede entenderse como un consumidor de piezas de los tipos A , . . . , A que genera piezas tipo B a un ritmo determinado; es misin del sistema de control determinar el ujo y rden ptimo de los procesos para conseguir unos objetivos dados. Un sistema de esta clase, llamado CIM ( Computer Integrated Manufacturing , Fabricacin Integrada por Computador) debe regular el comportamiento de la factora como un todo, estableciendo una conexin entre el stock, los procesos de fabricacin, y los requerimientos del usuario, para generar en todo instante las rdenes de control. Estas son, normalmente, activacin o parada de los procesos elementales, que suelen ser rgidos, y ables. Por ello, la efectividad de los sistemas CIM se sustenta en la conanza en que los procesos bsicos funcionen. Para asegurarse de ello, stos deben ser simples, y la incertudimbre en las posiciones y orientaciones de las partes debe haber sido eliminada mediante el uso de cintas transportadoras especiales, movimientos de alineamiento de las partes, etc. Los mtodos empleados para generacin de las acciones necesarias son muy variados; uno de los ms usados son las redes de Petri, pero tambin sistemas de reglas de produccin, o cualquier buen algoritmo de bsqueda en grafos, si se puede plantear el problema como la bsqueda en un espacio de estados donde cada nodo representa un estado de la planta, y tiene una o ms acciones asociadas.
1 n

6.8. Planicacin global de tareas. Nota sobre sistemas CIM

ROB6/20

Tema 7: Robots mviles


En los ltimos aos la investigacin sobre robots mviles est adquiriendo gran desarrollo. Ello se debe, en parte, al abaratamiento del hardware necesario para su construccin, y en parte a la nueva concepcin industrial de planta de fabricacin exible, que requiere la reconguracin de la secuencia de acciones necesarias para una produccin variada, lo que a su vez exige facilidad de desplazamiento de los materiales entre cualesquiera puntos de la factora. La soluciones a este problema de transporte de material en entornos "exibles"son varias. La primera situar las mquinas cerca unas de otras, y organizadas de modo que uno o ms brazos robot puedan llevar las piezas entre ellas; esta conguracin, un caso particular de las llamadas clulas de fabricacin exible, es slo apropiada para un nmero limitado de mquinas. Otra solucin vlida es el uso de vehculos autoguiados (denotados usualmente como AGV, Autonomous Guided Vehicles ), los cuales recurren para el guiado a sistemas externos preprogramados, tales como un ral, cables elctricos enterrados que crean un campo magntico, etc.. Finalmente, la mejor solucin sera disponer de vehculos autnomos (denotados como ALV, Autonomous Land Vehicles ) que se mueven de un punto a otro sin necesidad de ayudas externas (al menos, no en todo momento), lo que los hace capaces de navegacin genrica en un entorno dado a partir de rdenes de alto nivel; a la secuencia de tales rdenes se la suele llamar el plan de la misin. Por otra parte, la construccin experimental de (normalmente) pequeos robots mviles en laboratorios universitarios est haciendo surgir un tipo de investigacin que aborda los aspectos de conexin senso-motora (como nunca nos cansaremos de recalcar, lo ms fundamental en Robtica) desde un punto de vista diferente a aproximaciones anteriores, y que conlleva tambin un cambio de visin en la concepcin clsica de la Inteligencia Articial, la cual se aborda intentando construir vida articial. Se incidir sobre ello en el tema 8. Aun siendo todava en gran parte materia de investigacin, existen algunas tecnologas, mtodos y formulaciones matemticas para robots mviles que, sin estar tan asentadas como las que se usan para manipuladores, han comenzado ya a ser comunes, e includas en algn libro de texto. Ello hace que sea ya posible plantear este tema como parte del curso. En l se estudiar primero la formulacin cinemtica, que, anlogamente a lo que ocurra en los manipuladores, permitir conocer la posicin del robot respecto a un sistema externo a partir de los datos sobre l que, mediante sus sensores, podemos conocer. Depus se hablar de navegacin, explicando las tcnicas que permiten a un robot mvil desplazarse de modo seguro hasta un objetivo dado, en entornos slo parcialmente conocidos. Se mostrarn despus los medios (sensores y actuadores ms comunes) que se instalan hoy en robots mviles, y su conexin.
7.2. Cinemtica de robots mviles 7.1. Introduccin

Aun cuando es posible construir y describir mecnicamente robots que se desplazan sobre patas, por movimiento alternativo de stas, aqu nos ocuparemos slo de los que lo hacen sobre ruedas. Las ruedas siempre estarn en contacto con el suelo, lo que hace que ROB7/1

Apuntes de Robtica

Ingeniera Informtica

se deba tratar al robot como una cadena cinemtica cerrada, donde el suelo acta tambin como enlace entre las ruedas. Esto requiere plantearse una formulacin para la cinemtica bastante diferente a la de los manipuladores. Hablaremos aqu de dos tipos: cinemtica interna, que establecer la relacin entre las articulaciones dentro del robot, y externa, que establecer esta relacin entre el robot y el resto del mundo. Hay una serie de diferencias con los robots estticos que es preciso sealar: 1. Los robots con ruedas, como ya dijimos, son cadenas cinemticas cerradas, dado que tienen varias ruedas en contacto simultneo con el suelo, lo que complica la formulacin. Los robots andantes son cadenas cinemticas alternativamente abiertas y cerradas, segn la pata est o no en contacto con el suelo. 2. Las pseudo-articulaciones del robot mvil tienen dos grados de libertad, es decir, forman un par link-joint de orden superior, con un nico punto de contacto (el de la rueda con el suelo). 3. Algunos grados de libertad pueden no estar conectados a ningn actuador. 4. No ser necesario medir posicin, velocidad y aceleracin de cada enlace, porque hay ligaduras entre unos y otros, de modo que no todos los grados de libertad del robot van a ser independientes. Para que el anlisis que vamos a plantear sea vlido, necesitamos admitir ciertas restricciones. Concretamente, slo consideraremos robots capaces de locomocin sobre una supercie mediante la accin de ruedas montadas en el robot y en contacto con dicha supercie. Las ruedas se suponen montadas en dispositivos que proveen o permiten movimiento relativo entre su punto de anclaje (punto de guiado) y una supercie (el suelo) con la cual debe haber un nico punto de contacto rodante. Se asume que: - El robot est construdo con mecanismos rgidos. - Hay no ms de un enlace de guiado por cada rueda. - Todos los ejes de guiado son perpendiculares al suelo. - La supercie de movimiento es un plano. - No hay deslizamiento entre las ruedas y el suelo. - La friccin es sucientemente pequea como para permitir el giro de cualquier rueda alrededor del eje de guiado. Todas estas suposiciones se cumplen razonablemente bien en la mayora de los robots mviles actuales, excepto la penltima (y, dependiendo del terreno, tambin la antepenltima). El deslizamiento es, de hecho, el mayor problema con que se encuentra cualquier robot movil a la hora de establecer una autolocalizacin precisa. Procederemos ahora a asignar sistemas de coordenadas jos a determinados puntos que nos permitirn, por aalisis de las trasformaciones entre unos y otros, establecer la cinemtica. Sea una rueda montada sobre una pieza, digamos una regleta, jada al cuerpo del robot. La rueda puede girar alrededor de un eje vertical (el eje de guiado) que se articula en el extremo de la regleta. Vase la gura 7.1 Los sistemas de coordenadas se asignan del modo siguiente: El eje z de cualquier sistema es siempre perpendicular al suelo. En realidad, analizaremos el movimiento en el plano, y por tanto, la tercera coordenada ser ignorada en todos los casos. Existir un sistema de referencia jo, el sistema del mundo, que llamaremos R. ROB7/2

Apuntes de Robtica
Rueda Eje de guiado Eje de guiado

Ingeniera Informtica

Enlace Remache fijo Cuerpo del robot Eje de rotacion

Vista superior

Vista lateral

Figura 7.1: Esquema de la rueda de un robot mvil Un sistema llamado C ir jo al cuerpo (chasis) del robot, movindose con l. Normalmente se jar su origen en el centro geomtrico del robot, y su eje Y en la direccin privilegiada de avance, si la hay. Se jarn una serie de sistemas, uno para cada rueda, llamados S , cuyos ejes z coincidirn con los ejes de guiado. Sus ejes x e y se suelen poner paralelos a los del sistema C. Otra serie de sistemas, los W , se jarn a cada rueda con su eje z siendo el de guiado, (como en el caso de los S ), pero de modo que giran en sentido vertical con la direccin de la rueda, de modo que su eje x coincide en todo momento con la direccin de avance de esta rueda. Como podr suponerse, el ngulo entre cada W y su S servir para representar el ngulo de direccin de la rueda i. , est jo al suelo, pero coincide instantneamente con Otro sistema, que llamaremos C estuviera "pintado"en el suelo, y en el C . Esto puede entenderse como si el sistema C instante en que vamos a analizar el movimiento, determinando posicin y velocidad del se superponen. Obsrvese que C robot, ste pasa justo por encima, de modo que C y C es esttico, y, como se ver luego, se usa como un simple articio matemtico. como coincidentes instantneaAnlogamente, se sitan los sistemas que llamaremos W , tambin mente con su respectivo W en el instante de anlisis del movimiento (y, como el C estticos). La razn de introducir estos sistemas es que nos permitirn medir velocidades respecto a la referencia del mundo, R, independientemente de la posicin. Para entender todo esto vase la gura 7.2. Las transformaciones entre dos cualesquiera de estos sistemas se pueden, obviamente, escribir como giros alrededor del eje z con algn ngulo , ms traslaciones de vector p, cuya forma general sera
i i i i i i i

pero en lugar de ello, y como p es constante, prescindiremos de ella. En su lugar aadiremos un parmetro de orientacin , que expresar la direccin de avance del robot. Ntese que para describir un slido rgido como un todo que efecta un movimiento plano nos basta dar tres coordenadas: las dos que expresen la posicin de uno de sus puntos (p. ej,. el centro) en un instante, llammoslas (p , p ), y la que da la direccin en que el objeto est orientado en tal instante, sea . Vase la gura 7.3 ROB7/3
z x y

sin( ) 0

cos( ) sin( ) cos( ) 0 0 0

0 px 0 py 1 pz 0 1

Apuntes de Robtica
Y Y X

Ingeniera Informtica
W/W 1 1
Y X

S1 X

S2

Rueda

Y X

C/C

S3

Figura 7.2: Sistemas de referencia para un robot mvil


y C (p ,py ) x

Figura 7.3: Coordenadas de posicin-orientacin de un robot mvil El vector de posicin-orientacin ser, pues, (p , p , ) . Ntese que, si los ejes x de dos sistemas cualesquiera forman un ngulo , y la orientacin del robot respecto al primero es , respecto al segundo ser + . Entonces, la matriz de transformacin genrica entre dos sistemas A y B usando las coordenadas antedichas en forma homognea, o sea, (p , p , , 1) , sera:
x y x y

Su inversa, es decir, la transformacin que llevara del sistema B hasta el A sera:

sin( ) A T = B 0

cos( ) sin( ) cos( ) 0 0 0

0 px 0 py 1 0 1

T= A

cos( ) sin( ) sin( ) cos( ) 0 0 0 0

0 px cos( ) py sin( ) 0 px sin( ) py cos( ) 1 0 1

Ntese que

A B

multiplicada por (0, 0, 0, 1) , que es el vector de posicin/orientacin del ROB7/4

Apuntes de Robtica
x y

Ingeniera Informtica

origen de B respecto a s mismo, da (p , p , , 1), o sea, la posicin/orientacin del origen de B respecto a A. En lo sucesivo, necesitaremos tambin usar las derivadas de estas transformaciones respecto al tiempo. La expresin general de tal derivada (derivando componente a componente) sera:
= T . Es fcil ver que, respecto a la derivada de la transformacin inversa, T Usando estas transformaciones como echas en un grafo cuyos nodos sean los distintos sistemas de referencia, podemos escribir el grafo de la cadena cinemtica, segn se muestra en la gura 7.4.
B A A B

cos( ) A T= B 0

sin( ) cos( ) sin( ) 0 0 0

0 p x 0 p y 0 0 0

R C

T C

C C

R
R W

C T W
W W

W T
W S

S T

S C

Figura 7.4: Grafo de transformaciones entre sistemas Ntese que se trata de un grafo cerrado (cclico), como corresponde al hecho de que tenemos una cadena cinemtica cerrada. En realidad, los sistemas W y S indicados son W y S , habiendo uno de estos grafos por cada rueda. Ahora estamos en condiciones de plantearnos la obtencin de la velocidad del robot (o sea, del sistema C ) respecto al sistema de referencia externo R, a partir del conocimiento de las velocidades de cada rueda. Esto ser la cinemtica (o, en este caso, mejor cintica) directa. Para ello, escribamos la posicin del centro del robot, C , respecto a R
i
R

siendo, naturalmente, p = (0, 0, 0, 1) . Aqu hemos transformado a travs de la rama superior del grafo. Ahora, la velocidad se obtendr por derivacin respecto al tiempo:
C C

pC = C T C T pC

v= p C =

donde se ha usado la regla de derivacin del producto, y el hecho de que p es constante. Ahora bien, C est jo al suelo (aun cuando en el preciso instante de la medida coincida con C ); luego C no vara respecto al sistema jo, R, y por tanto T = 0, con lo que la expresin de la velocidad queda: p v = T T (7.1) p expresara la velocidad del robot medida por el sistema jo el suelo El producto T en el preciso momento en que el robot pasa sobre l. La matriz T meramente expresa ROB7/5
C C R C R C C C C C C C C C R C

C C T T pC = C C
R

C T + R TC T Cp T C C C C C

Apuntes de Robtica
C C R C

Ingeniera Informtica

este vector velocidad en coordenadas del mundo. Con destino a su uso en esta expresin, podremos calcular T, pero no T, de modo que podremos saber cmo se est moviendo el robot en un cierto instante, pero no su posicin absoluta (salvo, como veremos luego, por integracin). . Para obtenerla, partiremos del grafo. Escribamos primero Tratemos de trabajar sobre T la expresin de T (7.2) T= T T T T T hemos usado la rama ms larga de las dos que la unen en el grafo. Ello Para llegar de R a C es precisamente porque a travs de la rama corta deberamos conocer la relacin entre el sistema R y el C , es decir, la posicin absoluta del robot. Esto slo es posible si disponemos de algn sensor externo que acte como sistema de posicionamiento global (sistemas de ultrasonidos, una cmara cenital, etc.) lo cual no es corriente. Como se ver luego, usando la otra serie de transformaciones podemos llegar a depender slo de los sensores internos. = T = Ahora, derivaremos respecto al tiempo la ecuacin 7.2, notando que T = T 0. Esto es porque los sistemas con barra son de coincidencia instantnea con sus homnimos sin barra, pero estn, segn dijimos, jos al suelo, R. Y por otra parte, tanto el sistema S como el C estn jos al chsis del robot, de modo que sus posiciones relativas no cambian con el tiempo. As, la derivada queda:
C C R C R C R W W W S S C C W C R C R S W C

y como T no es identicamente nula, podemos simplicarla por la derecha, con lo que la ecuacin anterior se escribe como
R W

R W S T CT + R T W T W T S T CT W T S T CT + R T W T W T 0=W T WT C C W S C W S S C C W C W

Adems, recordemos que todoesto se calcula para el instante de tiempo concreto en que W coinciden, asi como C y C yW , con lo que se tiene que T = T = I , quedando nalmente
W W C C

W S T CT + W T W T S T CT W T S T CT + W T W T 0 = WT S C S C W S C W C C C

, que recordemos que era lo que nos interesa, pues su inversa Por fn, para despejar T aparece en 7.1, multiplicaremos ambas partes de la igualdad por T T, pasando un = T , con lo que trmino a la otra parte y usando la propiedad de que T = T T T T T+ T T T T T (7.3) Ahora, se trata de escribir cada una de las matrices cuyo producto forma en la ecuacin 7.3 la transformacin buscada, T. Esto lo haremos mirando los esquemas de los sistemas de coordenadas (gura 7.2), y usando la frmula de la derivada temporal de una matriz de este tipo, as como la siguiente notacin: - ser el ngulo entre el eje x del sistema C y el mismo eje del sistema S. Es jo, y usualmente nulo. - es el ngulo de giro vertical de la rueda (ngulo de direccin). Lo forman S y W , y se mide desde S . y el eje x de W , - : angulo instantaneo de giro vertical de la rueda. Lo forman el eje x de W luego es nulo en el instante de observacin, pero su derivada, = , no. Ntese que, aunque ROB7/6
C C C S C C C C C W C C C S S W W W S S C S S W S S W C W C C C

W WT ST + WT S T + W T S T CT 0 = WT C C S C S S C

Apuntes de Robtica

Ingeniera Informtica

puede parecerlo, no es igual a , sino que expresa cmo ve un sistema de referencia externo el giro de una rueda. Si el robot completo est tomando una curva de radio constante, no cambiar, pero s, sera en en ese caso el ngulo de giro del robot como un todo, tal como lo ve un observador externo. - (d , d ): vector entre el origen de C y el de S, expresado en C Vase el esquema de la rueda en la gura 7.5, en donde se aaden otros dos ngulos: , que es propiamente el ngulo de rotacin natural de la rueda sobre su eje, y , que, segn la condiciones impuestas al principio de que el eje de direccin sea siempre perpendicular al suelo, ser constante y nulo, por lo que slo se dibuja por completitud.
x y y x

Z z y x X Y

Figura 7.5: Angulos de giro de la rueda Con esta notacin las matrices de transformacin resultan ser:

T= S

c s s c 0 0 0 0

0 dx 0 dy 1 0 1

T= C

c s 0 dx c dy s s c 0 dx s dy c 0 0 1 0 0 0 1

T= W
W = T W

Ahora hay que multiplicar todas estas matrices, de acuerdo a la ecuacin 7.3. Pero recordemos, por la ecuacin 7.1, que lo que realmente buscbamos era la velocidad del chasis del robot, que denotaremos por
C

c s 0 s c 0 0 0 1 0 0 0 s c c s 0 0 0 0

0 0 1 W 0 vx W 0 vy W 0 0 0

W S

T=


W S

= T

c s 0 0 s c 0 0 0 0 1 0 0 0 1 s c 0 c s 0 0 0 0 0 0 0

0 0 0

v=

vx C vy C 0

Cp = CT T C C C

0 0 0 1

= (4a

columna de

C C

) T

(7.4)

por lo que slo necesitamos la 4 columna del producto. Multiplicando las matrices segn 7.3, simplicando, introduciendo el producto en 7.1, e igualando las expresiones resultantes ROB7/7

Apuntes de Robtica

Ingeniera Informtica

segn 7.4, se obtiene:


C C

vx = c( + ) vx s( + ) vy + dy dy vy = s( + ) vx + c( + ) vy dx + dx = 0 = 0
W W W W

o, escribindolo en forma matricial,



C C

(7.6) Ntese que la matriz J antedicha relaciona velocidades lineales y angulares de la rueda con velocidades del chsis medidas en el sistema de referencia cartesiano. De este modo, y por semejanza con el caso de los manipuladores, podemos considerarla como un Jacobiano (de hecho, un pseudo-jacobiano, en razn de las ligaduras entre articulaciones que aparecen). El problema ahora es saber si podemos medir las velocidades de la rueda, ( v , v , , ), y efectivamente esto es posible poniendo en ella sensores (normalmente, codicadores pticos) apropiados. Para ello es necesario relacionar estas velocidades con los ngulos realmente medidos. Esto depende del tipo concreto de rueda. Veamos dos casos: Sea una rueda como la mostrada en las guras 7.1 y 7.5, pero con el eje vertical jo. En ese caso, la velocidad lineal en la direccin de avance es proporcional a la velocidad angular de la rueda, siendo el coeciente de proporcionalidad el radio, r. Entonces, se tiene
C

vx c( + ) s( + ) dy dy vy = s( + ) c( + ) dx dx C 0 0 1 1 v= q J

vx W vy W

(7.5)

W W

y vx = r vy = 0 z = = 0

o, en forma matricial,

vx W vy W

0 0 0 0

r 0 0 0

0 0 1 0

0 0 0 0

x y z

Obsrvese que, aun siendo la rueda ja, y por tanto constante (o sea, idnticamente nula), no es necesariamente constante: el robot puede estar girando respecto al sistema externo. En el caso de que la rueda tambin pudiese girar alrededor del eje vertical (eje de guiado), tendramos
z
W W

y vx = r

vy = 0 W z = =

o, en forma matricial,

vx W vy W

0 0 0 0

r 0 0 0

0 0 1 0

0 0 0 1

x y z

ROB7/8

Apuntes de Robtica

Ingeniera Informtica
C

Al fn, y usando las ecuaciones 7.4 y 7.5, se tendr que donde el producto J J W es otra forma para el pseudo-Jacobiano, que establece la relacin directa entre la velocidad que queremos conocer y las variables medibles. En los dos casos de las ruedas anteriores, y suprimiendo las variables innecesarias, las ecuaciones quedan, para el primer caso,
W

W J v=J

y para el segundo,

vx vy W

r 0 0 0 = 0 1

y z

0 0 0 0 1 0

Las variables que aparecen en el lado derecho de estas ecuaciones son directamente medibles, conectando, p. ej., codicadores pticos a cada eje de cada rueda (tambin en el eje de guiado). Esto hace que podamos obtener la velocidad instantnea del robot en su conjunto respecto al sistema externo. Pero observemos que no hay ecuacin que nos de la posicin; por ello, sta slo se podr conocer por integracin de la velocidad. Este es el procedimiento de autolocalizacin llamado odometra, e incidiremos sobre l en la siguiente seccin. Volviendo ahora al aspecto fsico, recordemos que todas estas ecuaciones se deben plantear para cada rueda; dejando aparte la coordenada , que tiene que ver con el giro individual de esa rueda alrededor de su eje, las otras son un sistema de 3 ecuaciones con 3 incgnitas, que relacionan las variables medibles en una rueda con la velocidad lineal y angular del robot como un todo. Cuando se plantee esto para las N ruedas tendremos un sistema de 3N ecuaciones con slo 3 incgnitas, que deber ser compatible; en trminos fsicos, cada rueda debiera ordenar al robot el mismo movimiento. De otro modo, no habr movimiento alguno, o bien una o ms ruedas deslizarn, incumpliendo las condiciones originales. Veamos ahora un ejemplo. Sea un robot con tres ruedas, segn se ve en la gura 7.6, la delantera libre, de modo que puede girar arbitrariamente alrededor de un eje vertical sin estar controlada, y las traseras, orientadas con ngulos y respecto a la direccin de avance (jos o no, se ver luego cada caso). Los vectores que expresan la velocidad de cada rueda seran
1 2
W

vx W vy W

r 0 0 0

0 0 0 1

y z

Las respectivas matrices J, usando la ecuacin 7.5, y teniendo en cuenta que = son c s c s = c L L c L L y J = J s s
1 1 1 l 2 l 2 2 2 l 2 l 2 1 1 1 2 2 2

q 1 =

vx1 W vy 1 W 1 1

q 2 =

v x2 vy 2 W 2 2

=0

ROB7/9

Apuntes de Robtica
y2
l 2

Ingeniera Informtica
2 x2 y C
l 2

y1

x1 L

Figura 7.6: Ejemplo de robot mvil Por otra parte, escribiendo las dos matrices W que relacionan las coordenadas propias de cada rueda con su vector velocidad q , sale:
i i

q 1 =

r 0 0 0

0 0 1 0

0 0 0 1

y1 z 1 1

q 2 =

r 0 0 0

0 0 1 0

0 0 0 1

y2 z2 2

Al multiplicar y escribir por separado cada ecuacin resultan los sistemas (obtenidos por sustitucin en 7.5):

ROB7/10

Apuntes de Robtica

Ingeniera Informtica

z1 l 1 y1 + l vx = rc1 2 2 C vy = rs1 y1 + Lz1 L1 C z1 1 =

y2 l z2 + l 2 vx = rc2 2 2 C vy = rs2 y2 + Lz2 L2 C z2 2 =

Ahora, si las ruedas traseras mantuvieran constante su orientacin en la direccin de movimiento (o sea, = = 0) se obtiene que
1 2

z2 y1 + l = r y2 l vx = r 2 z1 2 z1 = z2 vy = L L z1 = z2 =

de donde

Esto quiere decir que, si ambas ruedas giran a la misma velocidad, el robot avanzar hacia adelante (o atrs, segn el sentido) pero no girar ( = 0), o sea, el avance ser en lnea recta. Si, por el contrario, cada rueda gira con una velocidad angular diferente, el robot describir una circunferencia, girando todo l con velocidad angular . Sea ahora el caso en que las orientaciones de las ruedas traseras son constantes e iguales ( = ), pero no nulas (o sea, no apuntan hacia el frente). En ese caso, las ecuaciones son:
1 2

r = ( y 1 y 2 ) l

z2 y1 + l = rc y2 l vx = rc 2 z1 2 y1 + L z1 = rs y2 + L z2 vy = rs z1 = z2 =

La nica forma de hacer compatibles estas ecuaciones es que = = 0, y que = , es decir, el robot como un todo ya no puede girar ( = 0) y adems, las ruedas no pueden girar a distintas velocidades. Esto es un ejemplo de las ligaduras que dijimos que aparecan por el hecho de trabajar con cadenas cinemticas cerradas. Las componentes del vector velocidad global quedan
z1 z2 y1 y2

y1 vx = rc y1 vy = rs

lo que quiere decir que el robot avanza en lnea recta, formando un ngulo con el eje x. Finalmente, si y son constantes, pero no iguales, se puede probar que el sistema es incompatible, es decir, el robot no puede avanzar. El expuesto es un caso particular en el que aparecen determinadas restricciones. Las condiciones de movilidad de un robot se determinan en general a partir del rango de matrices construdas por yuxtaposicin de los jacobianos de cada rueda; la formulacin general de este problema se considera fuera del alcance de un curso elemental. ROB7/11
1 2

Apuntes de Robtica
7.3. Navegacin

Ingeniera Informtica

Se llama navegacin al conjunto de mtodos y tcnicas usados para dirigir el curso de un robot mvil a medida que ste atraviesa su entorno. Se supone que se debe llegar a algn destino pedido, sin perderse y sin chocar ni con obstculos jos, ni con otros mviles que eventualmente puedan aparecer en el camino. Para efectuar navegacin lo ms comn es disponer de un mapa, aunque no necesariamente. Mapa es cualquier tipo de representacin del entorno en la memoria del robot; inmediatamente veremos los principales tipos. A partir de un mapa, se puede determinar un camino apropiado entre dos puntos pedidos, lo cual ser ms o menos complejo segn haya sido la representacin escogida. Por ltimo, habr que seguir ese camino. Para ello, se usa la autolocalizacin, de varios modos diferentes. El algoritmo genrico que un robot mvil empleara para navegar podra ser: Comienzo (de la tarea) Si existe un mapa entonces Buscar caminos en el mapa Seleccionar uno usando una funcin de evaluacin Si el camino es complejo, entonces descomponer en subcaminos Recoger datos sensoriales del entorno Mientras no estemos en el objetivo hacer Seguir el primer camino Si se cumple el subobjetivo entonces obtener siguiente subobjetivo Recoger datos sensoriales del entorno Si hay un objeto en el camino entonces Parar el robot Si el objeto es estacionario entonces Actualizar el mapa Buscar un camino alternativo al subobjetivo Si tal camino existe entonces Seguirlo si no Cortar el programa y replanicar la tarea si no (objeto movil) Parar y esperar a que el camino este libre n (mientras) (Robot en el objetivo) si no (no existe un mapa) entonces Mientras no estemos en el objetivo hacer Recoger datos sensoriales del entorno Si entorno en la direccin del objetivo est libre entonces Moverse hacia el objetivo si no (objeto en el camino) Si entorno en otras direcciones est libre entonces Seleccionar una direccin de modo heurstico Moverse en esa direccin ROB7/12

Apuntes de Robtica

Ingeniera Informtica

Cortar el programa y replanicar la tarea (Robot en el objetivo) n (de la tarea)


n (mientras) 7.3.1. Mapas del entorno

si no (el robot est atrapado)

Ser necesario desarrollar estructuras de datos apropiadas para el almacenamiento del tipo de informacin que el robot va a necesitar, as como algoritmos para su manipulacin eciente; las estructuras usadas deben permitir combinar la informacin adquirida por los sensores externos con la ya almacenada en el mapa. Las caractersticas que debera tener una buena estructura de datos seran: Debe encajar con el metodo escogido de planicacin de caminos Debe minimizar el nmero de elementos ambiguos (conteniendo a la vez objeto y espacio libre) Debe reejar formas complejas con la mxima precisin, o al menos con la suciente Debe almacenar formas complejas con un nmero pequeo de elementos Debe almacenar formas (o espacio libre) grandes con los mnimos elementos que sea posible Debe poder manejar mapas locales y globales Debe poder almacenar el estado de las reas mapeadas Debe facilitar el movimiento desde un elemento de la estructura a elementos adyacentes Debe incluir subestructuras para almacenar caminos Debe poder ser fcilmente manipulada por los algoritmos de localizacin, bsqueda de caminos y navegacin Debe poder ser fcilmente extendida para incorporar nueva informacin procedente del proceso sensorial Realmente, ninguna de las estructuras de datos propuestas cumple todos los requisitos. En cada aplicacin particular hay que elegir la que cumpla los ms necesarios para ella. Veamos ahora los tipos de mapas que son comunmente usados. Primeramente, estn los basados en informacin sensorial, con dos tipos: - Mapas de marcas en el terreno ( landmarks ): algunas localizaciones particulares fcilmente identicables por el sistema sensorial del robot (cierta esquina, un grupo de objetos bien visibles o tubos de nen, etc.) actan como marcas relevantes ( landmarks ). Se representan como nodos de un grafo (que pueden tener caractersticas asociadas, para garantizar su identicacin unvoca), los cuales se unen por los arcos del grafo que normalmente, representan la accesibilidad (si existe arco entre dos nodos, el robot puede desplazarse directamente de uno a otro de los landmarks a los que los nodos representan). Estos arcos pueden tambin estar etiquetados con caractersticas del recorrido como distancia, direccin, tiempo de trnsito, etc. - Mapas de ocupacin: Se basan en repesentar el terreno como una retcula, regular o no, cada una de cuyas casillas contiene un valor til para el robot, que suele ser la certitud de ocupacin, es decir, qu grado de creencia tiene el robot sobre el estado de una determinada casilla, desde -1 (es seguro que est libre) hasta +1 (es seguro que est ocupada) pasando por 0 (no hay evidencia en ningn sentido). Estos mapas se pueden construir por ROB7/13

Apuntes de Robtica

Ingeniera Informtica

mtodos visuales, mediante la toma de imgenes por un par estereo de cmaras (o una sla que va a bordo del robot y se sita en varias posiciones), a partir de las proyecciones de puntos lmite de un objeto, como se ve en la gura 7.7
Celulas que incrementan mas su valor de ocupacion Celulas que incrementan menos su valor de ocupacion Celulas que no incrementan su valor de ocupacion Celulas que decrementan su valor de ocupacion Robot Robot en posicion siguiente Lineas a los puntos extremos del objeto Limite del campo de vision del robot

Obstaculo

Figura 7.7: Construccin visual del mapa de ocupacin Por otra parte, se pueden clasicar los mapas de acuerdo a lo que se almacena. Aqu hay tambin varios tipos: - Mapas de espacio libre: al igual que en los mapas de marcas, la estructura de almacenamiento elegida es tambin el grafo, pero esta vez cada nodo representa un punto de parada donde el robot pueda detenerse para sensorizar el entorno. Los arcos son lneas rectas que el robot pueda recorrer entre estos puntos sin encontrar obstculos; evidentemente, limitarn a los posibles obstculos. Ntese que aqu los datos almacenados s tienen correspondencia fsica directa; el dual de uno de estos mapas sera el diagrama de Voronoi, donde cada polgono conteniendo a un punto de detencin puede estar o bien completamente libre, o bien puede contener parcialmente a algn objeto. Vese la gura 7.8

Punto de parada Linea de desplazamiento posible

Punto de parada Limite de regiones de influencia

Figura 7.8: Mapa de espacio libre, y su dual - Mapas de objetos: Como su nombre indica, lo que se almacena en ellos son los objetos (obstculos) que el robot puede encontrar en su trayectoria, de varios modos; los ms normales son considerar al objeto como un polgono, y almacenar su punto central y la extensin mxima en una serie de direcciones desde l; otro modo es caracterizarlo como ROB7/14

Apuntes de Robtica

Ingeniera Informtica

una de entre un conjunto de guras geomtricas dadas, y dar su posicin y la orientacin de un eje propio de esa gura - Mapas compuestos: almacenan tanto informacin de objetos como de espacio libre. Una posibilidad es dividir el espacio en regiones arbitrarias, pero conocidas, e indicar en cada una de ellas si est totalmente libre, totalmente ocupada, o parcialmente ocupada. Otra alternativa es una retcula de puntos con un indicador de estado en cada punto, y una lista de a cules de los puntos adyacentes se puede acceder directamente; la retcula puede hacerse ms o menos densa, en funcin del tamao del robot. - Quadtrees: Dividen el espacio mediante una retcula, y proceden por subdivisin recursiva de la misma, mientras la celda resultante sea subdividible, siendo el criterio el que no tenga toda ella el mismo carcter de ocupacin. - Mapas basados en reglas: el entorno del robot se describe como una coleccin de predicados del clculo proposicional, como p. ej. derecha(punto1,mesa), distancia(punto1,punto2,20), direccion(punto2,armario,45) , etc. y se trata de encontrar un camino libre mediante la manipulacin simblica de estas expresiones siguiendo las reglas del clculo de predicados y una serie de proposiciones que expresan el conocimiento geomtrico usual.
7.3.2. Autolocalizacin

Despus de haber descrito los mapas, el paso obvio es explicar cmo un robot mvil es capaz de saber en qu punto del mapa se encuentra. Para ello, se puede recurrir a la informacin aportada por los dos tipos posibles de sensores: internos y externos. Los principales procedimientos para la autolocalizacin ( dead reckroning ) son la odometra y el uso de balizas. - Odometra: como se vi en la seccin sobre cinemtica, era posible conocer la velocidad instantnea del robot respecto a un sistema externo a partir del conocimiento de la velocidad de las ruedas. Ser necesario instalar sensores de posicin angular (normalmente, codicadores pticos) en cada rueda. Conocido el vector velocidad, la posicin en el instante presente (t) se obtendr por integracin:
t

x(t) = x0 + y (t) = y0 +

0 t 0

vx ( )d vy ( )d

donde se supone que en el instante en que se empieza a contar el tiempo ( t = 0) la posicin es conocida, y vale (x , y ). Este mtodo presenta varios problemas: * La integral debe hacerse por mtodos numricos, con lo cual se da una prdida de precisin, que adems es acumulativa. * Es muy sensible al problema del deslizamiento. En ese caso, la distancia computada es mayor que la realmente recorrida. * Le afectan falsos recorridos computados como ms largos debido a la inclinacin del ROB7/15
0 0

Apuntes de Robtica

Ingeniera Informtica

terreno o a pequeos obstculos. Si una sla rueda cruza sobre uno de stos, el ngulo que habr girado es mayor, y por tanto se recogern ms cuentas en su encoder que en el/los otro/s. Esto har que el sistema de control interprete que se ha producido un giro hacia el lado de la rueda de menor recorrido, y trate de compensarlo con un giro opuesto, desviando al robot. Vese la gura 7.9.
ruedas trayec. esperada

obstaculo

trayec. indebidamente corregida

Figura 7.9: Odometra afectada por el terreno - Balizas: son marcas de fcil localizacin instaladas en lugares conocidos, que el robot es capaz de detectar con sus sensores, y respecto a las cules se sita. Pueden ser marcas visuales (tubos de nen, o bandas de colores), o emisores de infrarrojos, cada uno emitiendo una seal modulada con un cdigo conocido. Estas seales pueden ser recogidas por una ptica apropiada y proyectadas sobre una cmara CCD o un array de fotodiodos, que sirve para determinar la direccin de la que proceden. Conociendo al menos dos de stas direcciones (aunque pueden ser ms) y las posiciones absolutas de las balizas es posible determinar por triangulacin la posicin del robot. Vase la gura 7.10

Baliza 1

Baliza 2

Robot

Baliza 3

Figura 7.10: Autolocalizacin por balizas Una ventaja adicional es que la seal modulada de infrarrojos puede usarse tambin para transmitir informacin (rdenes, u otra) al modo de una puerta serie.
7.3.3. Planicacin y seguimiento de caminos

El problema ahora es, dados un punto inicial y un punto nal (meta) especicados sobre el modelo de mapa propuesto, encontrar en dicho mapa un camino libre de colisin que el robot pueda seguir. Para hacerlo fsicamente, comprobar continua o intermitentemente que se encuentra sobre los puntos del camino, usando alguna de las tcnicas de autolocalizacin ya explicadas. ROB7/16

Apuntes de Robtica

Ingeniera Informtica

Mucho de lo hecho en planicaciin de caminos se deriva de los mtodos propuestos para manipuladores, pero simplicados a dos dimensiones. En general, no se considera el caso de que un robot mvil pueda pasar bajo un abstculo. Los requerimientos que deber cumplir un planicador de caminos son: - Encontrar un camino que el robot pueda atravesar sin colisin. - Manjear la incertidumbre en el modelo del mundo que debe instanciarse con los datos imprecisos de los sensores. - Mantener el robot lo ms lejos posible de los objetos, para que los sensores den menos datos y as se requiera menos proceso. - Encontrar el camino ptimo (el mejor entre los posibles) y seguirlo de un modo suave. Veamos ahora los modos de planicar un camino. - Por guiado: consiste en llevar al robot fsicamente a una serie de lugares preestablecidos, y almacenar las impresiones sensoriales que se reciben en cada uno de ellos, as como la direccin o direcciones de desplazamiento posterior hacia el/los siguiente(s) punto(s) importantes(s). Para alcanzar el punto deseado se pueden implantar lazos de realimentacin que operen tomando directamente como entrada las seales sensoriales, y que generen seales de control para los actuadores, evitando el clculo de la posicin absoluta, no til en este caso. - Automticamente: Aqu entran en juego algoritmos que dependen fuertemente de la representacin usada para el mapa. En mapas de tipo grafo, siendo los nodos posiciones de referencia a comprobar con los sensores, la planicacin consiste en encontrar el camino de mnima distancia en el grafo. La distancia se dene en funcin de los costes de cada arco, que pueden ser bien distancias fsicas, o algn otro tipo de penalizacin asociada a ese desplazamiento (p. ej., debida a la estrechez de un pasillo que obliga a reducir la velocidad, etc.). En mapas que contienen los objetos, los planicadores tratan de encontrar caminos por el espacio libre lo ms alejados posible de los objetos. Esto es bueno en pasillos estrechos, pero puede ser ineciente en zonas anchas, por elegir caminos ms largos. Vase, p. ej., la gura 7.11 (parte izquierda), en la que se elegira el camino A sobre el B, pese a ser ms largo. En planicadores de este tipo, pero ms sosticados, se tienen en cuenta las restricciones cinemticas del robot, al que no se simplica como un crculo, sino que se trata con su forma y capacidad de giro real, y se determina si se pueden negociar las esquinas, y en su caso, cmo. Este problema se conoce en la literatura como el del "transportista de pianos". Una forma de determinar la accesibilidad de un espacio dado por un robot concreto consiste en desplazar de modo cticio un modelo geomtrico del robot de modo que toque a las fronteras de todos los objetos, y esto en todas las orientaciones posibles. Si el robot se modeliza como un crculo, el simple desplazamiento es suciente. De este modo, se tiene un nuevo mapa con los objetos recrecidos segn la forma del robot, el cual puede entonces considerarse como un punto, que es ms fcil de tratar geomtricamente. Una vez decidido qu camino se debe recorrer, hay que proveer los medios para el efectivo seguimiento del mismo. La comparacin entre impresiones sensoriales prealmacenadas o ROB7/17

Apuntes de Robtica
Pos. final pasillo

Ingeniera Informtica

robot

A Pos. inicial

Figura 7.11: Caminos en espacio libre y negociacin de esquinas esperadas y recibidas (especialmente en los landmarks , pero tambin en cualquier otro lugar), es una forma usual, como se coment antes, pero tambin hay que mencionar los algoritmos llamados de campos potenciales. Consisten en hacer una analoga fsica que considera cada objeto como si fuera una colina, lo que asigna una "elevacin"cticia a cada punto del mapa inversamente proporcional a su distancia al objeto. Cuando todos los objetos hacen su contribucin, los valles son los puntos de mayor distancia a stos, y el robot deber desplazarse por ellos, como lo hara una esferita dejada a la accin de la gravedad en tal entorno. En trminos fsicos, la elevacin asignada juega el papel de una funcin potencial, V , y su campo asociado sera E = V . Vase la gura 7.12.
A
Destino

B C
Origen Trayectoria encontrada

B C

Figura 7.12: Ejemplo de campo potencial La forma explcita de la funcin potencial V puede elegirse; se suele tomar una expresin de la forma V = , donde K es una constante, y r un exponente, del orden de 2. Para encontrar la trayectoria, podemos considerar al robot como si experimentase una fuerza que le hace "caer"en la direccin de mxima pendiente local, y a la vez, una fuerza G que le hace avanzar hacia el objetivo, la cual es aadida por el programa para conseguir llegar hasta l. La fuerza resultante sera F = E + G (7.7) donde es una constante ajustable, que debe estar en ]0 . . . [. Si fuese 0, el robot simplemente se mueve hacia el lugar ms seguro (el ms lejano a cualquier objeto), mientras que si fuese , avanzara en linea recta hacia el objetivo, ignorando (atropellando) ROB7/18
K dr

Apuntes de Robtica

Ingeniera Informtica

los obstculos. Para mover realmente el robot se le imprime en cada momento una aceleracin proporcional a la fuerza denida en la ecuacin 7.7, lo que respeta hasta el nal la analoga fsica, o bien se le da una aceleracin cuya direccin sea la de la fuerza antedicha, pero cuyo mdulo sea proporcional a la diferencia entre la velocidad actual y la deseada. (| a |= (vel_deseada vel_actual)) Esto acta como un controlador proporcional que tiende a mantener una velocidad de crucero ja. Un inconveniente serio de estos algoritmos es la posibilidad de caer en pozos de potencial, es decir, lugares "seguros", pero desde los que la fuerza de atraccin hacia el obstculo es incapaz de sacar al robot. En entornos estticos estos lugares podran ser detectados de antemano, y una forma de evitarlos es situar un pequeo obstculo cticio en ellos. En entornos dinmicos, en los que los objetos mviles detectados por los sensores en tiempo real tambin contribuyen al potencial, la cada en estos mnimos locales no es predecible.
7.4. Tecnologas de construccin y conexin senso-motora

Un robot mvil puede considerarse esencialmente como un sistema (una coleccin de sensores, actuadores, y elementos computacionales) organizados de tal modo que exhiban accin inteligente en respuesta a ciertos estmulos. Tal sistema no tiene por qu ser complejo. Un buen ejemplo de esto es el robot llamado Tut-Bot. Est constitudo por dos motores que hacen girar sendas ruedas independientemente. No lleva procesador, todo su hardware consiste en los drivers de potencia de los motores, y en dos contadores programables que comienzan a contar al recibir una seal externa, y durante el tiempo que dure su cuenta hasta un valor predenido generan una seal que indica al motor que se mueva en sentido opuesto (B). El resto del tiempo cada motor se mueve hacia adelante (F). Los contadores estn conectados a los sensores de choque S1 y S2, como muestra la gura 7.13.
Sensor F B F B
Avance Retroceso Giro Avance

M1 M2

M1 T1 T2 D1 D2 M2

Figura 7.13: Esquema del robot Tut-Bot Al moverse ambos motores a la misma velocidad y en el mismo sentido (F) el robot avanza. Al chocar con un obstculo, ambos motores invierten su sentido, y el robot retrocede. Pero el contador de uno de ellos est ajustado a un tiempo menor que el del otro, con lo cual al invertirse ambos giran en distinto sentido durante un instante, lo que hace que el robot gire sobre su propio eje, con lo que es posible que ya no apunte hacia el obstculo. A continuacin ambos motores vuelven a girar hacia adelante, y se contina el avance en lnea recta. Si el tiempo (ngulo) de giro no hubiese sido suciente, el robot volvera a chocar con el obstculo, y repetira la misma maniobra. Vase la gura 7.14, parte izquierda. ROB7/19

Apuntes de Robtica

Ingeniera Informtica

Figura 7.14: Movimiento del Tut-Bot Si adems a uno de los motores se le hiciera girar un poco ms lento en el sentido B, tendramos que el robot retrocede describiendo un arco. Esto hara que siguiese aproximadamente las paredes, como se ve en la gura 7.14, parte derecha. En ese caso, el observador externo asignara un propsito al robot, cuando en realidad el "programa"no lo establece explcitamente. De hecho, ni siquiera se puede decir que haya un programa en sentido tradicional: todo esto se puede implantar con circuitera analgica, aunque sea mejor hacerlo digitalmente, siempre que se conserve el espritu de simplicidad. Este ejemplo ha servido para ilustrar una conexin directa y de bajo nivel entre percepcin y accin, pero esta no es la nica manera. Tambin se puede (usando sensores ms sosticados) tratar de localizar aspectos fsicos externos conocidos por el mapa prealmacenado, es decir, instanciar el modelo del mundo que el mapa representa, en el mismo estilo que se explic en el tema 6, a partir del modelo, realizar una planicacin del camino por los medios ya vistos, y seguirlo, usando landmakrs u odometra. Respecto a la tecnologa usada, debemos referirnos a los sensores y a los actuadores. Muchos de los sensores explicados en el tema 3 pueden fcilmente ser adaptados, o usados tal cual. Entre ellos son habituales: - Fotoresistencias o fototransistores, que se usan para implementar fototaxias (seguimiento de fuentes de luz). Su salida se conecta a un conversor A/D, o a un simple comparador, dependiendo del uso que se quiera hacer (si importa el valor de la seal, o slo si sta es superior a un umbral). - Sensores de proximidad por infrarojos: Son sensibles a radiacin alrededor de los 880 nm. Existen detectores encapsulados que contienen emisor y receptor; modulan la emisin, y responden slo a ese patrn de modulacin, con lo que evitan interferencias de fuentes externas de infrarojos. El hardware que necesitan es un oscilador (de cuarzo, o astable) para el emisor, y un conversor A/D o comparador para el receptor. - Sensores piroelctricos: son resistencias variables con la temperatura. Se usan para seguir fuentes de calor. - Sensores de contacto por doblez: Constan de un eje metlico con una capa de pintura conductora que vara su resistencia al doblarse. Se conectan a un conversor A/D. ROB7/20

Apuntes de Robtica

Ingeniera Informtica

- Microinterruptores de choque ( bumpers): se usan con una palanca que los activa al chocar el robot con algn obstculo. Se conectan directamente a entradas digitales del microcontrolador del robot. - Sonares: El modelo ms usado es el Polaroid , ya descrito en el tema 3. El hardware que usan es un contador, para saber el tiempo transcurrido entre la ida y la vuelta del impulso ultrasnico, y circuitos especiales para generar el pulso. - Codicadores pticos: normalmente de tipo incremental, se instalan en todas o algunas de las ruedas, tanto en el eje de giro como en el de guiado. Como ya se vi, requieren un hardware especco para la cuenta de pulsos, aunque sta se pueda hacer tambin por sofware, conectado las seales de cada canal a puertos de entrada, y manteniendo un proceso dedicado a monitorizarlos. - Girscopos: Son anlogos a los usados en los sistemas de navegacin inercial de los aviones, pero algo ms simples. Son raramente usados por su precio. Exiten versiones electrnicas baratas basadas en sensores de estado slido que slo miden la velocidad de giro, pero no la orientacin absoluta. - Inclinmetros: Se basan en un codicador ptico en posicin vertical con un pndulo colgado de l, o bien en una gota de mercurio sobre un platillo horizontal con contactos repartidos regularmente alrededor de ella. - Brjulas: deberan dar la orientacin absoluta usando el campo magntico terrestre. No son muy usadas, porque aunque en exteriores dan medidas aceptables, en interiores y sobre todo con campos magnticos provocados por la circuitera o maquinaria circundante no son ables. - Cmaras de TV: se suelen usar modelos en miniatura, de tipo CCD. Tienen los inconvenientes de requerir un hardware ms complicado (una placa digital de imagen) y generar un volumen de informacin difcilmente tratable en tiempo real sin hardware especco.
TM

En cuanto a los actuadores, se suelen usar siempre motores elctricos de CC, por su facilidad de control. Se conectan a engranajes reductores para disminuir la velocidad y aumentar la potencia. Si la corriente que necesitan no es muy alta (robots pequeos no muy pesados con dos motores pueden consumir de 0.5 a 2 A por motor), existen reguladores encapsulados que pueden proporcionarla, los cuales se controlan por modulacin en anchura de pulso (PWM). Los lazos de realimentacin para el control de las ruedas se suelen realizar por software, que va leyendo los registros asociados a los codicadores, y enva una seal digital que luego se convierte en analgica y activa los dispositivos de potencia. El control es, por supuesto, siempre discreto. Los sistemas de locomocin son variados. El modelo ms comn consiste en usar dos ruedas motrices independientes con sus ejes alineados perpendicularmente a la direccin de avance. La forma del robot suele ser compacta, mejor circular, para ganar maniobrabilidad. La energa es un punto muy problemtico. Hasta ahora, las bateras que podan dar suciente corriente eran muy pesadas; hoy da existen modelos recargables de Ni-Cd ms ROB7/21

Apuntes de Robtica

Ingeniera Informtica

ligeros.

ROB7/22

Tema 8: Inteligencia en robots


En este tema se pretende dar una visin de la relacin entre inteligencia articial (AI) y Robtica y cmo est cambiando en los ltimos aos. La naturaleza de este tema, y su carcter de investigacin todava no denitivamente asentada motivan el estilo de exposicin discursiva y menos ordenada que en temas anteriores. Algunas de las armaciones o sugerencias que se exponen aqu tienen algo de posicin personal, y no deben ser tomadas de modo tan estricto como el resto de estas notas. Veremos cul ha sido la aproximacin tradicional a la Robtica desde la AI clsica, y tambin algn ejemplo de nuevas tendencias que tratan los problemas de la relacin del robot con el mundo real de un modo claramente distinto, y en opinin de algunos, ms prometedor que las aproximaciones empleadas hasta ahora. Este cambio de punto de vista es tan profundo que afecta incluso a las propias deniciones de robot y robtica, como se ver inmediatamente. En principio, se piensa en un robot como un dispositivo para facilitar, aliviar, o incluso hacer posibles ciertos tipos de trabajos indeseados, por peligrosos, repetitivos o necesitados de precisin extrema. En esta linea se entiende la denicin de robot de la RIA ( Robot Industries Association ) que ya dimos en el tema 1, y que recordamos: Robot es un manipulador reprogramable multifuncional diseado para mover material, partes, herramientas o dispositivos especializados mediante movimientos programados variables para la ejecucin de diversas tareas. Como entonces dijimos, la denicin es general, porque no restringe la tecnologa usada, ni el mtodo de programacin, pero olvida el aspecto estrictamente cientco de los robots: su uso como herramientas para entender los procesos de la percepcin y la accin en entornos reales , no en simulaciones ni en modelos. Evidentemente, nadie quiere robots que no funcionen, o que no hagan nada til, pero, como ser comentado ms extensamente despus, no podrn hacer nada realmente til si no aprenden desde el principio a hacerlo en un entorno real. Por eso, una denicin alternativa de Robtica podra ser "La ciencia que estudia los robots como sistemas que operan en algn entorno real, estableciendo algn tipo de conexin inteligente entre percepcin y accin" Descendiendo a temas ms concretos, los robots se han usado hasta ahora en instalaciones industriales esencialmente como robots de montaje, soldadura o pintura de maquinaria (coches, etc.). Su caracterstica es la repeticin de las acciones preprogramadas sin variacin, o a lo sumo con el uso de sensores cuya informacin detiene el robot en caso de colisin, o ajusta la fuerza o la inclinacin del brazo. Una serie de problemas importantes relacionados con el control de bajo nivel (teora de control de sistemas dinmicos, identicacin, modelizacin, estabilidad, etc.) han sido formulados y resueltos para su uso en estos sistemas, y ello ha permitido una mejora tcnica importante. No obstante, tal clase de robots carece por completo de cualquier comportamiento que podamos llamar inteligente, y en este sentido se acercan ms a las mquinas-herramienta que a la moderna concepcin de un robot. Un avance sobre ellos lo representan los sistemas para la clasicacin o el ensamblado de piezas en las que stas llegan al entorno de trabajo en posiciones u orientaciones variables, ROB8/1
8.1. Introduccin

Apuntes de Robtica

Ingeniera Informtica

o con defectos. Aqui ya tenemos un cierto comportamiento inteligente, si bien la mayora de las veces preprogramado, no adaptativo. Recordemos que la autntica inteligencia es aquella que aprende, y mejora su ecacia en la ejecucin de la tarea requerida con el paso del tiempo. El siguiente paso lo constituiran los robots mviles, cuya principal actividad es el desplazamiento (navegacin) en un entorno no conocido (al menos en todos sus aspectos) e incluso dinmicamente cambiante (gente u otros robots movindose). Las apliciones de un sistema eciente de este tipo seran muy variadas: desde carretillas transportadoras en naves industriales, hasta robots de exploracin extraterrestre (en este ltimo caso una navegacin eciente sera competencia esencial, dado que es imposible el control en tiempo real). El ltimo paso, de momento solo atisbado, sera un robot de propsito general, no en el sentido de que ejecutase todas las tareas posibles (lo cual es obviamente imposible, ni siquiera los humanos lo hacemos) sino de que, en un entorno dado, fuese capaz de sobrevivir, enfrentarse a situaciones nuevas y adaptarse a ellas para seguir realizando, al menos en cierta medida, la tarea o tareas para las que se le dise.
8.2. La nocin de inteligencia y su aplicacin en Robtica

Es obvio que un sistema general del tipo apuntado en el apartado anterior requiere un cierto grado de inteligencia, y es por ello el momento de claricar qu entendemos por inteligencia, y qu queremos decir con la expresin "un cierto grado". Frecuentemente se atribuye a los humanos el monopolio de la inteligencia, y esto es cierto si slo consideramos como tal al razonamiento de alto nivel, el uso de lenguaje simblico, y tareas similares. Pero no deberamos olvidar (y la Inteligencia Articial clsica lo ha hecho frecuentemente) que todas estas capacidades se asientan en, y necesitan de, facultades inferiores, como el proceso de la informacin visual (necesario para el establecimiento de relaciones espaciales), el sentido del equilibrio (necesario para la navegacin en terreno irregular) o el tacto (para el ajuste de la fuerza en operaciones de prensin). Por eso, en opinin de bastantes psiclogos y etlogos, debera considerarse inteligencia tanto al razonamiento como al conocimiento de sentido comn. Es un error bastante extendido el suponer que la dicultad real estriba en el primero, y que el segundo puede, o podr en un futuro, programarse con relativa facilidad a partir de los modelos del mundo que el razonamiento haya construdo. Lo errneo de esta armacin puede comprobarse en el hecho de que se ha obtenido un razonable xito en la escritura de programas que juegan al ajedrez, o razonan en un dominio particular (sistemas expertos) mientras que los intentos por construir sistemas de visin de alto nivel (capaces de interpretar lo que estn viendo) ha fracasado, incluso en entornos restringidos. Ello tiene, sin duda, relacin con el hecho de que el crtex visual humano ocupa casi el 20% de la corteza cerebral, mientras que las neuronas dedicadas al razonamiento analtico parecen ser menos de un 3% (estas cifras varan bastante con los autores). En cualquier caso, est apareciendo claramente la idea de que un robot eciente requerir un buen sistema de percepcin del entorno (lo cual no necesariamente signica muy complejo) que sea capaz de tomar datos de una variedad de fuentes (sensores tctiles, acsticos, olfativos, cinticos, de distancia, y por supuesto, visuales) y fundirlos en una estructura de informacin coherente, tomando las piezas necesarias (pero no ms) y desechando las errneas (debidas al ruido, que est invitablemente presente en cualquier medida de cualquier sensor). Este proceso es lo que se conoce como "Data Fusion"(fusin de datos) y es uno de los temas que est despertando atencin en la investigacin en Robtica ROB8/2

Apuntes de Robtica

Ingeniera Informtica

de los ltimos aos. Al mismo tiempo que el robot toma sus datos y los procesa, debe ejecutar una o ms tares, la principal de las cuales (especialmente para robots mviles) es sobrevivir, entendiendo por tal no quedarse parado, o atascado en un bucle innito, o encajado en un lugar sin salida. Para ello no necesariamente tiene que conocer (en el mismo sentido que los humanos) qu se entiende por lugar sin salida. Es, a menudo, suciente una serie de reejos que le hagan huir de las paredes si stan lo rodean (activan simultaneamente varios sensores situados en puntos opuestos del robot). El ejemplo del Tut-Bot suguiendo una pared mencionado en el tema 7 es apropiado aqu. Por ltimo, las tareas que ejecute un robot deben ser las que se espera de l (si es que se desea, como es lgico, un provecho comercial) pero hay que hacer notar que algunas de stas, incluso muy complejas, pueden emerger como resultado de la interaccin de reejos simples, de la cooperacin de varios organismos (el caso de los insectos sociales) y de la complejidad del entorno. Muchas veces tendemos a antropomorzar estos comportamientos y a establecer categoras de intencionalidad en comportamientos que de hecho no las tienen.
8.3. La relacin Inteligencia Articial-Robtica

Desde los primeros tiempos de la Inteligencia Articial (nales de los aos 60 y principios de los 70) la relacin de sta con la Robtica ha pasado por vicisitudes diversas. En un primer momento se consider a la Robtica parte de la IA, y as aparece en varios libros antiguos. Esto es, quiz, herencia de la Ciberntica, que trataba de entender los organismos vivos (includos los inteligentes) como sistemas de control, frecuentemente organizados en una jerarqua que, idealmente, deba explicar el funcionamiento de sistemas arbitrariamente complejos, incluso la biosfera completa, en trminos de sistemas que tratan de conservar el equilibrio (el valor de ciertas variables de estado). Como ejemplo, la tortuga de Walker, un mecanismo descrito por ste en 1951, se construa como un dispositivo mvil con ruedas y detectores luminosos que segua o hua de fuentes de luz. Reejos elementales "programadosomo diferentes cableados de sus conexiones permitan exhibir comportamientos complejos, especialmente cuando dos o ms de estos dispositivos dotados de luces interactuaban. Despus la Robtica comenz a tomar un camino ms tcnico, centrndose especialmente en problemas de control como los ya formulados desde muy antiguo (la clepsidra, el telar de vapor) pero ms complejos, que son abordados con herramientas matemticas como las transformadas integrales. Desde hace varios aos, y con la introduccin del control por computadores digitales, han aparecido los problemas de discretizacin que han sido elegantemente abordados mediante, vg., la transformada Z, que permite generalizar muchos de los resultados conocidos para sistemas contnuos. En cuanto al uso de sensores, o bien se ha hecho acoplndolos directamente a un bucle de realimentacin (robots de soldadura dotados del llamado control hbrido) o bien se ha procesado su informacin segn un modelo basado en la idea de la mente que tiene la Inteligencia Articial clsica.
8.3.1. Robtica clsica

El modelo de inteligencia que la AI clsica pretende contruir est basado en el paradigma, denotado por Haugeland como GOFAI que se sustenta en la hiptesis del Sistema Fsico de Smbolos (PSSH) de Newell y Simon, la cual dice que:
1
1 Good

Old Fashioned Articial Intelligence, (la buena y vieja Inteligencia Articial)

ROB8/3

Apuntes de Robtica

Ingeniera Informtica

"Un sistema fsico de smbolos posee los medios necesarios y sucientes para producir accin inteligente general" Esto signica que, si construmos un sistema de smbolos (proposiciones, u otros) que modelicen sucientemente bien un aspecto de la realidad, podremos razonar sobre los modelos, de tal modo que el resultado nos indique el comportamiento del sistema real, y como inuir sobre l cualquiera de nuestras actuaciones. Si el modelo se trata de un modelo del mundo fsico (o incluso no fsico) en su conjunto, podramos obtener inteligencia general (en el sentido humano del trmino). Vase la gura 8.1
Modelo del mundo
(estado inicial) Cambios en el modelo, siguiendo modelos de las leyes fisicas

Modelo del mundo


(estado final) Prediccion ?

Mundo fisico
(estado inicial)

Cambios en el mundo siguiendo leyes fisicas

Mundo fisico
(estado final)

tiempo

Figura 8.1: Sistemas de smbolos y su relacin con el mundo La aplicacin de esto en Robtica da lugar al llamado "sense-think-act cycle" (ciclo de recoger informacin-pensar-actuar) que a partir de los datos de los sensores, los preprocesa para eliminar ruido y extraer los aspectos relevantes, los cuales son pasados a programas que tratan de encajar (instanciar) estos datos en los modelos que conocen, para a continuacin, y de acuerdo con el estado presente del mundo, planicar la accin o secuencia de acciones a ejecutar, que son convertidas en comandos para los actuadores, que el sistema de control se encarga de ejecutar elmente. Claricaremos esto con un ejemplo: Hay que poner dos piezas una sobre otra, en un entorno en el que hay varias piezas ms. Para ello, dos cmaras toman sendas imgenes, que son ltradas para eliminar ruido y extraer los bordes de los objetos; stos son preprocesados para obtener dibujos de lneas. Un programa interpreta a partir de ellos la forma tridimensional de cada objeto, funde las representaciones aportadas por ambas cmaras en una sla estructura de datos representando a cada objeto, e intenta encajarla con el modelo (posiblemente de CAD) que le fue introducido. Una vez encajado, determina (conociendo la transformacin de coordenadas de las cmaras) la situacin del objeto que ha de asir en el sistema de coordenadas del robot; entonces un programa planicador de trayectorias opera con los modelos geomtricos de todas las piezas y del brazo, y sus situaciones actuales, y determina qu secuencia de posiciones debe seguir el brazo para asir la primera pieza. llevarla sobre la segunda sin que ni ella ni el brazo choquen con ninguna otra, y dejarla en su lugar. Esta secuencia de posiciones es transformada a una secuencia de cuentas para los motores del robot usando la cinemtica inversa, la cual es por fn enviada y ejecutada. Una descripcin de este paradigma aparece en las publicaciones de Lozano-prez y otros sobre su sistema de ensamblado Handey, que veremos ms extensamente despus. Esto es lo que se conoce como descomposicin funcional y vertical de las tareas, y se expresa en el esquema adjunto. Los inconvenientes de la contruccin de un modelo simblico para estos casos deberan ser evidentes simplemente observando la longitud y complejidad del proceso mencionado. ROB8/4

Apuntes de Robtica
sensores

Ingeniera Informtica

percepcion

modelizacion

planificacion

ejecucion tarea

control motores

actuadores

Figura 8.2: Descomposicin funcional y vertical En primer lugar, los datos llegan con ruido, tanto el propio de la digitalizacin, como el debido a sombras, imperfecciones en las piezas, ocultaciones, puntos de vista anmalos que provocan coincidencias de ejes o bordes sin correspondencia real, falta de contraste, etc. Lgicamente, datos imprecisos crean descripciones simblicas errneas, y es difcil encajarlas en los modelos almacenados. Para evitar esto se puede dotar al modelo de ms grados de libertad y tolerancias en los valores de las variables, pero ello implica que una misma descripcin puede entonces encajar en varios modelos, creando ambigedad. Esta ambigedad se intenta resolver tomando ms aspectos (datos) del objeto, como color, o textura de la supercie; pero ello implica ms clculo para su extraccin y modelos ms complicados (dado que, por supuesto, estos nuevos aspectos tambin estn afectados de un error, y sus valores en cierto rango de tolerancias). Otro inconveniente es que cuando alguna de las descripciones porporcionadas por el bajo nivel no encaja en ningn modelo hay que volver a tomar los datos y analizarlos, orientando el proceso a la resolucin de los aspectos que resultaron ambiguos. Y por ltimo: una descomposicin secuencial implica que cada paso no puede empezar hasta que el anterior haya terminado, y que el fallo de uno slo de ellos hace fracasar el proceso completo: una cadena es tan fuerte como el ms dbil de sus eslabones. Por ejemplo, existen ingeniosos mtodos para la interpretacin de dibujos de lneas pero ninguno realmente efectivo para la construccin de tales dibujos a partir de imgenes reales tomadas por cmaras. Todos estos inconvenientes, unidos al hecho de que en quince aos ningn sistema clsico haya resultado realmente eciente en tareas reales de ensamblado, ha motivado que algunos investigadores se plantearan la posibilidad de usar otros mtodos basados en una concepcin diferente de la Inteligencia Articial.
8.3.2. Robtica comportamental

Una visin que siempre ha estado presente en IA, si bien de modo minoritario e incluso un tanto hertico, es la que considera la inteligencia no exclusivamente como sucesin de procesos mentales, sino como la organizacin que emerge de la relacin entre un organismo y su entorno. Todos admitiramos sin discusin que la inteligencia no puede desarrollarse sin una relacin con el exterior, que se realiza a travs de los rganos de los sentidos, pero ROB8/5

Apuntes de Robtica

Ingeniera Informtica

nos cuesta ms admitir que no pueda sostenerse sin ellos. Sin embargo, los modelos que hacemos del mundo estn fuertemente inudos por las percepciones sensoriales; esto puede comprobarse analizando la forma en que aprenden a ver los raros casos de invidentes de nacimiento que mediante ciruga o tratamientos recuperan la visin ya adultos. Tambin es interesante analizar los comportamientos de organismos inferiores, como las termitas, en las que cada uno de los individuos no conoce en modo alguno el plano del termitero (es decir, no tiene idea de qu es lo que est construyendo) pero de hecho una estructura muy compleja, con partes destinadas a funciones especcas, emerge de la cooperacin de todas las termitas y de su interaccin con el entorno. En estos casos el observador humano tiende a asignar propsitos al comportamiento observado (estn haciendo esta cmara para albergar a la reina, etc..) pero cmo puede decirse tal cosa, si no existe representacin simblica ni siquiera de la morfologa de lo construdo? (Cunto menos de su funcin. Y si alguien piensa que s hay tal representacin, se le reta a que diga dnde y cmo est almacenada). A la hora de construir un robot, la robtica comportamental prescindira de programarle explicitamente un comportamiento orientado a un propsito. Mas bien, programara reejos o comportamientos muy simples, pero ecaces, que en conexin directa con los sensores y los actuadores, generasen mediante su interaccin el comportamiento requerido. Los ejemplos ms espectaculares hasta ahora son los trabajos de Rodney Brooksy sus colaboradores, tanto sus robots insectoides como Herbert, un robot mvil para recoger latas vacas. Cada uno de estos mdulos de software ms hardware que realiza una funcin elemental se conecta con los sensores, los actuadores, y posiblemente con otros mdulos que le pasan una informacin mnima, o ninguna en absoluto, simplemente lo activan o inhiben. A cada una de estas piezas se la ha empezado a llamar "mdulo comportamental", y a la arquitectura de control distribudo que las conecta, arquitectura de subsumcin, en el sentido de que cada mdulo en muchas ocasiones subsume los comportamientos del anterior, de modo que si alguno falla, es posible que el robot sea todava capaz de ejecutar algo de su comportamiento, o al menos no pararse completamente; esto se conoce como degradacin suave ( "graceful degradation" ). Por todo lo dicho, se entiende que la robtica comportamental busque habitualmente su fuente de inspiracin en la biologa, en organismos vivos completos, o bien en comportamientos o reejos de los mismos que puedan ser estudiados aisladamente sin perder demasiada funcionalidad. Inmediatamente veremos un ejemplo de esto, Herbert. Es igualmente obvio que un objetivo sustancial deber ser la conexin de percepcin y accin al nivel ms bajo posible, dejando que el mdulo que los conecte se enfrente al ruido y al problema de la fusin de datos, solucionndolos a ese nivel; esto no es tan extrao como a primera vista puede parecer, dado que al no construir estructuras de datos complicadas los errores introducidos por el ruido no se propagan desmesuradamente, y adems, se suelen disear los mdulos comportamentales con bucles de realimentacin para autocorregir sus resultados. Un esquema de cmo organiza la robtica comportamental una aplicacin tpica (un robot mvil) puede verse en esta gura:
8.4. Estudios de caso

Seguidamente veremos dos sistemas que pueden ser considerados casi como los ms representativos de cada una de las tendencias antes citadas. ROB8/6

Apuntes de Robtica
evitar objetos

Ingeniera Informtica

vagabundear

explorar
sensores actuadores

construir mapas

identificar objetos

planear cambios

Figura 8.3: Descomposicin horizontal Handey es, probablemente, el prototipo de sistema robtico clsico, basado en la descomposicin funcional y vertical. Handey es esencialmente un sistema de planicacin. Toma como entrada modelos del mundo construdos por el usuario con sistemas CAD, o a partir de sensores (aunque nunca detalla exctamente cmo), y ejecuta operaciones del tipo pick & place (recoger y dejar) generadas por el propio sistema a partir de la especicacin por el usuario de dos estados diferentes para el modelo del mundo. Las operaciones pick & place no son las nicas tiles, aunque son las fundamentales en robots de ensamblado; tambin son importantes las operaciones de ensamblado preciso atendiendo a senores de fuerza, soldaduras, etc. Handey pretende ser un sistema de programacin de robot a nivel de tarea que, dado el objetivo de conseguir que el mundo quede en un cierto estado dado por un modelo concreto (de poliedros, como luego veremos) genera una secuencia de movimientos apropiados para ejecutar la tarea. Exactamente: Handey genera movimientos para operaciones de recoger y dejar, en entornos modelizados con precisin y en robots de hasta 6 g.d.l. con pinzas de garras plano-paralelas. En todo momento Handey opera con modelos, y de modo secuencial. Lo que sus programadores (T. Lozano-Prez, Jones, Mazer, O'Donnel y contribuciones de Latombe y otros) dan como propiedad clave es que si el usuario cambia el entorno, una vez modelizado el cambio, el sistema ser capaz de generar nuevos movimientos compatibles con el nuevo entorno. Handey ha sido probado en numerosas tareas, desde apilar cubos de madera hasta ensamblar piezas de motores elctricos, y para diferentes tipos de robots industriales; incluso se pueden coordinar dos brazos en el mismo espacio de trabajo. El nico caso, sin embargo, en que se reporta haberlo usado con un sistema sensorial es la que describe su conexin a un sistema de luz estructurada que genera un mapa de profundidad. . Es importante sealar qu cosas no hace Handey. No pretende ser un sistema industrial utilizable (al menos, todava), sino un experimento.
2
2 Este

8.4.1. HANDEY: un sistema clsico de ensamblado

sistema es similar el descrito en el tema 3, pg. 3/ 13

ROB8/7

Apuntes de Robtica

Ingeniera Informtica

No pretende ser rpido (no est optimizado). No hace control, pero genera secuencias de puntos en el espacio de articulaciones que se pueden enviar como entradas al sistema de control. No genera movimientos restringidos ni condicionados (las rdenes ON <condition> o WITH <condition> de VAL). No genera movimientos que reduzcan la incertidumbre del entorno ( complained motions , movimientos de las partes sin ser capturadas que las arrastren a una posicin conocida). No admite variaciones del entorno durante la generacin de los movimientos, es decir, no maneja el sistema en tiempo real. Requiere que algn otro sistema le genere un modelo completo del entorno, y supone que tal sistema existe, o existir. De todas estas restricciones, slo la ltima (y, en menor medida, la penltima) es realmente grave; hasta el momento, no existe un sistema able de este tipo, y an se ignora si la investigacin de reconocimiento visual por modelizacin est orientada en la direccin correcta. El uso de sensores distintos de las cmaras, como los sistemas lser o de luz estructurada antes mencionados, son extremadamente lentos y an no estn sucientemente desarrollados. Vemos ahora cules son las restricciones que habrn de cumplirse (y que Handey comprobar) para que pueda realizarse una tarea de recoger-dejar. Debe existir un camino libre de colisin y cinemticamente alcanzable desde la conguracin inicial del robot hasta la posicin de agarre. El agarre debe ser estable. Ninguna parte del robot debe colisionar con nada, ni en la posicin de agarre, ni en la de depsito. Las posiciones de agarre y depsito deben ser alcanzables. Debe existir un camino libre de colisin y cinemticamente alcanzable desde la posicin de agarre hasta la de depsito, teniendo en cuenta al objeto asido por la mano. Si cualquiera de ellas no puede cumplirse, la operacin ser imposible. Las partes en que conceptualmente puede dividirse Handey son: + Un planicador de movimiento grueso (en espacio libre). + Un planicador de agarre. + Un planicador de reorientacin y agarre sucesivo. ROB8/8

Apuntes de Robtica

Ingeniera Informtica

+ Un coordinador multibrazos. En cada operacin de recoger-dejar el planicador de agarre determina, de acuerdo a la geometra del objeto a agarrar, la de los objetos cercanos, y la de la mano del robot, la forma ptima de asirlo. Igualmente, y basndose en consideraciones similares, determina un punto cercano al punto de depsito del objeto desde el que moverse en forma segura para depositarlo. El planicador de movimiento grueso determina el camino entre el punto de aproximacin al agarre y el punto de inicio del depsito. A veces el depsito requiere que el objeto sea agarrado de otra manera, de modo que la mano no estorbe para dejarlo. Es necesario entonces buscar un punto libre del espacio de trabajo donde depositarlo temporalmente y recogerlo de nuevo en la forma apropiada para el depsito nal; esto lo hace el planicador de reorientacin cuando es necesario. El coordinador multibrazos se encarga de que, si hay dos brazos, stos no choquen. Indiquemos brevemente cmo hace Handey estas cosas. Internamente, se usan varios conceptos importantes: Parte: Un modelo geomtrico 3D de un objeto, y el lugar en que est. Mundo: Un modelo geomtrico 3D de una escena entera. Robot: Un modelo geomtrico 3D del manipulador y su cinemtica, as como los lmites de cada variable de articulacin. Objetivo: Un estado particular del modelo del mundo que se desea alcanzar. Plan: Una secuencia de movimientos elementales del robot y su pinza que siten al mundo en el estado objetivo. Las llamadas a las funciones de Handey se hacen usando estas estructuras. P.ej.; el planicador de movimiento grueso se invoca con: Move(goal,robot,world) el planicador de agarre con: Grasp(goal,robot,world,depart?) donde depart es una variable booleana que indica agarre o depsito el planicador de reorientacin con: Regrasp(goal,robot,world) y el coordinador multibrazos como: Coordinate(plan1,plan2,world) Los detalles internos de cada mdulo exceden el alcance de esta exposicin. Unicamente veremos cmo Handey representa (o mejor, qu representacin maneja) para el mundo. Todo objeto en Handey es representado por poliedros. Un poliedro es un slido limitado por caras planas. Cada cara plana se caracteriza por el vector asociado a su plano. Es necesario conocer vrtices, bordes y caras de cada polgono de cada poliedro. El propio robot es modelizado de esta manera, pero adems se conoce su cinemtica directa e inversa (medidas, nmero de articulaciones y tipo, y sus lmites). La coleccin de modelos polidricos de todas las partes presentes en el espacio de trabajo accesible al robot, y del robot mismo, forman el modelo del mundo. Para planicar cualquier movimiento sin colisin hay que hacer las intersecciones de todos los polgonos. Una forma de evitar esto en lo posible es el uso del espacio de conguracin (C-space). En l, cada objeto se caracterizar por la posicin de uno de sus puntos arbitrariamente escogido, sea p , y la orientacin de una de sus lneas, igualmente arbitraria. Vese la gura 8.4. Para cada objeto en cada entorno, hay valores de los parmetros p y que pondran alguno de sus puntos dentro de alguno de los obstculos, B , . . . , B . Entonces, se dene el espacio de conguracin de obstculo del objeto A debido a un obstculo B cualquiera ROB8/9
A A 1 n j

Apuntes de Robtica
y
Linea elegida para orientacion

Ingeniera Informtica

A pA x

Figura 8.4: Parmetros del espacio de conguraciones como: siendo C una terna de valores de la forma (p , p , ) y (A) el objeto A situado y orientado como indica C . Es claro que CO (B ) es el espacio libre Como ejemplos, sea A un crculo de radio r, y sean los obstculos B , B , B otros tres crculos, como se muestra en la gura 8.5. Es obvio que aqu el parmetro de orientacin no es necesario. En este caso, el espacio de conguracin se muestra en la misma gura (parte derecha); si cada obstculo tiene su centro en (x , y ) y un radio r , CO ser la unin de los crculos de centro en (x , y ) y radio r + r. Entonces, el objeto A puede considerarse reducido a un punto.
Ax Ay C
j

COA (Bj ) = {C/(A)C Bj = }


A j

r A r B2 B3 B1 B1 B2 B3 A

Espacio libre

Figura 8.5: Un ejemplo de espacio de conguraciones Como segundo ejemplo, sea A de nuevo un crculo, y el obstculo un polgono. CO es como se muestra en la gura 8.6. En el caso de que el objeto A pudiese rotar (o ms bien, fuese diferente segn su orientacin, lo que ocurre en todas las guras excepto en el crculo) el clculo de CO es mucho ms laborioso, porque hay que desplazar el objeto A en todas sus orientaciones distintas. No obstante, ntese que esto puede computarse antes de empezar el movimiento, con lo que durante la tarea lo nico que habra que computar es el movimiento de un punto por el espacio libre que haya resultado. Por supuesto, esto exige un entorno esttico durante toda la tarea, segn se indic en las restricciones de Handey. En 3 dimensiones la computacin del C-space es an ms compleja. Existen algoritmos paralelos para computar con rapidez el espacio de conguracin de un poliedro respecto a otro conjunto de poliedros.
A A
3 Para

cualquier conjunto X , X denota su complementario.

ROB8/10

Apuntes de Robtica

Ingeniera Informtica

Figura 8.6: Otro ejemplo de espacio de conguraciones Dos de los casos ms representativos de la descomposicin horizontal antes descrita son un robot que circula por un laboratorio recogiendo latas de refresco vacas, y los robots insectoides del prof. R. Brooks. Ambos fueron desarrollados en el MIT ( Massachussets Institute of Technology ), pues es all, junto con la Universidad de Edimburgo, donde nacieron las ideas de esta visin.
Herbert 8.4.2. Ejemplo comportamental: Herbert

Este robot, diseado por Jonathan Connell como banco de pruebas para su tesis en el MIT, dirigida por Rodney Brooks, tiene la tarea de deambular por un laboratorio usual, en el que nada ha sido movido o cambiado especialmente, para recoger latas de refresco vacas y llevarlas a un contenedor. Ntese que el propsito de este robot es totalmente especco, aunque su losofa de diseo trata de ser general. Precisamente la idea de la aproximacin comportamental es que los reejos elementales, al igual que en la naturaleza, son especcos, y dependen del hbitat del robot y de la tarea que debe desempear, aun cuando algunos de ellos puedan ser comunes a algunos o casi todos los robots similares. Herbert est construdo enlazando de modo muy hbil mdulos elementales, cada uno de los cuales tiene entradas y salidas. Las entradas se conectan directamente a seales dadas por los sensores, y las salidas son o bien comandos para los actuadores, o bien seales que inhiben la salida de otros mdulos, o la sustituyen por la suya propia, durante un determinado tiempo jo. Dentro de Herbert todo esto se implanta por hardware, haciendo correr cada mdulo (o grupo de unos pocos de ellos) sobre microprocesadores de 8 bits. Su estructura mecnica est formada por un cuerpo mvil sobre el que se sita un brazo con articulaciones tipo paralelogramo con dos grados de libertad; la mano es una pinza de tipo simple. Vase la gura 8.7 La sensorizacin para la navegacin se realiza con dos anillos, de 14 sensores de ultrasonidos por tiempo de vuelo cada uno, colocados a dos diferentes alturas. La mano est dotada de dos microinterruptores para monitorizar el contacto con la mesa, dos sensores de infrarrojos apuntando hacia el centro, y uno entre dedo y dedo, para controlar si hay un objeto en posicin adecuada para ser cogido, adems de un sensor de fuerza de tipo ON/OFF (se activa si se rebasa un umbral). Vase la gura 8.8 Adems, hay un sistema de visin constitudo por un lser y una lente cilndrica que hace que se proyecte una lnea de luz frente al robot, en el rea capturada por una cmara de televisn; su seal es recogida y procesada por un hardware especico que realiza operaROB8/11

Apuntes de Robtica
Espacio de trabajo total Lata vacia Mesa Pinza Brazo

Ingeniera Informtica

Espacio rectangular completamente accesible

Cuerpo movil

Figura 8.7: Esquema de Herbert


Sensores laterales de infrarojos

Zona de cruce de los sensores laterales de infrarojos

Linea de infrarojos Sensores de contacto

Figura 8.8: La mano de Herbert ciones muy simples, como detectar el punto ms brillante (que se supone corresponde a la lnea proyectada por el lser). Vase la gura 8.9. En cada momento, varios mdulos se activan de acuerdo a las seales de los sensores a los que estn atentos: p. ej., el mdulo de agarrar cierra la pinza si hay algo ocluyendo la lnea del sensor de infrarojos entre los dedos; pero al mismo tiempo otro mdulo lee los sensores de fuerza para el cierre de la pinza, inhibiendo la seal del anterior cuando la fuerza se hace excesiva. De modo similar, hay mdulos controlando que un objeto con forma aproximada de lata se vea en la escena, e instruye a la plataforma completa del robot para moverse hasta que dicho objeto aparezca en el centro del campo visual; en lugar de tratar de averiguar la posicin de la lata respecto a algn sistema de coordenadas externo, el robot se sita respecto al objetivo de modo que se pueda coger. La aparicin de la lata (o de lo que se supone que es tal) en el centro del campo visual activa la compleja red de mdulos que ejecutan el comportamiento de agarre. Segn Connell y Brooks, este sistema trabaja sin modelos, puesto que no se le ha introducido ninguna descripcin explcita de la lata, ni hay ninguna estructura de datos que la contenga. Esto, segn otros, no es totalmente cierto: en realidad, hay un modelo, que est implcito en las conexiones entre mdulos y en sus condiciones de activacin; pero es, al menos, lo que podramos llamar un "modelo ROB8/12

Apuntes de Robtica
Camara vertical Plano de luz laser

Ingeniera Informtica
Direccion de barrido

lata

Figura 8.9: Sistema de visin de Herbert mnimo": es decir, un concepto sucientemente general como para que cualquier objeto con forma aproximadamente de lata encaje en l. En este caso concreto, los mdulos de visin detectan objetos que en la imagen capturada aparezcan como situados a una profundidad (distancia desde el punto de observacin) menor que su entorno, y para los que se observe en la imagen una proporcin dada entre su altura y su anchura. Herbert efectivamente funcion en un laboratorio real, y represent uno de los ms importantes argumentos en favor de las arquitecturas comportamentales. Pero hay que hacer notar que la rigidez interna de su construccin le hace til slo para una tarea, y que la compleja organizacin de las conexiones entre sus mdulos representa mucha ms "inteligencia"de la que sus diseadores desearan admitir.

ROB8/13

Apuntes de Robtica

Ingeniera Informtica

ROB8/14

Apndices
A. Algunas identidades trigonomtricas tiles

Se detallan a continuacin las frmulas trigonomtricas que pueden ayudar en la resolucin de la cinemtica inversa de manipuladores. Las cuatro ltimas no suelen gurar las tablas ms simples, pero son sin embargo expresiones muy comunes en estos casos.
sin () = sin sin2 + cos2 = 1 sin (2) = 2 sin cos sin = tan 2
1+tan

cos () = cos

cos (2) = cos2 sin2 cos =


1 1+tan2

sin ( + ) = sin cos + cos sin sin ( ) = sin cos cos sin tan (2) =
2 tan 1tan2 tan +tan 1tan tan

cos ( + ) = cos cos sin sin cos ( ) = cos cos + sin sin

tan ( + ) =

tan ( ) =

tan tan 1+tan tan

sin + sin = 2 sin + cos 2 2 cos + cos = 2 cos + cos 2 2

sin sin = 2 cos + sin 2 2 cos cos = 2 sin + sin 2 2

ROBApA/1

Apuntes de Robtica

Ingeniera Informtica

ROBApA/2

Apuntes de Robtica
B. Bibliografa comentada y tabla por temas

Ingeniera Informtica

Seguidamente se da la referencia bibliogrca y un breve comentario de los libros de los que se ha extrado informacin para la confeccin de las clases. Se especica cules son los libros principales que el alumno debe consultar, as como los que pueden servirle para ampliar conocimientos en algn tema concreto, e incluso aquellos que han sido usados slo en un punto especco. Seguidamente se dar una tabla indicando el libro base y los otros libros tiles para cada tema, siguiendo las abreviaturas usadas en los comentarios. Adems, se establece una clasicacin en libros genricos ([ G]), especcos de cierto(s) tema(s) ([ T]) y de divulgacin ([ D]). [G],McK "Introduction to Robotics", Philip J. McKerrow, Addison-Wesley , ISBN 0-534914370-5. Este es el libro base del curso; de hecho, es probablemente el libro de texto ms completo actualmente disponible. La explicacin es, en general, clara y ordenada, aunque peca de farragosa en ciertos captulos. Es el libro cuya adquisicin podra recomendarse con mayor provecho a los alumnos interesados en conservar un buen libro genrico. [G],KCN "Robotic Engineering: An Integrated Approach", R.D. Klafter, T.A. Chmielewski, M. Negin. Prentice Hall , ISBN 0-13-468752-3 Este libro contiene la mayor parte de lo tratado por McKerrow, excepto robots mviles; en algunos captulos (sensores, actuadores y control) es incluso ms extenso. Desde el punto de vista de una ingeniera informtica, da una visin un poco sesgada hacia la ingeniera de control o electrnica. Los alumnos de ingeniera electrnica pueden planterselo como adquisicin posible si tienen especial inters en la asignatura. [G],FGL "Robtica: Control, Deteccin, Visin e Inteligencia", K.S. Fu, R.C. Gonzlez, C.S.G. Lee. McGraw-Hill , ISBN 84-7615-214-0 Durante mucho tiempo, el libro de Robtica por antonomasia. Hoy ha quedado un poco desfasado, pero sigue siendo una fuente de informacin excelente y muy clara en su exposicin de los temas bsicos. Est disponible en espaol.
[G],GWNO

"Robtica Industrial: Tecnologa, programacin y aplicaciones", M. P. Groover, M. Weiss, R. N. Nagel, N. G. Odrey, McGraw-Hill , ISBN 0-07-024989-X Tambin un libro genrico, de corte ms bien ingenieril, pero con buenos ejemplos concretos de programas de robot. Tambin en espaol. [T],Cra "Introduction to Robotics: Mechanics and Control", J. J. Craig. Addison-Wesley , ISBN 0-201-010336-5 Probablemente el ms sinttico y preciso de los libros sobre mecnica de robots. Comienza desde la base y llega a un nivel elevado. Tiene el inconveniente de que slo cubre uno de los temas del curso. [T],GV "Control Systems Design and Simulation", J. Golten, A. Verwer, McGraw-Hill , 0-07-707412-2 Este no es un libro de Robtica, sino de Teora de Control. Se recomienda aqu como ayuda a los alumnos que pudieran no haber visto esta materia anteriormente, y como ROBApB/1

Apuntes de Robtica

Ingeniera Informtica

repaso para los dems, de modo que puedan entender el tema 5. Se ha preferido, p. ej., al libro clsico de Ogata por su mayor simplicidad y claridad, pero, a diferencia de ste, no es'ta traducido. [T],Tay "Control Robtico", P. M. Taylor, Eds. Ceac , ISBN 0-333043821-3 Un pequeo librito genrico, pero con un captulo de control de motores muy claro y breve. [T],AS "Robot Analysis end Control", H. Asada, J. J. E. Slotine, John Wiley & Sons , ISBN 0-471-83029-1 Trata exclusivamente cinemtica, dinmica y control de robots a un nivel ms elevado que el impartido en el curso. Slo para aquellos alumnos con especial inters en estos temas. [T],vTu "Autonomous Motion on Wheels", P. van Turennout, Universiteitsdrukkerij T.U. Delft (Servicio de publicaciones, Univ. de Delft, Holanda) , ISBN 90-9006530-X Edicin de una tesis doctoral de la Universidad de Delft (Holanda) que contiene en su inicio una exposicin de la cinemtica de robots mviles ms clara y ordenada que la de McKerrow. [T],JF "Mobile Robots: from inspiration to implementation", J. L. Jones, A. M. Flynn, A K Peters, Wellesley, Massachusetts , ISBN 1-56881-011-3 Precioso librito mezcla de manual de hardware y exposicin cientca, que describe todos los detalles necesarios para la construccin de robots mviles, as como ideas para su programacin basadas en la visin reactiva. [T],LJMO "HANDEY: A Robot Task Planner", T. Lozano-Prez, J. L. Jones, E. Mazer, P. O'Donnel, MIT Press, MIT Press Series in AI El informe completo sobre Handey escrito por sus diseadores. Util para profundizar en el tema de robtica funcional. [T],Bra "Robot Motion: Planning and Control", M. Brady et al. (eds.), MIT Press, MIT Press Series in AI , ISBN 0-262-02182-X Es un conjunto de artculos sobre programacin y control de robots desde las trayectorias hasta el razonamiento geomtrico. El nivel de la exposicin supera un poco al del curso. [D],Min "Robtica: La ltima frontera de la alta tecnologa", M. Minsky et al., Ed. Planeta, ISBN 84-320-7885-9 Un libro escrito para el pblico en general, pero con rigor. Hoy tiene un inters esencialmente histrico, ilustrativo para comparar las expectativas existentes a nales de los 60 con los logros actuales. [D],Oll "Evolucin y perspectivas de la Robtica", A. Ollero, Sec. de publicaciones Univ. de Mlaga , ISBN 84-7496-216-1 Una visin divulgativa, pero tratada con rigor, desde el punto de vista espaol.

ROBApB/2

Apuntes de Robtica

Ingeniera Informtica

En la siguiente tabla, los nmeros entre parntesis representan el tema o temas del libro en cuestin que se deben consultar. No hay nmero cuando todo el libro versa sobre ese tema. Tema Libro(s) bsico(s) Otros libros de inters 1 FGL(1) McK(1),KCN(1),Min,Oll Cinemtica: KCN(8) McK(3,4,5),FGL(2),Craig (2,3,4),AS(2) 2 Dinmica: FGL(3) McK(7),Craig(6),AS(5) Trayectorias: Cra(7) FGL(4),Bra(4) 3 KCN(5),McK(10) FGL(6) 4 KCN(3,4) Tay(3) 5 KCN(4) McK(11),FGL(5),GV,Tay(4),AS(6) 6 McK(9,12) FGL(9),KCN(7),GWNO(8,9) 7 McK (8) vTu(3),JF 8 LJMO FGL(10),GWNO(10)
(1) (2)

Notas:

(1): El libro de Craig usa la formulacin de Denavit-Hartenberg modicada , que no usa el eje z del sistema del mundo como primer eje de articulacin; el primer eje real no es, entonces, el 0 sino el 1, y todos los ndices i en la notacin usual son en Craig i + 1. Esto puede provocar gran confusin si no se advierte. (2): El tratamiento de la cinemtica de robots mviles por McKerrow es confuso; hay errores de imprenta y pasos no explicados que hacen muy difcil seguir el razonamiento. De ah la necesidad de haber usado una referencia tan extraa como una tesis doctoral (van Turennout) para tratar este tema.

ROBApB/3

Apuntes de Robtica

Ingeniera Informtica

ROBApB/4