Unidad Profesional Interdisciplinaria en Ingenier´ıa y Tecnolog´ıas Avanzadas

Implementaci´ on de un control par calculado para un robot RR y un RRR
utilizando Matlab y Working Model
Mecatr´onica IX. Rob´ otica 2
Autores:
Mart´ınez Chepe Jaime Jonathan
Osornio Ordu˜ na David
Rodr´ıguez Ram´ırez Juan de Dios
Grupo:
9MV2
9MV1
9MV1
Responsable de la asignatura:
Villarreal Cervantes Miguel Gabriel
6 de diciembre del 2010
UPIITA-IPN
´
Indice
1. INTRODUCCI
´
ON 2
2. MARCO TEOR
´
ICO 3
2.1. Cinem´atica directa e inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1. Robot RR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2. Robot RRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. M´odelo din´amico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1. Robot RR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2. Robot RRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3. Generaci´on de trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4. Control par calculado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. DESARROLLO 9
3.1. Robot de 2 GDL planar RR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1. Simulaci´on en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2. Animaci´on en Working Model con v´ınculo con Matlab. . . . . . . . . . . . . . . . . 10
3.2. Robot de 3 GDL planar RRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4. CONCLUSIONES 20
1 Rob´ otica 2.
UPIITA-IPN
1. INTRODUCCI
´
ON
En este documento reportaran las simulaciones de un robot de 2 GDL planar RR y un
robot de 3 GDL planar RRR. Esto se har´a con la ayuda de Matlab y Working Model los cuales estar´an
comunicados con la ayuda de Matlab Proxy. De maner´a general la funcionalidad de cada uno de estos
programas es:
Matlab. Actuar´a como el controlador del robot, en este s´e genrar´a la trayectoria que se desea seguir
y s´e pragramar´a el modelo din´amico del robot as´ı como su controlador.
Working Model. Tendr´a comunicaci´ on con Matlab y ayudar´a a observar el comportamiento fisico del
robot.
Matlab Proxy. Servir´a para comunicar a Matlab con Working Model.
Primero se simular´a en Matlab el control de movimiento del robot RR y despu´es se proseguir´a simular
el robot en Working Model y se obtendr´an las gr´aficas pertinentes.
Despu´es de lo anterior se proseguir´a con la simulaci´on del robot RRR, el cual deber´a tomar un objeto y
trasladarlo a una posici´on dada. Para esto el robot ser´a controlado y se le definir´a una trayectoria para
lograr su tarea.
2 Rob´ otica 2.
UPIITA-IPN
2. MARCO TEOR
´
ICO
2.1. Cinem´atica directa e inversa
La cinem´atica inversa es resolver el problema de: dada la posici´on y orientaci´on deseadas de la her-
ramienta respecto a la estaci´on encontrar los ´angulos de articulaci´on que logren este resultado deseado
(Craig, 2006).
2.1.1. Robot RR
i α
i−1
a
i−1
d
i
θ
i
1 0 0 0 θ
1

π
2
2 0 L
1
0 θ
2
3 0 L
2
0 0
Cuadro 1: Par´ametros de Denavit-Hartenberg
0
1
T =

sin θ
1
cos θ
1
0 0
−cos θ
1
sin θ
1
0 0
0 0 1 0
0 0 0 1
¸
¸
¸
¸
1
2
T =

cos θ
2
−sin θ
2
0 L
1
sin θ
2
cos θ
2
0 0
0 0 1 0
0 0 0 1
¸
¸
¸
¸
2
3
T =

1 0 0 L
2
0 1 0 0
0 0 1 0
0 0 0 1
¸
¸
¸
¸
(
0
1
T)(
1
2
T)(
2
3
T) =
0
3
T =

sin (θ
1
+ θ
2
) cos (θ
1
+ θ
2
) 0 L
2
sin (θ
1
+ θ
2
) + L
1
sin θ
1
−cos (θ
1
+ θ
2
) sin (θ
1
+ θ
2
) 0 −L
2
cos (θ
1
+ θ
2
) −L
1
cos θ
1
0 0 1 0
0 0 0 1
¸
¸
¸
¸
Para la cinem´atica inversa se tienen las siguientes ecuaciones:
θ
2
= arc cos

