KEMBAR78
ABB IRB 1100 Robot Design Report | PDF | Mechanical Engineering
0% found this document useful (0 votes)
46 views32 pages

ABB IRB 1100 Robot Design Report

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views32 pages

ABB IRB 1100 Robot Design Report

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 32

HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY AND

EDUCATION
FACULTY OF INTERNATIONAL EDUCATION

ROBOTICS
IRB-1100 4/0.475
GROUP 2

Student: Đào Quang Vinh 21146421

Instructor: Asst. Prof. Trần Minh Thiên

Ho Chi Minh City, November 2024


FEEDBACK OF SUPERVISOR

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

Mark:
Supervisor’s signature

____________________________
Table of contents

CHAPTER 1: TOPIC OVERVIEW..............................................................1


1.1 Target and topic search.........................................................................1
1.2 Introduction about robot ABB IRB 1100 4/0.475................................1
1.3 Application..............................................................................................2
CHAPTER 2: MECHANICAL DESIGN......................................................4
2.1 Technical structure.................................................................................4
2.2 Working range........................................................................................5
2.3 Specifications..........................................................................................5
CHAPTER 3: ROTATION AND PARAMETERS DETERMINATION..6
CHAPTER 4: FORWARD KINEMATICS..................................................8
4.1 Coordinate system..................................................................................8
4.2 Denavit – Hartenberg Table..................................................................8
4.3 Homogenous transformation matrix....................................................9
CHAPTER 5: INVERSE KINEMATICS...................................................12
CHAPTER 6: SIMULATION USING SOLIDWORKS AND MATLAB19
6.1 3D model in Solidworks.......................................................................19
6.2 Matlab simulation.................................................................................21
REFERENCES..............................................................................................28
CHAPTER 1: TOPIC OVERVIEW
1.1. Target and topic research

_ To clearly understand the nature of mechanical structures, how to create a robot model,
how to program and control a self-made robot arm, and further to master robot
manufacturing techniques. In the future, this report will analyze the process of designing
a robot arm using Solidworks software and then simulating the designed robot arm on
Simscape Multibody. Finally, control the model of the robot.

_ The structure of the report will include:

 Chapter 1: Overview of the problem being researched


 Chapter 2: Mechanical design of the robot
 Chapter 3: Rotation and parameters determination
 Chapter 4: Forward kinematics
 Chapter 5: Inverse kinematics
 Chapter 6: Simulation using Solidworks and Matlab
1.2. Introduction about robot ABB IRB 1100 4/0.475

_ The IRB 1100 robot is a product from the famous robot company ABB, with the goal of
increasing productivity and saving working space. The first choice for high-quality
production. To increase production productivity, the IRB 1100 offers up to 35% faster
working speeds and the best stability in its class, making it suitable for high-quality
production. The IRB 1100 consistently outperforms similar robots in terms of payload
and position repeatability (RP) even when working in limited spaces. In fact, the IRB
1100 offers the highest payload in its class.

_ Some of the outstanding features and strengths can be listed:

 Flexibility & productivity within very limited space.


 Running the most accurate manufacturing process given very limited space.

1
 Handling heavier operations with more complex tool or end
effector.
 Up to 16 I/Os for more sophisticated applications.
1.3. Applications

_ Assembly and testing

_ Integrated with laser system for applications: Cutting, engraving, welding, …

_ Material surface treatment (cleaning, polishing, sanding, etc.)

2
CHAPTER 2: MECHANICAL DESIGN
2.1. Technical structure

_ The following figure illustrates the main dimensions of IRB 1100-4/0.475:

 The ABB IRB 1100 robot is a compact, high-speed industrial robot designed for
tasks requiring precision and speed in small spaces. Its structure is composed of
six axes, which provide a high degree of flexibility and freedom of movement. The
robot's kinematic structure follows a standard articulated design with a series of
rotary joints. Each joint is powered by a servo motor, allowing smooth and precise
control over its movement.

_ To obtain a more specific outlook about the shape of the robot, the front, side and top
view are demonstrated below:

3
Front view Side view

Top view

4
2.2. Working range
_ The robot can reach 802 mm along the Z-axis and total 950 mm along the X-axis

2.3. Specifications

5
6
CHAPTER 3: ROTATION AND PARAMETERS
DETERMINATION
_ The following figure show how much each axis can rotate about its Z-axis:

+ From {1}to{0}: α = 230° : -230°


+ From {2}to{1}: α =¿ 113° : -115°
+ From {3}to{2}: α =¿ 55° : -205°
+ From {4}to{3}: α =¿ 230° : -230°
+ From {5}to{4}: α =¿ 125° : -125°
+ From {6}to{5}: α =¿ 400° : -400°
 For example, axis 1 has working range from +230° to -230° , we choose α =60 ° and
rotation from {1} to {0}:

