guia lab 1 robotica i matlab

12
UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I Robótica I CODIFICACIÓN Lab I Tema: Introducción a Matlab Recordar y/o aprender algunos comandos básicos de Matlab, con el fin de usar este software como una herramienta en el desarrollo de diversos algoritmos que se desarrollaran en e transcurso de la materia. OBJETIVOS ESPECIFICOS: 1. Aprender a crear, modificar y operar arreglos matriciales. 2. Aplicar las estructuras básicas de programación en matlab. 3. Representar datos por medio de gráficas. REQUISITOS: Conocer los conceptos generales de algebra lineal y programación básica. 1.- Computador con matlab PROCEDIMIENTO Repetir todos los ejemplos que se enuncian a continuacion y realizar los ejercicios planteados. Ejemplos: Creación de un vector fila: >> A = [1 , 2 , 3] A = 1 2 3 Creación de un vector columna: >> B = [1 ; 2 ; 3] B = 1 2 3 Transponer un vector fila: >> C = [1 , 2 , 3]' C = 1 2 3 Creacion de una matriz: OBJETIVO: EQUIPOS Y HERRAMIENTAS

Upload: edwin-daza

Post on 03-Jul-2015

746 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

CODIFICACIÓN Lab I Tema: Introducción a Matlab

Recordar y/o aprender algunos comandos básicos de Matlab, con el fin de usar este software como una herramienta en el desarrollo de diversos algoritmos que se desarrollaran en e transcurso de la materia. OBJETIVOS ESPECIFICOS:

1. Aprender a crear, modificar y operar arreglos matriciales. 2. Aplicar las estructuras básicas de programación en matlab. 3. Representar datos por medio de gráficas.

REQUISITOS: Conocer los conceptos generales de algebra lineal y programación básica.

1.- Computador con matlab PROCEDIMIENTO Repetir todos los ejemplos que se enuncian a continuacion y realizar los ejercicios planteados. Ejemplos: Creación de un vector fila: >> A = [1 , 2 , 3] A = 1 2 3 Creación de un vector columna: >> B = [1 ; 2 ; 3] B = 1 2 3 Transponer un vector fila: >> C = [1 , 2 , 3]' C = 1 2 3 Creacion de una matriz:

OBJETIVO:

EQUIPOS Y HERRAMIENTAS

Page 2: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

>> M = [1 , 2 , 3 ; 4 , 5 , 6 ; 7 , 8 , 9 ] M = 1 2 3 4 5 6 7 8 9 Creación de una matriz diagonal 4x4: >> Md = eye(4) Md = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Creación de una matriz 4x10 con todos los elementos nulos: >> Mz = zeros(4,10) Mz = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Creación de una matriz 5x3 con todos los elementos iguales a 1: >> M1 = ones(5,3) M1 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Unión de matrices, observe la diferencia entre la matriz C y la D: >> A = [ 1 , 2 , 3 ; 4 , 5 , 6] A = 1 2 3 4 5 6 >> B = [ 7 , 8 , 9 ; 10 , 11 , 12] B = 7 8 9 10 11 12 >> C = [A , B] C = 1 2 3 7 8 9 4 5 6 10 11 12 >> D = [A ; B] D = 1 2 3 4 5 6 7 8 9 10 11 12

Page 3: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

Cambiar el valor del elemento (2,2) de la matriz A por 10: >> A = [1 , 2 , 3 ; 4 , 5 , 6 ; 7 , 8 , 9 ] A = 1 2 3 4 5 6 7 8 9 >> A(2,2) = 10 A = 1 2 3 4 10 6 7 8 9 Cambiar todos los elementos de la columna 2 por el valor 111 >> A(:,2) = 111 A = 1 111 3 4 111 6 7 111 9 Sustituir los elementos (2,2) (2,3) (3,2) (3,3) por una matriz de unos de 2x2 >> A(2:3,2:3) = ones(2,2) A = 1 111 3 4 1 1 7 1 1 Eliminar la segunda fila de la matriz >> A(2,:) = [] A = 1 111 3 7 1 1 Crear una matriz de números aleatorios 4x4 >> B = rand(4,4) B = 0.8147 0.6324 0.9575 0.9572 0.9058 0.0975 0.9649 0.4854 0.1270 0.2785 0.1576 0.8003 0.9134 0.5469 0.9706 0.1419 Generación de numeros Matlab permite la generación de números por medio del metodo de incrementos, usando la siguiente sintaxis:

vector = valor inicial: incremento: valor final

Page 4: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

ejemplo 1: >> vector = 1:2:11 vector = 1 3 5 7 9 11