x
2
+ y
2
−L
2
1
−L
2
2
2L
1
L
2

(1)
θ
1
=
π
2
+ arctan

y
x

−arcsin

L
2
sin θ
2

x
2
+ y
2

(2)
2.1.2. Robot RRR
i α
i−1
a
i−1
d
i
θ
i
1 0 0 0 θ
1

π
2
2 0 L
1
0 θ
2
3 0 L
2
0 θ
3
4 0 L
3
0 0
Cuadro 2: Par´ametros de Denavit-Hartenberg
3 Rob´ otica 2.
UPIITA-IPN
0
1
T =

sin θ
1
cos θ
1
0 0
−cos θ
1
sin θ
1
0 0
0 0 1 0
0 0 0 1
¸
¸
¸
¸
1
2
T =

cos θ
2
−sin θ
2
0 L
1
sin θ
2
cos θ
2
0 0
0 0 1 0
0 0 0 1
¸
¸
¸
¸
2
3
T =

cos θ
3
−sin θ
3
0 L
2
sin θ
3
cos θ
3
0 0
0 0 1 0
0 0 0 1
¸
¸
¸
¸
3
4
T =

1 0 0 L
3
0 1 0 0
0 0 1 0
0 0 0 1
¸
¸
¸
¸
Para resolver la cinem´atica inversa del robot de 3 GDL planar RRR se decidi´o hacer uso del m´etodo
geom´etrico por que resulta m´as sencillo que los m´etodos basados en los par´ametros D-H. Se dedujeron las
ecuaciones para las articulaciones del robot como a continuaci´on se desarrolla. Se consider´o la configuraci´on
con codo hacia abajo como se ve en la figura 1.
Figura 1: Obtenci´on de la cinem´atica inversa
Dado que se conoce la orientaci´on del ultimo eslab´on (φ) se reduce el problema del robot RR a un
robot RR haciendo el siguiente cambio de variable.
x = x −L
3
cos φ
y = y −L
3
sin φ
ρ =
2

(x

)
2
+ (y

)
2
L
2
2
= L
2
1
+ ρ
2
−2L
1
ρ cos β
-2L
1
ρ cos β = L
2
2
−(L
2
1
+ ρ
2
)
2L
1
ρ cos β = (L
2
1
+ ρ
2
) −L
2
2
β = a cos

(L
2
1

2
)−L
2
2
2L1ρ

4 Rob´ otica 2.
UPIITA-IPN
θ = a tan

y

x

q
1
=
π
2
−β −θ (3)
ρ
2
= L
2
1
+ L
2
2
−2L
1
L
2
cos γ
−2L
1
L
2
cos γ = ρ
2
−(L
2
1
+ L
2
2
)
2L
1
L
2
cos γ = (L
2
1
+ L
2
2
) −ρ
2
γ = a cos

(L
2
1
+L
2
2
)−ρ
2
2L
1
L
2

q
2
= π −γ (4)
Para hallar la ultima variable de articulaci´on q
3
se sabe que la orientaci´on del robot RRR est´a definida
por la suma de la tres variables de articulaci´on q
1
, q
2
y q
3
, la orientaci´on del efector final se mide desde
eje x y positivo en direcci´on antihoraria.
π
2
= q
1
+ q
2
+ q
3
+ (−φ)
q
3
=
π
2
+φ −(q
1
+q
2
) (5)
2.2. M´odelo din´amico
La formulaci´on del modelo din´amico de Newton-Euler es un m´etodo de ”balance de fuerzas”din´amicas,
y la formulaci´on lagrangiana es un m´etodo de ”balance de energ´ıas”de la din´amica. Desde luego, para el
mismo manipulador, ambos m´etodos proporcionar´an las misma ecuaciones de movimiento (Craig, 1996).
A continuaci´on se describe brevemente como los pasos a seguir para calcular el modelo din´amico de un
robot.
1.- Calcular la posici´on para el centro de masa para todos los eslabones.
2.- Calcular las velocidades para el centro de masa para cada eslab´on.
3.- Calcular la energ´ıa cin´etica para cada eslab´on.
k
i
=
1
2
m
i

