Está en la página 1de 8

PROYECTO DE METODOS NUMERICOS.

Construir, programar y controlar numricamente un manipulador de 2 grados de libertad.

ALUMNO: Salgado Amado Fernando Alberto

Ing. Meca trnica 4to semestre

-FASCCULO F01
El alumno usar el algoritmo de Newton-Gauss estudiado en clase para resolver un sistema de ecuaciones no lineales en 2 incgnitas implicadas por el problema de cinemtica inversa en posicin de un manipulador de 2 grados de libertad del tipo RR, el cual deber ser capaz de trazar una curva en una hoja de papel plana. El alumno comprobar experimentalmente una aplicacin mecatrnica de los mtodos numricos.

Se denomina cinemtica directa a una tcnica usada en grficos 3D por computadora, para calcular la posicin de partes de una estructura articulada a partir de sus componentes fijas y las transformaciones inducidas por las articulaciones de la estructura.

Consiste en determinar cul es la posicin y orientacin del extremo final del robot, con respecto a un sistema de coordenadas que se toma como referencia, conocidos los valores de las articulaciones y los parmetros geomtricos de los elementos del robot.
La denominacin de esta tcnica se adopta en contraposicin a otra tcnica relacionada, la cinemtica inversa, que consiste en calcular las transformaciones necesarias en las articulaciones de una estructura, de modo que su extremo se coloque en una posicin determinada.

Una figura articulada consta de un conjunto de segmentos rgidos conectados mediante articulaciones. Los mltiples ngulos que pueden adoptar estas articulaciones permiten un nmero indefinido de configuraciones o posiciones de la figura. La solucin al problema cinemtico inverso consiste en encontrar los valores que deben adoptar las coordenadas articulares del robot q = [q1, q2, . . . , qn] para que su extremo se posicione y oriente segn una determinada configuracin deseada. En general no existe una solucin nica para este problema, incluso puede no existir. La bsqueda de la solucin suele realizarse mediante el uso de tcnicas numricas iterativas como por ejemplo Mtodo de Newton. Esto puede resultar en clculos lentos, por lo que habitualmente en una implementacin real se acota el tiempo mximo (o iteraciones) que debe realizar el algoritmo de bsqueda. En otro casos, para robots con pocos grados de libertad, existen soluciones analticas mediante el uso de mtodos geomtricos, que consisten en la utilizacin de las relaciones trigonomtricas y la resolucin de los tringulos formados por los elementos y articulaciones del robot.

El problema de la cinemtica inversa consiste en encontrar los valores que deben adoptar las coordenadas articulares del robot q = [q1, q2, . . . , qn] para que su extremo se posicione y oriente segn una determinada localizacin espacial. Al contrario que el problema cinemtico directo, el clculo de la cinemtica inversa no es sencilla ya que consiste en la resolucin de una serie de ecuaciones fuertemente dependiente de la configuracin del robot, adems de existir diferentes n uplas q = [q1, q2, . . . , qn] que resuelven el problema.

-Cinemtica Directa se obtiene de resolver tanto el seno como el coseno de las longitudes l1 y l2 y de sus ngulos que la conforman. -Cinemtica inversa se obtiene de una matriz de 4x2 en la que entra la cinemtica directa y los puntos finales.

Nos permite obtener el numero de pasos q debe dar y las parejas ordenadas con los cuales vas a llegar a el punto de destino (finales). Nuestro robot necesita 20 pasos para poder llegar a su destino de esta manera es mas fcil calcular esos pasos. BIBLIOGRAFIAS: 1.- J.H. Mathews, K.D. Fink. Mtodos numricos con MatLab. 2000. Prentice-Hall.

2.- Scheid Francis. Di Costanzo Rosa Elena. Metodos Numericos. 1991. Mc Graw Hill.

3.- http://es.wikipedia.org/wiki/Cinematica

