Vous êtes sur la page 1sur 5

UNIVERSIDAD TÉCNICA DEL NORTE

FACULTAD DE INGENIERIA EN CIENCIAS APLICADAS


CARRERA DE INGENIERÍA EN MECATRÓNICA

ROBÓTICA E INTELIGENCIA ARTIFICIAL

DEBER NRO: 3
TEMA: CINEMATICA DE ROBOTS INDUSTRIALES

ACTIVIDADES DE APRENDIZAJE
1. Investigue sobre Cinemática Inversa
a) Definición
b) Métodos
c) Ejemplos (2)

2. Realice los siguientes ejercicios empleando el Toolbox Robotics previamente instalado en Matlab.
Leer el anexo A.

2.1 Analice la cinemática directa del robot planar de 3 grados de libertad con el método Denavit-Hartenberg,
y luego escriba el algoritmo para crear el robot utilizando el Toolbox Robotics.

2.2 Utilice el robot creado en el ejercicio 2. Defina una posición articular q=[Θ1, Θ2, …, Θn], donde 𝜃
representa a cada uno de los angulos de las rotaciones que tiene el robot. Luego obtenga la posición
y orientación del extremo operativo utilizando el comando fkine. Atención a la conversión grados –
radianes.

2.3 Con el robot PUMA, defina una posición articular q=[Θ1, Θ2, …, Θn], donde 𝜃 representa a cada uno
de los angulos de las rotaciones que tiene el robot. Verifique cuantas articulaciones tiene el robot.
Luego obtenga la posición y orientación del extremo operativo utilizando el comando fkine. Atención
a la conversión grados – radianes.

Página 1 de 5
2.4 Determinar la cinemática inversa utilizando las matrices de transformación obtenidas en el ejercicio
2.2. Utilice los comandos ikine o ikine6s. Atención a la conversión grados – radianes.
Comente si las variables articulares q obtenidas al aplicar la cinemática inversa son iguales a las del
ejercicio 2.2.

2.5 Determinar la cinemática inversa utilizando las matrices de transformación obtenidas en el ejercicio
2.3. Utilice los comandos ikine o ikine6s. Atención a la conversión grados – radianes.
Comente si las variables articulares q obtenidas al aplicar la cinemática inversa son iguales a las del
ejercicio 2.3.

2.6 Realice un script en Matlab que mueva al robot en coordenadas cartesianas describiendo un
cuadrado.
Puede emplear cualquier robot comercial de la toolbox (todos empiezan con mdl).

A continuación, se muestra un ejemplo, en el cual el robot PUMA 560 se mueve entre dos puntos.
mdl_puma560
T1 = transl(0.5, 0.1, 0.0)
T2 = transl(0.5, 0.5, 0.0)
T = ctraj(T1, T2, 50);
q = p560.ikine6s(T);
p560.plot(q)

NOTA: En el deber, adjuntar los scripts, y capturas de pantalla respectivas.

Página 2 de 5
ANEXO A. CINEMATICA DE UN ROBOT INDUSTRIAL EMPLEANDO EL TOOLBOX ROBOTICS

CREACION DE UN ROBOT

Para cargar el modelo cinemático del robot debe introducir los parámetros de Denavit-Hartenberg de cada
eslabón empleando el comando link.
Link([THETA D A ALPHA SIGMA])

Observe el orden que debe utilizar para introducir cada uno de los parámetros D-H. El argumento sigma es
una bandera que se utiliza para indicar si la articulación es de rotación (sigma = 0) o prismática (sigma =
1).

A continuación, se muestra un ejemplo con el robot planar de 2 grados de libertad.

Considerando que a1=a2=1 y como 𝜃1 y 𝜃2 son variables se colocan en su posición inicial en 0o

Entonces, se sigue el siguiente procedimiento para crear el robot:


%Crear cada articulación
>> L(1) = Link([0 0 1 0 0]);
>> L(2) = Link([0 0 1 0 0]);
%Crear el robot
>> robot = SerialLink(L);
%Coloca un nombre al robot
>> robot.name = 'Planar2R';
%Dibuja el robot en el espacio si 𝜃1 = 0𝑜 y 𝜃2 = 0𝑜
>> robot.plot([0 0])

Se coloca al mismo robot en los ángulos 𝜃1 = 45𝑜 y 𝜃2 = 45𝑜


%Crear cada articulación
>> L(1) = Link([0 0 1 0 0]);
>> L(2) = Link([0 0 1 0 0]);
%Crear el robot
>> robot = SerialLink(L);
%Coloca un nombre al robot
>> robot.name = 'Planar2R';
%Dibuja el robot en el espacio si 𝜃1 = 45𝑜 y 𝜃2 = 45𝑜
>> robot.plot([pi/4 pi/4])