0
V
T
ci
0
V
ci

+
1
2
i
ω
ci
i
I
i
i
ω
i
4.- Calcular ˜ na energ´ıa potencial para cada eslabo´on.
V
i
= m
i
gh
i
5.- Obtener el Lagrangiano.
L =
n
i=1
K
i

n
i=1
V
i
6.- Obtener las ecuaciones de Lagrange.
5 Rob´ otica 2.
UPIITA-IPN
τ
i
=
d
dt

∂L

˙
θ
i

∂L
∂θ
i

La ecucaci´on en el espacio de estados
A menudo es conveniente expresar las ecuaciones din´amicas de un manipulador en una sola ecuaci´on
que oculte algunos de los detalles, pero que muestre parte de la estructura de las ecuaciones (Craig, 1996).
τ = M(q)¨ q + C(q, ˙ q) ˙ q + G(q)
τ R
n
: Vector de fuerzas y pares de entrada.
q R
n
: Vector de coordenadas generalizadas.
M(q) R
nxn
: Matriz de inercia, tiene que ser sim´etrica y definida positiva.
C(q, ˙ q) R
nxn
: Matriz con las fuerzas centr´ıfigas y de coriolis.
G(q) R
n
: Vector de fuerzas de gravedad.
2.2.1. Robot RR
τ = M¨ q + C ˙ q + G ⇒
¸
τ
1
τ
2

= M
¸
¨
θ
1
¨
θ
2

+ C
¸
˙
θ
1
˙
θ
2

+ G
M =
¸
M
11
I
2z
+ m
2

P
2
2x
+ P
2
2y
+ L
1
P
2x
cos θ
2
−L
1
P
2y
sin θ
2

I
2z
+ m
2

P
2
2x
+ P
2
2y
+ L
1
cos θ
2
P
2x
−L
1
sin θ
2
P
2y

I
2z
+ m
2

P
2
2x
+ P
2
2y

C =
¸
−2
˙
θ
2
L
1
P
2y
m
2
cos θ
2
−2
˙
θ
2
L
1
P
2x
m
2
sin θ
2

˙
θ
2
L
1
m
2
(cos θ
2
P
2y
+ sin θ
2
P
2x
)
˙
θ
1
L
1
m
2
(cos θ
2
P
2y
+ sin θ
2
P
2x
) 0

G =
¸
gP
2y
m
2
cos (θ
1
+ θ
2
) + gP
2x
m
2
sin (θ
1
+ θ
2
) + gP
y
m
1
cos θ
1
−gL
1
m
2
sin θ
1
+ gP
x
m
1
sin θ
1
gm
2
(cos(θ
1
+ θ
2
)P
2y
+ sin(θ
1
+ θ
2
)P
2x
)

M
11
= I
z
+ I
2z
+ L
2
1
m
2
+ P
2
x
m
1
+ P
2
y
m
1
+ P
2
2x
m
2
+ P
2
2y
m
2
+ 2L
1
P
2x
m
2
cos θ
2
−2L
1
P
2y
m
2
sin θ
2
2.2.2. Robot RRR

M
11
M
12
M
13
M
21
M
22
M
23
M
31
M
32
M
33
¸
¸

¨
θ
1
¨
θ
2
¨
θ
3
¸
¸
+

C
11
C
12
C
13
C
21
C
22
C
23
C
31
C
32
C
33
¸
¸

˙
θ
1
˙
θ
2
˙
θ
3
¸
¸
+

G
11
G
21
G
31
¸
¸
=

τ
1
τ
2
τ
3
¸
¸
6 Rob´ otica 2.
UPIITA-IPN
M
11
= m
1
l
2
1
+ I
z
+ I
2z
+ I
3z
+ m
2

