Está en la página 1de 177

Robtica

Apuntes para la asignatura


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

Juan Domingo
3 de febrero de 2001

Apuntes de Robtica

Ingeniera Informtica

ADVERTENCIA IMPORTANTE

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)

ndice general
P
. refacio

P/1

1. Introduccin

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. Mecnica de robots

2.1.

2.2.
2.3.

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.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

Ingeniera Informtica

4. Tecnologa de actuadores robticos

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 . . . . . . . . . . . . . . . . . . . . . .

4/ 1
. 4/ 1
. 4/ 2
. 4/ 3
. 4/ 4
. 4/ 7
. 4/ 12
. 4/ 13
. 4/ 18

5. Introduccin al control de robots

5/ 1

6. Programacin de robots

6/ 1

7. Robots mviles

7/1

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. Inteligencia en robots

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

Apuntes de Robtica

Ingeniera Informtica

A
. pndices

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

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 6= 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
TM

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.

1.2. Tipos de robots

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

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
1.3.1. Deniciones, componentes y sus tipos

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

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

0 traslac.
0 rotac.

Union
pivote
(rotacional)

1 rotac.
0 traslac.

Simbolos
(vistas lateral y frontal)
C2

C1: cuerpo 1
C2: cuerpo 2

C1
C1

C1

C2

C2
0 rotac.
Union
1 traslac.
deslizante
(traslacional)
Union
deslizante
helicoidal

1 rotac. y
1 traslac.
conjugadas

Union
pivote
deslizante

1rotac.
1 traslac.

C2
1

C2
C1

C1
C2

C2

C1

C1

C2
2

C2
C1
C1

C2

Union
apoyo
plano

1 rotac.
2 traslac.

Union
rotula

3 rotac.
0 traslac.

Union
lineal
deslizante

2 rotac.
2 traslac.

Union
lineal
anular

3 rotac.
1 traslac.

Union
puntual

3 rotac.
2 traslac.

Union
libre

3 rotac.
3 traslac.

C1
C1
C2
C1

C1

C2

C2

C2

C2
4

C1
C1
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

Ingeniera Informtica

2.1. Conceptos bsicos de geometra espacial


2.1.1. Sistemas de coordenadas

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
y

x
Sistema no
ortogonal

Sistema ortonormal
levogiro: x y = z

Sistema ortonormal
dextrogiro: 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

x0
y0
z0
w

x0 = xw
y 0 = yw
z 0 = zw

donde

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

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
0

vx
x
x0

0
y
y
+
=

vy

vz
z0
z

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

x0
y0
z0
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

Esto tiene la ventaja de que, si ~x = H ~x, entonces ~x = (H)


la inversa, que resulta ser

(H)1

1 0 0 vx
vy
vz
0 0 0 1

0 1 0

=
0 0 1

~x0

, 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.
0

y
x
y

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
y tambin ~~ji == cossin~i~i++sincos~j~j
~x = x~i + y~j = x ~i + y ~j
0

0 0

0 0

es decir que x~i + y~j = x (cos ~i + sin ~j) + y ( sin ~i + cos ~j)
Igualando componente a componente, y escribiendo como matriz,
0

x
y

cos sin
sin cos

x0
y0

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

x0
y0
z0
1

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

x
y
z
1

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

0
0
1
0

0
0
0
1

x0
y0
z0
1

ROB2/3

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

x0
y0
z0
1

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, ) =

Rot(y, ) =

Rot(z, ) =

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

0
0
0
1

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

cos sin
sin cos
0
0
0
0

0
0
1
0

0
0
0
1

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

3 1

~
r ,

~
r ,

R~r, =

x,

z,

y,

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

y,

c
0
s
0

00

x,

c
0
s
0

0 s 0
c s 0 0

1 0 0 s c 0 0

0 c 0 0
0 1 0
0 0 1
0
0 0 1

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

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

ROB2/4

Apuntes de Robtica

Ingeniera Informtica
Y

ry

ry 2+ rz

r
o

rx

x
1

rz

ry 2+ rz

rx

z
3

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
ry
s = q
ry2 + rz2
rz
c = q
ry2 + rz2
rx
= rx
s =
|r|
q

ry2 + rz2

c =

|r|

Al multiplicar todo queda:

R~r, =

ry2 + rz2

rx2 v + c
rx ry v rz s rx rz v + ry c
rx ry v + rz s
ry2 v + c
ry rz v rx s
rx rz v ry s ry rz v + rx s
rx2 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

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

Z=Z

Z=Z

Y=Y

Y
r esta en el plano Z/Z

p
X=X

X
X

p esta en el plano X/X/X


y esta en el plano X/X

X
X
Angulos y/p/r

Angulos de Euler

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,
0

00

R,, =

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

c
0
s
0

0 s 0
c s 0 0

1 0 0 s c 0 0

0 c 0 0
0
1 0
0 0 1
0
0
0 1

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

sc
ss
c 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

Apuntes de Robtica

Ingeniera Informtica

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,

Ry,p,r =

cy sy 0 0
sy cy 0 0
0
0 1 0
0
0 0 1

cp
0
sp
0

y/p/r

0 sp 0
1 0
0 0

1 0 0 0 cr sr 0

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

cycp cyspsr sycr cyspcr + sysr


sycp syspsr + cycr syspcr cysr
sp
cpsr
cpcr
0
0
0

0
0
0
1

), puede ex-

