Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Juan Domingo
3 de febrero de 2001
Apuntes de Robtica
Ingeniera Informtica
ADVERTENCIA IMPORTANTE
ndice general
P
. refacio
P/1
1. Introduccin
1/ 1
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
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/ 1
. 4/ 1
. 4/ 2
. 4/ 3
. 4/ 4
. 4/ 7
. 4/ 12
. 4/ 13
. 4/ 18
5/ 1
6. Programacin de robots
6/ 1
7. Robots mviles
7/1
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
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
Apuntes de Robtica
Ingeniera Informtica
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
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
Apuntes de Robtica
Ingeniera Informtica
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
Cilindrico
Esferico
Eje vertical usual
Articulacion cilindrica
Artic. de paralelogramo
Mixto (SCARA)
z
y
Apuntes de Robtica
Ingeniera Informtica
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
Apuntes de Robtica
Ingeniera Informtica
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
ROB1/6
Apuntes de Robtica
Ingeniera Informtica
Sabemos que la posicin de un punto en el espacio eucldeo tridimensional viene unvocamente determinada por tres cantidades, que llamamos sus coordenadas, y decimos que
estn expresadas en algn sistema de referencia, formado por tres ejes, usualmente rectilneos. En lo sucesivo usaremos exclusivamente sistemas de referencia rectilneos, ortogonales
(es decir, con sus tres ejes perpendiculares dos a dos), normalizados (es decir, las longitudes
de los vectores bsicos de cada eje son iguales) y dextrgiros (el tercer eje es producto vectorial de los otros dos). Usaremos, pues, simplemente el trmino "sistema"para referirnos a
sistemas ortonormales y dextrgiros. Vase la gura 2.1.
z
x
y
y
x
Sistema no
ortogonal
Sistema ortonormal
levogiro: x y = z
Sistema ortonormal
dextrogiro: x y = z
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
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
(H)1
1 0 0 vx
vy
vz
0 0 0 1
0 1 0
=
0 0 1
~x0
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
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
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
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
ry2 + rz2
c =
|r|
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
Apuntes de Robtica
Ingeniera Informtica
Z=Z
Z=Z
Y=Y
Y
r esta en el plano Z/Z
p
X=X
X
X
X
X
Angulos y/p/r
Angulos de Euler
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
Apuntes de Robtica
Ingeniera Informtica
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
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
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
ROB2/7
Apuntes de Robtica
Ingeniera Informtica
Z
Z
k
P
j
Y
k
O
i
x
y
z
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
Apuntes de Robtica
Ingeniera Informtica
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
Ry,p,r =
cpsr
cpcr
sp 0
0
0
0
1
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
M =
nx ox ax px
ny oy ay py
nz oz az pz
0 0 0 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
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
2 Esta
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
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
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
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
i1
i1
i1
i1
i1
i1
i1
An = 0 A1 1 A2 . . . n1 An
Apuntes de Robtica
Ingeniera Informtica
i1
i1
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
Apuntes de Robtica
Ingeniera Informtica
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
J =
1
2
d3
4
5
6
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
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
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
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
Tubo para
cables
Polea intermedia
Antebrazo
Eje de la
mueca
Mueca y mano
Motoreductor (eje z)
Placa de
conexiones
Base
3 RTX
ROB2/19
Apuntes de Robtica
Ingeniera Informtica
694 mm
254 mm
254 mm
(shoulder)
915 mm
151
98
180
Desplazamiento
en zed
(elbow)
220
(yaw)
90 mm
33 mm
Vista lateral
Vista superior
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
Apuntes de Robtica
Ingeniera Informtica
Apuntes de Robtica
Ingeniera Informtica
Apuntes de Robtica
Ingeniera Informtica
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.
J =
d
2
3
4
5
6
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
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:
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
nx ox ax px
oy ay py
oz az pz
0 0 0 1
T = y
nz
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
Apuntes de Robtica
Ingeniera Informtica
Z
S
n
P
Apuntes de Robtica
Ingeniera Informtica
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
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
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
Rx2 + Ry2
2a
A6 =
c4 c5 c6 + s4 s6 c4 c5 s6 + s4 s6 c4 s5
c4 s5 d6
s4 c5 c6 c4 s6 s4 c5 s6 c4 c6 s4 s5
s4 s5 d6
s4 c6
s4 s6
c5 c5 d6 d4
0
0
0
1
Como el vector S~ , que es conocido, une el origen del sistema 3 con el del 6, podemos
escribir
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
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
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
(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
( A5 )
c5 s5
0
0
s5 c5
0
0
0
1
0
0
0
0
0
1
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
q
(ax nx ay ny )az
q
6 = arc cos
+ nz 1 a2z
a2x + a2y
32
2
x
2
y
Como hemos visto anteriormente, en la inmensa mayora de los robots la relacin entre
coordenadas Cartesianas y coordenadas del robot (variables de articulacin) no es lineal;
no obstante, sabemos que cualquier funcin f no lineal, pero contnua y derivable (de clase
C ) puede ser aproximada en un entorno sucientemente pequeo de cualquier punto x
por un desarrollo en serie de Taylor en torno a x que conserve slo los trminos de orden
ROB2/30
1
Apuntes de Robtica
Ingeniera Informtica
y0+y0
y0
x0
x0+ x0
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
JfX0
x
1
y
1
z
1
y
1
p
1
r
1
=(
...
...
...
...
...
...
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
X = JfX
vx
vy
vz
y
p
r
Jf
1
2
3
4
5
6
vx
vy
vz
y
p
r
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 )
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
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 =
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
Apuntes de Robtica
Ingeniera Informtica
s+ s
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
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
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
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
~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
=
~
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
~ 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
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
ix
iy
iz
~
dL
= I
~ +
~ I~
dt
R
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
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
i+1,i
i =
queda
i,i+1
~
dL
dt
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
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
Se obtienen
f0,1 y 0,1
usando
T1a/b, T2a/b
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
Se obtienen
vn1 an1 n1 n1
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
vcn acn
Se conocen
fn,n+1y n,n+1
ROB2/40
Apuntes de Robtica
Ingeniera Informtica
Hasta ahora hemos visto cules son las coordenadas de articulacin que llevaran el
punto terminal de un brazo robot a la posicin deseada. En esta seccin trataremos de ver
cmo debera moverse para trasladarse de un punto a otro. Esto signica conocer cul es
la posicin, velocidad y aceleracin del brazo en funcin del tiempo.
Es importante decir cmo vamos a especicar la trayectoria. El usuario no debera
tener que dar especicaciones detalladas de posicin, velocidad y aceleracin para cada
articulacin en cada punto, sino tan slo valores iniciales y nales; el robot debera saber
cmo interpolar para hallar los puntos intermedios. La posicin, velocidad y aceleracin
deben computarse en tiempo real, a una tasa que suele oscilar entre las 20 y 200 veces por
segundo.
La trayectoria que normalmente especicamos es la del efector nal, referida al sistema
de coordenadas de la base. Adems de el punto inicial y nal, es usual dar algunos puntos
intermedios para evitar choques con obstculos, e incluso el tiempo de paso por cada uno
de esos puntos.
La funcin que describir la trayectoria va de R en R o en R , puesto que a cada
instante de tiempo (un nmero real) le asignar un vector de valores representando la
posicin y orientacin, bien en el espacio cartesiano, bien en el de articulacin.
6
nj
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 ]
(0) =
(0)
=0
(2.10)
(t ) =
(t ) = 0
(2.11)
ROB2/41
0
Apuntes de Robtica
Ingeniera Informtica
(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
=
=
=
=
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
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
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
(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
2)
(0 + 21 t
b
tf
2
tb
2 t
f tb + (f 0 ) = 0
t
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,
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
djk
jk
tj
tk
t jk
l
k
t djk
Apuntes de Robtica
y k, que es
Ingeniera Informtica
k j
jk =
tdjk
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 |
(puesto que
kl
= jk + k tk
kl jk
k
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
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
y las de la inversa,
= atan2(y, x)
q
x2 + y 2
r =
z = z
J =
x
r
y
r
z
r
x
z
y
z
z
z
cos() r sin() 0
= sin() r cos() 0
0
0
1
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
x2
x=a
y
vy
+ y2
a
vy
= 2
a + y2
r =
a2
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
Vs
Vs
Devanado de hilo
d
R
V0
R
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
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
TM
2X
S
2X
S
Apuntes de Robtica
Ingeniera Informtica
Regleta fija
Parte movil
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.
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)
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
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
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
dt
'
3.2.3. Acelermetros
Apuntes de Robtica
Ingeniera Informtica
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
(vista lateral)
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
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.
Objeto
8/10
cm
Apuntes de Robtica
Ingeniera Informtica
decrece al avanzar. El segundo problema es que son sensibles a las variaciones de la luz
ambiente y de la temperatura. Esto se resuelve mandando la luz no de modo contnuo, sino
pulsante, a una frecuencia de unos 6KHz. En este caso de la seal recibida se puede ltrar
la componente interesante y ver su amplitud (vase la gura).
Int. emitida
Int. reflejada
Apuntes de Robtica
Ingeniera Informtica
1
2
3
2
3
1
Objeto
Objeto
Catadioptrico
Sensor de retrorreflector
Espejos moviles
Laser
Laser
Lente cilindrica
A
B
Colimador
SA
Objeto
Camaras
Cinta transportadora
SB
TM
Apuntes de Robtica
Rejilla protectora
Condensador
Ingeniera Informtica
22.5
22.5
45
45
67.5
tierra
90
Anillo de
aislamiento
67.5
50 30 10 0
0 10 30 50
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
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.
Apuntes de Robtica
Ingeniera Informtica
Senal a la
circuiteria de
desacoplo
Electrodos
Lamina de plastico
Lamina de elastomero
Capa
plastica
Lamina
metalica
Tubo de aire
comprimido
Contactos
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
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
Flexion
V
Extension
Vs
Apuntes de Robtica
Ingeniera Informtica
Mx f x
1
3
My
fy
Mz
z
5
fz
6
Fx
Fy
Fz
Mx
My
Mz
0
0 K13 0
0
0 K17 0
K21 0
0
0 K25 0
0
0
0 K32 0 K34 0 K36 0 K38
0
0
0 K44 0
0
0 K48
0 K52 0
0
0 K56 0
0
K61 0 K63 0 K65 0 K67 0
w1
w2
w3
w4
w5
w6
w7
w8
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
Apuntes de Robtica
Ingeniera Informtica
C1
(a)
(b)
C2
(c)
C2
P1
C1
P1
P2
Piston
Cilindro
P1 < P2
C2
Masa
P2
Piston
Masa
Cilindro
Desp. izq.
P1 > P2
Desp. der.
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
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
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
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
Induc. arm.
Res. arm.
Va
Eg
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)
(4.5)
(4.6)
(4.7)
(4.8)
y as puede verse que el diagrama de bloques del sistema descrito por estas ecuaciones
sera el mostrado en la gura 4.8
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
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
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
1
6
C
3
5
4
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
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
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
Apuntes de Robtica
Ingeniera Informtica
Paso 0 Paso 1
Paso 0 Paso 1
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
dis
CE C
CE
Apuntes de Robtica
Ingeniera Informtica
CC
CE
CE
T1
T2
T
Ideal
Real
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
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
=
r1
r2
N1 /N2
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
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)
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
N1
N2
2
J2
ROB4/16
Apuntes de Robtica
Ingeniera Informtica
Si elegimos
N1
N2
J1
J2
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
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
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
Res. en la posicion
Res. en control
Desp. desde
la izquierda
Puntos consecutivos
ROB4/19
Desp. desde
la derecha
Apuntes de Robtica
Ingeniera Informtica
ROB4/20
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
=0
AKm
s(1 + sm )(1 + sa )
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
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
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
Gin (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
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
Tf + T gr
A
1+s a
KT
R a+ L as
+
+
1
B + J Ts
(s)
(t) 1
(t)
(s)
KE
Kg
Kp
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
(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
ROB5/5
d0
s
Apuntes de Robtica
Ingeniera Informtica
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
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
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
PID
(c)
(d)
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)
(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
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
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
Apuntes de Robtica
Ingeniera Informtica
ROB5/10
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
Apuntes de Robtica
Ingeniera Informtica
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
ROB6/3
Apuntes de Robtica
Ingeniera Informtica
Aunque ningn lenguaje de programacin hoy da cumple todos los requerimientos especicados anteriormente, hay varios que resultan tiles, dependiendo de la tarea especca
a que se les destine.
Veamos la divisin y algunos lenguajes principales. En primer lugar, estableceremos una
clasicacin por la sintxis y complejidad. Aqu se distinguen tres tipos:
Secuenciadores de instrucciones: simplemente almacenan y posteriormente repiten una
secuencia de posiciones y acciones (apertura/cierre de la pinza, etc.) en un rden ms
o menos jo. Tales posiciones y acciones se aprenden, de varias maneras:
Mediante movimiento del robot con un joystick, ratn o teclado especial suspendido del techo ( "teach pendant" )
Mediante movimiento manual y almacenamiento de las posiciones de los encoders . En este caso, se pueden ejecutar los movimientos a diferente velocidad
de la que se almacenaron.
Normalmente, estos lenguajes incorporan tambin rdenes especiales para retraso (dejar que concluya la ejecucin de un movimiento) o para especicacin de las acciones
requeridas ante seales sensoriales especcas (errores, etc.) o ausencia de ellas. La
facilidad de "programarn robot de este modo hace comn el uso de secuenciadores
en entornos industriales poco exibles (cadenas de montaje de automviles, etc.).
Extensiones a lenguajes clsicos: son mdulos especcos para el manejo de sensores
y actuadores, ms estructuras de datos adaptadas (matrices homogneas, etc.) conservando la sintxis general y control de ujo del lenguaje escogido. Se pueden basar
en BASIC, PASCAL, C, etc. Por las razones expuestas en el apartado anterior, es
necesario que estos lenguajes corran sobre un S.O. de tiempo real.
Lenguajes especcos para robots: fueron diseados por rmas comerciales (salvo uno
de la Univ. de Stanford) para ser vendidos junto con sus manipuladores, teniendo en
cuenta los sensores y actuadores a que se deban conectar. Todos ellos incorporan el
manejo de las seales de los sensores, y de acuerdo a sus valores pueden cambiar en
tiempo real el ujo del programa. Adems, incorporan descripcin y razonamiento en
trminos geomtricos, e interfaces a sistemas CAD/CAM.
Por otra parte, y respecto al nivel de abstraccin que permiten a la hora de especicar
la tarea, podemos clasicar estos lenguajes en:
Orientados al robot: sus primitivas son comandos de movimiento para el robot, o peticiones de lectura de sensores. Se deja al usuario la tarea de establecer explcitamente,
y de modo secuencial, cules deben ser los movimientos a ejecutar, as como cul
ser el comportamiento segn los valores de los sensores en cada instante. El nivel de
especicacin es, sin embargo, sucientemente alto, como veremos en los ejemplos,
como para que una tarea simple se pueda programar con rapidez.
Orientados a la tarea: permiten al usuario especicar qu debe hacer el robot, pero
no necesariamente cmo debe hacerlo, al menos, hasta cierto punto. Las especicaciones de tarea se pueden dar en forma textual, o ayudndose de un interface grco
(simulador del mundo del robot).
ROB6/4
Apuntes de Robtica
Ingeniera Informtica
Es conveniente ahora dar y comentar un esquema que explique cul es el software que
genricamente se emplea en la programacin y uso de un sistema robotizado, cules son las
relaciones entre sus partes y a qu nivel se emplea cada una. Lo que sigue explica la gura
6.1. En ella encontramos, de abajo a arriba:
Usuario
Definicion
de la tarea
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
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
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
Apuntes de Robtica
Ingeniera Informtica
: 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
taladrobloque
Mundo
x
y
z y
x
bloque
A
o
n
a
cabeza_tornillo
alimentador
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);
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
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
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
Modelo
del mundo
Apuntes de Robtica
Ingeniera Informtica
Apuntes de Robtica
Ingeniera Informtica
H
h
r
Cilindro
r=cte.
Cono
r=K(Hh)
Prisma
a=cte.
Piramide
a=K(Hh)
Apuntes de Robtica
Ingeniera Informtica
Aunque no es realmente un lenguaje orientado a tarea, AUTOPASS fue creado por IBM
para usos robticos, y pretende ser el modelador geomtrico que debera ser consultado por
las rutinas de planicacin de tareas. De hecho, es un sistema CAD, pero con aadidos, que
permiten describir los objetos de un modo estructurado, que hace que su forma de almacenamiento represente de modo natural su estructura geomtrica, lo cual permita despus
reconocer objetos instanciando sus estructuras (de hecho, mediante un encaje ( matching )
sintctico).
Cada objeto se dene en AUTOPASS mediante un procedimiento que invoca a otros, bien previamente denidos, bien primitivas del lenguaje. Cada procedimiento admite parmetros que denen las caractersticas del objeto. Todos los objetos se consideran polidricos, y
los cilindros se aproximan como prismas de base poligonal (de hecho, la primitiva CYLIND
es realmente un prisma).
Ejemplo: Un tornillo sera un slido compuesto por otros tres, todos "cilndricos": la
cabeza, el cuerpo y la punta, Vase gura 6.6
Cabeza
Cuerpo
Punta
La denicin sera:
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;
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
Bl2
Bl3
Bl1
Bl3
Situacion inicial
Bl1
Situacion final
Cara 1
Apuntes de Robtica
Ingeniera Informtica
Estado nal
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
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
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
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
Vista superior
Vista lateral
cos() sin()
cos()
0
0
0
sin()
0 px
0 py
1 pz
0 1
Apuntes de Robtica
Ingeniera Informtica
Y
Y
W/W
1
1
S1 X
S2
Rueda
C/C
S3
(px ,py )
cos() sin()
cos()
0
0
0
sin()
A
T
=
0 px
0 py
1
0 1
T=
Ntese que
A
B
0
0
0
1
Apuntes de Robtica
Ingeniera Informtica
sin() cos()
sin()
0
0
0
cos()
A
T=
B
0
0 px
0 py
0 0
C
R
C
R
W
S
C
pC = C T C T pC
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.
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
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
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
vx = c( + ) vx s( + ) vy + dy dy
vy = s( + ) vx + c( + ) vy dx + dx
=
0 = 0
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
v = J W
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
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
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
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
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
Apuntes de Robtica
Ingeniera Informtica
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
Robot
Robot en
posicion siguiente
Punto de parada
Linea de desplazamiento posible
Punto de parada
Limite de regiones de influencia
Apuntes de Robtica
Ingeniera Informtica
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
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
Baliza 1
Baliza 2
Robot
Baliza 3
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
Apuntes de Robtica
Ingeniera Informtica
Pos. final
pasillo
robot
Pos. inicial
Destino
C
Origen
Trayectoria
encontrada
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
M1
T1
D1
M1
B
F
M2
B
Avance
T2
D2
M2
Apuntes de Robtica
Ingeniera Informtica
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
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
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
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
1 Good
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)
Modelo
del mundo
(estado final)
Prediccion ?
Mundo
fisico
(estado inicial)
Cambios en el mundo
siguiendo leyes fisicas
Mundo
fisico
(estado final)
tiempo
Apuntes de Robtica
Ingeniera Informtica
sensores
percepcion
modelizacion
planificacion
ejecucion tarea
control motores
actuadores
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
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
ROB8/7
Apuntes de Robtica
Ingeniera Informtica
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
Ay
r
A
A
r
B2
B2
B3
B1
B3
B1
Espacio libre
3 Para
ROB8/10
Apuntes de Robtica
Ingeniera Informtica
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
Linea de infrarojos
Sensores de contacto
Apuntes de Robtica
Ingeniera Informtica
Camara vertical
Plano de
Direccion de barrido
luz laser
lata
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
sin = tan 2
cos =
1+tan
tan (2) =
1
1+tan2
2 tan
1tan2
tan ( + ) =
tan +tan
1tan tan
tan ( ) =
tan tan
1+tan tan
ROBApA/1
Apuntes de Robtica
Ingeniera Informtica
ROBApA/2
Apuntes de Robtica
Ingeniera Informtica
[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:
ROBApB/3
Apuntes de Robtica
Ingeniera Informtica
ROBApB/4