L
2
1
+ l
2
1
+ 2L
1
l
2
cos(θ
2
+ γ
2
)

+ m
3

L
2
1
+ L
2
2
+ l
2
3
+ 2L
1
L
2
cos θ
2
+2l
3
(L
1
cos(θ
2
+ θ
3
+ γ
3
) + L
2
cos(θ
3
+ γ
3
))

M
12
= I
2z
+ I
3z
+ m
2
l
2
(l
2
+ L
1
cos(θ
2
+ γ
2
)) + m
3

L
2
2
+ l
2
3
+ L
1
L
2
cos θ
2
+ L
1
l
3
cos(θ
2
+ θ
3
+ γ
3
)
+2L
2
l
3
cos(θ
3
+ γ
3
)

M
13
= I
3z
+ m
3
l
3
(l
3
+ L
1
cos(θ
2
+ θ
3
+ γ
3
) + L
2
cos(θ
3
+ γ
3
))
M
21
= I
2z
+ I
3z
+ m
2
l
2
(l
2
+ L
1
cos(θ
2
+ γ
2
)) + m
3

L
2
2
+ l
2
3
+ L
1
L
2
cos θ
2
+ L
1
l
3
cos(θ
2
+ θ
3
+ γ
3
)
+2L
2
l
3
cos(θ
3
+ γ
3
)

M
22
= I
2z
+ I
3z
+ m
2
l
2
2
+ m
3

L
2
2
+ l
2
3
+ 2L
2
l
3
cos(θ
3
+ γ
3
)

M
23
= I
3z
+ m
3
l
3
(l
3
+ L
2
cos(θ
3
+ γ
3
))
M
31
= I
3z
+ m
3
l
3
(l
3
+ L
1
cos(θ
2
+ θ
3
+ γ
3
) + L
2
cos(θ
3
+ γ
3
))
M
32
= I
3z
+ m
3
l
3
(l
3
+ L
2
cos(θ
3
+ γ
3
))
M
33
= I
3z
+ m
3
l
2
3
C
11
= −2m
1
L
1
l
2
˙
θ
2
sin(θ
2
+ γ
2
) −m
3
L
1

L
2
˙
θ
2
sin θ
2
+ l
3
(
˙
θ
2
+
˙
θ
3
) sin(θ
2
+ θ
3
+ γ
3
)

−2m
3
L
2
l
3
˙
θ
3
sin(θ
3
+ γ
3
)
C
12
= −m
2
L
1
l
2
˙
θ
2
sin(θ
2
+ γ
2
) −m
3
L
1

L
2
˙
θ
2
sin θ
2
+ l
3
(
˙
θ
2
+
˙
θ
3
) sin(θ
2
+ θ
3
+ γ
3
)

−2m
3
L
2
l
3
˙
θ
3
sin(θ
3
+ γ
3
)
C
13
= −m
3
l
3

L
1
(
˙
θ
2
+
˙
θ
3
) sin(θ
2
+ θ
3
+ γ
3
) + L
2
˙
θ
3
sin(θ
3
+ γ
3
)

C
21
= −m
3

2L
2
l
3
˙
θ
3
sin(θ
3
+ γ
3
) + L
1
L
2
˙
θ
2
sin θ
2
+ L
1
l
3
(
˙
θ
2
+
˙
θ
3
) sin(θ
2
+ θ
3
+ γ
3
)

m
2
L
1
l
2
˙
θ
1
sin(θ
2
+ γ
2
) + m
3
L
1
˙
θ
1
(L
2
sin θ
2
+ l
3
sin(θ
2
+ θ
3
+ γ
3
)) −m
2
L
1
l
2
˙
θ
2
sin(θ
2
+ γ
2
)
C
22
= −2m
3
L
2
l
3
˙
θ
3
sin(θ
3
+ γ
3
) + L
1
˙
θ
1
(m
2
l
2
sin(θ
2
+ γ
2
) + m
3
(L
2
sin θ
2
+ l
3
sin(θ
2
+ θ
3
+ γ
3
)))
C
23
= −m
3
L
2
l
3
˙
θ
3
sin(θ
3
+ γ
3
) + m
2
L
1
l
2
˙
θ
1
sin(θ
2
+ θ
3
+ γ
3
)
C
31
= −m
3

