%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PARAMETERS Returns a data structure containing the parameters of the ABB IRB140. Author: Arturo Gil. Universidad Miguel Hern�ndez de Elche. email: arturo.gil@umh.es date: 09/01/2012 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0002 % PARAMETERS Returns a data structure containing the parameters of the 0003 % ABB IRB140. 0004 % 0005 % Author: Arturo Gil. Universidad Miguel Hern�ndez de Elche. 0006 % email: arturo.gil@umh.es date: 09/01/2012 0007 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0008 0009 % Copyright (C) 2012, by Arturo Gil Aparicio 0010 % 0011 % This file is part of ARTE (A Robotics Toolbox for Education). 0012 % 0013 % ARTE is free software: you can redistribute it and/or modify 0014 % it under the terms of the GNU Lesser General Public License as published by 0015 % the Free Software Foundation, either version 3 of the License, or 0016 % (at your option) any later version. 0017 % 0018 % ARTE is distributed in the hope that it will be useful, 0019 % but WITHOUT ANY WARRANTY; without even the implied warranty of 0020 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0021 % GNU Lesser General Public License for more details. 0022 % 0023 % You should have received a copy of the GNU Leser General Public License 0024 % along with ARTE. If not, see <http://www.gnu.org/licenses/>. 0025 function robot = parameters() 0026 0027 robot.name= 'ABB_IRB140_M2000'; 0028 0029 robot.DH.theta= '[q(1) q(2)-pi/2 q(3) q(4) q(5) q(6)+pi]'; 0030 robot.DH.d='[0.352 0 0 0.380 0 0.065]'; 0031 robot.DH.a='[0.070 0.360 0 0 0 0]'; 0032 robot.DH.alpha= '[-pi/2 0 -pi/2 pi/2 -pi/2 0]'; 0033 robot.J=[]; 0034 0035 0036 robot.inversekinematic_fn = 'inversekinematic_irb140(robot, T)'; 0037 robot.directkinematic_fn = 'directkinematic(robot, q)'; 0038 0039 0040 %number of degrees of freedom 0041 robot.DOF = 6; 0042 0043 %rotational: 0, translational: 1 0044 robot.kind=['R' 'R' 'R' 'R' 'R' 'R']; 0045 0046 %minimum and maximum rotation angle in rad 0047 robot.maxangle =[-pi pi; %Axis 1, minimum, maximum 0048 deg2rad(-100) deg2rad(100); %Axis 2, minimum, maximum 0049 deg2rad(-220) deg2rad(60); %Axis 3 0050 deg2rad(-200) deg2rad(200); %Axis 4: Unlimited (400� default) 0051 deg2rad(-120) deg2rad(120); %Axis 5 0052 deg2rad(-400) deg2rad(400)]; %Axis 6: Really Unlimited to (800� default) 0053 0054 %maximum absolute speed of each joint rad/s or m/s 0055 robot.velmax = [deg2rad(200); %Axis 1, rad/s 0056 deg2rad(200); %Axis 2, rad/s 0057 deg2rad(260); %Axis 3, rad/s 0058 deg2rad(360); %Axis 4, rad/s 0059 deg2rad(360); %Axis 5, rad/s 0060 deg2rad(450)];%Axis 6, rad/s 0061 0062 robot.accelmax=robot.velmax/0.1; % 0.1 is here an acceleration time 0063 0064 % end effectors maximum velocity 0065 robot.linear_velmax = 2.5; %m/s 0066 0067 0068 0069 %base reference system 0070 robot.T0 = eye(4); 0071 0072 0073 %INITIALIZATION OF VARIABLES REQUIRED FOR THE SIMULATION 0074 %position, velocity and acceleration 0075 robot=init_sim_variables(robot); 0076 robot.path = pwd; 0077 0078 0079 % GRAPHICS 0080 robot.graphical.has_graphics=1; 0081 robot.graphical.color = [255 102 51]./255; 0082 %for transparency 0083 robot.graphical.draw_transparent=0; 0084 %draw DH systems 0085 robot.graphical.draw_axes=1; 0086 %DH system length and Font size, standard is 1/10. Select 2/20, 3/30 for 0087 %bigger robots 0088 robot.graphical.axes_scale=1; 0089 %adjust for a default view of the robot 0090 robot.axis=[-0.5 0.75 -0.75 0.75 0 1.1]; 0091 %read graphics files 0092 robot = read_graphics(robot); 0093 0094 0095 0096 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0097 % DYNAMIC PARAMETERS 0098 % WARNING! These parameters do not correspond to the actual IRB 140 0099 % robot. They have been introduced to demonstrate the necessity of 0100 % simulating the robot and should be used only for educational purposes 0101 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0102 robot.has_dynamics=1; 0103 0104 %consider friction in the computations 0105 robot.dynamics.friction=0; 0106 0107 %link masses (kg) 0108 robot.dynamics.masses=[25 27 15 10 2.5 1.5]; 0109 0110 %COM of each link with respect to own reference system 0111 robot.dynamics.r_com=[0 0 0; %(rx, ry, rz) link 1 0112 -0.05 0.006 0.1; %(rx, ry, rz) link 2 0113 -0.0203 -0.0141 0.070; %(rx, ry, rz) link 3 0114 0 0.019 0;%(rx, ry, rz) link 4 0115 0 0 0;%(rx, ry, rz) link 5 0116 0 0 0.032];%(rx, ry, rz) link 6 0117 0118 %Inertia matrices of each link with respect to its D-H reference system. 0119 % Ixx Iyy Izz Ixy Iyz Ixz, for each row 0120 robot.dynamics.Inertia=[0 0.35 0 0 0 0; 0121 .13 .524 .539 0 0 0; 0122 .066 .086 .0125 0 0 0; 0123 1.8e-3 1.3e-3 1.8e-3 0 0 0; 0124 .3e-3 .4e-3 .3e-3 0 0 0; 0125 .15e-3 .15e-3 .04e-3 0 0 0]; 0126 0127 0128 0129 robot.motors=load_motors([5 5 5 4 4 4]); 0130 %Speed reductor at each joint 0131 robot.motors.G=[300 300 300 300 300 300]; 0132