(2.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
2.1.4. Transformaciones entre sistemas de coordenadas

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.
~ = OP
~ + P~X .
De ella, es claro que, dado un punto arbitrario X , se cumple que OX
Expresando esto en su descomposicin de coordenadas respecto a cada sistema,
1

x~i + y~j + z~k = px~i + py~j + pz~k + x0~i0 + y 0~j 0 + z 0~k 0

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:
~i0 = cos(ix )~i + cos(iy )~j + cos(iz )~k
~j 0 = cos(jx )~i + cos(jy )~j + cos(jz )~k
~k 0 = 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

Ingeniera Informtica
Z
Z

k
P
j

Y
k
O
i

Figura 2.5: Transformaciones entre sistemas


Por tanto, e igualando componente a componente,
x = px + x0 cos(ix ) + y 0 cos(jx ) + z 0 cos(kx )
y = py + x0 cos(iy ) + y 0 cos(jy ) + z 0 cos(ky )
z = pz + x0 cos(iz ) + y 0 cos(jz ) + z 0 cos(kz )

o expresado como matriz,

x
y
z
1

cos(ix ) cos(jx ) cos(kx ) px


x0

cos(iy ) cos(jy ) cos(ky ) py y 0

cos(iz ) cos(jz ) cos(kz ) pz z 0


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

p31

f13

11

Rot.

T ras.

P ersp.

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

Apuntes de Robtica

Ingeniera Informtica

2.1.5. El sistema de la mano

Se suele emplear para las componentes de la matriz de transformacin homognea la


notacin

n o a p
x

n
y
T =

nz

oy ay py

oz az pz
0 0 1

~n ~o ~a p~
0 0 0 1

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

o
n

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 =

nx ox ax px
ny oy ay py

nz oz az pz
0 0 0 1

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

m1
11

1
m14


o
y

= det(A(nx )) = oz
0


o
x

= det(A(041 )) = oy

oz

ay py
az pz = oy az oz ay = (~o ~a)x = nx

0 1

o

ax px
x oy oz


ay py = ax ay az = (~o ~a) p~ = ~n p~



px py pz
az p z

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

nx ny nz ~n~p
oy oz ~op~

ay az ~a~p
0 0 0
1

= x
ax

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

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

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

2 Esta

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

ROB2/11

Apuntes de Robtica

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

Eje i

Eje i+1

Eje i

Enlace i1

Eje i+1
Enlace i

Eje i1

Enlace i

ai

ai
di
i
Linea paralela

a i1

a la normal
eje i / eje i+1

Enlaces i e i1

Enlace i aislado

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

i1

i1

Apuntes de Robtica

Ingeniera Informtica
Linea paralela
al eje z

Eje i

i1

i
Enlace i1

Eje i+1
Enlace i
z
x

Eje i1

ai

x
i

yi

Linea paralela
a la normal

i1

di
z i1

yi1

a i1

eje i / eje i+1

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

i1

i1

i1

0
i1

i1

i1

i1

Apuntes de Robtica

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
00
i

00
i1

00
i1
00
i1

i1

00
i1

00
i

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

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 =

ci si
si ci
0
0
0
0

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

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

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

i1

i1

i1

i1

i1

i1

i1

An = 0 A1 1 A2 . . . n1 An

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

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

i1

i1

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.
El brazo de Stanford

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

Apuntes de Robtica

Ingeniera Informtica
z5 6

z4
x5

y3 5
x 4 y4

y6=o

z6=a

z3

x6=n

y5

Origenes coincidentes
(d 4 = d 5 = 0)

x3

d6

z 2 x2

d3
2
z1

y2

d2

x1
y1
d1
y0

1
z0
x 0 Sistema
del mundo

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

Apuntes de Robtica

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.
x6

Articulacion
i i ai

1
( 2 ) 2 0

2
( 2 )
0
2

3
2
0 0
4
(0) 2 0

5
(0)
0
2
6
(0)
0 0

ROB2/17

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

Apuntes de Robtica

Ingeniera Informtica

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:

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

i1

A2 =

A4 =

A6 =

Ai

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

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

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

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

c2
s2
0
0

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

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

0
1
0
0

A3 =

1
0
0
0

0
0
1
0

0 0
0 0
1 d2
0 1

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

Como comprobacin, sea la posicin dibujada en la que = ,


siendo l la longitud a la que el prisma est extendido. En ese caso,

1
0
0
0

= 2

yd

=l

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

Apuntes de Robtica

Ingeniera Informtica

Por otra parte, la transformacin entre el sistema del inicio de la mano y el punto
terminal se obtendracomo:

0 s4
0
c4
1
0
0
0

c4

3
A 6 = 3 A4 4 A5 5 A 6 = 4
0

0
0
0
1

c5 0 s5
0 c5
1
0
0 0
0

0
0
0
1

c6 s6
c6
0
0
0

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

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
0
0
1

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

A3

por la A .
3

0 0
0 0
1 d6
0 1

c
El RTX/RT100

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.
3

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

Figura 2.11: Estructura del RT100


En cuanto a sus dimensiones, y vistas lateral y superior, vase la gura 2.12.

3 RTX

y RT100 son marcas registradas de Oxford Intelligent Machines, Ltd.

ROB2/19

Apuntes de Robtica

Ingeniera Informtica
694 mm

254 mm

254 mm

Eje del elbow


180

Eje del yaw

(shoulder)

915 mm

Eje del shoulder

151

98

180

Desplazamiento
en zed

(elbow)

220

(yaw)

90 mm

33 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

Z2

Y1

3
a2

Y2

d3

X2

Z3
4

Y3

a3
d4

X3
Y4
Z4,Y5
Y6
Z5

X5

X4

d6

Z6
6

X6

Z0

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

Apuntes de Robtica

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
z4

Apuntes de Robtica

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

Apuntes de Robtica

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.
5

Articulacion
1
2
3
4
5
6

i i
ai
di
0 0
0
(d)
( 2 ) 0 a2 = 254mm.
0
(0) 0 a3 = 254mm. d3 = 75mm.
() 2
0
d4 = 85mm.

(2) 2
0
0
(0) 0
0
d6 = 176mm.

El vector de articulaciones es en este caso

J =

d
2
3
4
5
6

Ahora se pueden escribir las matrices de transformacin


sustituyendo en la frmula general:

A1 =

A3 =

A5 =

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

i1

a3 c3
a3 s3
d3
1

0
0

0
1

A2 =

A4 =

A6 =

Ai

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

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

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

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

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

0 a2 c2
c3 s3

0 a2 s2 s3 c3

1
0 0
0
0
1
0
0

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

0 a3 c3
0 a3 s3

=
1 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

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

Ingeniera Informtica
0A

resultan ser:

= 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

nx ox ax px
oy ay py

oz az pz
0 0 0 1

T = y
nz

y, dados (X, Y, Z, y, p, r) que el usuario debe proveer como especicacin de la posicin y


orientacin, se obtienen las ecuaciones
ay
)
ax

