Академический Документы
Профессиональный Документы
Культура Документы
Control de
manipulador
Cartesiano de 3GDL
Integrantes:
Índice de contenido
Índice de ilustraciones......................................................................................................................... 3
Índice de tablas ................................................................................................................................... 3
Glosario ............................................................................................................................................... 4
Introducción ........................................................................................................................................ 5
Descripción del dispositivo .................................................................................................................. 6
Modelo cinemático del manipulador ................................................................................................ 18
Programación .................................................................................................................................... 26
Descripción del funcionamiento ....................................................................................................... 31
Contribuciones de los autores .......................................................................................................... 32
Conclusiones ..................................................................................................................................... 35
Referencias ........................................................................................................................................ 36
2|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Índice de ilustraciones
Índice de tablas
3|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Glosario
4|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Introducción
5|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
6|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
7|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
8|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
9|Página
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
10 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
11 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
12 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
13 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
GND ENABLE
14 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
15 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
16 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
17 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Tabla de Denavit-Hartenberg
𝒊 ∝𝒊−𝟏 𝒂𝒊−𝟏 𝒅 𝜽𝒊
1 0° 0 𝑞1 0°
2 90° 0 𝑞2 90°
3 90° 0 𝑞3 -90°
0 0
0 𝐼 𝑅
𝑇 =[ 1] 𝑃1 = [ 0 ]
1 0 1 𝑞1
0 𝑅 0 𝐼 𝑃1
𝑇 = [ 𝑥𝑦𝑧 ][ ]
1 0 1 0 1
𝟏 𝟎 𝟎 𝟎
𝟎
𝑻 = [𝟎 𝟏 𝟎 𝟎]
𝟏 𝟎 𝟎 𝟏 𝒒𝟏
𝟎 𝟎 𝟎 𝟏
18 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
1 0
1 𝐼 𝑅
𝑇 =[ 2] 𝑃2 = [ 0 ]
2 0 1 𝑞2
1 𝑅 0 𝐼 𝑃2 𝑅𝑥𝑦𝑧 0
𝑇 = [ 𝑥𝑦𝑧 ][ ][ ]
2 0 1 0 1 0 1
1 𝑅 0 𝑅𝑥90° 𝑃2
𝑇 = [ 𝑥𝑦𝑧 ][ ]
2 0 1 0 1
1 0 0 0 −1 0
𝑅𝑥90° 𝑅𝑧90° = [0 0 −1] [1 0 0]
0 1 0 0 0 1
0 −1 0
𝑅𝑥90° 𝑅𝑧90° = [0 0 −1]
1 0 0
1 0 0 0 0
𝑅𝑥90° 𝑃2 = [0 0 0
−1] [ ] = [−𝑞2 ]
0 1 0 𝑞2 0
𝟎 −𝟏 𝟎 𝟎
𝟏 𝟎 𝟎 −𝟏 −𝒒𝟐
𝑻 =[ ]
𝟐 𝟏 𝟎 𝟎 𝟎
𝟎 𝟎 𝟎 𝟏
19 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
2 0
2 𝐼 𝑅
𝑇 =[ 3] 𝑃3 = [ 0 ]
3 𝑞3
0 1
2 𝑅 0 𝐼 𝑃3 𝑅𝑧−90° 0
𝑇 = [ 𝑥90° ][ ][ ]
3 0 1 0 1 0 1
1 0 0 0 1 0 0 0
2
𝑇 = [0 0 −1 0] [0 1 0 0]
3 0 1 0 0 0 0 1 𝑞3
0 0 0 1 0 0 0 1
1 0 0 0 0 1 0 0
2 0 0 −1 −𝑞3 1 0 0 0]
𝑇 =[ ][
3 0 1 0 0 0 0 1 0
0 0 0 1 0 0 0 1
𝟎 𝟏 𝟎 𝟎
𝟐 𝟎 𝟎 −𝟏 −𝒒𝟑
𝑻 =[ ]
𝟑 −𝟏 𝟎 𝟎 𝟎
𝟎 𝟎 𝟎 𝟏
0 0 1
𝑇 =𝑇 ∗ 𝑇
2 1 2
1 0 0 0 0 −1 0 0
0 0 0 −1 −𝑞2
𝑇 = [0 1 0 0
𝑞1 ] ∗ [1 0 ]
2 0 0 1 0 0
0 0 0 1 0 0 0 1
20 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
𝟎 −𝟏 𝟎 𝟎
𝟎 𝟎 𝟎 −𝟏 −𝒒𝟐
𝑻 =[ ]
𝟐 𝟏 𝟎 𝟎 𝒒𝟏
𝟎 𝟎 𝟎 𝟏
0 0 2
𝑇 =𝑇 ∗ 𝑇
3 2 3
0 −1 0 0 0 1 0 0
0 0 0 −1 −𝑞2 0 0 −1 −𝑞3
𝑇 =[ ]∗[ ]
2 1 0 0 𝑞1 −1 0 0 0
0 0 0 1 0 0 0 1
𝟎 𝟎 𝟏 𝒒𝟑
𝟎 𝟎 −𝒒𝟐
𝑻 = [𝟏 𝟎 ]
𝟐 𝟎 𝟏 𝟎 𝒒𝟏
𝟎 𝟎 𝟎 𝟏
Centro de masa:
1)Primer eslabón
0 0
0
(𝑃 𝑐1 ) = 𝑇 (𝑃 𝑐1 )
1
1 1
0 𝟎
1 0 0 0 𝑙1 𝒍𝟏
= [0 1 0 0] −
𝑞1 2 = −
𝟐
0 0 1
0 𝒒𝟏
0 0 0 1 [
1 ] [ 𝟏 ]
21 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
2)Segundo eslabón
0 0
0
(𝑃 𝑐2 ) = 𝑇 (𝑃 𝑐2 )
2
1 1
0 𝒍𝟐
0 −1 0 0 𝑙1 −
0 0 −1 −𝑞2 − 𝟐
=[ ] 2 = −𝒒𝟐
1 0 0 𝑞1
0 𝒒𝟏
0 0 0 1 [
[ 1 ] 𝟏 ]
3)Tercer eslabón
0 0
0
(𝑃 𝑐3 ) = 𝑇 (𝑃 𝑐3 )
3
1 1
𝒒𝟑
0 0 1 𝑞3 𝑙3
𝒍𝟑
0 −𝑞2 2
= [1 0 ] 0 = 𝟐 − 𝒒𝟐
0 1 0 𝑞1 𝒒𝟏
0
0 0 0 1 [ ] [ 𝟏 ]
1
0
𝜕𝑃𝑐01 −𝑙1
𝐽𝑣𝑐1 = [ 0 0] 𝑃𝑐01 =[ 2
]
𝜕𝑞1
𝑞1
𝑙2
𝜕𝑃𝑐02 𝜕𝑃𝑐02 2
𝐽𝑣𝑐2 = [ 0] 𝑃𝑐02 = [−𝑞2 ]
𝜕𝑞1 𝜕𝑞2
𝑞1
𝑞3
𝜕𝑃𝑐03 𝜕𝑃𝑐03 𝜕𝑃𝑐03 𝑙3
𝐽𝑣𝑐3 = [ ] 𝑃𝑐03 = [ 2 − 𝑞2 ]
𝜕𝑞1 𝜕𝑞2 𝜕𝑞3
𝑞1
22 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
0 0 0
𝐽𝑣𝑐1 = [0 0 0]
1 0 0
0 0 0
𝐽𝑣𝑐2 = [0 −1 0]
1 0 0
0 0 1
𝐽𝑣𝑐3 = [0 −1 0]
1 0 0
𝒄 𝒄
𝑴(𝒒) = 𝒎𝟏 𝑱𝒗𝒄𝟏 𝑻 𝑱𝒗𝒄𝟏 + 𝒎𝟐 𝑱𝒗𝒄𝟐 𝑻 𝑱𝒗𝒄𝟐 + 𝒎𝟑 𝑱𝒗𝒄𝟑 𝑻 𝑱𝒗𝒄𝟑 + 𝑱𝝎𝟏 𝑻 𝕀𝟎𝟏 𝑱𝝎𝟏 + 𝑱𝝎𝟐 𝑻 𝕀𝟎𝟐 𝑱𝝎𝟐
𝒄
+ 𝑱𝝎𝟑 𝑻 𝕀𝟎𝟑 𝑱𝝎𝟑
Nota: Los últimos tres componentes son equivalentes a cero porque el manipulador
es de configuración prismático.
0 0 1 0 0 0 0 0 1 0 0 0
𝑀(𝑞) = 𝑚1 [0 0 0] [0 0 0] + 𝑚2 [0 −1 0] [0 −1 0]
0 0 0 1 0 0 0 0 0 1 0 0
0 0 1 0 0 1
+ 𝑚3 [0 −1 0] [0 −1 0]
1 0 0 1 0 0
1 0 0 1 0 0 1 0 0
𝑀(𝑞) = 𝑚1 [0 0 0] + 𝑚2 [0 1 0 ] + 𝑚 [
3 0 1 0]
0 0 0 0 0 0 0 0 1
𝑚1 + 𝑚2 + 𝑚3 0 0 (𝑚1 + 𝑚2 + 𝑚3 )𝑞1̈ 0 0
𝑀(𝑞) = [ 0 𝑚2 + 𝑚3 0 ] → 𝑀(𝑞) 𝑞̈ = [ 0 (𝑚2 + 𝑚3 )𝑞2̈ 0 ]
0 0 𝑚3 0 0 (𝑚3 )𝑞3̈
23 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
𝑞1̈
𝑞̈ = [𝑞2̈ ]
𝑞3̈
0 0 0
𝐶(𝑞,𝑞̇) = [0 0 0]
0 0 0
𝑔𝑚̇ 1
𝑇 𝑇 𝑇
𝐺(𝑞) = (𝐽𝑣𝑐1 𝐽𝑣𝑐2 𝐽𝑣𝑐3 ) (𝑔𝑚̇ 2 )
𝑔𝑚̇ 3
9.81
𝐺(𝑞) =[ 0 ]
0
(𝑚2 + 𝑚3 )𝑞2̈ = 𝜇2
(𝑚3 )𝑞3̈ = 𝜇3
24 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
𝑚1 = 1.10 𝑘𝑔
𝑚2 = 0.700 𝑘𝑔
𝑚3 = 0.200 𝑘𝑔
(2.00)𝑞1̈ 0 0
𝑀(𝑞) 𝑞̈ = [ 0 (0.900)𝑞2̈ 0 ]
0 0 (0.200)𝑞3̈
(2.00)𝑞1̈ + 9.81 = 𝜇1
(0.900)𝑞2̈ = 𝜇2
(0.200)𝑞3̈ = 𝜇3
25 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Programación
int lectura;
int s1 = 0;
int s2 = 0;
int s3 = 0;
float x = 10 + 40; //10 es el fact de correc
float y = 10 + 60; //10 es el fact de correc
float z = 30 + 50; //30 es el factor de correccion
int sensor = 12;
int sensor2 = 13;
int sensor3 = 11;
int estadox = 0;
int estadoy = 0;
int estadoz = 0;
//variables del limite y el motor con encoder x
int limitex;
const int derx = 9;
const int izqx = 8;
const int enc_pinx = 19;
const int pwmx = 10;
long ticks = 0;
long ticks2 = 0;
long ticks3 = 0;
26 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
void countTicks(){
ticks++;
}
void countTicks2(){
ticks2++;
}
void countTicks3(){
ticks3++;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(sensor,INPUT);
pinMode(sensor2,INPUT);
pinMode(sensor3,INPUT);
//DEFINIENDO ENTRADAS Y SALIDAS
pinMode(enc_pinz, INPUT_PULLUP);
pinMode(enc_pinx, INPUT_PULLUP);
pinMode(enc_piny, INPUT_PULLUP);
pinMode(pwmx, OUTPUT);
pinMode(derx, OUTPUT);
pinMode(izqx, OUTPUT);
pinMode(pwmy, OUTPUT);
pinMode(dery, OUTPUT);
pinMode(izqy, OUTPUT);
pinMode(pwmz, OUTPUT);
pinMode(derz, OUTPUT);
pinMode(izqz, OUTPUT);
attachInterrupt(digitalPinToInterrupt(enc_piny), countTicks, CHANGE);
attachInterrupt(digitalPinToInterrupt(enc_pinx), countTicks2, CHANGE);
attachInterrupt(digitalPinToInterrupt(enc_pinz), countTicks3, CHANGE);
void loop() {
// put your main code here, to run repeatedly:
limitex = digitalRead(sensor);
limitez = digitalRead(sensor2);
limitey = digitalRead(sensor3);
if(Serial.available()>0){
lectura = Serial.read();
27 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Serial.println(lectura);
}
if(lectura == 'a' or y == 'a'){
estadox = 0;
estadoy = 0;
estadoz = 0;
}
28 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
analogWrite(pwmz, 80);
digitalWrite(derz, LOW);
digitalWrite(izqz, HIGH);
}
s1 = (341 * z )/8;
s2 = (341 * y )/8;
s3 = (341 * x )/8;
//Serial.println(ticks3);
//.......................................................................
.relacion
//.......mueve z
if( estadoz == 1 and ticks3 < s1){
//Serial.println(y);
analogWrite(pwmz, 80);
digitalWrite(derz, HIGH);
digitalWrite(izqz, LOW);
Serial.println(ticks3);
}
if(ticks3 >= s1){
analogWrite(pwmz, 0);
digitalWrite(derz, LOW);
digitalWrite(izqz, LOW);
//Serial.println(y);
analogWrite(pwmy, 180);
digitalWrite(dery, HIGH);
29 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
digitalWrite(izqy, LOW);
Serial.println(ticks);
}
if(ticks >= s2){
analogWrite(pwmy, 0);
digitalWrite(dery, LOW);
digitalWrite(izqy, LOW);
//Serial.println(y);
analogWrite(pwmx, 130);
digitalWrite(derx, HIGH);
digitalWrite(izqx, LOW);
Serial.println(ticks2);
}
if(ticks2 >= s3){
analogWrite(pwmx, 0);
digitalWrite(derx, LOW);
digitalWrite(izqx, LOW);
30 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
31 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
32 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
33 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
34 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Conclusiones
35 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS
UNIVERSIDAD POLITÉCNICA DE VICTORIA
Referencias
[1] blade444, «Club Ensayos,» Tecnología, 13 Mayo 2012. [En línea]. Available:
https://www.clubensayos.com/Tecnología/APLICACIONES-ROBOT-CARTESIANO/184398.html.
[Último acceso: 11 Agosto 2019].
36 | P á g i n a
DINÁMICA Y CONTROL DE ROBOTS