Matlab, a software that is available on various computer platforms, is a very powerful environment. Its environment is used for linear algebra and graphical presentations. Application specific toolboxes provide extension of its core functionality. Since Matlab has an interactive environment and powerful graphical functions, it is very convenient to make robotic simulation as well as experimental analysis with it.
The Robotics Toolbox allows a matlab user to create and manipulate datatypes that are fundamental to robotics. Examples of these datatypes are homogeneous transformations, quaternions and trajectories. For arbitrary serial-link manipulators, the functions provided by the Toolbox include forward and inverse kinematics, Jacobians, and forward and inverse dynamics.
This Toolbox has many functions which are very useful in Robotics, especailly when it comes to areas such as kinematics and dynamics. When conducting experiments with real robots, the toolbox is useful for simulation and analyzing experimental results.
The Toolbox is written based on a general concept in which description matrices are used to represent kinematics and dynamics of serial-link manipulators. The user can create these matrices for any serial-link manipulator. The well-known robots, i.e., the Puma 560 and the Stanford arm, are some of the examples provided in the Toolbox. These matrices give a precise description of a robot model and can accommodate the sharing of robot models across the research community. As a result, the simulation results can be analyzed and compared with the current ones in a better and more meaningful way. The Toolbox is equipped with functions needed to manipulate important datatypes such as vectors, homogeneous transformations and unit-quaternions. These datatypes are used to represent 3-dimensional position and orientation.
In this project, my task is to understand and rewrite the toolbox to accommodate for the configuration of the SIR1 robotics arm which served as our research model.
In order to allow us to write a matrix that represents the configuration of a robotic arm(SIR1), we have to understand the following dyn matrix which describes the kinematics and dynamics of a manipulator in a general way using the standard Denavit-Hartenberg conventions. Each row represents one link of the manipulator and the columns are assigned according to the following table.
Column | Symbol | Description |
1 |
alpha |
link twist angle |
2 |
A |
link length |
3 |
theta |
link rotation angle |
4 |
D |
link offset distance |
5 |
sigma |
joint type; 0 for revolute, non-zero for prismatic |
6 |
m |
mass of the link |
7 |
rx |
link COG with respect to the link coordinate frame |
8 |
ry |
link COG with respect to the link coordinate frame |
9 |
rz |
link COG with respect to the link coordinate frame |
10 |
Ixx |
elements of link inertia tensor about the link COG |
11 |
Iyy |
elements of link inertia tensor about the link COG |
12 |
Izz |
elements of link inertia tensor about the link COG |
13 |
Ixy |
elements of link inertia tensor about the link COG |
14 |
Iyz |
elements of link inertia tensor about the link COG |
15 |
Ixz |
elements of link inertia tensor about the link COG |
16 |
Jm |
armature inertia |
17 |
G |
reduction gear ratio;joint speed/link speed |
18 |
B |
viscous friction, motor referred |
19 |
Tc+ |
coulomb friction (positive rotation), motor referred |
20 |
Tc- |
coulomb friction (negative rotation), motor referred |
The following configuration is for the SIR1 Robotics arm at University of Bridgeport in Computer Science and Engineering Department.
% alpha A theta D sigma m rx ry rz Ixx Iyy Izz Ixy Iyz Ixz Jm
G B Tc+ Tc-
sir1 = [
pi/2 0 1.65*pi 0.205 0 0 0 0 0 0 0.35 0 0 0 0 200e-6 -62.6111 1.48e-3 .395
-.435
0 0.204 -pi*0.75 0 0 17.4 -.3638 .006 .2275 .13 .524 .539 0 0 0 200e-6
107.815 .817e-3 .126 -.071
0 0.250 -pi/2 0 0 4.8 -.0203 -.0141 .070 .066 .086 .0125 0 0 0 200e-6 -53.7063
1.38e-3 .132 -.105
pi/2 0 pi 0 0 0.82 0 .019 0 1.8e-3 1.3e-3 1.8e-3 0 0 0 33e-6 76.0364 71.2e-6
11.2e-3 -16.9e-3
0 0 2*pi 0.036 0 .09 0 0 .032 .15e-3 .15e-3 .04e-3 0 0 0 33e-6 76.686 36.7e-6
3.96e-3 -10.5e-3
];
In order to see the changes of the movements of SIR1, the following commands are used:
qz=[0 0 0 0 0] % 0 represents revolute, whereas 1 represents prismatic
qr=[0 0 -pi/2 0 0]