X = px (J1 . . . J6 )

y = arctan(

Y = py (J1 . . . J6 )

p = arctan(

Z = pz (J1 . . . J6 )

r = arctan(

az
)
ax / cos(y)

nz
)
oz

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

Ingeniera Informtica
Z
S

n
P

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 completamente conocido. Entoces, podemos
es tambin~ conocida.~ Por~ lo tanto,
el
vector
S
~ . La simplicacin que este mtodo introduce consiste en que
conocer
R ya que R = P S
~
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

Apuntes de Robtica

Ingeniera Informtica

posible valor de quedara:


i

1
0

0
0

1
0

0
0

1
0

0
0

i = 0

i =

i = 2

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

0
0

d
1

0
0

d
1

0
0

d
1

c2
s

0
0

c2
s

0
0

c2
s

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

En el caso del RT100, se tiene que

A3 =

1
0
0
0

c2 s2
s2 c2
0
0
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

0 a2 c2
c3 s3

0 a2 s2 s3 c3

1 d2 0
0
0
1
0
0

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

c3
s

0
0

c3
s

0
0

c3
s

0
0

a3 c3
a3 s3

d3
1

a3 c3
a3 s3

d3
1

a3 c3
a3 s3

d3
1

, con lo que

0
0
1
0

a2 c2
a2 s2

d2
1

a2 c2
a2 s2

d2
1

a2 c2
a2 s2

d2
1

= 2 = 3 = 0

0
1
0
0

0
0
d
1

A2

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

0 a3 c3
0 a3 s3

=
1 d3
0
1

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

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

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
3
3
) cos
2
2
3
3
= 2a sin(2 + ) cos
2
2

