Robotics Lab123
Robotics Lab123
Theory
Robotics
The Robotics Toolbox is a software package that allows a MATLAB user to readily create and
manipulate data type’s fundamental to robotics such as homogeneous transformations,
quaternions and trajectories. Functions provided, for arbitrary serial-link manipulators, include
forward and inverse kinematics, Jacobeans, and forward and inverse dynamics.
Robotics Toolbox provides many functions that are useful in robotics including kinematics,
dynamics, and trajectory generation. The Toolbox is useful for simulation as well as analyzing
results from experiments with real robots. The Toolbox is based on a very general method of
representing the kinematics and dynamics of serial-link manipulators. These parameters are
encapsulated in MATLAB. Robot objects can be created by the user for any serial-link
manipulator and a number of examples are provided for well-known robots such as the Puma-
560 and the Stanford arm. The toolbox also provides functions for manipulating data types such
as vectors, homogeneous transformations and unit-quaternion’s which are necessary to represent
3-dimensional position and orientation.
RoboAnalyzer
RoboAnalyzer is 3D model based software, used for teaching robotics subjects to undergraduate
and postgraduate courses in engineering colleges. It can be used to learn DH parameters,
kinematics and dynamics of serial robots and allows 3D animation and graph plots as output.
Features of RoboAnalyzer:-
RoboAnalyzer can be used to perform kinematic and dynamic analyses of serial chain
robots/manipulators.
The following are the main features of RoboAnalyzer:
Parameter Visualization
Forward Kinematics
Inverse Kinematics
Inverse Dynamics
Forward Dynamics
21/04/2009 Page 1
Lab Report
Motion Planning
RoboAnalyzer is easy to use Graphical User Interface (GUI) consists of the following:-
robot Selection and DH Parameters section
Visualize DH section
3D Model Browser
3D Model View
Graph Plot Tree View
Graph Plot Window
Inverse Kinematics Window
RoboAnalyzer lets the user to zoom, rotate and pan the 3D model to have better visualization.
These can be used as explained
Zoom: Place the mouse cursor anywhere on 3D Model View and use the mouse‐wheel to
zoom in and zoom out. It can also be done by clicking on Zoom In and Zoom Out
buttons.
Rotate: Press the right mouse button and drag the mouse cursor anywhere on the 3D
Model View to rotate the model in the browser form.
Pan: Press the left mouse button and drag the mouse cursor anywhere on the 3D Model
View to pan/translate the model in the browser form.
Standard Views: Select any standard view from the dropdown and the model view
updates.
RVCTOOLS/MAT LAB
Rvctools is the Robotics Toolbox that provides many functions that are useful for the study and
simulation of classical arm-type robotics, for example such things as kinematics, dynamics, and
trajectory generation. It is based on a very general method of representing the kinematics and
dynamics of serial-link manipulators.
21/04/2009 Page 2
Lab Report
The Toolbox also provides functions for manipulating and converting between data types such as
vectors, homogeneous transformations and unit-quaternion’s which are necessary to represent 3-
dimensional position and orientation.
For ground robots the Toolbox includes standard path planning algorithms (bug, distance
transform, D*, PRM), Kino dynamic planning (RRT), localization (EKF, particle filter), map
building (EKF) and simultaneous localization and mapping (EKF), and a Simulink model a of
non-holonomic vehicle. The Toolbox also includes a detailed Simulink model for a quad rotor
flying robot.
Objectives
To analyze the robot homogeneous matrix using the robotic tool boxes
To analyze 3D characteristics of robot using RoboAnalyzer
Material Required
MATLAB Software with rvc tool
RoboAnalyzer Software
Robotics tool box
Procedure
First write MATLAB code
Second Simulate/run the code
tranimate(T2)
Result
T1 =
1.0000 0 0 0.5000
0 1.0000 0 0.6000
0 0 1.0000 9.0000
0 0 0 1.0000
T2 =
0.0000 0 1.0000 0
0 1.0000 0 0
-1.0000 0 0.0000 0
0 0 0 1.0000
T3 =
0.0000 0 1.0000 0.5000
0 1.0000 0 0.6000
-1.0000 0 0.0000 9.0000
0 0 0 1.0000
The plot of the graph of the above example was shown below.
21/04/2009 Page 4
Lab Report
Example 2
a= [1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]
t1=transl(5,6,9)*a
t2=trotx(pi/2)*a
t1*t2
a=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
t1 =
1 0 0 5
0 1 0 6
0 0 1 9
0 0 0 1
t2 =
1.0000 0 0 0
0 0.0000 -1.0000 0
0 1.0000 0.0000 0
0 0 0 1.0000
ans =t1*t2
1.0000 0 0 5.0000
0 0.0000 -1.0000 6.0000
0 1.0000 0.0000 9.0000
0 0 0 1.0000
a=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]
t1=transl(5,6,9)*a
t2=trotx(pi/2)*a
t1*t2
21/04/2009 Page 5
Lab Report
The plot of the graph of the above example was shown below.
Example 3
L(1)=Link([0 0 1 0])
L(2)=Link([0 0 1 0])
L(3)=Link([0 0 1 0])
robot=SerialLink(L)
robot.name='planner'
robot.plot([0 pi/2 pi/2])
robot.fkine([0 pi/2 pi/2])
L=
theta=q1, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q2, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q3, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
L=
theta=q1, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q2, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q3, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
L=
theta=q1, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q2, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q3, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
21/04/2009 Page 6
Lab Report
robot =
no name (3 axis, RRR, stdDH, fastRNE)
+---+-----------+-----------+-----------+-----------+-----------+
|j | theta | d| a| alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 0| 1| 0| 0|
| 2| q2| 0| 1| 0| 0|
| 3| q3| 0| 1| 0| 0|
+---+-----------+-----------+-----------+-----------+-----------
grav = 0 base = 1 0 0 0 tool = 1 0 0 0
0 0 1 0 0 0 1 0 0
9.81 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
robot =
Planner (3 axis, RRR, stdDH, fastRNE)
+---+-----------+-----------+-----------+-----------+-----------+
|j | theta | d| a| alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 0| 1| 0| 0|
| 2| q2| 0| 1| 0| 0|
| 3| q3| 0| 1| 0| 0|
+---+-----------+-----------+-----------+-----------+-----------+
grav = 0 base = 1 0 0 0 tool = 1 0 0 0
0 0 1 0 0 0 1 0 0
9.81 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
ans =
-1.0000 -0.0000 0 0
0.0000 -1.0000 0 1.0000
0 0 1.0000 0
0 0 0 1.000
21/04/2009 Page 7
Lab Report
Example 4
L(1)=Link([0 0 1 0])
L(2)=Link([0 0 1 0])
L(3)=Link([0 0 1 0])
robot=SerialLink(L)
robot.name='spherical'
robot.plot([0 0 0])
robot.fkine([0 pi/2 pi/2])
L=
theta=q1, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q2, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q3, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
L=
theta=q1, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q2, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q3, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
L=
theta=q1, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
theta=q2, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)
21/04/2009 Page 8
Lab Report
21/04/2009 Page 9
Lab Report
0 0 0 1.0000
The robot figure of the above example becomes.
1.Creat a robot object and display the robot in the a required joint state.
%creat the virtual Robot server object
myRobot = VRM_Robot()
myRobot.LoadRobot('kukakr5');
myRobot.DisplayRobot();
pause(3);
newRobotConifg = [120 60 45 0 70 120]*pi/180;
myRobot.DisplayRobot(newRobotConifg)
disp('displaying the robot in the new configuration')
The Robot with in the required joint configuration is shown below.
21/04/2009 Page 10
Lab Report
myRobot = VRM_Robot()
myRobot.LoadRobot('kukakr5');
initialConfig = [120 60 30 60 0 130]*pi/180
initialConfig = 2.0944 1.0472 0.5236 1.0472 0 2.2689
finalConfig = [-120 90 -45 90 0 -130]*pi/180
finalConfig = -2.0944 1.5708 -0.7854 1.5708 0 -2.2689
timesteps = 150;
disp('forward kinematics simulation for motion from initiaqlconfig to final config');
myRobot.ForwardKinematics(initialConfig, finallConfig, timesteps)
The forward kinematics simulation for motion from initial configuration to final configuration
become as shown in the figure below.
myServer = VRM_Robot();
myServer.LoadRobot('ABBIRB120')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
21/04/2009 Page 11
Lab Report
myServer = VRM_Robot();
myServer.LoadRobot('ABBIRB1410')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
myServer = VRM_Robot();
myServer.LoadRobot('ABBIRB2400')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
21/04/2009 Page 12
Lab Report
myServer = VRM_Robot();
myServer.LoadRobot('ABBIRB4400L30')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
myServer = VRM_Robot();
myServer.LoadRobot('ABBIRB6620')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
21/04/2009 Page 13
Lab Report
myServer = VRM_Robot();
myServer.LoadRobot('ABBIRB6650')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
myServer = VRM_Robot();
myServer.LoadRobot('EpsonC3A60CT')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
21/04/2009 Page 14
Lab Report
myServer = VRM_Robot();
myServer.LoadRobot('FanucM10iA')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
myServer = VRM_Robot();
myServer.LoadRobot('FanucR1000i')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
21/04/2009 Page 15
Lab Report
myServer = VRM_Robot();
myServer.LoadRobot('FanucR2000i')
myServer.MoveRobot(250)
pause(1)
The robot type becomes as shown in the figure below
21/04/2009 Page 16
Lab Report
plot(t,subs(q,t))
xlabel('time sec')
ylabel('angle(deg)')
The position verses time graph is as shown below
>> syms t;
>> qdot=18*t-3.6*t^2;
>> t=[0:0.01:1];
>> plot(t,subs(qdot,t))
>> xlabel('time sec')
>> ylabel('velocity(deg/s)')
>> grid on
The velocity verses time graph is as shown below
21/04/2009 Page 17
Lab Report
syms t;
qdot=18-7.2*t;
t=[0:0.01:1];
plot(t,subs(qdot,t))
xlabel('time sec')
ylabel('accleration(deg/s2)')
grid on
The acceleration verses time graph is as shown below
21/04/2009 Page 18
Lab Report
Conclusion
From the previous three labs that are Rob analyzer, robot Tool box and generation of different
types of robot on mat lab we conclude that rotation and translation characteristics of the robot
homogeneous matrix can be computed using robotics tool box in MATLAB. We can also
analyze 3-D characteristics of robot using RoboAnalyzer and can be used to perform kinematic
and dynamic analyses of serial chain robots. Finally we also analyses different types of robot
with in its joint configuration that was generated on mat lab.
21/04/2009 Page 19