Está en la página 1de 10

1

CreacindeunRobotconMATLAB

Vamosatomarunejemplosimpledeunmanipuladorplanarde
dos eslabones (ver Figura) el cual tiene los siguientes
parmetros(estndar)deeslabonesdeDenavitHartenberg.



Dondehemospuestolalongituddeloseslabonesen1.Ahora
podemoscrearunpardeobjetosdeeslabn:
path(path,'C:\Documents and Settings\Mis documentos\MATLAB\robot71');
L{1}=link([0 1 0 0 0]);
% L =
% 0.000000 1.000000 0.000000 0.000000 R
L{2}=link([0 1 0 0 0]);
% L2 =
% 0.000000 1.000000 0.000000 0.000000 R
r=robot(L,'D2')
% r =
%
% noname (2 axis, RR)
% grav = [0.00 0.00 9.81] standard D&H parameters
% alpha A theta D R/P
% 0.000000 1.000000 0.000000 0.000000 R
% 0.000000 1.000000 0.000000 0.000000 R
plot(r, [0 0])

M.Sc.RicardoRodrguezBustinza


Las primeras lneas crean los objetos de eslabones, uno por
cadaeslabndelrobot.Noteelsegundoargumentodelinkel
cualespecificaquelaconvencinestndardeD&Hserusada
(staespordefecto).Losargumentosdelobjetodeeslabones
puedenencontrarsede

>> help link


LINK create a new LINK object

A LINK object holds all information related to a robot link such as


kinematics of the joint, rigid-body inertial parameters, motor and
transmission parameters.

LINK
LINK(link)

Create a default link, or a clone of the passed link.

A = LINK(q)

Compute the link transform matrix for the link, given the joint
variable q.

LINK([alpha A theta D sigma])


LINK(DH_ROW) create from row of legacy DH matrix
LINK(DYN_ROW) create from row of legacy DYN matrix

M.Sc.RicardoRodrguezBustinza

Lacualmuestraelordenenquelosparmetrosdelinkdeben
suministrarse(elcualesdiferentealordendelascolumnasde
latabladearriba).Elquintoargumento,sigma,esunabandera
que indica si la unin esrotativa (sigma es cero) oprismtica
(sigmadiferentedecero).

Los objetos de link se pasan como un arreglo a la funcin


robot()lacualcreaunobjetorobotelcualsepasaamuchasde
lasotrasfuncionesdelacajadeherramientas.

ProblemadelaCinemticaDirecta

Encuentre la solucin completa del problema mediante la


cinemticadirectaparaunrobotcilndricodelafigura.



Solucin

Enprimerlugarselocalizanlossistemasdereferenciadecada
una de las articulaciones del robot figura. Posteriormente se
determinanlosparmetrosdeDenavitHartenbergdelrobot,
conlosqueseconstruyelasiguientetabla.

M.Sc.RicardoRodrguezBustinza

% alpha a theta d R/P


L1 = link([0 0 0 1 0]);
D2 = link([pi/2 0 pi/2 1 1]);
D3 = link([0 0 0 1 1]);
L4 = link([0 0 0 1 0]);
rob = robot({L1 D2 D3 L4},'ROBCIL')
plot(rob, [0 0 0 0])
view(-19,68)

Una vez creado el robot se realiza la solucin completa al


problema cinemtico directo con la funcin fkine: Para unas
coordenadasdelasarticulacionesdecero,tenemos:
% Cinematica Directa
q1=[0 0 0 0];
q2=[0 1 1 0];
T1f=fkine(rob,q1);
% T1 =
% 0.0000 -0.0000 1.0000 1.0000
% 1.0000 0.0000 -0.0000 -0.0000
% 0 1.0000 0.0000 1.0000
% 0 0 0 1.0000
T2f=fkine(rob,q2);
% T2 =

M.Sc.RicardoRodrguezBustinza

% 0.0000 -0.0000 1.0000 2.0000


% 1.0000 0.0000 -0.0000 -0.0000
% 0 1.0000 0.0000 2.0000
% 0 0 0 1.0000

