cuerpo1=rigidBody('cuerpo1');
jta1=rigidBodyJoint('jta1','revolute');
[Link]=jta1;
[Link]=pi/4;
robot=rigidBodyTree;
addBody(robot,cuerpo1,'base')
showdetails(robot);
cuerpo2=rigidBody('cuerpo2');
>> jta2=rigidBodyJoint('jta2','revolute');
>> [Link]=jta2;
>> addBody(robot,cuerpo2,'cuerpo1');
>> showdetails(robot);
cuerpo3=rigidBody('cuerpo3');
>> jta3=rigidBodyJoint('jta3','revolute');
>> [Link]=jta3;
>> addBody(robot,cuerpo3,'cuerpo2');
>> showdetails(robot);
bodyEndEffector=rigidBody('endeffector');
>> addBody(robot,bodyEndEffector,'cuerpo3');
>> showdetails(robot);
2. Construir un robot paso a paso con los comandos rigidBody, rigidBodyJoint,
rigidBodyTree, addBody entre otros.
3. Investigar 2 modelos de robots comerciales que posea el Robotic System
Toolbox, o el Toolbox de Robótica de Peter Corke, seleccionar uno de ellos y
realizar una simulación programando una serie de movimientos que generen una
trayectoria.
Kuka Robot KR 10 R1100
Kuka Robot KR 10 R1100 Rigged for Cinema 4D es un modelo 3D de alta calidad
y foto real que mejorará el detalle y el realismo de cualquiera de sus proyectos de
renderizado. El modelo tiene un diseño totalmente texturizado y detallado que
permite renders de primer plano. Modelo renderizado con V-Ray en 3ds Max 2012.
Los renders no tienen post procesamiento.
Kuka Robot KR 10 R1100 Modelo 3D totalmente equipado con ayudantes en
Cinema 4D R17.
Funciones:
- Modelo poligonal de alta calidad, escalado correctamente para una
representación precisa del objeto original.
- Las resoluciones de los modelos están optimizadas para la eficiencia del
polígono. (En Cinema 4D, la función Superficie de subdivisión se puede utilizar
para aumentar la resolución de malla si es necesario).
- Todos los colores se pueden modificar fácilmente.
Datos generales
Capacidad máxima de carga: 10 Kg
Numero de ejes: 5
Alcance máximo horizontal: 1101 mm
Repetibilidad: +-0.03 mm.
Controlador: KR C4
Movimiento de rango
Eje 1: +/- 170º
Eje 2: +45º/-190º
Eje 3: +156º/-120º
Eje 4: +/-185º
Eje 5: +/-120ºX W
Eje 6: +/-350º
Aplicaciones del Robot
Ensamble
Pick and place
Manipulación de partes
Embalaje
intermediateDistance = 0.3;
[Link] = zeros(size([Link])); [Link] = 0;
[Link] = [0,0,intermediateDistance];
[qWaypoints(2,:),solutionInfo] = gik(q0, heightAboveTable, ... distanceFromCup, alignWithCup,
fixOrientation, limitJointChange);
[Link] = ones(size([Link])); [Link] = 1;
[Link] = tform2quat(getTransform(lbr,qWaypoints(2,:),gripper));
finalDistanceFromCup = 0.05; distanceFromCupValues = linspace(intermediateDistance,
finalDistanceFromCup, numWaypoints-1);
maxJointChange = deg2rad(10);
for k = 3:numWaypoints % Update the target position. [Link](3) =
distanceFromCupValues(k-1); % Restrict the joint positions to lie close to their previous values.
[Link] = [qWaypoints(k-1,:)' - maxJointChange, ... qWaypoints(k-1,:)' +
maxJointChange]; % Solve for a configuration and add it to the waypoints array.
[qWaypoints(k,:),solutionInfo] = gik(qWaypoints(k-1,:), ... heightAboveTable, ... distanceFromCup,
alignWithCup, ... fixOrientation, limitJointChange); end
framerate = 15; r = rateControl(framerate); tFinal = 10; tWaypoints =
[0,linspace(tFinal/2,tFinal,size(qWaypoints,1)-1)]; numFrames = tFinal*framerate; qInterp =
pchip(tWaypoints,qWaypoints',linspace(0,tFinal,numFrames))';
gripperPosition = zeros(numFrames,3); for k = 1:numFrames gripperPosition(k,:) =
tform2trvec(getTransform(lbr,qInterp(k,:), ... gripper)); end
figure; show(lbr, qWaypoints(1,:), 'PreservePlot', false); hold on
exampleHelperPlotCupAndTable(cupHeight, cupRadius, cupPosition); p =
plot3(gripperPosition(1,1), gripperPosition(1,2), gripperPosition(1,3));
hold on for k = 1:size(qInterp,1) show(lbr, qInterp(k,:), 'PreservePlot', false); [Link](k) =
gripperPosition(k,1); [Link](k) = gripperPosition(k,2); [Link](k) = gripperPosition(k,3); waitfor(r);
end hold off
tpts = 0:4; sampleRate = 20; tvec = tpts(1):1/sampleRate:tpts(end); numSamples = length(tvec);
robot = loadrobot('frankaEmikaPanda',DataFormat='column')
rng default frankaWaypoints = [[Link] [Link]
[Link]]; frankaTimepoints = linspace(tvec(1),tvec(end),3); [q,qd] =
trapveltraj(frankaWaypoints,numSamples);
figure set(gcf,'Visible','on'); rc = rateControl(sampleRate); for i = 1:numSamples
show(robot,q(:,i),FastUpdate=true,PreservePlot=false); waitfor(rc); end
tpts = 0:4;
sampleRate = 20;
tvec = tpts(1):1/sampleRate:tpts(end);
numSamples = length(tvec);
robot = loadrobot('abbIrb120',DataFormat='column');
>> rng default
frankaWaypoints = [[Link] [Link]
[Link]];
frankaTimepoints = linspace(tvec(1),tvec(end),3);
[q,qd] = trapveltraj(frankaWaypoints,numSamples);
>> figure
set(gcf,'Visible','on');
rc = rateControl(sampleRate);
for i = 1:numSamples
show(robot,q(:,i),FastUpdate=true,PreservePlot=false);
waitfor(rc);
end