Rx = 2a cos(2 +
Ry

ROB2/27

Apuntes de Robtica

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
g

3 = 2 arc cos

Rx2 + Ry2
2a

2 = atan2(Ry , Rx ) arc cos

Rx2 + Ry2
2a

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

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
Sx3 = c4 s5 d6
Sy3 = s4 s5 d6
Sz3 = 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

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

A partir de estas se puede por n despejar,


4 = atan2(Sy3 , Sx3 )
5 = arc cos(

Sz3 + d4
)
d6

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

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

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,

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

(2.2)

nx ox ax px
ny oy ay py

nz oz az pz
0 0 0 1

(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

de donde

c4 s5 = ax
s4 s5 = ay

, y as

= atan2(ay , ax )

ax
=q
a2x + a2y
1 + tan2 4
1
ay
q
=
=
1 + cotan2 4
a2x + a2y

cos 4 = q
sin 4

Adems, escribiendo la inversa de

(3 A4 )1

c4

0
=

s4

A4

s4
0
c4
0

, tenemos que

a2x

a2y

0 0

1 d4
0
0
1 d4

=
a2y 2 a2x 2 0 0

0 0

ax +ay
ax +ay
0 1
0
0
0 1

ax +a2y

ax +a2y

Ahora, multiplicaremos por esta matriz ambas partes de la ecuacin 2.2. Se usa que
T = 3 A4 4 A5 5 A6 = (3 A4 )1 T = 4 A5 5 A6

o sea,
a2x

a2y

a2y 2

ax +ay

a2x

ax +a2y

ax +a2y

ax +a2y

nx

1 d4 ny

nz
0 0

ox ax px
c5

oy ay py s5
=
oz az pz 0
0 0 1
0

ROB2/29

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

Apuntes de Robtica

Ingeniera Informtica

Multiplicando, queda

ax nx +ay ny
2 2
ax +ay

ax ox +ay oy
2 2
ax +ay

ax px +ay py
2 2
ax +ay

nz
ay nx ax ny
2 2
ax +ay

oz
ay ox ax oy
2 2
ax +ay

az
0

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

a2x + a2y

c5 c6

s c

5 6
=

s
6

c5 s6 s5
d6 s5
s5 s6 c5 d6 c5
c6
0
0
0
0
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

tan 5 =

a2x + a2y
az

De este modo, y como

( A5 )

c5 s5
0
0
s5 c5
0
0

Se usar seguidamente que

0
1
0
0

0
0
0
1

5 = atan2( a2x + a2y , az )

az
0
q
2
ax + a2y
0

a2x + a2y
0
az
0

0
1
0
0

0
0
0
1

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

de donde se puede despejar , que resulta ser


6

q
(ax nx ay ny )az
q
6 = arc cos
+ nz 1 a2z
a2x + a2y

(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 cundoqaparecen 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

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

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

Apuntes de Robtica

Ingeniera Informtica

y0+y0

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

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

x0
dx 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

F (X0 + X) ' F (X0 ) + JfX0

siendo J el Jacobiano de f evaluado en X


fX0

JfX0

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

=(

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

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

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

(2.4)

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

ROB2/31

Apuntes de Robtica

Ingeniera Informtica

derivamos respecto al tiempo, obtenemos para un punto dado X


o explcitamente,

X = JfX

vx
vy
vz
y
p
r

Jf

1
2
3
4
5
6

vx
vy
vz
y
p
r

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

1
2
3
4
5
6

Jf

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,
JX1 =

1
Ad(JX )0
det(JX )

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:
q
X

1
X

m(X) =

det(JX JXT )

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) = 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:
T = 0 A1 1 A2 . . . 5 A6

Entonces, para cada i = 1 . . . 6 se denen las matrices U como


i

Ui = i1 Ai i Ai+1 . . . 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 =

nxi oxi axi pxi


nyi oyi ayi pyi
nzi ozi azi pzi
0
0
0
1

Entonces, la columna i-sima del Jacobiano es:

pxi nyi pyi nxi


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

nzi
ozi
azi
0
0
0

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

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.

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

d~s
dt

~ |=| AB
~ |=| CA
~ | d =| OA
~ | sin() |
| s
~ | dt
| ~s |
~ | sin() |
=| OA
~ |
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
d~s
=
~ ~s
dt

(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
)=
dt

TN N (

ds
)+
~ R TN ~s
dt

ROB2/34

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

zi

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

yi

Oi

rO,i

y0

x0

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


~ro,i+1 = ~ro,i + ~ri,i+1

Entonces las velocidades son

d~ro,i+1
d~ro,i
d~ri,i+1
=
+

dt R
dt R
dt R

(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
R

~vi+1

d~ri,i+1
= ~vi +
+ R
~ i+1 R~ri,i+1
dt Ri
R

i,i+1

i+1 i

d~ri,i+1
= di+1~
ki
dt Ri

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,

~ i+1 =
~i

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

d~ri,i+1
=0
dt Ri

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,

~ i+1 =
~ i + i+1~ki

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

~ai+1


d~r
d2~ri,i+1
d~ri,i+1
R
R
R
i,i+1 + R
= R~ai +

+

~
~
r
+

~ i+1 ~ri,i+1
i+1
i+1
i,i+1
i+1
dt2 Ri
dt Ri
dt Ri



d2~ri,i+1
d~ri,i+1
R
R
R
R
= ~ai +

+
2

~
r
+

~
r
i+1
i,i+1
i+1
i+1
i,i+1
i+1
dt2 Ri
dt Ri
R

Los trminos ~ y que intervienen en esta ecuacin se han calculado ya para


la velocidad; los que aparecen nuevos son:

(

d ~r
d ~k si i es traslacional

=
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):
R

i+1

d~
ri,i+1
dt
Ri

i,i+1
2

i+1 i

Ri

d~
i
i
dt
d(~
i +i+1~ki )
dt

i+1

i+1

i+1 i

i+1 i

Articulacion i es traslacional

Articulacion i es rotacional

~vi+1 = v~i + di+1~ki +


~ i+1 di+1~ki
~ai+1 = a~i + di+1~ki + 2~i+1 di+1~ki +
+
~ i+1 di+1~ki +
~ i+1 (~i+1 di+1~ki )

~ i+1 =
~i

~ i+1 =
~ i

(T 1a) ~vi+1 =
~ai+1 =
(T 2a)
(T 3a)
~ i+1 =
(T 4a)
~ i+1 =

v~i +
~ i+1 ~ri,i+1
a~i +
~ i+1 ~ri,i+1 +
+~i+1 (~i+1 ~ri,i+1 )

~ i + i+1~ki

~ i + i+1~ki +
~ i i+1~ki

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
anteriores de la columna apropiada para calcular ~ , ~ , v~ y a~ , conociendo
( , , ) o
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

(T 1b)
(T 2b)
(T 3b)
(T 4b)

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
~
X
X
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
Z
i

~ =
L

r~i p~i dVi

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
~ = Iw
L
~
siendo I el llamado tensor de inercia, cuya expresin respecto a algn sistema de coordenadas dado es R

R
R
i

I=

i i

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

2
2
mi rix riy dVi
mi riy riz dVi
mi (rix + riy )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

~
dL
= I
~ +
~ I~
dt
R

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


4 La

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
del alcance de este curso. De todos modos, la frmula es R (I) = R RotTN N (I) R RotN siendo R RotN
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

vci

Oi

CM

c ii

Figura 2.18: La velocidad del CM conocida la del origen


~vci = ~vi +
~ i ~cii

siendo ~c el vector de posicin del CM referido a su propio sistema. Es claro que


Derivando la ecuacin anterior obtenemos
ii

d~cii
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:
X
~aci = ~ai +
~ i ~cii +
~ i (~i ~cii )

ci

ci

Fi = mi~aci

que queda como

f~i1,i f~i,i+1 + mi~g = mi~aci

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,
kl

i+1,i

i =

queda

i,i+1

~
dL
dt

~i1,i ~i,i+1 ~ci1,i f~i1,i + ~ci,i f~i,i+1 = Ii


~ i +
~ i Ii
~i

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

i1,i

ii

(2.8)
~
= ~
+ (~r
~c ) f~
+ ~c f~
+I
~ +
~ 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
f~i1,i = f~i,i+1 mi~g + mi~aci

i1,i

i,i+1

i1,i

ii

i1,i

ii

i,i+1

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,
f~n,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,
~ (M~g )
~n,n+1 = R

Esto signica que la fuerza y el momento que deber ejercer en ese instante el motor de
la ltima articulacin sera
f~n1,n = M~g mn~g + mn~acn

que una vez calculada puede usarse en


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

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

n1

cn

cn

nn

n,n+1

nn

n,n+1

ROB2/39

Apuntes de Robtica

Se conocen
0 0

Ingeniera Informtica

Se conocen
v0 a0 J 1 J 1 J 1

usando T3a/b, T4a/b

Se obtienen
f0,1 y 0,1

usando
T1a/b, T2a/b

usando 2.7 y 2.8

Se obtienen
usando 2.5 y 2.6

v1 a1 1 1
y se conocen

vc1 ac1

J2 J 2 J 2
Se obtienen

idem, usando
T1a/b, T2a/b,
T3a/b, T4a/b

f1,2 y 1,2

usando 2.7 y 2.8

Se obtienen

vn1 an1 n1 n1

usando 2.5 y 2.6

y se conocen

vcn1acn1
Se obtienen

JnJnJ n

fn1,ny n1,n

usando
T1a/b, T2a/b
T3a/b, T4a/b

vn an n n

usando 2.7 y 2.8


usando 2.5 y 2.6

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

Figura 2.19: Cuadro resumen del uso de las ecuaciones dinmicas

ROB2/40

Apuntes de Robtica

Ingeniera Informtica

2.5. Generacin de trayectorias


2.5.1. Trayectorias en el espacio de articulaciones

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

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

f:

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

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

Apuntes de Robtica

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:
0

(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 t3f
a1
a1 + 2a2 tf + 3a3 t2f
a2 t2f

=
=
=
=

0
f
0
0

que es lineal en las a (t es conocido), y por tanto, se puede resolver directamente, siendo
la solucin:
i

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

(ti1 )
(ti )
i1 )
(t
i)
(t

=
=
=
=

i1
i
i1
i

a0 + a1 ti1 + a2 t2i1 + a3 t3i1


a0 + a1 ti + a2 t2i + a3 t3i
a1 + 2a2 ti1 + 3a3 t2i1
a1 + 2a2 ti + 3a3 t2i

=
=
=
=

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

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

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

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
a10 + a11 tf 1 + a12 t2f 1 + a13 t3f 1
a20
a20 + a21 tf 2 + a22 t2f 2 + a23 t3f 2
a11 + 2a12 tf 1 + 3a13 t2f 1
2a12 + 6a13 tf 1
a11
a21 + 2a22 tf 2 + 3a23 t2f 2

=
=
=
=

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

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:
a10 = 0 a20 = v a11 = 0

y las cinco ecuaciones resultantes, sustituyendo estas soluciones, son:


a12 t2f 1 + a13 t3f 1
a21 tf 2 + a22 t2f 2 + a23 t3f 2
2a12 tf 1 + 3a13 t2f 1 a21 t3f 1
2a12 + 6a13 tf 1 2a22
a21 + 2a22 tf 2 + 3a23 t2f 2

sistema que escrito en forma matricial queda:

t2f 1 t3f 1
0
0
0
0
0 tf 2 t2f 2 t3f 2
2tf 1 3t3f 1 1 0
0
2 6tf 1 0 2
0
0
0
1 2tf 2 3t2f 2

v 0
g v
0
0
0

=
=
=
=
=

a12
a13
a21
a22
a23

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

v 0
g 0
0
0
0

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,
a + 2a t + 3a t = (o bien, a = , lo cual, por la ec. (5), es equivalente).
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

11

12 f 1

2
13 f 1

f1

21

por lo que

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

ROB2/44

Apuntes de Robtica

Ingeniera Informtica

b
0
0

tb

t f t b

th

tf

Figura 2.21: Interpolacin lineal con extremos parablicos


y la velocidad en cualquier punto de ese tramo ser
= t
en particular, en t , (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=
t

0 +f
2

de la que se obtiene operando

2)
(0 + 21 t
b
tf
2

tb

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

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
q
b

tb =

tf

f 0 )
2 t2f 4(
2

Para que haya solucin, el discriminante de esta ecuacin de segundo grado debe ser positivo,
o sea,

2 t2f 4(f 0 ) > 0

para lo cual habr de escogerse de modo que

4(f 0 )

t2f

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

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

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

y k, que es

Ingeniera Informtica
k j
jk =
tdjk

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

k = sig(kl jk ) | k |

El tiempo que transcurre durante el tramo parablico ser


tk =

(puesto que

kl

= jk + k tk

kl jk
k

) 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

Ingeniera Informtica
Z
r
Y

a
z

r
Recta x=a

vy

X
X

Vista en perspectiva

Vista superior

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)
q

x2 + y 2
r =
z = z

El Jacobiano se calcula de la ecuacin 2.4, siendo

J =

x
r
y
r
z
r

x
z
y
z
z
z

cos() r sin() 0

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

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


ser

vx

r
cos() r sin() 0

r cos() 0
0
0
1
z

vy = sin()

vz

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


y
= sin() cos() 0 vy =
x2 +y2
r
0
0
r
vz
z
0

ROB2/48

x2 +y 2
x
x2 +y 2

v
x
vy
0
vz
1

Apuntes de Robtica

Ingeniera Informtica

por tanto, tendremos


1
(xvx + yvy )
+ y2
1
= 2
(yvx + xvy )
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

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

 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

Ingeniera Informtica

Apuntes de Robtica

Ingeniera Informtica

3.2. Sensores internos


3.2.1. Sensores de posicin

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

Devanado de hilo
d

R
V0
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 =

r
Vs
R

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

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

S1

S1

Tension
de ref.
(alterna)

R1
S3

S2

S2

S3

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

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

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

10
00

01
10

10

10

00

01

01
01

E
10

11 10

01
F
01

11

G
01

00

10

H
10

I
00

01

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 =

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

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

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
v=

dt

'

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

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
x es leida por el encoder
k es la cte. del sistema equivalente de los dos resortes

lineal

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

Ingeniera Informtica

3.3.1. Sensores de proximidad

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

Objeto

8/10
cm

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

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

Ingeniera Informtica
1
2

3
2

3
1

Objeto
Objeto

Sensor de corte de haz

Catadioptrico

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

Espejos moviles

Laser

Laser

Lente cilindrica

A
B
Colimador

SA

Objeto

Camaras

Cinta transportadora

SB

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

TM

Apuntes de Robtica
Rejilla protectora
Condensador

Ingeniera Informtica
22.5

Lamina de plastico con


recubrimiento de oro

22.5
45

45

67.5

tierra

90

Lamina de aluminio Lamina que actua


con orificios
como muelle
300 V
(frec. de ultrasonidos)

Anillo de
aislamiento

67.5

50 30 10 0

0 10 30 50

Respuesta en dB en funcion del angulo,


normalizada a la respuesta para angulo 0

Figura 3.17: Esquema del sensor Polaroid

TM

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

90

Apuntes de Robtica

Ingeniera Informtica

3.3.2. Sensores de tacto

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

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

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

Apuntes de Robtica

Ingeniera Informtica
Mx f x
1

3
My
fy

Mz
z
5

fz
6

Figura 3.22: Sensor de fuerza-momento


pueden relacionarse con las lecturas de cada sensor, (w , . . . , w ) como
1

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

3.3.4. Sensores de visin

w1
w2
w3
w4
w5
w6
w7
w8

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

Apuntes de Robtica

Ingeniera Informtica

C1

(a)

(b)

C2

(c)

Figura 4.1: Esquema de la servovlvula hidrulica


C1

C2

P1

C1

P1

P2
Piston

Cilindro
P1 < P2

C2

Masa

P2
Piston

Masa

Cilindro
Desp. izq.

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

Apuntes de Robtica

Ingeniera Informtica
Servo
+ amplif.

Ec

i
Servo
valvula

Ef
Transductor
de posicion
Fd

Carga

Ks

Ka

Actuador

x,v
Kpq

Fd

Ec

+ E e
Ef

Ksa
Servo
amplif.

Servovalvula

A
i

Kq

Q0

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

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

Ingeniera Informtica
e

Compresor
P2

P1

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 ()

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

Induc. arm.

Res. arm.

Res. per. mag.


RL

Va

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 a

T a

Apuntes de Robtica

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
P
( 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
M

(4.5)
(4.6)

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

(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
Va (s) KE (s)
Ra + La s
T (s) (Tf (s) + Tg (s))
(s) =
JT s + B
Ia (s) =

Tf+ Tg
V

VE g
+

1
R a + La s

Ia

KT

Eg
KE

1
J T s+B

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

KT

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

KT
La JT
B
JT

a
)s + ( LBR
+
a JT

KT KE
)
LA JT

(4.9)

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

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

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

1
6

C
3

5
4

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 = (

2
2
Ns Nr

) = 2
Nr Ns
N s Nr

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
s

pasos/rev =

r
2 NNssN
Nr

rad/paso

Ns N r

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
86
86

86
86

12

Apuntes de Robtica

Ingeniera Informtica

A
Iman
permanente

S
S

S
S

S S

NN
B

N
N

Rotor
Vista lateral
A
Vista superior

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

N
1

Paso 3

I1= I

N
3

I2= 0

I 2= +I

I 1= 0

N
1

Paso 2

I 2= 0

I 1= +I

I1= 0

Paso 4

I 2= I

N
3

S
3

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 = c!i 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

Ingeniera Informtica

4.4. Servo-amplicadores

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

VCC

VCC
C1

Q 1 Q2
I1

Q1

Vi

I2

C2

Q 3 Q4

Q2
VCC
Tipo H

Tipo T

Figura 4.14: Esquema de los servo-amplicadores lineales


Respecto al tipo H, si C1 es un voltaje positivo, y C2 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, C1
se conecta a tierra y C2 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

dis

CE C

CE

Apuntes de Robtica

Ingeniera Informtica

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.
C

CC

CE

CE

T1

T2
T
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

Vef

Z T
1 Z T1
1
VCC
1ZT
(VCC )dt +
=
V (t)dt =
VCC dt = [VCC T1 + VCC (T T1 )] =
[T2 T1 ]
T 0
T 0
T
T
T1

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

4.5. Transmisiones mecnicas y dispositivos de conversin

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

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

r2
T2 2

r1

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

=
r1
r2
N1 /N2

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

N2

r2

1 1

2 2

1 1

2 2

T2

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

T2 = J2 2 = T1

luego
T1 =

N2
N1

N1
J2 2
N2

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

Apuntes de Robtica

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,
1

eq

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 =

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

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
1
1
1
M v 2 = Jeq 2 = Jeq P 2 v 2
2
2
2

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

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 ot. suministrada
T rab. suministrado
=
P ot. consumida
T rab. realizado

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


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

N1
N2

Tsal (real)
Tent rel acoplo

_
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
=

Apuntes de Robtica

Ingeniera Informtica
= error en el angulo

= 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

Apuntes de Robtica

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.
+Repetibilidad:

Res. en la posicion
Res. en control

Desp. desde
la izquierda

Puntos consecutivos

Figura 4.21: Resolucin y medidas de repetibilidad

ROB4/19

Desp. desde
la derecha

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) =

A
1 + a 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) =

Km
1 + m 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

1
s

Apuntes de Robtica
d

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

A
1 + s a

1
s

(t)
(s)

Kg
Kp

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) =

=0

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

siendo el bloque de realimentacin H = K , y por tanto la ecuacin caracterstica para


trazar el lugar de las races es
p

1 + GH = 0

1+

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

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

1
a

1
m

a +m
3a m

1
m

1
a

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

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

A
1+s a

Km
1+s m

1
s

Kg s

++
Kp

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

1+

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

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
Kp
Kg

GH

1 Kp
2 Kg

1
m

1
g

1
m

Kp
Kg

1
m

Apuntes de Robtica

Ingeniera Informtica

1
m

1
a

K p
Kg

K p 1
K g m

1
a

Figura 5.4: Lugar de las races con K 6= 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

Gin (s) =

y la f.d.t. total resultara


G(s) =

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

AKm
1+sm
AKm
+ Kg 1+s
m

1
Kp s 2 +

AKm
m s + AKg Km + 1

AKm Kp
m
AKg Km +1
s + AKpmKm
m

1
n2
Kp s2 + 2n s + n2

donde se observa que este sistema puede escribirse en la forma del sistema standard de
segundo orden, donde
s
AK K
1 1 + AK K
= q
(5.1)
=

2 AK K
m

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

Apuntes de Robtica

Ingeniera Informtica
Tf + Tgr
KT
R a+ L a s

Km
1 + s m

1
B + J Ts

+
+

sin suponer
Tf + Tgr=0

KE

Figura 5.5: Diagrama del motor CC no simplicado


d

Tf + T gr

A
1+s a

KT
R a+ L as

+
+

1
B + J Ts

(s)
(t) 1

(t)

(s)

KE

Kg
Kp

Figura 5.6: Diagrama completo


Del diagrama de bloques se ve que
1
(s) = (s)
s

siendo (s) = L {(t)} y (s) = L {(t)} = L n

d(t)
dt

; adems,

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


de donde se obtiene

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


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

(5.2)

donde se denota

Geq (s) =

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

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

d0

(s) = Geq (s)

ROB5/5

d0
s

Apuntes de Robtica

Ingeniera Informtica

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


lm (t) = lm s(s) = lm sGeq (s)

s0

s0

AKT
d0
d0
=
d0 =
s
AKT Kp
Kp

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

lm (t) = lm s(s) = lm sGeq (s)

s0

gr

L0

s0

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

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

Kp

K ds

++
+

Tf + T gr

A
1+s a

KI
s

KT
R a+ L as

+
+

1
B + J Ts

1
s

KE

Kg

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

Apuntes de Robtica

Ingeniera Informtica

K p3

PD

K p2

Kd3

K d2

K p1

K d1

K p1 < K p2 < K p3

(b)

(a)

PI

K d1 > K d2 > Kd3

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.
5.2. Control de una articulacin

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

Apuntes de Robtica

Ingeniera Informtica

Pos. des.
Senal
Proces.
D/A
(digital)
control
(kT)
(kT)

Amp.

Motor

Tac. Enc

Carga

Motor

Tac. Enc

Carga

A/D

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

Amp.

(kT)

Figura 5.9: Control de una articulacin


seales del encoder y la velocidad se obtiene midiendo a intervalos regulares de tiempo
como

(kT ) '

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.

Senal
analogica

Ampliacion

Valor digital
obtenido

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

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

Pos.
des.

error

Motor en
una artic.

Controlador

par.

Pos. presente

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

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.
1

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.
1 Simultnea

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

ROB6/3

Apuntes de Robtica

Ingeniera Informtica

6.4. Clasicacin de los lenguajes de prog. de robots

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

Apuntes de Robtica

Ingeniera Informtica

6.5. Niveles de programacin. Cuadro resumen

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

Herramientas
de programacion

Programa
a nivel tarea

Visualizacion

(offline)

Base de datos
CAD

Modelador
de solidos

Sistema op.
multitarea

Modelado
geom. de la tarea

Control
del robot
(online)

Simulacion

Programa
a nivel robot

Modelador
geometrico

Sensorizacion
externa interna

Modelos
cinematico y
dinamico

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

Proceso

externos internos
Sensores

Objetos
a manipular

Instrumentos
de medida

Actuadores

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.
MOVE barm TO A
WITH DEPARTURE = eje WRT B
WITH DURATION = tiempo
A
eje
B

: 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

: 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
B

taladrobloque

Mundo
x

y
z y
x
bloque

A
o
n

a
cabeza_tornillo

alimentador

Figura 6.2: Ejemplo de tarea para resolver en AL


El programa sera el que se lista a continuacin:

BEGIN insercion

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 ).
VAL-II

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.

ROB6/12

Apuntes de Robtica

Ingeniera Informtica

.LOAD APILA

Origen del
robot (0,0,0)

4
3
2
1
Punto de deposito

75 mm

Origen del plano xy


(0,0,448)

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

Ingeniera Informtica

.LISTL

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

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

Ingeniera Informtica

6.7.2. Estudios de caso


AUTOPASS

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

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

Bl2

Bl3

Bl1
Bl3
Situacion inicial

Bl1
Situacion final

Figura 6.7: Ejemplo de tarea para resolver en RAPT


ROB6/18

Cara 1

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 ).
6.8. Planicacin global de tareas. Nota sobre sistemas CIM

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

ROB6/20

Tema 7: Robots mviles


7.1. Introduccin

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

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

Ingeniera Informtica
Rueda
Eje de guiado

Eje de guiado

Enlace
Remache fijo

Eje de rotacion

Cuerpo del robot

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.
Otro sistema, que llamaremos C , est jo al suelo, pero coincide instantneamente con
C . Esto puede entenderse como si el sistema C estuviera "pintado"en el suelo, y en el
instante en que vamos a analizar el movimiento, determinando
posicin y velocidad del
robot, ste pasa justo por encima, de modo que C y C se superponen. Obsrvese que C es
esttico, y, como se ver luego, se usa como un simple articio matemtico.
Anlogamente, se sitan los sistemas que llamaremos W como coincidentes instantneamente con su respectivo W en el instante de anlisis del movimiento (y, como el C , tambin
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

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

sin()

0 px
0 py

1 pz
0 1

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

Apuntes de Robtica

Ingeniera Informtica
Y
Y

W/W
1
1

S1 X

S2

Rueda

C/C

S3

Figura 7.2: Sistemas de referencia para un robot mvil


y
C

(px ,py )

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:

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

sin()
A

T
=

0 px
0 py

1
0 1

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

T=

Ntese que

A
B

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


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

0
0
0
1

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


ROB7/4
0

Apuntes de Robtica

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:

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


cos()
A

T=

B
0

0 px

0 py

0 0

Es fcil ver que, respecto a la derivada de la transformacin inversa, T = 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.
R
C

C
R

C
R
W

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

pC = C T C T pC

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

v = pC =

R C


C  C
T + R TC T
Cp
T

p
=
T
C
C

C
C
C
C
C
C
R

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)
El producto T p expresara la velocidad del robot medida por el sistema jo el suelo
en el preciso momento en que el robot pasa sobre l. La matriz T meramente expresa
ROB7/5
C

C
C

Apuntes de Robtica

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).
Tratemos de trabajar sobre T . Para obtenerla, partiremos del grafo. Escribamos primero
la expresin de T
(7.2)
T= T T T T T
Para llegar de R a C hemos usado la rama ms larga de las dos que la unen en el grafo. Ello
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.