[ ]
cos 60 ° −sin 60 ° 0
 Z ,α sin 60° cos 60 ° 0
R =
0 0 1

_We also the formula for transpose matrix:

[ ] [ ]
a11 a12 a13 a 11 a21 a 31
T
A= a21 a22 a23 → A = a12 a22 a 32
a31 a32 a33 a13 a23 a 33

[ ]
2 6 4
 For example, given R= 7 9 4
3 1 8

7
[ ]
2 7 3
T
 R =6 9 1
4 4 8

_ In order to find the kinematics, we also need to use homogenous transformation matrix:

[ ][ ][ ]
1 0 0 X r 11 r 12 r 13 0 r 11 r 12 r 13 X
T GB =DGB . RGB = 0 1 0 Y r 21 r 22 r 23 0 r 21 r 22 r 23 Y
=
0 0 1 Z r 31 r 32 r 33 0 r 31 r 32 r 33 Z
0 0 0 1 0 0 0 1 0 0 0 1

 A point P is located at r B=(0 , 0 ,20) in a body coordinate frame. If the rigid body
rotates 30 degree about the global X-axis and the origin of the body frame
translates to (X,Y,Z)=(50,0,60), then the coordinates of the point in the global
frames are:

[ ][ ] [ ]
1 0 0 50
π π 0 50
0 cos −sin 0
G G B 6 6 0 −10
P =T B r = =
π π 20 77.3
0 sin cos 60
6 6 1 1
0 0 0 1

8
CHAPTER 4: FORWARD KINEMATICS
4.1. Coordinate system
_ From the given robot model in the data sheet, we start setting coordinate system:

4.2. Denavit – Hartenberg Table

Frame a α d θ

0-1 0 π /2 l1 θ1

1-2 l2 0 0 θ2

2-3 l3 π /2 0 θ3

3-4 0 - π /2 l4 θ4

4-5 0 π /2 0 θ5

5-6 0 0 l5 θ6

4.3. Homogenous transformation matrix

9
_ Applying the typical homogenous transformation matrix formula below:

[ ]
cos θ i −sin θi cos α i sin θ i sin α i ai cos θi
sin θi cos θi cos α i −cos θi sin α i ai sin θi
T i−1
i =
0 sin α i cos α i di
0 0 0 1

we can obtain partial matrix of each frame:

[ ][ ]
c osθ 1 0 s inθ 1 0 cos θ 2 −sin θ2 0 l 2 cos θ2
sin θ1 0 −c osθ1 0 1 sinθ 2 cos θ2 0 l 2 sin θ2
T 01= T 2=
0 1 0 l1 0 0 1 0
0 0 0 1 0 0 0 1

[ ][ ]
c osθ 3 0 s inθ 3 l3 cos θ 3 c osθ 4 0 −sin θ4 0
T 3= s inθ 3
2 0 −c osθ3 l 3 sin θ3 T 3 = s inθ 4 0 c osθ 4 0
4
0 1 0 0 0 −1 0 l4
0 0 0 1 0 0 0 1

[ ][ ]
c osθ5 0 sinθ 5 0 c osθ6 −sin θ6 0 0
T 45= s inθ 5 0 −cos θ5 0 T 5= s inθ 6 c osθ 6 0 0
6
0 1 0 0 0 0 1 l5
0 0 0 1 0 0 0 1

[ ]
r 11 r 12 r 13 r 14
3 4 5 r r r r
 T 06=T 01 . T 12 . T 23 . T 4 .T 5 . T 6 = 21 22 23 24
r 31 r 32 r 33 r 34
0 0 0 1