Página 3 de 5
Se puede controlar el robot mediante el cambio de sus variables articulares 𝜃1 y 𝜃2 añadiendo el siguiente
comando
>> robot.teach

La toolbox de Matlab incorpora varios robots comerciales que se pueden utilizar directamente, por
ejemplo el PUMA560. Pruebe a controlarlo.

%Crea un robot PUMA560


>> mdl_puma560
>> p560.teach

CINEMATICA DIRECTA

Como ya se mencionó, el problema cinemático directo consiste en determinar la posición y orientación final
del extremo del robot a partir de las articulaciones y parámetros geométricos del robot.

Para ello se utiliza la función “fkine” del objeto “robot”, la cual toma como parámetro un vector de
movimiento en el que se especifica el valor del parámetro variable de cada articulación y devuelve la
matriz homogénea que describe la posición y orientación del extremo final.

Para el robot planar de 2 grados de libertad creado previamente, se adiciona las siguientes líneas de
código que permiten encontrarla matriz de transformación homogénea (Posición y orientación del extremo
final)

>> q=[0 0]
>> T=robot.fkine(q)

q es un vector que contiene las variaciones de las variables articulares 𝜃, en este ejemplo 𝜃1 = 0𝑜 y
𝜃2 = 0𝑜

CINEMATICA INVERSA

En el caso de la cinemática inversa el problema es justamente el opuesto, tratar de determinar los


valores que deben asumir los parámetros variables de cada articulación para lograr una posición
determinada por una matriz de transformación homogénea.

En el toolbox ya existe una función con dicho propósito, se llama “ikine” o “ikine6s”, pertenece al objeto
robot, y toma como argumento una matriz de transformación que indique la posición final deseada.
K = robot.ikine(T,Q0,M,OPTIONS)

Los parámetros opcionales son: Q0 es el punto inicial de la función de cálculo (recuérdese que las
funciones de estimación son iterativas y en este caso requiere de una aproximación inicial), este valor por
defecto es nulo. M es una matriz de mascara para el caso de manipuladores con más de 6 grados de
libertad. Esta mascara restringe los movimientos posibles para restringir las posibles soluciones; cada
elemento de la matriz representa uno de los grados de libertad que pueden ser restringidos mediante un
“0” en dicha matriz.

Si modificamos la matriz T y volvemos a llamar a la función “ikine”, vemos que el vector de coordenadas
articulares K cambia.

Página 4 de 5
Para el robot planar de 2 grados de libertad creado previamente, se adiciona las siguientes líneas de
código que permiten encontrarla las variables articulares a partir de la matriz de transformación
homogénea

>> K= robot.ikine(T)

Se compara los vectores q y K, que corresponden a las variables articulares 𝜃1 y 𝜃2 .

INTERPOLACION DE TRAYECTORIAS

Entre otras muchas cosas, el toolbox de robótica contiene interpoladores para generar trayectorias, tanto
en el espacio cartesiano como en el espacio articular.

Se pueden utilizar los siguientes comandos:

JTRAJ: Nos permite calcular una trayectoria interpolada entre dos puntos del espacio articular. En su
forma más básica, le damos dos puntos (vectores) y un número de puntos de muestra, y nos devolverá
una trayectoria, en la que se han puesto condiciones de contorno de velocidad y aceleración nulas en
ambos extremos, o bien, si le indicamos parámetros adicionales, se incluirán velocidades de paso y
aceleraciones de paso como condiciones de contorno. Opcionalmente nos retorna los vectores de
velocidad y aceleración.

[Q, QV, QA] = JTRAJ(Q0, Q1, N)

CTRAJ: Calcula una trayectoria cartesiana entre dos puntos. Dadas dos matrices homogéneas de
transformación (dos localizaciones espaciales) nos retornará una trayectoria por medio de una matriz
4x4xN, en donde cada matriz es según N el punto en el instante de muestre dado.
TC = CTRAJ(T0, T1, n)

TRINTERP: Calcula la matriz homogénea resultante de interpolar entre T0 y T1, siendo R=0 la posición
T0 y R=1 la posición T1. Lo más interesante de este método es que la interpolación se realiza utilizando
la interpolación lineal esférica por medio de los correspondientes cuaternios, y por tanto es un movimiento
de orientación "natural".

TR = TRINTERP(T0, T1, R)

Página 5 de 5

Vous aimerez peut-être aussi