7/23/2019 01Robotica Intro Alumno
1/108
Fundamentos de Robtica
1
Instituto Tecnolgico de Puebla
Dr. Sergio Javier Torres Mndez
Dr. Jos Rafael Mendoza Vzquez
Curso intersemestral
Enero 2015
Departamento de Metal-Mecnica
7/23/2019 01Robotica Intro Alumno
2/108
2
Fundamentos de robtica
Periodo: Lunes 19 al Viernes 23 de Enero de 2015.
Horario: 9 a 15 hrs (4hrs de clase + 2 hrs de tarea extra)
Aula: 51K (MatLab y Simulink)
Objetivo: Adquirir las bases tericas para el desarrollode proyectos de simulacin mecnica derobots seriales usando MATLAB.
Antecedentes: Dirigido a ingenieros y estudiantes conuna formacin bsica en ingenieramecnica o mecatrnica (lgebralineal, mecanismos y programacin).
(30 hrs)
7/23/2019 01Robotica Intro Alumno
3/108
3
Alcances del curso (2D)
7/23/2019 01Robotica Intro Alumno
4/108
4
Alcances del curso (3D)
7/23/2019 01Robotica Intro Alumno
5/108
5
Los programas desarrollados en el curso estn
enfocados a la mejor comprensin de los temas
tericos y por lo tanto son susceptibles de mejoras.
La programacin utilizada en este curso es del tipoestructurada, aunque tambin es posible desarrollarla
en una programacin orientada a objetos.
En lo posible, los programas desarrollados en el curso
se sustentaran con su respectivo diagrama de flujo.
Alcances de la programacin
7/23/2019 01Robotica Intro Alumno
6/108
6
Metodologa del curso
Formulacin terica y
computacional (Matlab)
Ejemplos tericos y
numricos en claseDesarrollo de actividades
durante y extra clase
Dudas y sugerencias
de mejoras al curso
InstructoresParticipantes
I wontask you to do anything I haventdone myself,Wardaddy/Brad Pitt in Fury (2015) .
7/23/2019 01Robotica Intro Alumno
7/108
Programacin del curso
Introduccin a la robtica y MatLab (Lunes)
Cinemtica Directa (Martes)
Cinemtica Inversa (Mircoles)
Cinemtica Diferencial (Jueves)
Dinmica (Viernes)
7
Hoy
7/23/2019 01Robotica Intro Alumno
8/108
8
Introduccin
7/23/2019 01Robotica Intro Alumno
9/108
Definiciones
Robtica: Es la coleccin de conocimiento para el
diseo, anlisis, y control de robots. Se considera
una parte importante de la mecatrnica.
9
7/23/2019 01Robotica Intro Alumno
10/108
10
Aplicacin
7/23/2019 01Robotica Intro Alumno
11/108
11
Robot industrial: Es un mecanismo multifuncional
y reprogramable diseado para mover piezas,
herramientas o dispositivos especializados.Tambin es llamado robot manipulador.
7/23/2019 01Robotica Intro Alumno
12/108
12
Componentes
Consiste en una serie de segmentos mviles
(eslabones) uno con respecto a otro por medio de
articulaciones y conectados a una base fija (cadena
cinemtica abierta).
7/23/2019 01Robotica Intro Alumno
13/108
13
Sistema mecnico
Sistema de actuacin Sistema sensorial
Sistema de controlRobot
Pieza
Controlador
Encoders
Motor
controlComando
Visin
Motores
Computadora
Sistema robtico
7/23/2019 01Robotica Intro Alumno
14/108
14
Sistema sensorial
7/23/2019 01Robotica Intro Alumno
15/108
Estructura
15
Eslabn (elemento): Pueden rgidos o elsticos.
Asumiendo solamente eslabones rgidos y segn el
nmero de nodos:
FijoBinario
TernarioCuaternario
7/23/2019 01Robotica Intro Alumno
16/108
16
Articulacin (unin): Es la conexin para proveer
movimiento relativo entre dos eslabones.
Pueden simplificarse en dos tipos:
7/23/2019 01Robotica Intro Alumno
17/108
17
Las articulaciones proveen de un nmero de restricciones
fsicas en el movimiento relativo entre dos eslabones.
6 3 3
6 3
3 traslaciones
6 2 4 2 traslaciones2 rotaciones
Esfrica
Cilndrica
nmero de restricciones
nmero de movimientos libres
7/23/2019 01Robotica Intro Alumno
18/108
18
Grados de Libertad
Es el nmero total de variables independientes que
pueden identificar completamente la configuracinde un robot manipulador. Este nmero n puede ser
calculado como:
=
Donde:
Nmero de grados de libertad Nmero de grados de libertad mximos: 3 planar y 6 espacial Nmero de eslabones mviles Nmero de articulaciones
Nmero de grados de libertad de la articulacin i
7/23/2019 01Robotica Intro Alumno
19/108
19
Determine el nmero de grados de libertad delmecanismo mostrado abajo:
Ejemplo 1
7/23/2019 01Robotica Intro Alumno
20/108
20
Solucin ejemplo 1
7/23/2019 01Robotica Intro Alumno
21/108
21
Clasificacin
Tipo de movimiento: planar, esfrico, espacial
Nmero de grados de libertad: De propsito general
( ), redundante ( > ), deficiente ( < ) Tipo de estructura cinemtica: serial (cadena
abierta), paralelo (cadena cerrada), hbrido
Tipo de actuacin: Elctrico, hidrulico, neumtico.
Tipo de transmisin: Directa, convencional.
Geometra del espacio de trabajo: Cartesiano,cilndrico, esfrico y articulado.
7/23/2019 01Robotica Intro Alumno
22/108
22
Coordenadas cartesianas
Coordenadas cilndricas
Coordenadas esfricas
Coordenadas articulares
7/23/2019 01Robotica Intro Alumno
23/108
23
cartesiano esfrico cilndrico
articulado
7/23/2019 01Robotica Intro Alumno
24/108
24
Robots industriales
ProLine PL60
(HAHN Automation Plastics)
Robot cartesiano
Diagrama esquemtico?
7/23/2019 01Robotica Intro Alumno
25/108
25
Robot Stanford
Robot esfrico
Diagrama esquemtico?
7/23/2019 01Robotica Intro Alumno
26/108
26
Robot cilndrico
RT33 (SEIKO Instruments)
Diagrama esquemtico?
7/23/2019 01Robotica Intro Alumno
27/108
27
FANUC S900W
articulado
Robot articulado
Diagrama esquemtico?
7/23/2019 01Robotica Intro Alumno
28/108
28
Espacio de trabajo
Es el conjunto de todos las poses (posiciones y
orientaciones) del efector final que pueden ser
alcanzadas correspondientes a los rangos fsicos
admisibles de sus articulaciones y eslabones
7/23/2019 01Robotica Intro Alumno
29/108
29
Mtodo grfico
Dibujar rangos mximos y
mnimos de las
articulaciones
7/23/2019 01Robotica Intro Alumno
30/108
30
Mtodo analtico
Definir las ecuaciones de las curvas
Calcular el rea bajo las curvas (integrales)
( )
( ) (360o)
7/23/2019 01Robotica Intro Alumno
31/108
31
a) Una expresin analtica paracalcular el espacio de trabajo.
b) El valor del espacio de trabajo
asumiendo los parmetros
mostrados en la tabla de abajo.
Ejemplo 2
Articulaciones
(rad)
Eslabones
(mm)
2
2 300
2 2
250
2 2
160
Para el robot Mitsubishi RV-M1, determine lo siguiente:
7/23/2019 01Robotica Intro Alumno
32/108
32
Solucin ejemplo 2
7/23/2019 01Robotica Intro Alumno
33/108
33
MATLAB y Simulink
7/23/2019 01Robotica Intro Alumno
34/108
34
MATLAB tutorial
Introduccin Entorno
Programacin
Visualizacin
Ejemplos
Simulink
SimMechanics
Ejemplos
7/23/2019 01Robotica Intro Alumno
35/108
35
MATLAB es el nombre abreviado de MATrix LABoratory.
MATLAB es un programa para realizar clculos numricos con
vectores y matrices.
Una de las capacidades ms atractivas es la de realizar una
amplia variedad de grficos en dos y tres dimensiones.
MATLAB tiene tambin un lenguaje de programacin
propio.
Introduccin
7/23/2019 01Robotica Intro Alumno
36/108
36
Introduccin
MATLAB NO es una hoja de calculo
MATLAB, aunque contiene una librera para realizar clculo
simblico, NO es adecuado para operaciones simblicas como
MAPLE
MATLAB NO es la solucin a todos nuestros problemas
MATLAB NO es gratis. La versin libre y gratuita del lenguajede MATLAB es OCTAVE: http://www.octave.org
7/23/2019 01Robotica Intro Alumno
37/108
37
El lenguaje de programacin de MATLAB es una magnfica
herramienta de alto nivel para desarrollar aplicaciones
tcnicas.
Grficos 2D y 3DLenguaje de alto nivel
MATLAB
Herramientasmatemticas
Conexin externa
7/23/2019 01Robotica Intro Alumno
38/108
38
Caractersticas de MATLAB
Matlab
Linea decomandos
m-archivos
funciones
mat-archivos
ComandosMatlab
Definidas porel usuario
Manejo
de datosscripts
Annimas
7/23/2019 01Robotica Intro Alumno
39/108
39
MATLAB entorno
Historial de comandos
Mens Espacio de trabajo
Ventana de comandos
Directorio actual
7/23/2019 01Robotica Intro Alumno
40/108
40
MATLAB preferencias
7/23/2019 01Robotica Intro Alumno
41/108
41
MATLAB variables
No se necesita declaracin del tipo de variable; todas son creadas
como doble precisin.
El formato de las variables son:
short(por omisin),
long
La variablexes una
matriz de 1x1 con
doble precisin.
7/23/2019 01Robotica Intro Alumno
42/108
42
MATLAB vectores y matrices
Un vector columna
Una matriz
Su transpuesta
Un vector rengln
7/23/2019 01Robotica Intro Alumno
43/108
43
Elementos de una matriz
El operador :
7/23/2019 01Robotica Intro Alumno
44/108
44
MATLAB operadores aritmticos
MATLAB constantes
MATLAB generadores de matrices
+ Adicin
- Sustraccin
* Multiplicacin
/ Divisin
\ Divisin por la izquierda
^ Potencia
Transpuesta
pi 3.14159265
i Unidad imaginaria
Inf Infinito
Nan No es un nmero
eye Matriz unitaria
meshgrid Matriz equiespaciada 2D
zeros Todos ceros
ones Todos unos rand Uniformemente Aleatorios
randn Normalmente aleatorios
7/23/2019 01Robotica Intro Alumno
45/108
45
MATLAB operaciones matriciales (algebra lineal)
7/23/2019 01Robotica Intro Alumno
46/108
46
MATLAB operaciones por elemento .
+ Adicin
- Sustraccin
.* Multiplicacin elemento por elemento
./ Divisin elemento por elemento
.\ Divisin por la izq. elemento por elemento
.^ Potencia elemento por elemento
MATLAB fi
7/23/2019 01Robotica Intro Alumno
47/108
47
MATLAB grficos
MATLAB fi 2D
7/23/2019 01Robotica Intro Alumno
48/108
48
MATLAB grficos 2D
Line Stem & stair Histogram
Scatter Polar
Bar Pie
MATLAB fi 2D
7/23/2019 01Robotica Intro Alumno
49/108
49
MATLAB grficos 2D
Trazado de la funcin sin , 0 4
Line del trazo
Ejes del sistema
coordenado
Ventana de la figura
Barra de
herramientasMen
7/23/2019 01Robotica Intro Alumno
50/108
50
Mlti l t d d l f i i 0 4
7/23/2019 01Robotica Intro Alumno
51/108
51
Mltiples trazados de la funcin sin , cos , 0 4
7/23/2019 01Robotica Intro Alumno
52/108
52
2 renglones por 1 columna
7/23/2019 01Robotica Intro Alumno
53/108
53
subplot(4,2,3)
plot(rand(10,2))
4 renglones por 2 columnas
7/23/2019 01Robotica Intro Alumno
54/108
54
Edicin de
grficos
MATLAB grficos 3D
7/23/2019 01Robotica Intro Alumno
55/108
55
MATLAB grficos 3D
3D surfaces Volumetric Vector fields Contour Analytic
Images
MATLAB grficos 3D
7/23/2019 01Robotica Intro Alumno
56/108
56
Trazado de una hlice tridimensional
MATLAB grficos 3D
Ejes del sistema
coordenado 3D
Lnea del trazo 3D
7/23/2019 01Robotica Intro Alumno
57/108
57
Superficie
Ejes del sistema
coordenado 3D
7/23/2019 01Robotica Intro Alumno
58/108
58
MATLAB operadores lgicos relacionales
== Igual a ~= No igual a
Mayor que
= Mayor igual que
& Operador y
| Operator o
while
7/23/2019 01Robotica Intro Alumno
59/108
59
MATLAB operadores de control de flujo
s
n
if
switch-case
for
while
s
n
s
n
n
s
continue break
7/23/2019 01Robotica Intro Alumno
60/108
60
MATLAB estructuras de control
If
if (Condicion_1)
Comandos MATLAB
elseif (Condicion_2)
Comandos MATLAB
else
Comandos MATLAB
end
Ejemplo:
7/23/2019 01Robotica Intro Alumno
61/108
61
For
for i=Indeces_Arreglo
Comandos MATLAB
end
Ejemplo:
7/23/2019 01Robotica Intro Alumno
62/108
62
While
while (condicion)
Comandos MATLAB
end
Ejemplo:
MATLAB m-archivos (* m)
7/23/2019 01Robotica Intro Alumno
63/108
63
MATLAB m archivos ( .m)
Nuevo programa
Escritura del
programa
Correr programa
7/23/2019 01Robotica Intro Alumno
64/108
64
Cambio de directorio de m-archivos
7/23/2019 01Robotica Intro Alumno
65/108
65
pause %espera hasta el toque de cualquier tecla
pause(3) %espera 3 seconds
%es para aadir comentarios, esto es, la lnea del cdigo
del programa es saltada por el compilador de MATLAB.
Algunas veces es necesario alentar la ejecucin de un
programa en forma deliberada para realizar una mejorobservacin de los resultados. pause es el comando
para ese propsito.
Uso de un m-archivo (programa script)
7/23/2019 01Robotica Intro Alumno
66/108
66
Uso de un m-archivo (programa script)
Guardar archivo como
ejem_traza.m
Un script (guion)es una secuencia
de instrucciones
de Matlab
guardada en un
archivo con
extensin *.m
Se ejecuta escribiendo su nombre:
>> ejem_traza
O presionando el botn run
MATLAB funciones
7/23/2019 01Robotica Intro Alumno
67/108
67
MATLAB funciones
Las funciones pueden recibir varios valores y devolver uno o
varios resultados.
MATLAB provee con un gran nmero de funciones localizadas
en toolbox\matlab
Cdigo de la
funcintrace()
Uso de un m-archivo (funcin propia de MATLAB)
7/23/2019 01Robotica Intro Alumno
68/108
68
Cdigo de programa: ejem_trace.m
Resultado
Uso de un m archivo (funcin propia de MATLAB)
Funciones propias de MATLAB
7/23/2019 01Robotica Intro Alumno
69/108
69
Funciones matemticas
elementales
Funciones matriciales
elementales
Funciones propias de MATLAB
MATLAB funciones handles (alias)
7/23/2019 01Robotica Intro Alumno
70/108
70
MATLAB funciones handles (alias)
Son capaces de pasar una funcin a otra funcin
Utilizar @ para construiruna funcin alias
MATLAB funciones annimas
7/23/2019 01Robotica Intro Alumno
71/108
71
MATLAB funciones annimas
Una funcin handle (alias) permite invocar una
funcin annima
Una funcin annima es una funcin de una sola lnea
que no requiere un archivo de programa
Crea una funcin annima que calculael seno de su argumento de entrada x
El operador @hace que prue1sea una
funcin alias
7/23/2019 01Robotica Intro Alumno
72/108
72
Crea una funcin annima que calculax^2+y^2de sus dos argumentos de
entrada x, y
El operador @hace que prue2sea una
funcin alias
MATLAB funciones definidas por el usuario
7/23/2019 01Robotica Intro Alumno
73/108
73
function out1=functionname(in1)function out1=functionname(in1,in2,in3)
function [out1,out2]=functionname(in1,in2)
El cdigo para definir que un m-archivo es una funcin es
Se debe escribir al principio del m-archivo y guardar elarchivo con el mismo nombre que el del nombre de la
funcin
Las funciones se escriben en archivos *.m que deben
encontrarse en el directorio actual (o en un directorio
definido en el path).
MATLAB funciones definidas por el usuario
7/23/2019 01Robotica Intro Alumno
74/108
MATLAB variables simblicas
7/23/2019 01Robotica Intro Alumno
75/108
75
Las funciones de la
herramienta simblica deMATLAB
Ejemplo de diferenciacin simblica
7/23/2019 01Robotica Intro Alumno
76/108
76
Declaracin de variables
simblicas
Ejemplo de diferenciacin simblica
Expresin simblica
Diferenciacin con
respecto a la variable
y
Diferenciacin con
respecto a la variablev
Ejemplos de la librera simblica
7/23/2019 01Robotica Intro Alumno
77/108
77
Ejemplos de la librera simblica
MATLAB Races de un polinomio
7/23/2019 01Robotica Intro Alumno
78/108
78
p
Los coeficientes de un desarrollo en serie son un vector
x2
+ x es1x2
+ 1x + 0, es decir [1 1 0]
MATLAB Resolucin de sistemas de ecuaciones lineales
7/23/2019 01Robotica Intro Alumno
79/108
79
Para resolver sistemas de ecuaciones lineales contamos con un
operador universal
MATLAB Solucin de ecuaciones diferenciales
7/23/2019 01Robotica Intro Alumno
80/108
80
Es una de las aplicaciones ms importantes del clculo
numrico de MATLAB utilizando varios solvers (mtodos)
Lo ms importante es saber si nuestro problema es stiff
(consistente)
Un problema es stiff(consistente) cuando el paso temporalviene determinado por la estabilidad del esquema
Problemas no consistentes no-stiff suelen relacionarse con
problemas no lineales o condiciones de contorno muyexigentes
Requieren esquemas de integracin temporal implcitos
MATLAB solvers (mtodos)
7/23/2019 01Robotica Intro Alumno
81/108
81
ode23 No-stiff , Runge-Kutta, bajo orden, un paso
ode23s Stiff, Rosenbrock, bajo orden, un paso
ode23t Moderadamente stiff, regla del trapecio,ode23tb Stiff, regla del trapecio y diferenciacin hacia atrs, bajo ordenode45 No-stiff , Runge-Kutta orden 4-5, paso variableode15i Implicit, variable orden
ode15s Stiff, NDFs, variable orden, multipaso
ode113 No-stiff , Adams, multipaso
( )
[T,Y] = solver(odefun,tspan,y0)[T,Y] = solver(odefun,tspan,y0,options)
[T,Y,TE,YE,IE] = solver(odefun,tspan,y0,options)
sol = solver(odefun,[t0 tf],y0...)
MATLAB sintaxis
7/23/2019 01Robotica Intro Alumno
82/108
82
Un caso tpico es la ecuacin del oscilador de Van der Pol
+ + 1 0
En variables de estado:
1
Condiciones iniciales:
( 0 ) ( 0 ) 2 0 0 0 0
Es un oscilador conamortiguamiento no
lineal
no consistente no-stiff mtodo
7/23/2019 01Robotica Intro Alumno
83/108
83
1 >> [tout,xout]=ode45(@vdp1,[0 20],[2 0]);
2 >> plot(tout,xout(:,1))
= 1=20
no consistente no-stiff mtodo
7/23/2019 01Robotica Intro Alumno
84/108
84
= 1000
1 >> [tout,xout]=ode45(@vdp1000,[0 1000],[2 0]);
2 >> plot(tout,xout(:,1))
=1000
Lento!
consistente stiff
7/23/2019 01Robotica Intro Alumno
85/108
85
1 >> [tout,xout]=ode23s(@vdp1000,[0 3000],[2 0]);
2 >> plot(tout,xout(:,1))
= 1000=3000
Ejemplo 3
7/23/2019 01Robotica Intro Alumno
86/108
86
j p
Genere un programa en MATLAB para calcular
grficamente el rea de trabajo del robot planarmostrado abajo:
Articulaciones
(rad)
Eslabones
(mm)
2
2 300
2 2 250
Verifique sus resultados
para los siguientes valores
geomtricos:
Programa Matlab
7/23/2019 01Robotica Intro Alumno
87/108
87
Simulink introduccin
7/23/2019 01Robotica Intro Alumno
88/108
88
Simulink tiene la habilidad de simular un nmero
grande de sistemas, desde los mas simples a los
extraordinariamente complejos.
Simulink utiliza una representacin grfica por mediode bloques para describir y simular sistemas
dinmicos .
Simulink esta restringida a soluciones numricas deecuaciones diferenciales que representan sistemas
dinmicos continuos o discretos.
SIMULINK iniciacin
7/23/2019 01Robotica Intro Alumno
89/108
89
Abrir un nuevo
modelo
Abrir la librera
SIMULINK entorno
7/23/2019 01Robotica Intro Alumno
90/108
90
Librera de Simulink
Nuevo modelo
Arrastra y coloca bloques
SIMULINK construccin de un ejemplo
7/23/2019 01Robotica Intro Alumno
91/108
91
Tiempo de
simulacinCorrer programa
SIMULINK parmetros de los bloques
7/23/2019 01Robotica Intro Alumno
92/108
92
SIMULINK parmetros de simulacin
7/23/2019 01Robotica Intro Alumno
93/108
93
SIMULINK ejemplo con ecuacin diferencial
7/23/2019 01Robotica Intro Alumno
94/108
94
(t)
() cos
( 0) 1
(0)0Condiciones iniciales
Solucin analtica:
Oscilaciones mecnicas
7/23/2019 01Robotica Intro Alumno
95/108
95
+ () + () 0
+ sign () + () 0
0.5 kg
0.00411 kg/m 155.2 N/m
( 0 ) 1 (0)0
()
1 m
Condiciones iniciales
Parmetros
1 sign +
7/23/2019 01Robotica Intro Alumno
96/108
96
sign +
()
SIMULINK subsistemas
7/23/2019 01Robotica Intro Alumno
97/108
97
Subsistema
SIMULINK SimMechanics
7/23/2019 01Robotica Intro Alumno
98/108
98
Oscilaciones mecnicas
7/23/2019 01Robotica Intro Alumno
99/108
99
()
1 m
Ground:
7/23/2019 01Robotica Intro Alumno
100/108
100
Prismatic:
Ground:
Body:
7/23/2019 01Robotica Intro Alumno
101/108
101
Body:
Body Sensor:
Joint Initial Condition:
7/23/2019 01Robotica Intro Alumno
102/108
102
Joint Initial Condition:
Joint Spring & Damper:
Machine Environment:
7/23/2019 01Robotica Intro Alumno
103/108
103
Machine Environment:
Configuration Parameters:
7/23/2019 01Robotica Intro Alumno
104/108
104
Configuration Parameters:
7/23/2019 01Robotica Intro Alumno
105/108
105
Tarea 1
Actividad 1
7/23/2019 01Robotica Intro Alumno
106/108
106
Mecanismo de cinco barras Mecanismo de paralelogramo doble
Determine el nmero de grados de libertad de los
mecanismos mostrados abajo:
Actividad 2
7/23/2019 01Robotica Intro Alumno
107/108
107
Dados los parmetros geomtricos del robot SCARA mostrado
abajo, realice lo siguiente:
1. Bosqueje el diagrama esquemtico.
2. Determine el nmero y tipo de grados
de libertad.
3. Encuentre las ecuaciones de las curvas
que delimitan su espacio de trabajo.4. Desarrolle un programa en MatLab para
graficar las curvas obtenidas en el inciso
anterior.
5. Verifique su programa para los
siguientes valores: 5 m, 3 m, 2 m, 90 +90,90 +90, 0 2 m
Fundamentos de Robtica
7/23/2019 01Robotica Intro Alumno
108/108
Fin de Introduccin
Maana:
Cinemtica Directa
Fundamentos de Robtica
Top Related