where,
r11 = sinθ6(cosθ4sinθ1 + sinθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) + cosθ6(cosθ5(sinθ1sinθ4 -
cosθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) - sinθ5(cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2))
r12 = cosθ6(cosθ4sinθ1 + sinθ4 (cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) - sinθ6 (cosθ5(sinθ1sinθ4 -
cosθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) - sinθ5 (cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2))

10
r13 = sinθ5 (sinθ1sinθ4 - cosθ4 (cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) + cosθ5 (cosθ1cosθ2sinθ3
+ cosθ1cosθ3sinθ2)
r14 = l5 (sinθ5 (sinθ1sinθ4 - cosθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) + cosθ5
(cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2)) + l4 (cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2) +
l2cosθ1cosθ2 + l3cosθ1cosθ2cosθ3 - l3cosθ1sinθ2sinθ3
r21 = - sinθ6 (cosθ1cosθ4 - sinθ4(sinθ1sinθ2sinθ3 - cosθ2cosθ3sinθ1)) - cosθ6 (cosθ5 (cosθ1sinθ4
+ cosθ4 (sinθ1sinθ2sinθ3 - cosθ2cosθ3sinθ1)) + sinθ5 (cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2))
r22 = sinθ6 (cosθ5 (cosθ1sinθ4 + cosθ4 (sinθ1sinθ2sinθ3 - cosθ2cosθ3sinθ1)) + sinθ5
(cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2)) - cosθ6 (cosθ1cosθ4 - sinθ4(sinθ1sinθ2sinθ3 -
cosθ2cosθ3sinθ1))
r23 = cosθ5 (cosθ2sinθ1sinθ3+ cosθ3sinθ1sinθ2) - sinθ5 (cosθ1sinθ4 + cosθ4 (sinθ1sinθ2sinθ3 -
cosθ2cosθ3sinθ1))
r24 = l4 (cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2) - l5 (sinθ5 (cosθ1sinθ4 + cosθ4 (sinθ1sinθ2sinθ3 -
cosθ2cosθ3sinθ1)) - cosθ5 (cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2)) + l2cosθ2sinθ1 +
l3cosθ2cosθ3sinθ1 - l3sinθ1sinθ2sinθ3
r31 = cosθ6 (sinθ5 (cosθ2cosθ3 - sinθ2sinθ3) + cosθ4cosθ5 (cosθ2sinθ3 + cosθ3sinθ2)) -
sinθ4sinθ6 (cosθ2sinθ3 + cosθ3sinθ2)
r32 = - sinθ6(sinθ5 (cosθ2cosθ3 - sinθ2sinθ3) + cosθ4cosθ5 (cosθ2sinθ3 + cosθ3sinθ2)) -
cosθ6sinθ4 (cosθ2sinθ3 + cosθ3sinθ2)
r33 = cosθ4sinθ5 (cosθ2sinθ3 + cosθ3sinθ2) - cosθ5 (cosθ2cosθ3 - sinθ2sinθ3)
r34 = l1 - l4 (cosθ2cosθ3 - sinθ2sinθ3) + l2sinθ2 - l5 (cosθ5 (cosθ2cosθ3 - sinθ2sinθ3) -
cosθ4sinθ5 (cosθ2sinθ3 + cosθ3sinθ2)) + l3cosθ2sinθ3 + l3cosθ3sinθ2

{
X=r 14
 The end-effector point is: Y =r 24
Z=r 34

11
 For example: Given θ= [ π π π π π π
, , , , , (rad )
2 3 4 5 6 7 ]
l 1=¿327, l 2=225 , l 3=10 , l 4=250 , l 5=64 .

[ ][ ]
π π π π
cos 0 sin 0 cos −sin 20 0 225 cos
2 2 3 3
0 π π 1 π π
T 1= sin 0 −cos 0 T 2= sin cos 20 0 225 sin
2 2 3 3
0 1 0 327 0 0 1 0
0 0 0 1 0 0 0 1

[ ][ ]
π π π π π
cos 0 sin 10 cos cos 0 −sin 0
4 4 4 5 5
2 π π π 3 π π
T 3= sin 0 −cos 10 sin T 4= sin 0 cos 0
4 4 4 5 5
0 1 0 0 0 −1 0 250
0 0 0 1 0 0 0 1

[ ][ ]
π π π π
cos 0 sin 0 cos −sin 0 0
6 6 7 7
4 π π 5 π π
T 5= sin 0 −cos 0 T 6= sin cos 0 0
6 6 7 7
0 1 0 0 0 0 1 64
0 0 0 1 0 0 0 1

[ ]
r 11 r 12 r 13 r 14
3 4 5 r r r r
 T 06=T 01 . T 12 . T 23 . T 4 .T 5 . T 6 = 21 22 23 24
r 31 r 32 r 33 r 34
0 0 0 1

[ ]
0.8096 0.5080 0. 2939 18.8091
−0.5325 0. 4253 0.7318 398.2299
¿
0.2468 −0.7490 0.6149 635.5714
0 0 0 1

12
{
X =18.8091
 The end-effector point is: Y =398.2299 (mm)
Z =635.5714

CHAPTER 5: INVERSE KINEMATICS


_ In order to solve the inverse kinematics problems, we will apply geometric technique to
find θ1 , θ2 , θ3and decoupling technique to find θ 4 , θ5 , θ6 .

_From the forward kinematics, we have:

[ ][ ]
r 11 r 12 r 13 r 14 nx ox ax X
3 4 5 r r r r n o a Y
 T 06=T 01 . T 12 . T 23 . T 4 .T 5 . T 6 = 21 22 23 24 = y y y
r 31 r 32 r 33 r 34 n z o z az Z
0 0 0 1 0 0 0 1

where,
r11 = sinθ6(cosθ4sinθ1 + sinθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) + cosθ6(cosθ5(sinθ1sinθ4 -
cosθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) - sinθ5(cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2))
r12 = cosθ6(cosθ4sinθ1 + sinθ4 (cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) - sinθ6 (cosθ5(sinθ1sinθ4 -
cosθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) - sinθ5 (cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2))
r13 = sinθ5 (sinθ1sinθ4 - cosθ4 (cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) + cosθ5 (cosθ1cosθ2sinθ3
+ cosθ1cosθ3sinθ2)
r14 = l5 (sinθ5 (sinθ1sinθ4 - cosθ4(cosθ1sinθ2sinθ3 - cosθ1cosθ2cosθ3)) + cosθ5
(cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2)) + l4 (cosθ1cosθ2sinθ3 + cosθ1cosθ3sinθ2) +
l2cosθ1cosθ2 + l3cosθ1cosθ2cosθ3 - l3cosθ1sinθ2sinθ3
r21 = - sinθ6 (cosθ1cosθ4 - sinθ4(sinθ1sinθ2sinθ3 - cosθ2cosθ3sinθ1)) - cosθ6 (cosθ5 (cosθ1sinθ4
+ cosθ4 (sinθ1sinθ2sinθ3 - cosθ2cosθ3sinθ1)) + sinθ5 (cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2))
r22 = sinθ6 (cosθ5 (cosθ1sinθ4 + cosθ4 (sinθ1sinθ2sinθ3 - cosθ2cosθ3sinθ1)) + sinθ5
(cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2)) - cosθ6 (cosθ1cosθ4 - sinθ4(sinθ1sinθ2sinθ3 -
cosθ2cosθ3sinθ1))
r23 = cosθ5 (cosθ2sinθ1sinθ3+ cosθ3sinθ1sinθ2) - sinθ5 (cosθ1sinθ4 + cosθ4 (sinθ1sinθ2sinθ3 -
cosθ2cosθ3sinθ1))
r24 = l4 (cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2) - l5 (sinθ5 (cosθ1sinθ4 + cosθ4 (sinθ1sinθ2sinθ3 -
cosθ2cosθ3sinθ1)) - cosθ5 (cosθ2sinθ1sinθ3 + cosθ3sinθ1sinθ2)) + l2cosθ2sinθ1 +
l3cosθ2cosθ3sinθ1 - l3sinθ1sinθ2sinθ3
13
r31 = cosθ6 (sinθ5 (cosθ2cosθ3 - sinθ2sinθ3) + cosθ4cosθ5 (cosθ2sinθ3 + cosθ3sinθ2)) -
sinθ4sinθ6 (cosθ2sinθ3 + cosθ3sinθ2)
r32 = - sinθ6(sinθ5 (cosθ2cosθ3 - sinθ2sinθ3) + cosθ4cosθ5 (cosθ2sinθ3 + cosθ3sinθ2)) -
cosθ6sinθ4 (cosθ2sinθ3 + cosθ3sinθ2)
r33 = cosθ4sinθ5 (cosθ2sinθ3 + cosθ3sinθ2) - cosθ5 (cosθ2cosθ3 - sinθ2sinθ3)
r34 = l1 - l4 (cosθ2cosθ3 - sinθ2sinθ3) + l2sinθ2 - l5 (cosθ5 (cosθ2cosθ3 - sinθ2sinθ3) -
cosθ4sinθ5 (cosθ2sinθ3 + cosθ3sinθ2)) + l3cosθ2sinθ3 + l3cosθ3sinθ2

[ ][ ]
xW X −l5 a x
_Wrist position: W= y W = Y −l5 a y
zW Z−l 5 az

_Spherical wrist type: Roll-Pitch-Roll

14
[ ]
nx ox ax
0
R = n y o y a y =RZ , φ R Z ,θ R Z ,Ψ
6
nz o z a z

[ ]
cos φ cos Ψ −sin φ cos θ sin Ψ −cos φ sinΨ −sin φ cos θ cos Ψ sin φ sin θ
¿ sin φ cos Ψ +cos φ cos θ sin Ψ −sin φ sin Ψ + cos φ cos θ cos Ψ −cos φ sin θ
sin θ sin Ψ sin θ cos Ψ cos θ

where φ , θ Ψ are given; P¿ [ X Y Z ]T

 θ 1=atan2(Y W , X W )

r =√ x 2w + y 2w ; O 1 M =r ; WM =z W −l 1

O 1 W =√ r +(z W −l 1)
2 2

O 2 W =√ l 3 + l 4
2 2

^ (O1 W )2+l 22−(O2 W )2


cos ( O2 O1 W ) =
2l 2 (O¿¿ 1 W )¿

^ ^
( O2 O1 W ) =¿ ¿ atan 2¿ cos ( O2 O1 W )
cos ^ 2 2
( W O 1 M )=¿ (O1 M ) +(O1 W ) −¿ ¿ ¿
^ ^
( W O1 M )=¿ atan2 ¿ ¿ cos ( W O 1 M )

15
 ^
θ 2=( W O1 M ) +^
( O2 O1 W )
2 2 2

cos ^ ^ O1 W −O2 W −O1 O2


( x 3 O2 W )=¿−cos ( O1 O2 W ) ¿= 2(O W .O O )
2 1 2

sin ^ √
( x 3 O2 W ) =¿ ± 1−cos ⁡ ^
2
( x 3 O2 W ) ¿

^
( x 3 O2 W )=¿ atan 2¿ ¿
 θ 3=atan2 ( l 4 , l 3 )−^
( x3 O 2 W )

_ Find the orientation of the end-effector by solving T 36 or R36 for θ 4 θ 5 θ6 :

[ ]
cos θ 1 cos ⁡(θ2 +θ3 ) sin θ1 cos θ1 sin ⁡(θ2 +θ3 )
R03 = sin θ1 cos ⁡(θ2 +θ3 ) −cos θ1 sinθ 1 sin ⁡(θ2 +θ3 )
sin ⁡(θ2 +θ3 ) 0 −cos ⁡(θ 2+θ 3)

[ ]
cos θ 4 cos θ5 cos θ6 −sin θ4 sin θ6 −cos θ6 sin θ 4−cos θ 4 cos θ5 sin θ6 cos θ 4 sin θ 5
R36 = cos θ 5 cos θ6 sinθ 4 +cos θ4 sin θ6 cos θ 4 cos θ6−cos θ5 sin θ4 sin θ6 sin θ4 sin θ5
−cos θ6 sin θ5 sinθ 5 sin θ 6 cos θ5

T
¿ R30 R06=(R ¿ ¿ 30 ) R06 ¿

[ ][ ]
cos θ1 cos ⁡(θ 2+ θ3) sin θ1 cos ⁡(θ 2+ θ3) sin ⁡(θ2 +θ3 ) nx o x a x
¿ sin θ1 −cos θ1 0 ny oy ay
cos θ1 sin ⁡(θ 2+θ 3) sin θ1 sin ⁡(θ 2+θ 3) −cos ⁡(θ2 +θ3 ) n z o z a z

[ ]
s 11 s 12 s 13
¿ s21 s 22 s 23
s31 s 32 s 33

{
θ4 =atan 2 ( s23 , s 13)
 θ5=atan 2 ( √ s 213+ s 223 , s33 )
θ6 =atan 2 ( s32 ,−s31 )

16
For example, given l 1=¿327, l 2=225 , l 3=10 , l 4=250 , l 5=64 ,
π π π
X=30, Y=40 ,Z= 6 0, φ= , θ= , Ψ = .
5 6 7

[ ]
cos φ cos Ψ −sin φ cos θ sin Ψ −cos φ sin Ψ −sin φ cos θ cos Ψ sin φ sinθ
0
R =
_ 6 sin φ cos Ψ +cos φ cos θ sin Ψ −sin φ sin Ψ +cos φ cos θ cos Ψ −cos φ sin θ
sinθ sin Ψ sin θ cos Ψ cos θ

[ ][ ]
0.508 −0.8096 0.2939 nx ox ax
¿ 0.8336 0.3762 −0.4045 = n y o y a y
0.2169 0.4505 0.866 nz oz az

[ ][ ][ ]
xW X −l5 a x 11.1904
=
_Wrist position: W= y W Y −l5 a y = 95.888
zW Z−l 5 az 4.576

 θ 1=atan2 ( Y W , X W ) =atan2 ( 95.888 , 11.1904 )=83.34 °

r =√ x 2w + y 2w =√ 11.1904 2 +95.888 2=96.538 ;

O1 M =r=96.538 ;

WM=¿ z W −l 1∨¿|4.576−327|=322.424

O1 W =√ r 2 +(z W −l 1)2= √ 96.538 2+(4.576−327)2=336.566

O2 W =√ l 32+ l 42=√ 102 +2502=250.2

2 2 2
(O1 W ) +l 2 −(O 2 W )
cos ^
( O 2 O 1 W )= 2 2
336.566 +225 −250.2
2
2l 2 (O¿¿ 1 W )= =0.669 ¿
2(225)(336.566)

^ ^
( O2 O1 W ) =¿ ¿ atan 2¿ cos ( O2 O1 W )

= atan2(± √1−0.6992 , 0.699 ¿=45.65°


2 2 2
96.538 +336.566 −322.424
cos ^ 2 2
( W O 1 M )=¿ (O1 M ) +(O1 W ) −¿ ¿ ¿= =0.287
2(336.566)(96.538)

^ ^
( W O1 M )=¿ atan2 ¿ ¿ cos ( W O 1 M )
17
= atan2(± √1−0.2872 , 0.287 ¿=73.32 °

 ^
θ 2=( W O1 M ) +^
( O2 O1 W ) =73.32°+ 45.65 °=118.97 °
2 2 2

cos ^ ^ O1 W −O2 W −O1 O2


( x 3 O2 W )=¿−cos ( O1 O2 W ) ¿= 2(O W .O O )
2 1 2

2 2 2
336.566 −250.2 −225
¿ =0.000458
2 (250.2 )( 225 )

sin ^ √
( x 3 O2 W ) =¿ ± 1−cos ⁡ ^
2
( x 3 O2 W ) =± √1−0.000458 ⁡ =0.99¿
2

^
( x 3 O2 W )=¿ atan 2¿ ¿
¿ atan 2 ( 0.99 , 0.000458 )=90 °

 θ 3=atan2 ( l 4 , l 3 )−^
( x 3 O 2 W ) =atan2(250,10)-90 °=−2.3°

_ Find the orientation of the end-effector by solving T 36 or R36 for θ 4 θ 5 θ6 :

[ ]
cos θ 1 cos ⁡(θ2 +θ3 ) sin θ1 cos θ1 sin ⁡(θ2 +θ3 )
0
R = sin θ1 cos ⁡(θ2 +θ3 ) −cos θ1 sinθ 1 sin ⁡(θ2 +θ3 )
3
sin ⁡(θ2 +θ3 ) 0 −cos ⁡(θ 2+θ 3)

[ ]
cos 83.34 ° cos (118.97 °−2.3° ) sin 83.34 ° cos 83.34 ° sin(118.97 °−2.3 °)
= sin 83.34 ° cos (118.97 °−2.3 °) −cos 83.34 ° sin 83.34 ° sin(118.97 °−2.3°)
sin ⁡(118.97 °−2.3 °) 0 −cos ⁡(118.97 °−2.3° )

[ ]
−0.052 0.993 0.103
= −0.446 −0.116 0.887
0.893 0 0.449

[ ][ ]
−0.052 −0.446 0.893 0.508 −0.8096 0.2939
3 3 0 0 T 0
R6 =R 0 R 6=(R ¿ ¿ 3 ) R 6= 0.993 −0.116 0 0.8336 0.3762 −0.4045 ¿
0.103 0.887 0.449 0.2169 0.4505 0.866

[ ][ ]
−0.2045 0.2766 0.938 s 11 s 12 s 13
¿ 0.4077 −0.847 0.338 = s 21 s 22 s 23
0.889 0.453 0.06 s 31 s 32 s 33

18
{
θ4 =atan 2 ( s23 , s 13) =atan 2 ( 0.338 , 0.938 ) =19.8 °
 θ5=atan 2 ( √ s 213+ s 223 , s33 )=atan 2( √0.938 2+ 0.3382 , 0.06)=86.56 °
θ6 =atan 2 ( s32 ,−s 31) =atan 2 ( 0.453 ,−0.889 )=−27 °

19
CHAPTER 6: SIMULATION USING
SOLIDWORKS AND MATLAB
6.1. 3D model in Solidworks

_ After downloading separate links of robot CAD model from ABB website, we start
assembling links together and attach coordinate systems:

20
_The accomplished 3D model:

21
6.2. Matlab simulation

_ Once finishing assembly, we will export the CAD model under the xml file using
Simscape Multibody Link tool and import it into Solidworks. Right after you type the
smimport command, a Simulink model will appear and you need to modify the
parameters and add blocks:

_ Run the Simulink model, a window of robot will pop up:

_ Next, we have to create a figure called “guide” to control the robot:

22
_ To run the the board, we need to code the m file which represents the figure:

+ Code for slider gain 1 to 6:

function slider1_Callback(hObject, eventdata, handles)


ModelName = 'IRB1100';

l1 = 327;
l2 = 225;
l3 = 10;
l4 = 250;
l5 = 64;
%get the angle
t1=get(handles.slider1,'value');
set(handles.edit1,'string',num2str(t1));
t2=get(handles.slider2,'value');
set(handles.edit2,'string',num2str(t2));
t3=get(handles.slider3,'value');
set(handles.edit3,'string',num2str(t3));
t4=get(handles.slider4,'value');
set(handles.edit4,'string',num2str(t4));
t5=get(handles.slider5,'value');
set(handles.edit5,'string',num2str(t5));
t6=get(handles.slider6,'value');
set(handles.edit6,'string',num2str(t6));

%xoay canh tay ben simulink


set_param([ModelName '/Slider Gain'],'Gain',num2str(t1));
set_param([ModelName '/Slider Gain1'],'Gain',num2str(t2));
set_param([ModelName '/Slider Gain2'],'Gain',num2str(t3));

23
set_param([ModelName '/Slider Gain3'],'Gain',num2str(t4));
set_param([ModelName '/Slider Gain4'],'Gain',num2str(t5));
set_param([ModelName '/Slider Gain5'],'Gain',num2str(t6));

T01 = [cos(t1) 0 sin(t1) 0;


sin(t1) 0 -cos(t1) 0;
0 1 0 l1;
0 0 0 1];
T12 = [cos(t2) -sin(t2) 0 l2*cos(t2);
sin(t2) cos(t2) 0 l2*sin(t2);
0 0 1 0;
0 0 0 1];
T23 = [cos(t3) 0 sin(t3) l3*cos(t3);
sin(t3) 0 -cos(t3) l3*sin(t3);
0 1 0 0;
0 0 0 1];
T34 = [cos(t4) 0 -sin(t4) 0;
sin(t4) 0 cos(t4) 0;
0 -1 0 l4;
0 0 0 1];
T45 = [cos(t5) 0 sin(t5) 0;
sin(t5) 0 -cos(t5) 0;
0 1 0 0;
0 0 0 1];
T56 = [cos(t6) -sin(t6) 0 0;
sin(t6) cos(t6) 0 0;
0 0 1 l5;
0 0 0 1];
% Calculate overall transformation matrix
T06 = T01 * T12 * T23 * T34 * T45 * T56;
X = T06(1, 4);
Y = T06(2, 4);
Z = T06(3, 4);

set(handles.edit7,'string',num2str(X));
set(handles.edit8,'string',num2str(Y));
set(handles.edit9,'string',num2str(Z));

+Code for push button “RUN”:

function pushbutton1_Callback(hObject, eventdata, handles)


ModelName = 'IRB1100';

% Opens the Simulink model


open_system(ModelName);

set_param(ModelName,'BlockReduction','off');
set_param(ModelName,'StopTime','inf');
set_param(ModelName,'simulationMode','normal');
set_param(ModelName,'StartFcn','1');
set_param(ModelName, 'SimulationCommand', 'start');

24
+Code for push button “RESET”:

function pushbutton2_Callback(hObject, eventdata, handles)


ModelName = 'IRB1100';
global var;
theta1=0;
set(handles.slider1,'value',theta1);
set(handles.edit1,'string',num2str(theta1));
set_param([ModelName '/Slider Gain'],'Gain',num2str(theta1));

theta2=0;
set(handles.slider2,'value',theta2);
set(handles.edit2,'string',num2str(theta2));
set_param([ModelName '/Slider Gain1'],'Gain',num2str(theta2));

theta3=0;
set(handles.slider3,'value',theta3);
set(handles.edit3,'string',num2str(theta3));
set_param([ModelName '/Slider Gain2'],'Gain',num2str(theta3));

theta4=0;
set(handles.slider4,'value',theta4);
set(handles.edit4,'string',num2str(theta4));
set_param([ModelName '/Slider Gain3'],'Gain',num2str(theta4));

theta5=0;
set(handles.slider5,'value',theta5);
set(handles.edit5,'string',num2str(theta5));
set_param([ModelName '/Slider Gain4'],'Gain',num2str(theta5));

theta6=0;
set(handles.slider6,'value',theta6);
set(handles.edit6,'string',num2str(theta6));
set_param([ModelName '/Slider Gain5'],'Gain',num2str(theta6));

T01 = [cos(t1) 0 sin(t1) 0;


sin(t1) 0 -cos(t1) 0;
0 1 0 l1;
0 0 0 1];
T12 = [cos(t2) -sin(t2) 0 l2*cos(t2);
sin(t2) cos(t2) 0 l2*sin(t2);
0 0 1 0;
0 0 0 1];
T23 = [cos(t3) 0 sin(t3) l3*cos(t3);
sin(t3) 0 -cos(t3) l3*sin(t3);
0 1 0 0;
0 0 0 1];
T34 = [cos(t4) 0 -sin(t4) 0;
sin(t4) 0 cos(t4) 0;
0 -1 0 l4;
0 0 0 1];
T45 = [cos(t5) 0 sin(t5) 0;
sin(t5) 0 -cos(t5) 0;
0 1 0 0;
0 0 0 1];

25
T56 = [cos(t6) -sin(t6) 0 0;
sin(t6) cos(t6) 0 0;
0 0 1 l5;
0 0 0 1];
% Calculate overall transformation matrix
T06 = T01 * T12 * T23 * T34 * T45 * T56;
X = T06(1, 4);
Y = T06(2, 4);
Z = T06(3, 4);

set(handles.edit7,'string',num2str(X));
set(handles.edit8,'string',num2str(Y));
set(handles.edit9,'string',num2str(Z));

+Code for push button “INVERSE”:

function pushbutton3_Callback(hObject, eventdata, handles)


% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
ModelName = 'IRB1100';
global var;
X=str2num(get(handles.edit7,'string'));
Y=str2num(get(handles.edit8,'string'));
Z=str2num(get(handles.edit9,'string'));

l1 = 327;
l2 = 225;
l3 = 10;
l4 = 250;
l5 = 64;
phi=30;
theta=20;
psi=0;

% Define transformation matrices


T=[cos(phi)*cos(psi)-sin(phi)*cos(theta)*sin(psi), -cos(phi)*sin(psi)-
sin(phi)*cos(theta)*cos(psi),sin(phi)*sin(theta);
sin(phi)*cos(psi)+cos(phi)*cos(theta)*sin(psi), -sin(phi)*sin(psi)
+cos(phi)*cos(theta)*cos(psi), -cos(phi)*sin(theta);
sin(theta)*sin(psi), sin(theta)*cos(psi), cos(theta);];

% Calculate end-effector position


xw = Xp - l5 * T(1, 3);
yw = Yp - l5 * T(2, 3);
zw = Zp - l5 * T(3, 3);
% Calculate intermediate values
t1 = atan2(yw,xw)*180/pi;

r = sqrt(xw^2 + yw^2) ;
o1m = r;
wm=zw-l1;
o1w = sqrt(r^2 + (zw - l1)^2);

26
o2w = sqrt(l3^2 + l4^2);
co2o1w = (o1w^2 + l2^2 - o2w^2) / (2 * l2 * o1w);
so2o1w = sqrt(1 - co2o1w^2);
o2o1w = atan2(real(so2o1w), real(co2o1w))*180/pi ;
cwo1m=(o1m^2+o1w^2-wm^2)/(2*o1w*o1m);
swo1m=sqrt(1-cwo1m^2);
wo1m=atan2(real(swo1m),real(cwo1m))*180/pi;
t2 = o2o1w + wo1m;

co1o2w = (l2^2 + o2w^2 - o1w^2) / (2 * l2 * o2w);


co1o2w = -co1o2w;
so1o2w = sqrt(1 - co1o2w^2);
o1o2w = atan2(co1o2w, so1o2w)*180/pi;
t3 = (atan2(l4, l3)*180/pi ) - o1o2w;

T01 = [cos(t1) 0 sin(t1) 0;


sin(t1) 0 -cos(t1) 0;
0 1 0 l1;
0 0 0 1];
T12 = [cos(t2) -sin(t2) 0 l2*cos(t2);
sin(t2) cos(t2) 0 l2*sin(t2);
0 0 1 0;
0 0 0 1];
T23 = [cos(t3) 0 sin(t3) l3*cos(t3);
sin(t3) 0 -cos(t3) l3*sin(t3);
0 1 0 0;
0 0 0 1];
% Calculate rotation matrix
T03=T01*T12*T23;
R03 = T03(1:3,1:3);
R03_inv=inv(R03);

A = T(1:3, 1:3) * R03_inv;

% Calculate final joint angle


t4 = atan2(A(2, 3), A(1, 3))*180/pi ;
t5 = atan2(sqrt(A(1,3)^2+A(2,3)^2), A(3, 3))*180/pi;
t6 = atan2(A(3, 2), -A(3, 1))*180/pi;

set(handles.edit1,'string',num2str(t1));
set(handles.slider1,'value',t1);
set(handles.edit2,'string',num2str(t2));
set(handles.slider2,'value',t2);
set(handles.edit3,'string',num2str(t3));
set(handles.slider3,'value',t3);
set(handles.edit4,'string',num2str(t4));
set(handles.slider4,'value',t4);
set(handles.edit5,'string',num2str(t5));
set(handles.slider5,'value',t5);
set(handles.edit6,'string',num2str(t6));
set(handles.slider6,'value',t6);
set_param([ModelName '/Slider Gain'],'Gain',num2str(t1));
set_param([ModelName '/Slider Gain1'],'Gain',num2str(t2));

27
set_param([ModelName '/Slider Gain2'],'Gain',num2str(t3));
set_param([ModelName '/Slider Gain3'],'Gain',num2str(t4));
set_param([ModelName '/Slider Gain4'],'Gain',num2str(t5));
set_param([ModelName '/Slider Gain5'],'Gain',num2str(t6));

+Code for push button “CLOSE”:

function pushbutton4_Callback(hObject, eventdata, handles)


close;

_Here is the result after we adjust sliders. However, due to some miscalculation or errors,
the robot is unable to move:

28
REFERENCES
1. ABB, ‘IRB 1100 Product Management, ABB Robotics’. Available:‘IRB-1100-
Presentation_Rev.B-9AKK107046A7020.pdf’.

2. ABB, ‘IRB 1100 The most compact and fast robot ever’. Available:
‘IRB1100_datasheet.pdf’.

3. Tran Minh Thien, ‘Chapter 5 Stu Forward Kinematics.pdf”


4. Tran Minh Thien, ‘Chapter 6 Stu Inverse Kinematcis.pdf”
5. Lecture notes 6DOFs by Ha Le Nhu Ngoc Thanh.

29

You might also like