-FASCCULO F02 Deber presentar el fascculo F02, consistente en un listado de su programa en el lenguaje de alto nivel de su preferencia (por ejemplo, Visual Basic, C#, etc.).
% tray error=10 l1=input('longitud 1') l2=input('longitud 2') th_1ini=input('theta_1 inicial') th_2ini=input('theta_1 inicial') xf=input('x final') yf=input('y final') th_1=th_1ini th_2=th_2ini epsilon=input('dame el error admisible') cinematicadir % recta m=(yf-y)/(xf-x) b=-m*xf+yf dx=(xf-x)/20; xp(1)=x+dx; yp(1)=m*xp(1)+b; for i=2:1:20 xp(i)=xp(i-1)+dx; yp(i)=m*xp(i)+b; end

% tray:

INICIO DEL PROGRAMA, PROPORCIONAMOS LOS DATOS ASIGNADOS, DEFINIMOS LA PENDIENTE (M), LA CONSTANTE B, Y LOS PUNTOS PROXIMOS (xp, yp).

% cinematicadir % cinematicadir x=l1*cos(th_1)+l2*cos(th_1+th_2) y=l1*sin(th_1)+l2*sin(th_1+th_2)

CINEMATICA DIRECTA

%matjac a=-l1*sin(th_1)-l2*sin(th_1+th_2) b=-l2*sin(th_1+th_2) c=l1*cos(th_1)+l2*cos(th_1+th_2) d=l2*cos(th_1+th_2)

%matjac

CALCULAMOS LA MATRIZ JACOBIANA

%matjacinv deter=a*d-b*c aji=d/deter bji=-b/deter cji=-c/deter dji=a/deter

%matjacinv

CALCULAMOS EL DETERMINANTE Y LA JACOBIANA INVERSA

%difang dth_1=aji*deltaX+bji*deltaY dth_2=cji*deltaX+dji*deltaY

%difang

COMPARAMOS EL ANGULO VIEJO CON EL ANGULO NUEVO PARA OBTENER NUEVOS DESTINOS PROXIMOS.

%ng for i=1:1:20 while error >= epsilon cinematicadir xa=x

ya=y deltaX=xp(i)-xa deltaY=yp(i)-ya matjac matjacinv difang error=sqrt(dth_1^2+dth_2^2) if error < epsilon %rad-pas pas1(i)= round(100/pi*(th_1+dth_1-th_1ini)) pas2(i)= round(100/pi*(th_2+dth_2-th_2ini)) %pas-rad deltath_1=pi/100*pasos1(i) deltath_2=pi/100*pasos2(i) th_1=th_1ini+deltath_1 th_2=th_2ini+deltath_2 th_1ini=th_1 th_2ini=th_2 else th_1=th_1+dth_1 th_2=th_2+dth_2 end end error=10 end %programafer tray ng

%ng

DEFINIMOS PRIMERO UN ERROR ARTIFICIAL (10)Y EPCILON (0.0001) , CONVERTIMOS RADIANES A PASOS Y PASOS A RADIANES, CALCULAMOS ANGULOS FINALES.

%programafer

PROGRAMA PARA MANIPULAR EL ROBOT

FASCICULO F03

Consiste en una impresin de la tabla de desplazamientos angulares. Este listado es indispensable, pues ser el principal instrumento de evaluacin del programa.
Salgado Amado Fernando Alberto th_1 th_2 75 106 xfinal yfinal -10.72 2.47

xp yp -9.8662678 18.22739391 -9.91120107 17.39805739 -9.95613435 16.56872086 -10.0010676 15.73938434 -10.0460009 14.91004782 -10.0909342 14.0807113 -10.1358674 13.25137478 -10.1808007 12.42203826 -10.225734 11.59270174 -10.2706673 10.76336521 -10.3156005 9.934028693 -10.3605338 9.104692172 -10.4054671 8.27535565 -10.4504004 7.446019129 -10.4953336 6.616682607 -10.5402669 5.787346086 -10.5852002 4.958009564 -10.6301335 4.128673043 -10.6750667 3.299336521 -10.72 2.47

pasos th1 0 0 1 0 1 0 1 1 1 1 1 1 2 2 1 2 3 2 2 3 pasosth2 2 1 2 1 2 1 2 1 1 2 1 1 1 1 1 1 0 1 0 1

1.- Aplicamos la cinemtica directa, con los datos proporcionados,

2.-Aplicar la jacobina [ 3.-Aplicar la jacobina inversa


( * ( ) + )

4.- se calcula el incremento del ngulo, con respecto al primer destino prximo (comparando respecto al ngulo viejo y el ngulo nuevo) ( ( ) )

( 5.- Aplicamos el mtodo de Newton Gauss

-damos un error artificial de 10 y lo comparamos con el valor de psilon(hasta q sea mayor o igual),[repitiendo todos los pasos anteriores hasta q se cumpla q el error sea mayor o igual a psilon]

Aplicamos la Norma

Si el error es menor q psilon, convertimos los radianes a pasos y viceversa para almacenar estos datos

calculamos el ngulo final (

, parta cada destino prximo

.6.- corremos el programa.