Вы находитесь на странице: 1из 10

1

M.Sc.RicardoRodrguezBustinza

CreacindeunRobotconMATLAB

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

Donde hemos puesto la longitud de los eslabones en 1. 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])

2

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


3

M.Sc.RicardoRodrguezBustinza

Lacualmuestraelordenenquelosparmetrosdelinkdeben
suministrarse(elcualesdiferentealordendelascolumnasde
latabladearriba).Elquintoargumento,sigma,esunabandera
que indica si la unin es rotativa (sigma es cero) o prismtica
(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
determinan los parmetros de Denavit Hartenberg del robot,
conlosqueseconstruyelasiguientetabla.
4

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 =
5

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 r eal

l 1=0. 5;
q1=0;
T01=[ cos( q1) - si n( q1) 0 0
si n( q1) cos( q1) 0 0
0 0 1 l 1
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] ;

l 4=1;
q4=0;
T34=[ cos( q4) - si n( q4) 0 0
si n( q4) cos( q4) 0 0
0 0 1 l 4
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. Una solucin no siempre es posible, por ejemplo si
la transformacin describe un punto fuera del alcance del
manipulador. Tambin la solucin no es necesariamente nica
yhaysingularidadesenlascualeselmanipuladorpierdegrados
delibertadylascoordenadasdelasarticulacioneslleganaser
linealmentedependientes.
7

M.Sc.RicardoRodrguezBustinza

Ejercicio

ConsidereelmanipuladorRRRdelaFigura

ObteniendolosparmetrosDH

Hallando la cinemtica directa


0
T
4
del manipulador desde las
ecuacionesDH.

Es usual realizar las multiplicaciones de las transformaciones,


ya que posteriormente necesitaremos de estos resultados en
lassubmatricesqueseformanparaobtenerlosJacobianos.
8

M.Sc.RicardoRodrguezBustinza

ParahallarelJacobianobsicoparaesteManipulador.ParaXp
usamos la posicin del efector final expresado en el frame {0}
queeslaltimacolumnade
0
T
4

ParahallarelJacobiano
1
J
v
lamatrizdeposicindeljacobiano
expresadoenelframe{1}es:

M.Sc.RicardoRodrguezBustinza

Usando la matriz hallada anterioemente, determinaremos las


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

Para ello se requiere hallar


1
,
2
, y
3
que es la matriz singular.
Esto se realiza cuando el determinante es cero.

Lassingularidadesocurrencuando:

La primera cantidad (2C


2
+C
23
=0) es la distancia entre el punto
del efector final y el eje z
1
. Cuando la distancia es cero, la
juntura1notieneefectosobrelavelocidadenelefectorfinal.
Entoncessololasjunturas2y3puedenafectarlasvelocidades
comunesalarotacin,elefectorfinalnopuedemoverseenla
direccindey
1
.

Cuando S
3
=0, puede tomar
3
=180 o
3
=0, en este caso es
imposible que el efector final se mueva en la direccin x
4
.

Para cada singularidad podemos interpretar la limitacin de


movimiento:

10

M.Sc.RicardoRodrguezBustinza

Вам также может понравиться