Professional Documents
Culture Documents
Informe Lab 3 Robotica: Video
Informe Lab 3 Robotica: Video
Table of Contents
Video ................................................................................................................................ 1
Asignación sistema de coordenadas ........................................................................................ 1
Parametros DHmod ............................................................................................................. 1
Toolbox ............................................................................................................................. 1
Video
https://www.youtube.com/watch?v=yTTW8NGIRw4&feature=youtu.be
Parametros DHmod
Toolbox
clear
%Dimensiones l1 l2 l3 l4
1
Informe Lab 3 Robotica
l1 = 42;
l2 = 105;
l3 = 105;
l4 = 110;
Creacion links
L(1)= Link('revolute','alpha',0
,'a',0,'d',l1,'offset',0,'qlim',deg2rad([-150 150]),'modified');
L(2)=
Link('revolute','alpha',pi/2 ,'a',0,'d',0,'offset',pi/2,'qlim',deg2rad([-150
150]),'modified');
L(3)=
Link('revolute','alpha',0,'a',l2,'d',0,'offset',0,'qlim',deg2rad([-150
150]),'modified');
L(4)=
Link('revolute','alpha',0,'a',l3,'d',0,'offset',0,'qlim',deg2rad([-150
150]),'modified');
Union eslabones
robot= SerialLink(L,'name','Px');
%
A_4T=[0 0 1 l4;
-1 0 0 0;
0 -1 0 0;
0 0 0 1];
robot.tool=A_4T;
%grafica Home
robot.plot(deg2rad([0 0 0 0]),'workspace',[-500 500 -500 500 -500
500], 'scale', 0.4, 'jaxes',...
'tilesize',2);
hold on
2
Informe Lab 3 Robotica
3
Informe Lab 3 Robotica
4
Informe Lab 3 Robotica
5
Informe Lab 3 Robotica
6
Informe Lab 3 Robotica
7
Script Matlab ROS
clear
home=[2.61 2.61 2.61 2.61 0];
q1=[0 0 0 0 0];
q2=[-0.34 -0.34 -0.34 -0.34 0];
q3=[0.52 -0.52 0.52 -0.52 0];
q4=[-1.57 0.26 -0.95 0.29 0];
q5=[-1.57 0.78 -0.95 0.78 0.17];
q=home+q3;
client=rossvcclient('/waist_controller/set_speed');
newspeed=rosmessage(client);
client2=rossvcclient('/waist_controller/set_torque_limit');
newtorque=rosmessage(client2);
newspeed.Speed=0.2;
newtorque.TorqueLimit=7;
call(client,newspeed);
call(client2,newtorque);
pos1Pub = rospublisher('/waist_controller/command','std_msgs/
Float64'); %Creación publicador
pos1Msg = rosmessage(pos1Pub); %Creación de mensaje
pos1Msg.Data = q(1); %Valor del mensaje
send(pos1Pub,pos1Msg); %Envio
pause(8);
client=rossvcclient('/shoulder_controller/set_speed');
newspeed=rosmessage(client);
client2=rossvcclient('/shoulder_controller/set_torque_limit');
newtorque=rosmessage(client2);
newspeed.Speed=0.2;
newtorque.TorqueLimit=10;
call(client,newspeed);
call(client2,newtorque);
pos2Pub = rospublisher('/shoulder_controller/command','std_msgs/
Float64'); %Creación publicador
pos2Msg = rosmessage(pos2Pub); %Creación de mensaje
pos2Msg.Data = q(2); %Valor del mensaje
send(pos2Pub,pos2Msg); %Envio
pause(5);
client=rossvcclient('/elbow_controller/set_speed');
newspeed=rosmessage(client);
client2=rossvcclient('/elbow_controller/set_torque_limit');
newtorque=rosmessage(client2);
newspeed.Speed=0.2;
newtorque.TorqueLimit=6.5;
1
call(client,newspeed);
call(client2,newtorque);
pos3Pub = rospublisher('/elbow_controller/command','std_msgs/
Float64'); %Creación publicador
pos3Msg = rosmessage(pos3Pub); %Creación de mensaje
pos3Msg.Data = q(3); %Valor del mensaje
send(pos3Pub,pos3Msg); %Envio
pause(5);
client=rossvcclient('/wrist_controller/set_speed');
newspeed=rosmessage(client);
client2=rossvcclient('/wrist_controller/set_torque_limit');
newtorque=rosmessage(client2);
newspeed.Speed=0.2;
newtorque.TorqueLimit=5;
call(client,newspeed);
call(client2,newtorque);
pos4Pub = rospublisher('/wrist_controller/command','std_msgs/
Float64'); %Creación publicador
pos4Msg = rosmessage(pos4Pub); %Creación de mensaje
pos4Msg.Data = q(4); %Valor del mensaje
send(pos4Pub,pos4Msg); %Envio
pause(5);
client=rossvcclient('/hand_controller/set_speed');
newspeed=rosmessage(client);
client2=rossvcclient('/hand_controller/set_torque_limit');
newtorque=rosmessage(client2);
newspeed.Speed=0.2;
newtorque.TorqueLimit=5;
call(client,newspeed);
call(client2,newtorque);
pos5Pub = rospublisher('/hand_controller/command','std_msgs/
Float64'); %Creación publicador
pos5Msg = rosmessage(pos5Pub); %Creación de mensaje
pos5Msg.Data = q(5); %Valor del mensaje
send(pos5Pub,pos5Msg); %Envio
pause(5);
rosshutdown