0% found this document useful (0 votes)
9 views

Robotics Lab123

Uploaded by

belsty derseh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Robotics Lab123

Uploaded by

belsty derseh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Lab Report

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

Overview of User Interface

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

3-D Model View of RoboAnalyzer

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

Discussion and Results of the Report


1. Examples of Rotation and translation of homogeneous matrix.
Example 1
theta=90;
Tr=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];
T1=transl(0.5,0.6,9)*Tr
T2=troty(pi/2)*Tr
T3=T1*T2
tranimate(T3)
tranimate(T1)
21/04/2009 Page 3
Lab Report

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.

2.1 Examples of Forward kinematics of planar robot.

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

The robot figure of the above example becomes.

2.2. Examples of Forward kinematics of spherical robot.

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

theta=q3, d= 0, a= 1, alpha= 0, offset= 0 (R,stdDH)


robot =
noname (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 =
spherical (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

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

2. Creat the robot object and display the new configuration

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.

3. Assessing different type of robot in mat lab

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

4. Trajectory generation on mat lab


Syms t ;
q=30+9*t^2-1.2*t^3
t=[0:0.01:1];

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

You might also like