Ahora, derivaremos respecto al tiempo la ecuacin 7.2, notando que T = 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
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 W T

C
C
W
S
C
W
S
S
C
C
W
C
W

y como T no es identicamente nula, podemos simplicarla por la derecha, con lo que la


ecuacin anterior se escribe como
R

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

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

W
WT ST + WT

S T + W T S T CT
0 = WT

C
C
S
C
S
S
C

Por fn, para despejar T , que recordemos que era lo que nos interesa, pues su inversa
aparece en 7.1, multiplicaremos ambas partes de la igualdad por T T, pasando un
trmino a la otra parte y usando la propiedad de que T = T , con lo que
= 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 .
- : angulo instantaneo de giro vertical de la rueda. Lo forman el eje x de W y 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

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

Z
y

x
X

Figura 7.5: Angulos de giro de la rueda


Con esta notacin las matrices de transformacin resultan ser:

T=
S

T=
W

W
=
T

c s 0 dx
s c 0 dy

0
0
1
0
0
0 1

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

T=
C

0
0

W
0
vx

W
0
vy

W
0

0 0

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

0
0 0
1

W
S

T=

W
S

=
T

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

0
c

0
0
0
0
0
0
0

0
0

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

v=

vx

C
vy

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
a

Apuntes de Robtica