Por numero de puntos dentro de un rango: con espaciamiento lineal, la sintaxis es:

linspace(valor inicial, valor final, numero de puntos) ejemplo 2: >> A = linspace(1, 100, 10) A = 1 12 23 34 45 56 67 78 89 100 1. Escribir la sentencia correcta para crear un vector igual al obtenido en el ejemplo anterior pero usando la sintaxis del metodo de incrementos. Encontrar los valores mayores a 5 de la matriz M y reemplazarlos por 0. Observe el significado del vector V. >> M =[1 , 2 , 3 ; 4 , 5 , 6 ; 7 , 8 , 9 ] M = 1 2 3 4 5 6 7 8 9 >> V = find(M > 5) V = 3 6 8 9 >> M(V) = 0 M = 1 2 3 4 5 0 0 0 0 Obtener el valor máximo, minimo, promedio y la suma de los elementos del vector V >> V = [ 1, 3, 6, 9, 2, 4, 6, 1, 3, 4, 77, 32, 21, 3, 1, 9] V = 1 3 6 9 2 4 6 1 3 4 77 32 21 3 1 9 >> minimo = min(V) minimo = 1 >> maximo = max(V) maximo = 77 >> promedio = mean(V) promedio = 11.3750

Page 5: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

>> suma = sum(V) suma = 182 Realizar el producto cruz y el producto punto de dos vectores >> A = [2, 5, 7] A = 2 5 7 >> B = [3, 9, 1] B = 3 9 1 >> producto_cruz = cross(A,B) producto_cruz = -58 19 3 >> producto_punto = dot(A,B) producto_punto = 58 Obtener el valor absoluto de los elementos de un vector >> A = [-2 , 4 , -9] A = -2 4 -9 >> abs(A) ans = 2 4 9 Obtener la norma de un vector >> norm([4, 2, 3]) ans = 5.3852 Calcular el tamaño de un arreglo matricial >> M =[1 , 2 , 3 ; 4 , 5 , 6 ] M = 1 2 3 4 5 6 >> [fil,col]=size(M) fil = 2 col = 3 Elevar a la 4 los elementos de un vector >> [1, 2, 3, 5].^4 ans = 1 16 81 625

Page 6: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

Multiplicar de dos vectores, elemento por elemento [1, 2, 3, 4].* [2, 5, 3, 10] ans = 2 10 9 40 Redondeo al entero más cercano >> round([3.2, 5.5, 7.8]) ans = 3 6 8 Función seno con argumento de entrada un angulo en radianes >> sin(pi/2) ans = 1 Función seno con argumento de entrada un angulo en grados >> sind(45) ans = 0.7071 Raiz cuadrada de un vector >> sqrt([2, 4, 9]) ans = 1.4142 2.0000 3.0000 Inversa de una matriz >> M =[2 , 6 , 3 ; 4 , 8 , 6 ; 7 , 8 , 9 ] M = 2 6 3 4 8 6 7 8 9 >> inv(M) ans = 2.0000 -2.5000 1.0000 0.5000 -0.2500 0 -2.0000 2.1667 -0.6667 Pseudo inversa de una matriz (Moore-Penrose) >> M =[2 , 6 , 3 ; 4 , 8 , 7] M = 2 6 3 4 8 7 >> IM = pinv(M) IM = -0.1276 0.1071 0.4031 -0.1786 -0.3878 0.2857 >> M*IM ans =

Page 7: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

1.0000 -0.0000 0 1.0000 Determinante de una matriz >> det([9 , 6 , 3 ; 4 , 7 , 6 ; 7 , 8 , 9 ]) ans = 120 Mostrar un mensaje >> disp('mensaje de texto') mensaje de texto Obtener la ayuda del comando “det” >> help det DET Determinant. DET(X) is the determinant of the square matrix X. Use COND instead of DET to test for matrix singularity. See also cond. Overloaded methods: gf/det sym/det laurmat/det Reference page in Help browser doc det Uso de la función empty >> A = [7 , 8 , 4, 2 ,1, 12] A = 7 8 4 2 1 12 >> L1 = find(A > 7) L1 = 2 6 >> isempty(L1) ans = 0 >> L2 = find(A > 15) L2 = Empty matrix: 1-by-0 >> isempty(L2) ans = 1 Uso de variables simbolicas >> syms x y

Page 8: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

>> z = x + y z = x+y Grabar las variables del workspace >> save m_1.mat Resolver ecuaciones con variables simbolicas >> syms x >> solve('x^2 + 5 = 30',x) ans = 5 -5 Uso de la función “if”

