Академический Документы
Профессиональный Документы
Культура Документы
Resumen
En este documento se muestra paso a paso la metodologı́a para obtener el modelo dinámico de un
sistema robótico usando como herramienta los parámetros y matrices de transformación calculados con
el método de Denavit-Hartenberg directo.
Figura 1: En la imagen se puede observar la disposición de los eslabones que conforman la arquitectura
SCARA. El sistema cuenta con 3 grados de libertad, de tipo R-R-P.
Figura 2: En la figura se muestran los ejes de movimiento de los eslabones, los cuales son importantes de
definir, ya que, con ellos, se estableceran los ejes zi del sistema.
1
Una vez definidos los ejes de movimiento definiremos la pose (posición y orientación) de los marcos
coordenados Oi con i = 0, 1, 2, 3.
Para este fin, colocaremos los marcos coordenados tomando en cuenta las siguientes reglas:
Tomando en cuenta las anteriores restricciones, los marcos coordenados tienen la siguiente disposición,
ver Figura 3.
q1 z1
l1
l2 z2
h2 x1
cm1 cm2 x2
h1 z0 z3 q2
cm2 x3
x0
Figura 3: En la figura se observa finalmente la disposición de los marcos coordenados que definen los
eslabones del sistema robótico, ası́ como el movimiento que realizan. La base del sistema está definida
como O0 .
Una vez definidos los marcos coordenados del robot manipulador, calcularemos la tabla de parámetros
de Denavit-Hartenberg (D-H).
Variable Definición
θi El ángulo medido sobre el eje zi−1 para colocar el eje xi−i en dirección y sentido de xi .
di La distancia en dirección de zi−1 para colocar el origen de xi−1 sobre el origen de xi .
ai La distancia en dirección de xi para colocar el origen de zi−1 sobre el origen de zi .
αi El ángulo medido sobre el eje xi para colocar el eje zi−i en dirección y sentido de zi .
Dadas las anteriores definiciones, la tabla de parámetros de Denavith-Hartenberg para los marcos
coordenados de los ejes de rotación y del efector final es (ver Figura 3):
i θi di ai α1
1 q1 h1 l1 0
2 q2 h2 l2 0
3 0 −q3 0 0
Cuadro 1: Tabla de parámetros de las articulaciones del robot y del efector final.
Mientras que, la tabla de parámetros de Denavith-Hartenberg para los marcos coordenados de los
centros de masa es (ver Figura 3):
2
icm θi di ai α1
1cm q1 h1 l11 0
2cm q2 h2 l21 0
3cm 0 −q3 0 0
3. Transformaciones Homogéneas
El siguiente paso es calcular las transformaciones homogéneas entre marcos, para este fin, usaremos la
matriz de transformación homogénea de D-H, la cual se puede obtener de la siguiente forma:
i
Ti−1 = TRz ,θi Ttz ,di Ttx ,ai TRx ,αi
esto es,
cos θi − sin θi 0 0 1 0 0 0 1 0 0 ai 1 0 0 0
i
sin θi cos θi 0 0 0 1 0 0 0 1 0 0 0 cos αi − sin αi 0
Ti−1 =
0
0 1 0 0 0 1 di 0 0 1 0 0 sin αi cos αi 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
cos θi − sin θi cos αi sin θi sin αi ai cos θi
i
sin θi cos θi cos αi − cos θi sin αi ai sin θi
Ti−1 =
0
(1)
sin αi cos αi di
0 0 0 1
3
De igual forma, la transformación homogénea O0 − O3 se obtiene como:
cos (q1 + q2 ) − sin (q1 + q2 ) 0 l2 cos (q1 + q2 ) + l1 cos q1
sin (q1 + q2 ) cos (q1 + q2 ) 0 l2 sin (q1 + q2 ) + l1 sin q1
T30 = T20 T32 =
0 0 1 h1 + h2 − q3
0 0 0 1
cos (q1 + q2 ) − sin (q1 + q2 ) 0 l2 cos (q1 + q2 ) + l1 cos q1
sin (q1 + q2 ) cos (q1 + q2 ) 0 l2 sin (q1 + q2 ) + l1 sin q1
T30 = (6)
0 0 1 h1 + h2 − q3
0 0 0 1
0 0 0 1
cos (q1 + q2 ) − sin (q1 + q2 ) 0 l21 cos (q1 + q2 ) + l1 cos q1
sin (q1 + q2 ) cos (q1 + q2 ) 0 l21 sin (q1 + q2 ) + l1 sin q1
T201 = T10 T211 =
0 0 1 h1 + h2
0 0 0 1
cos (q1 + q2 ) − sin (q1 + q2 ) 0 l21 cos (q1 + q2 ) + l1 cos q1
sin (q1 + q2 ) cos (q1 + q2 ) 0 l21 sin (q1 + q2 ) + l1 sin q1
T201 = (8)
0 0 1 h1 + h2
0 0 0 1
cos (q1 + q2 ) − sin (q1 + q2 ) 0 l2 cos (q1 + q2 ) + l1 cos q1
sin (q1 + q2 ) cos (q1 + q2 ) 0 l2 sin (q1 + q2 ) + l1 sin q1
T301 = T20 T321 = (9)
0 0 1 h1 + h2 − q3
0 0 0 1
Donde Ti01 , i = 1, 2, 3, representa la matriz de transformación homogénea de la base O0 al centro de
masa i.
4
Ẋ = J (q) q̇ (10)
ẋ q̇1
ẏ
q̇2
ż = Jv (q) .
(11)
ωx
Jω (q) .
ωy .
ωz q̇n
donde, Jv (q) ∈ ℜ3×n representa el Jacobiano de velocidades lineales y Jω (q) ∈ ℜ3×n es el Jacobiano de
velocidades angulares. En otras palabras, el Jacobiano J (q) ∈ ℜ6×n es una transformación que relaciona
el espacio de velocidades articulares q̇ ∈ ℜn con el espacio de velocidades operacionales (o cartesianas)
ẋ ∈ ℜ3 . Para poder calcular el Jacobiano de cada centro de masa del robot manipulador debemos definir
las siguientes variables:
Ejes de movimiento de cada centro de masa
0 0 0
Z0 = 0 , Z1 = 0 , Z3 = 0 (12)
1 1 1
Posición de cada centro de masa respecto a la base O0
l11 cos q1 l21 cos (q1 + q2 ) + l1 cos q1 l2 cos (q1 + q2 ) + l1 cos q1
O11 = l11 sin q1 , O21 = l21 sin (q1 + q2 ) + l1 sin q1 , O31 = l2 sin (q1 + q2 ) + l1 sin q1 (13)
h1 h1 + h2 h1 + h2 − q3
" #
Z0 × (O11 − O0 ) 0 0
J11 = | {z }
Revoluta No afecta No afecta
" #
Z0 0 0
J12 = |{z}
Revoluta No afecta No afecta
donde,
−l11 sin q1
Z0 × (O11 ) = l11 cos q1
0
por lo que los Jacobianos de velocidad lineal y angular son:
5
−l11 sin q1 0 0
J11 = l11 cos q1 0 0 (14)
0 0 0
0 0 0
J12 = 0 0 0 (15)
1 0 0
J21
J2 =
J22
" #
Z0 × (O21 − O0 ) Z1 × (O21 − O1 ) 0
|{z}
J21 = | {z } | {z }
Revoluta Revoluta No afecta
" #
Z0 Z1 0
|{z}
J22 = |{z} |{z}
Revoluta Revoluta No afecta
donde,
−l21 sin (q1 + q2 ) − l1 sin q1
Z0 × (O21 ) = l21 cos (q1 + q2 ) + l1 cos q1
0
−l21 sin (q1 + q2 )
Z1 × (O21 − O1 ) = l21 cos (q1 + q2 )
0
−l21 sin (q1 + q2 ) − l1 sin q1 −l21 sin (q1 + q2 ) 0
J21 = l21 cos (q1 + q2 ) + l1 cos q1 l21 cos (q1 + q2 ) 0 (16)
0 0 0
0 0 0
J22 = 0 0 0 (17)
1 1 0
J31
J3 =
J32
" #
Z0 × (O31 − O0 ) Z1 × (O31 − O1 ) Z2
J31 = | {z } | {z }
Revoluta Revoluta Prismático
" #
Z0 Z1 0
|{z}
J32 = |{z} |{z}
Revoluta Revoluta Prismático
donde,
6
−l2 sin (q1 + q2 ) − l1 sin q1
Z0 × (O31 ) = l2 cos (q1 + q2 ) + l1 cos q1
0
−l2 sin (q1 + q2 )
Z1 × (O31 − O1 ) = l2 cos (q1 + q2 )
0
−l2 sin (q1 + q2 ) − l1 sin q1 −l2 sin (q1 + q2 ) 0
J31 = l2 cos (q1 + q2 ) + l1 cos q1 l2 cos (q1 + q2 ) 0 (18)
0 0 1
0 0 0
J32 = 0 0 0 (19)
1 1 0
Tomando las ecuaciones (14-19) obtenemos los Jacobianos de los centros de masa como:
−l11 sin q1 0 0
l11 cos q1 0 0
0 0 0
J1 =
0 0 0
0 0 0
1 0 0
−l21 sin (q1 + q2 ) − l1 sin q1 −l21 sin (q1 + q2 ) 0
l21 cos (q1 + q2 ) + l1 cos q1 l21 cos (q1 + q2 ) 0
0 0 0
J2 =
0 0 0
0 0 0
1 1 0
−l2 sin (q1 + q2 ) − l1 sin q1 −l2 sin (q1 + q2 ) 0
l2 cos (q1 + q2 ) + l1 cos q1 l2 cos (q1 + q2 ) 0
0 0 1
J3 =
0 0 0
0 0 0
1 1 0
7
−l2 sin (q1 + q2 ) − l1 sin q1 −l2 sin (q1 + q2 ) 0 0 0 0
J31 = l2 cos (q1 + q2 ) + l1 cos q1 l2 cos (q1 + q2 ) 0 , J32 = 0 0 0
0 0 1 1 1 0
También, para el cálculo de la matriz de inercia H (q) ∈ ℜn×n , debemos definir las matrices de rotación
del centro de masa respecto a la base O0 :
cos q1 − sin q1 0 cos (q1 + q2 ) − sin (q1 + q2 ) 0
R1 = sin q1 cos q1 0 , R2 = sin (q1 + q2 ) cos (q1 + q2 ) 0 ,
0 0 1 0 0 1
cos (q1 + q2 ) − sin (q1 + q2 ) 0
R3 = sin (q1 + q2 ) cos (q1 + q2 ) 0
0 0 1
donde, Ri ∈ SO (3) es la matriz de rotación del centro de masa i. A su vez, debemos definir los tensores
de Inercia calculados respecto a cada centro de masa:
I111 I112 I113 I211 I212 I213 I311 I312 I313
I1 = I112 I122 I123 , I2 = I212 I222 I223 , I3 = I312 I322 I323
I113 I123 I133 I213 I223 I233 I313 I323 I333
donde, Ii ∈ ℜ3×3 es el tensor de inercia del eslabón i respecto al centro de masa i.
Ahora, la matriz de inercia H (q) se puede calcular tomando en cuenta los dos tipos de desplazamiento
que puede presentar un objeto en el centro de masa de cada eslabón:
T
Hi1 = mi Ji1 Ji1 (20)
T
Hi2 = Ji2 Ri Ii RiT Ji2 (21)
La matriz de Inercias H (q) se puede obtener entonces como:
n X
X 2
H (q) = Hij
i=1 j=1
Xn
T T
H (q) = mi Ji1 Ji1 + Ji2 Ri Ii RiT Ji2 (22)
i=1
Entonces, calculando las matrices definidas por las ecuaciones (20-21), obtenemos la matriz de inercia
para cada eslabón como:
Matriz de inercia centro de masa 1:
2
m1 l11 0 0
T
H11 = m1 J11 J11 = 0 0 0
0 0 0
I133 0 0
T
H12 = J12 R1 I1 R1T J12 = 0 0 0
0 0 0
8
m2 l12 + 2m2 (cos q2 ) l1 l21 + m2 l21
2 2
m2 l21 + l1 m2 (cos q2 ) l21 0
T 2 2
H21 = m2 J21 J21 = m2 l21 + l1 m2 (cos q2 ) l21 m2 l21 0
0 0 0
I233 I233 0
T
H22 = J22 R2 I2 R2T J22 = I233 I233 0
0 0 0
m3 l12 + 2m3 (cos q2 ) l1 l2 + m3 l22 m3 l22 + l1 m3 (cos q2 ) l2 0
T
H31 = m3 J31 J31 = m3 l22 + l1 m3 (cos q2 ) l2 l22 m3 0
0 0 m3
I333 I333 0
T
H32 = J32 R3 I3 R3T J32 = I333 I333 0
0 0 0
Una vez definido los n×n elementos de la matriz de inercia H (q), usaremos estos términos para calcular
la matriz de aceleraciones centrı́petas y de Corollı́.
9
∂h11
= −2l1 (l2 m3 + l21 m2 ) sin q2
∂q2
∂h12 ∂h21
= ≡ −l1 (l2 m3 + l21 m2 ) sin q2
∂q2 ∂q2
Con las anteriores definiciones podemos calcular la matriz C (q, q̇) usando la siguiente igualdad:
1 ∂hkj ∂hk1 ∂h1j 1 ∂hkj ∂hk2 ∂h2j 1 ∂hkj ∂hk3 ∂h3j
CkJ = q̇1 + − + q̇2 + − + q̇3 + − (24)
2 ∂q1 ∂qj ∂qk 2 ∂q2 ∂qj ∂qk 2 ∂q3 ∂qj ∂qk
∂h ∂h
Tomando en cuenta que ∂qkj
1
= ∂qkj
3
= 0, ∀k, j, entonces la ecuación (24) toma la siguiente forma:
1 ∂hk1 ∂h1j 1 ∂hkj ∂hk2 ∂h2j 1 ∂hk3 ∂h3j
CkJ = q̇1 − + q̇2 + − + q̇3 − (25)
2 ∂qj ∂qk 2 ∂q2 ∂qj ∂qk 2 ∂qj ∂qk
Finalmente, calcularemos los diferentes términos Ckj para k, j = 1, 2, 3, como se muestra a continuación:
1 ∂h11 ∂h11 1 ∂h11 ∂h12 ∂h21 1 ∂h13 ∂h31
C11 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q1 ∂q1 2 ∂q2 ∂q1 ∂q1 2 ∂q1 ∂q1
1 ∂h11
C11 = q̇2
2 ∂q2
C11 = −l1 (l2 m3 + l21 m2 ) q̇2 sin q2
1 ∂h11 ∂h12 1 ∂h12 ∂h12 ∂h22 1 ∂h13 ∂h32
C12 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q2 ∂q1 2 ∂q2 ∂q2 ∂q1 2 ∂q2 ∂q1
1 ∂h11 ∂h12
C12 = q̇1 + q̇2
2 ∂q2 ∂q2
C12 = −l1 (l2 m3 + l21 m2 ) q̇1 sin q2 − l1 (l2 m3 + l21 m2 ) q̇2 sin q2
1 ∂h11 ∂h13 1 ∂h13 ∂h12 ∂h23 1 ∂h13 ∂h33
C13 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q3 ∂q1 2 ∂q2 ∂q3 ∂q1 2 ∂q3 ∂q1
C13 = 0
1 ∂h21 ∂h11 1 ∂h21 ∂h22 ∂h21 1 ∂h23 ∂h31
C21 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q1 ∂q2 2 ∂q2 ∂q1 ∂q2 2 ∂q1 ∂q2
1 ∂h11 1 ∂h21 ∂h21
C21 = q̇1 − + q̇2 −
2 ∂q2 2 ∂q2 ∂q2
1 ∂h11
C21 = q̇1 −
2 ∂q2
C21 = l1 (l2 m3 + l21 m2 ) q̇1 sin q2
1 ∂h21 ∂h12 1 ∂h22 ∂h22 ∂h22 1 ∂h23 ∂h32
C22 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q2 ∂q2 2 ∂q2 ∂q2 ∂q2 2 ∂q2 ∂q2
1 ∂h21 ∂h12
C22 = q̇1 −
2 ∂q2 ∂q2
C22 =0
10
1 ∂h21 ∂h13 1 ∂h23 ∂h22 ∂h23 1 ∂h23 ∂h33
C23 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q3 ∂q2 2 ∂q2 ∂q3 ∂q2 2 ∂q3 ∂q2
C23 = 0
1 ∂h31 ∂h11 1 ∂h31 ∂h32 ∂h21 1 ∂h33 ∂h31
C31 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q1 ∂q3 2 ∂q2 ∂q1 ∂q3 2 ∂q1 ∂q3
C31 = 0
1 ∂h31 ∂h12 1 ∂h32 ∂h32 ∂h22 1 ∂h33 ∂h32
C32 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q2 ∂q3 2 ∂q2 ∂q2 ∂q3 2 ∂q2 ∂q3
C32 = 0
1 ∂h31 ∂h13 1 ∂h33 ∂h32 ∂h23 1 ∂h33 ∂h33
C33 = q̇1 − + q̇2 + − + q̇3 −
2 ∂q3 ∂q3 2 ∂q2 ∂q3 ∂q3 2 ∂q3 ∂q3
C33 =0
−l1 (l2 m3 + l21 m2 ) q̇2 sin q2 −l1 (l2 m3 + l21 m2 ) q̇1 sin q2 − l1 (l2 m3 + l21 m2 ) q̇2 sin q2 0
C (q, q̇) = l1 (l2 m3 + l21 m2 ) q̇1 sin q2 0 0
0 0 0
(26)
La matriz C (q, q̇) debe cumplir con la siguiente propiedad:
Definición 1 Sea H (q) la matriz de inercia de un robot de n gdl, definiendo a C (q, q̇) en términos de los
elementos de H (q), de acuerdo a la ecuación (24) entonces, la matriz N (q, q̇) = Ḣ (q) − 2C (q, q̇) es una
matriz anti-simétrica, esto es, los componentes njk de N (q, q̇) satisfacen la relación njk = −nkj .
0 l1 (sin q2 ) (l2 m3 + m2 l21 ) (2q̇1 + q̇2 ) 0
N (q, q̇) = −l1 (sin q2 ) (l2 m3 + m2 l21 ) (2q̇1 + q̇2 ) 0 0 (27)
0 0 0
con
−2l1 (l2 m3 + l21 m2 ) sin q2 −l1 (l2 m3 + l21 m2 ) sin q2 0
Ḣ = −l1 (l2 m3 + l21 m2 ) sin q2 0 0
0 0 0
Es evidente que la definición de N (q, q̇), ecuación (27), es una matriz anti-simétrica, ya que cumple con
njk = −nkj .
11
La energı́a potencial debido a resortes:
Para calcular la energı́a potencial de las masas, requerimos de la posición de cada centro de masa,
dichas posiciones las definimos en la ecuación (13). Entonces la energı́a potencial de las masas será:
n
X
P1 = mi GT Oi1
i=1
3
X
P1 = GT mi Oi1
i=1
con
3
X l2 m3 cos (q1 + q2 ) + m2 l21 cos (q1 + q2 ) + l1 m2 cos q1 + l1 m3 cos q1 + m1 l11 cos q1
mi Oi = l2 m3 sin (q1 + q2 ) + m2 l21 sin (q1 + q2 ) + l1 m2 sin q1 + l1 m3 sin q1 + m1 l11 sin q1
i=1 h1 m1 + h1 m2 + h1 m3 + h2 m2 + h2 m3 − m3 q3
y
0
G= 0
g
por lo que la energı́a potencial proporcionada por las masas es:
n
X 1
P2 = Ki qi2
i=1
2
1 1 1
P2 = K1 q12 + K1 q22 + K1 q32
2 2 2
La energı́a potencial total es la suma de las energı́as potenciales:
1 1 1
P = gh1 m1 + gh1 m2 + gh1 m3 + gh2 m2 + gh2 m3 − gm3 q3 + K1 q12 + K1 q22 + K1 q32
2 2 2
El vector de pares gravitacionales será entonces:
∂P
∂q1 K1 q1
∂P
g = ∂q 2
= K1 q2 (29)
∂P K q − gm
∂q 1 3 3
3
12