Ingeniera Informtica

segn 7.4, se obtiene:

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

=

0 = 0

o, escribindolo en forma matricial,

vx

c( + ) s( + ) dy dy

vy = s( + ) c( + ) dx dx

C
0
0
1
1

vx

W
vy

(7.5)

(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

J q

v=

vx = r y
vy = 0
= z

o, en forma
matricial,

vx

W
vy

0
0
0
0

r
0
0
0

0
0
1
0

0
0
0
0

= 0

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

vx = r y

vy = 0

W
= z

o, en forma
matricial,

vx

W
vy

ROB7/8

0
0
0
0

r
0
0
0

0
0
1
0

0
0
0
1

Apuntes de Robtica

Ingeniera Informtica

Al fn, y usando las ecuaciones 7.4 y 7.5, se tendr que

v = J W

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,

y para el segundo,

vx
vy

vx

W
vy

r 0

0 0

0 1

y
z

0 0

r
0
0
0

0
0
1
0

0
0
0
1

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 lavelocidad
de cada rueda seran

q1 =

vx1

W
vy1

W
1
1

q2 =

vx2
vy2

W
2
2

Las respectivas matrices J, usando la ecuacin 7.5, y teniendo en cuenta que =


son

c s
c s

c
L L
y J = s c L L
J = s

l
2

l
2

ROB7/9

l
2

l
2

=0

Apuntes de Robtica

Ingeniera Informtica
y2

2
x2

l
2

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

q1 =

r
0
0
0

0
0
1
0

0
0
0
1

y1


z1

q2 =

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

l
l
vx = rc1 y1 + z1 1
2
2

vy = rs1 y1 + Lz1 L1

C
= z1 1

l
l
vx = rc2 y2 z2 + 2
2
2

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

l
vx = ry1 + 2l z1 = ry2 z2
2

vy =
Lz1 =
Lz2

=
z1 =
z2

de donde

r
= (y1 y2 )
l

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

l
vx = rcy1 + 2l z1 = rcy2 z2
2

vy = rsy1 + Lz1 = rsy2 + Lz2


=
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

vx = rcy1
vy = rsy1

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

Apuntes de Robtica

Ingeniera Informtica

7.3. Navegacin

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

si no (el robot est atrapado)

Cortar el programa y replanicar la tarea


(Robot en el objetivo)
n (de la tarea)
n (mientras)

7.3.1. Mapas del entorno

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

Obstaculo

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

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:
x(t) = x0 +

y(t) = y0 +

0
t

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

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

obstaculo

trayec. esperada

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

Ingeniera Informtica
Pos. final

pasillo

robot

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

C
Origen

Trayectoria
encontrada

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
~ + G
~
F~ = E
(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

M1
T1

D1

M1

B
F

M2

B
Avance

T2

Retroceso Giro Avance

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


8.1. Introduccin

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

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

Ingeniera Informtica
sensores

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

Ingeniera Informtica
evitar objetos

vagabundear

explorar
sensores

actuadores

construir mapas

identificar objetos

planear cambios

Figura 8.3: Descomposicin horizontal


8.4.1. HANDEY: un sistema clsico de ensamblado

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

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

Apuntes de Robtica

Ingeniera Informtica
y

Linea elegida
para orientacion

pA
x

Figura 8.4: Parmetros del espacio de conguraciones


como:

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

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

r
A

A
r
B2

B2
B3

B1

B3
B1

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

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


8.4.2. Ejemplo comportamental: Herbert

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

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

Ingeniera Informtica
Espacio de
trabajo
total

Lata vacia
Mesa

Brazo
Pinza

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

Ingeniera Informtica

Camara vertical

Plano de

Direccion de barrido

luz laser

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

cos () = cos

sin2 + cos2 = 1
sin (2) = 2 sin cos

cos (2) = cos2 sin2

sin = tan 2

cos =

sin ( + ) = sin cos + cos sin

cos ( + ) = cos cos sin sin

sin ( ) = sin cos cos sin

cos ( ) = cos cos + sin sin

1+tan

tan (2) =

1
1+tan2

2 tan
1tan2

tan ( + ) =

tan +tan
1tan tan

tan ( ) =

tan tan
1+tan tan

sin + sin = 2 sin +


cos
2
2

sin sin = 2 cos +


sin
2
2

cos + cos = 2 cos +


cos
2
2

cos cos = 2 sin +


sin
2
2

ROBApA/1

Apuntes de Robtica

Ingeniera Informtica

ROBApA/2

Apuntes de Robtica

Ingeniera Informtica

B. Bibliografa comentada y tabla por temas

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.
"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

[G],GWNO

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

También podría gustarte