L
2
l
2
˙
θ
3
sin(θ
3
+ γ
3
) + L
1
l
3
(
˙
θ
2
+
˙
θ
3
) sin(θ
2
+ θ
3
+ γ
3
) −L
2
l
3
˙
θ
1
sin(θ
3
+ γ
3
)

C
32
= m
3
L
2
(l
3
˙
θ
2
−l
2
˙
θ
3
) sin(θ
3
+ γ
3
) + m
3
˙
θ
1
(2L
2
l
3
sin(θ
3
+ γ
3
) + L
1
l
3
sin(θ
2
+ θ
3
+ γ
3
))
C
33
= m
3
l
3
(L
2
sin(θ
3
+ γ
3
) + L
1
sin(θ
2
+ θ
3
+ γ
3
))
G
11
= m
1
gl
1
sin(θ
1
+ γ
1
) + m
2
g (L
1
sin θ
1
+ l
2
sin(θ
1
+ θ
2
+ γ
2
))
+m
3
g (L
1
sin θ
1
+ L
2
sin(θ
1
+ θ
2
) + l
3
sin(θ
1
+ θ
2
+ θ
3
+ γ
3
))
G
21
= m
2
gl
2
sin(θ
1
+ θ
2
+ γ
2
) + m
3
g (L
2
sin(θ
1
+ θ
2
) + l
3
sin(θ
1
+ θ
2
+ θ
3
+ γ
3
))
G
31
= m
3
gl
3
sin(θ
1
+ θ
2
+ θ
3
+ γ
3
)
7 Rob´ otica 2.
UPIITA-IPN
2.3. Generaci´ on de trayectoria
Para la generaci´on de trayectoria se utiliz´o un polinomio de B´ezier, el cual es el siguiente:
ϕ(t, t
1
, t
2
) = 1716
7
−9009
8
+ 20020
9
−24024
10
+ 16380
11
−6006
12
+ 924
13
(6)
Donde: =
t−t
1
t
2
−t
1
Sustituyendo la ecuaci´on 6 en las ecuaciones 7 y 8, se obtiene la trayectoria que debe de seguir el robot
desde un punto P
1
= [x
1
, y
1
] hasta un punto P
2
= [x
2
, y
2
].
x(t
1
, t
2
) = (x
2
−x
1
)ϕ(t, t
1
, t
2
) + x
1
(7)
y(t
1
, t
2
) = (y
2
−y
1
)ϕ(t, t
1
, t
2
) + y
1
(8)
2.4. Control par calculado
El control de par calculado nos sirve para controlar el movimiento de un robot dado y se define de la
siguiente forma:
τ = Mv + C ˙ q + G (9)
v = ¨ q
d
+ K
p
e + K
v
˙ e (10)
En la figura 2 se muestra el diagrama a bloques de este control.
Figura 2: Diagrama a bloques del control par calculado
8 Rob´ otica 2.
UPIITA-IPN
3. DESARROLLO
3.1. Robot de 2 GDL planar RR
3.1.1. Simulaci´on en Matlab.
En la Figura 3 se muestra la simulaci´ on en Matlab del robot RR, en este caso para estas gr´aficas se
resolvio la ecuaci´on diferencial del m´odelo din´amico del robot RR con:
tau = Mv + C ˙ q + G
Por lo tato en este caso τ ya no va a ser una constante si no que va a estar cambiando en el tiempo por
la acci´on del controlador de par calculado.
Posici´on angular del eslab´on 1 Posici´on angular del eslab´on 2
Velocidad angular del eslab´on 1 Velocidad angular del eslab´on 2
Figura 3: Simulaci´on en Matlab
9 Rob´ otica 2.
UPIITA-IPN
3.1.2. Animaci´on en Working Model con v´ınculo con Matlab.
Ahora se prosegir´a a programar el control en Matlab, esto se hizo con los c´odigos fuentes mostrados
en las Figuras 4 y 6.
Lo primero que hay que hacer es abrir Matlab y en su Command Window insertar la funci´on
qdeseada(p), la cual tiene un s´olo parametro de entrada que es la secuencia de puntos que se desea
recorrer, para este caso en particular ser´ıan los puntos p = [0, −6; 2, −4; 2, −2; 4, −2; 4, −4; 2, −4; 0, −6] =
[P
1
; P
2
; P
3
; P
4
; P
5
; P
2
; P
1
] (Ver Figura 6).
En general para el c´odigo fuente de la Figura 4 funciona de la siguiente manera:
Lineas 9-12. Se hacen globales las matrices de posici´on angular deseada(qdes), velocidad angular
deseada (dqdes) y aceleraci´on angular deseada (ddqdes). Y tambi´en se definen algunos parametros
del robot y el tiempo que tardar´a cada trayectoria.
L´ınea 13. Ecuaci´on de B´ezier, es la misma que la ecuaci´on 6 que se mostr´o anteriormente.
L´ıneas 15-18. Se calcul´an los polinomios de B´ezier para cada una de las trayectorias en x y y
(ecuaciones 7 y 8).
L´ıneas 20-21. Se calcula la cinem´atica inversa para todos los puntos de la trayectoria.
L´ıneas 23-29. Calculo de la derivada de los ´angulos θ
1
y θ
2
, obtenidos de la cinem´atica inversa.
Figura 4: C´odigo fuente que genera la trayectoria deseada
10 Rob´ otica 2.
UPIITA-IPN
Figura 5: C´odigo fuente para el enlace entre Matlab y Working Model
El c´odigo fuente de la figura 5, nos permite el enlace de Matlab con Working Model. Primero Working
Model envia las entradas correspondientes a la funci´on [r1,r2]=crr(q1,q2,dq1,dq2,t), d´onde de acuerdo al
m´odelo dinamico del robot RR estas son:
Salidas provenientes de Matlab y que recibe Working Model. [r1,r2]=[τ
1
, τ
2
]
Entradas a Matlab provenientes de Working Model. (q1,q2,dq1,dq2,t)=[θ
1
, θ
2
,
˙
θ
1
,
˙
θ
2
, t].
A continuaci´on se explicar´a el c´odigo fuente de la Figura 5:
L´ınea 2. Acomoda las entradas en dos matrices de 1x2.
L´ınea 3. Se recuper´an las variables globales generadas en el c´odigo fuente de la Figura 4.
L´ıneas 4-5. Se establecen los par´ametros fisicos del robot .
L´ıneas 9-21. M´odelo din´amico del robot.
L´ınea 23. Definen las costantes del controlador.
L´ınea 24. Calculo de el error y su derivada (e y ˙ e).
L´ıneas 25-27. Aplicaci´on de la ley de control y obtenci´on de τ
1
y τ
2
.
11 Rob´ otica 2.
UPIITA-IPN
Figura 6: Captura de la simulaci´on del robot RR en Working Model
12 Rob´ otica 2.
UPIITA-IPN
En las Figuras 7 y 8 se muestran las gr´aficas del error (e) y la derivada del error ( ˙ e) del controlador,
los datos para estas gr´aficas se obtienen capturando los datos de error del c´odigo fuente de la Figura 5,
en la l´ınea 24 de este c´odigo fuente se obtuvier´on los valores para estas gr´aficas.
Figura 7: Gr´afica del error para thete1 y theta2
Figura 8: Gr´afica de la derivada del error para dtheta1 y dtheta2
13 Rob´ otica 2.
UPIITA-IPN
3.2. Robot de 3 GDL planar RRR
Para las simulaci´on del Robot RRR en Working Model es el mismo procedimiento que el anterior,
lo primero es la progrmaci´on en Matlab, para la cual se hicier´on una serie de programas los cuales se
explicar´an en las siguientes hojas. Los dos principales programas que se deben de tener en cuenta son:
main. Este programa (Figura 9) se tendr´a que ejecuatar antes de iniciar la simulaci´on, ya que gener-
ar´a los datos y las trayectorias necesarias que necesita el robot.
control(q1,q2,q3,q1 d,q2 d,q3 d,t). Este programa (Figura 10) ser´a el controlador del robot y es-
tar´a enviando y recibiendo datos a Working Model.
Figura 9: C´odigo fuente del programa main
Para el programa de la Figura 9 es necesario de otros programas ya que este manda a llamarlos durante
le ejecuci´on del mismo. A continuaci´on se muestran estos programas:
En la l´ınea 23 se observa que se llama a la funci´on bezier pr, la cual sirve para calcular el polinomio
de bezier para la trayectoria dada. Su c´odigo fuente se muestra en la Figura 11.
En la l´ınea 26 se observa que se llama a la funci´on cinRRR, la cual contiene el m´odelo din´amico
del robot RRR. Su c´odigo fuente se muestra en la Figura 12. Observese que en las l´ıneas 3-21 se
asignan los valores f´ısicos que necesita el m´odelo.
14 Rob´ otica 2.
UPIITA-IPN
Figura 10: C´ odigo fuente del programa control
Con la ayuda de los programas anteriores se puede hacer la animaci´on en Working Model junto con Matlab
en la Figura 13 se muestra el robot en Working Model en su posici´on inicial.
Una vez que se incializa la animaci´on, el robot RRR ir´a y mover´a la pelota de un lugar a otro, en la
Figura 14 se muestran varias capturas de la animaci´on en proceso.
15 Rob´ otica 2.
UPIITA-IPN
Figura 11: C´odigo fuente para el polinomio de B´ezier
16 Rob´ otica 2.
UPIITA-IPN
Figura 12: C´odigo fuente que contiene el m´odelo din´amico del robot RRR
17 Rob´ otica 2.
UPIITA-IPN
Figura 13: Robot en Working Model
4 segundos 6.3 segundos
9.5 segundos 14.3 segundos
Figura 14: Capturas de la animaci´on en Working Model
18 Rob´ otica 2.
UPIITA-IPN
Figura 15: Gr´aficas obtenidas del programa main
19 Rob´ otica 2.
UPIITA-IPN
4. CONCLUSIONES
Para el robot RR se tuvo una simulaci´on exitosa, un poco m´as de complicaciones fueron la comuni-
caci´on con Matlab ya que para la comunicaci´on sea exitosa se tiene que tomar en cuenta una serie de
factores, como los punto y comas que lleve el programa y ciertas estructuras que son necesarias seguir
para que la comunicaci´on sea exitosa. Adem´as hay tomar en cuenta que Working Model tanto la posici´on
como la velocidad angular de los eslabones son referenciados con respecto al marco de referencia x, y.
En cuanto al control del robot se comprob´o que realmente tuviera un buen control y que al variar
las constantes Kp y Kv el control de este cambiaba de manera significativa, se podr´ıa tener un control
bueno con Kp y Kv, y al momento de cambiar estas constantes por otros valores num´ericos el robot se
sal´ıa completamente de control. De aqu´ı la importancia de una buena sintonizaci´on de estas constantes
y tambi´en se verifico que no es tan trivial encontrar las constantes adecuadas, ya que se requiere de un
gran n´ umero de pruebas para tener unas constantes que respondan de manera efectiva.
Referencias
[1] John J. Craig, Rob´otica, Prentice Hall, Tercera Edici´on, 2006.
[2] Dennis G. Zill, Michael R. Cullen, Ecuaciones diferenciales con problemas de valores en la frontera,
Thomson, Quinta Edici´on, 2002.
20 Rob´ otica 2.

Sign up to vote on this title
UsefulNot useful