UsaremoselToolboxdeMatemticaSimblicaparamanipular
elmovimientodelasarticulacionesdelrobotcilndrico.

syms q1 q2 d2 d3 real

l1=0.5;
q1=0;
T01=[cos(q1) -sin(q1) 0 0
sin(q1) cos(q1) 0 0
0 0 1 l1
0 0 0 1];

d2=1;
T12=[0 0 1 0
1 0 0 0
0 1 0 d2
0 0 0 1];

d3=1.5;
T23=[1 0 0 0
0 1 0 0
0 0 1 d3
0 0 0 1];

l4=1;
q4=0;
T34=[cos(q4) -sin(q4) 0 0
sin(q4) cos(q4) 0 0
0 0 1 l4
0 0 0 1];
T04=T01*T12*T23*T34;



M.Sc.RicardoRodrguezBustinza

Otrosmovimientosdelrobotcilndrico

ProblemadelaCinemticaInversa

Para encontrar la solucin al problema cinemtico inverso se


usa la funcin ikine aunque la solucin se lleva un tiempo
inaceptableparacontrolarrobotsreales.Porejemplo:

Usando el robot creado en el numeral anterior obtenemos la


solucin: Para las coordenadas de las articulaciones q = [pi/4
0.50.5pi/3]seobtienelasiguientematrizdetransformacin:

T = fkine(rob,[-pi/4 0.5 0.5 pi/3]);


% T =
% 0.3536 -0.6124 0.7071 1.0607
% 0.3536 -0.6124 -0.7071 -1.0607
% 0.8660 0.5000 0.0000 1.5000
% 0 0 0 1.0000
qi = ikine(rob,T,[0 0 0 0],[1 1 1 1 0 0]);
% CI Art 1 2 3 4 DOF
% qi =
% -0.7854 0.5000 0.5000 1.0472
qi_grad=qi*180/pi
% qi_grad =
% -45.0000 28.6479 28.6479 60.0000

Note que coinciden con las coordenadas de las articulaciones


originales.Unasolucinnosiempreesposible,porejemplosi
la transformacin describe un punto fuera del alcance del
manipulador.Tambinlasolucinnoesnecesariamentenica
yhaysingularidadesenlascualeselmanipuladorpierdegrados
delibertadylascoordenadasdelasarticulacioneslleganaser
linealmentedependientes.

M.Sc.RicardoRodrguezBustinza

Ejercicio

ConsidereelmanipuladorRRRdelaFigura


ObteniendolosparmetrosDH

Hallando la cinemtica directa 0T4 del manipulador desde las


ecuacionesDH.

Es usual realizar las multiplicaciones de las transformaciones,


ya que posteriormente necesitaremos de estos resultados en
lassubmatricesqueseformanparaobtenerlosJacobianos.

M.Sc.RicardoRodrguezBustinza



ParahallarelJacobianobsicoparaesteManipulador.ParaXp
usamoslaposicindelefectorfinalexpresadoenelframe{0}
queeslaltimacolumnade0T4



ParahallarelJacobiano1Jvlamatrizdeposicindeljacobiano
expresadoenelframe{1}es:

M.Sc.RicardoRodrguezBustinza

Usando la matriz hallada anterioemente, determinaremos las


singularidades (con respecto a la velocidda lineal) del
manipulador.

Paraelloserequierehallar1,2,y3 que es la matriz singular.


Esto se realiza cuando el determinante es cero.

Lassingularidadesocurrencuando:

La primera cantidad (2C2+C23=0) es la distancia entre el punto


del efector final y el eje z1. Cuando la distancia es cero, la
juntura1notieneefectosobrelavelocidadenelefectorfinal.
Entoncessololasjunturas2y3puedenafectarlasvelocidades
comunesalarotacin,elefectorfinalnopuedemoverseenla
direccindey1.

Cuando S3=0, puede tomar 3 =180 o 3=0, en este caso es


imposible que el efector final se mueva en la direccin x4.

Para cada singularidad podemos interpretar la limitacin de


movimiento:

M.Sc.RicardoRodrguezBustinza

10

M.Sc.RicardoRodrguezBustinza

También podría gustarte