Archivo m x = 4; if (x == 7) disp('Valor igual a 7'); elseif (x > 7) disp('Valor mayor a 7'); else disp('Valor menor a 7'); end

Resultado de la ejecución del archivo m Valor menor a 7 Uso de la funcion for

Archivo m for i=1:5 Vec(i) = i^2 + 5 end

Resultado de la ejecución del archivo m Vec = 6 Vec = 6 9 Vec = 6 9 14 Vec = 6 9 14 21 Vec = 6 9 14 21 30

Page 9: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

Uso de la función while Archivo m

y = 0 while (y <= 700) y = 1 + 5*y end

Resultado de la ejecución del archivo m y = 0 y = 1 y = 6 y = 31 y = 156 y = 781 Uso de la función switch

Archivo m x = 3 switch x case x == 1 disp('Valor = 1') case {3, 5} disp('El valor es 3 o 5') otherwise disp('El valor no es ni 1, ni 3, ni 5') end

Resultado de la ejecución del archivo m x = 3 El valor es 3 o 5 Uso de la función eval

Archivo m for i=1:3 s = ['save m_' int2str(i) '.mat'] eval(s) end

Resultado de la ejecución del archivo m s = save m_1.mat s = save m_2.mat s = save m_3.mat

Page 10: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

Crear una grafica a partir de dos vectores Archivo m

clear; % Borra las variables del workspace close all; % cierra las ventanas abiertas clc; % borra la pantalla figure(1); % Crea una ventana para hacer nueva figura x = [1:100]; y = x.^2; plot (x,y); title('Funcion cuadratica'); % Crea el titulo de la figura xlabel('X');% Etiqueta el eje x ylabel('Y');% Etiqueta el eje y

Resultado de la ejecución del archivo m

Dibujar una linea en el espacio

Archivo m clear; % Borra las variables del workspace close all; % cierra las ventanas abiertas clc; % borra la pantalla figure(1); % Crea una ventana para hacer nueva figura p1 = [1 , 1 , 1]; p2 = [3 , 4 , 5]; line( [p1(1) , p2(1)], [p1(2) , p2(2)], [p1(3) , p2(3)]); title('Funcion cuadratica'); % Crea el titulo de la figura xlabel('X'); % Etiqueta el eje x ylabel('Y'); % Etiqueta el eje y ylabel('Y'); % Etiqueta el eje y grid on % Activa la grilla

Resultado de la ejecución del archivo m

Page 11: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

Creación de una función:

Archivo m % En estas lineas se escribe la ayuda correspondiente a la funcion que se % desea crear, indica los parametros de entrada y de salida de la funcion % Tambien se suele colocar los comandos relacionados y el autor. function arg_salida = nombre_de_la_funcion(parametro_1, parametro_2) %se desarrolla el algoritmo pertinente, por ejemplo: arg_salida = parametro_1*parametro_2;

Ejemplo del uso de la funcion >> help nombre_de_la_funcion En estas lineas se escribe la ayuda correspondiente a la funcion que se desea crear, indica los parametros de entrada y de salida de la funcion Tambien se suele colocar los comandos relacionados y el autor. >> R = nombre_de_la_funcion(2, 10) R = 20 Ejercicios adicionales: 1. Dibujar en matlab el mecanismo que se ilustra en la siguiente figura, donde h=5 cm, L1= 40 cm, L2=80 cm:

Page 12: Guia Lab 1 Robotica I Matlab

UNIVERSIDAD DE PAMPLONA Unidad de Ingeniería Mecatrónica

Facultad de Ingenierías. Programa de Ingeniería Mecatrónica. Laboratorio I

Robótica I

VERSION 1 – Ph.D. César Augusto Peña C

2. Realizar una animación donde se observe el movimiento del mecanismo. (La manivela debe girar 3 vueltas) Recomendación: Lease la ayuda de los comandos pause, clf y hold on. 3. Obtengase un grafica que describe el desplazamiento del piston. 4. Obtengase la grafica que describe la velocidad del piston cuando la velocidad de la manivela es de 0.5 rad/s 5. Obtengase la grafica de la aceleracion del piston bajo las mismas condiciones. Aplicar el comando subplot. 6. Crear una función que dibujar un robot SCARA, dados los angulos de las dos primeras articulaciones y el desplazamiento de la última articulación. Representar los eslabones por medio de lineas. 7. Realizar una animacion haciendo que el robot se mueva según un arreglo matricial que contiene los angulos de angulos de las 2 primeras articulaciones y el desplazamiento de la última articulación.

Figura. Robot SCARA