Inverse dynamic analysis of hobby robot uArm by Matlab/Simulink.
Damic, Vjekoslav ; Cohodar, Maida ; Tvrtkovic, Marko 等
Inverse dynamic analysis of hobby robot uArm by Matlab/Simulink.
1. Introduction
Investigation of industrial robot performances gains attention of
many researchers and goes in several directions. Many papers are devoted
to dynamic analysis of robots. Dynamic model of industrial robot IRB
4400 by bond graphs is subject of research in [1]. In this paper two
models are developed: dynamic and visual one, using two different
software packages BondSim and BondSim Visual, respectively [2], [3].
Object oriented environment of software BondSim provides systematically
development of more complex systems. Between two models two-way
communication is obtained providing exchange necessary information. In
other words, two models behave as one. Dynamic analysis of systems with
closed structure is subject of investigation in [1], [4] where bond
graph are also used as suitable technique [1].
Calibration technique and algorithms of the robot is in focus of
extend investigations. A geometrical approach for axis orientation
parameters calibration of industrial robots using laser tracker is
proposed in [5]. Noncontact methods for calibration of an industrial
robot and identifying certain parameters of the robot model using a
street vision system is subjects of research in [6]. Development of
intelligent CAD/CAM systems is presented in [7]. A procedure for the
dynamical parameters identification of a 6-DOF industrial robot has been
presented in [8]. An efficient algorithm for identification of robot
parameters including drive characteristics is applied on 4-DOF SCARA
manipulator in [9].
With improvement of electronic component performances and reducing
their manufacturing costs, the use of robots becomes significantly
important in small companies, households, hospitals, as educational,
hobby robots etc. This papers deals with small hobby robot uArm, found
as open source project in [10]. Structure of robot, dynamic analysis and
programing is explained in [11]. It is developed according to design of
ABB IRB460. Actuator torques needed to achieve desired motion are
computed using inverse dynamics.
Simulation model is developed using second generation blocks of
Simscape/SimMechanics library [12]. Robot parts are imported as step
files. An internal visualization window opens during simulation. It is
very useful especially in the case of dynamic model development of a
complex system analysis.
2. Kinematic model of robot uArm
The main subsystems of robot uArm are: mechanical part of the
manipulator with the vacuum gripper, four servomotors and a
microcontroller (Arduino), Fig. 1. Manipulator has four degrees of
freedom. Joints J1, J2 and J3 are actuated by servomotors, placed on the
drive unit and provide positioning of the end-effector. Joint J13 is
driven by the fourth servomotor to orient the vacuum gripper.
The manipulator consists of two mechanisms. Mechanism from the
right side, Fig. 1a, services to obtain the main movement of the arm.
Parallelogram geometry between the shoulder and the elbow of an
anthropomorphic arm creates closed kinematic chain. On the left side of
uArm (Fig. 1b), the other mechanism is integrated to manipulator.
Because it holds [bar.J2J7] = [bar.J8J9]J=[bar.J8J10] = [bar.J11J12],
orientation of the Link 2 does not change during the motion. On this
way, orientation of the vacuum gripper, attached to the Link 2 by joint
J13, only changes by angle rotation about its axis provided by the
fourth servomotor.
To develop kinematic model we used DH convention and followed
approach presented in [13]. Joint J6 is adopted as cut joint. The uArm
manipulator with attached coordinate frames is given in Fig. 2. DH
parameters are presented in Table 1.
Matrices of homogenous transformations, according to defined DH
parameters are given by:
[mathematical expression not reproducible]. (1)
The frame [O.sub.6][X.sub.6][Y.sub.6][Z.sub.6] is attached to the
link 2 whose orientation does not change during the motion due to action
of the left mechanism (Fig. 1b). Its orientation is defined by angle
[[theta].sub.2a] regarding to frame [O.sub.5][X.sub.5][Y.sub.6][Z.sub.5]
according to:
[mathematical expression not reproducible] (2)
For closed structure of manipulator (Fig. 2), following conditions
have to be satisfied:
[mathematical expression not reproducible]. (3)
That implies:
[[theta].sub.4] = [[theta].sub.3a] - [[theta].sub.2a],
[[theta].sub.5] = [pi] - [[theta].sub.3a] + [[theta].sub.2a], (4)
where
[[theta].sub.2a] = [[theta].sub.2] + [55.sup.0], [[theta].sub.3a] =
[[theta].sub.3] + [100.sup.0]. (5)
Using (3) and (4) matrix [A.sup.5.sub.6] can be reorganized and we
obtain:
[mathematical expression not reproducible]. (6)
Coordinates of TCP regarding to the frame
[O.sub.6][X.sub.6][Y.sub.6][Z.sub.6] do not change during motion and can
be defined by (in [mm]):
[mathematical expression not reproducible]. (7)
They can be expressed in the reference frame according to:
[r.sup.0.sub.TCP]=[A.sup.0.sub.6] x [r.sup.6.sub.TCP], (8)
and given by (in [mm]):
[mathematical expression not reproducible]. (9)
3. Dynamic model of manipulator uArm
Dynamic model is developed using the second generation blocks of
Simscape/SimMechanics of software Matlab/Simulink, Fig. 3.
Dynamic model of uArm is organized on several levels by subsystems.
Robot manipulator is presented by subsystem uArm on the first level. Its
structure is depicted in Fig. 4. Links are considered as rigid bodies.
They are represented by 'solid' blocks taken from the library
Simscape/SimMechanics/Second generation (We used Matlab v.2015b; this
library is called Multibody in Matlab/Simulink, v.2016). The block
'solid' provides representation of the rigid body geometry by
some basic shapes, but also importing 3D CAD models in form of step or
stl files. In this paper we imported the manipulator links in form of
step files. To create step file of each link, we used 3D CAD models of
robot parts from [10]. They are imported in CATIA in which robot
assembly has developed. Manipulator consists of many parts: screws,
nuts, levers, bearings etc. represented by theirs 3D CAD models. They
are grouped in order to create links. Each link is exported from CATIA
in form of step files.
Block 'solid' enables importing step files and the mass
and inertial properties of the links, based on its geometry and
specified density by user, are automatically calculated.
Revolute joints are represented by blocks 'Revolute
joint', which permits rotation about its Z-axis. Because of this,
we need rigid transformation before and after rotation that is realized
by blocks 'Rigid transformation' as depicted in Fig. 5a.
Joints J1, J2 and J3 are actuated. Joint actuator is represented by
subsystem 'Joint i actuated'.
Structure of subsystem 'Direct kinematics' from the first
level of decomposition (Fig. 3) is shown in Fig. 5b. This provides
calculating coordinates of TCP, according to (9). Subsystem denoted by
XtipYtipZtip consists of sensor to sense coordinate of TCP point.
Joints J1, J2 and J3 are actuated according to laws (in [deg]):
[[theta].sub.1] = 150 x sin(0.25t), [[theta].sub.2] = 15 x sin(t);
[[theta].sub.3] = 20 x sin(t). (10)
Simulation time was 20 s. During the simulation solver ode45
(variable step) is automatically chosen. It is the Runge-Kutta (4,5)
solver of a fifth-order methods to a fourth-order estimate of the error
[12]. Simulation results are presented in Figs. 6 and 7. Imposed motions
in joints and actuator torques needed to obtain desired motion are shown
in Fig. 7a and 7b. Changes of coordinates of TCP with time is presented
in Fig. 7a. Values of TCP coordinates are compared with ones obtained
analytically, by (9). Errors in TCP coordinates, as shown in Fig. 7b are
order of 1e-7 m that confirms validity of simulation model.
Animation screen opens during simulation providing visualization of
robot motion (Fig. 8). This is grateful aid in building of model.
Dynamic model, based on an external 3D CAD files, can be
automatically generated using Simscape Multibody importer. Firstly, we
developed assembly of robot uArm in SolidWorks taking 3D CAD parts taken
from [10]. Robot assembly is exported from SolidWorks and imported to
Simulink. Model is generated using blocks of second generation of
Simscape/SimMechanics on the one level, as shown in Fig. 9a. It can be
modified as any other Simscape models. Obtained simulation results are
the same as previously reported. Animation screen is depicted in Fig.
9b.
4. Conclusion
Inverse dynamic analysis of hobby robot manipulator uArm is
considered in this paper. The paper explains the procedure for
development of robot dynamic model based on 3D CAD models of robot
links. The model is developed using blocks from second generation of
Simscape/SimMechanics Matlab/Simulink library. Links are presented in
form of step files providing automatically calculation of mass and
geometric properties. To compute the mass properties, the link density
is specified by user. During simulation the first three joints are
actuated according to sine law. Actuator torques needed to obtain
imposed motion in actuated joints are computed using inverse dynamics.
To verify developed model, computed X-, Y- and Z-coordinates of TCP in
the global frame are compared with analytical solution of the direct
kinematic model. Comparison shows very good agreement of obtained
results.
In the future investigation the dynamic model will be extended on
the whole robot including servo-motors. Simulation results will be
compared with experimentally obtained results.
DOI: 10.2507/27th.daaam.proceedings.014
5. References
[1] Damic, V. &. Cohodar, M. (2015). Dynamic analysis and
visualization of spatial manipulators with closed structure, Proceedings
of the 26th DAAAM International Symposium, pp.0109-0117, B. Katalinic
(Ed.), Published by DAAAM International, ISBN 978-3-902734-07-5, ISSN
1726-9679, Vienna, Austria DOI: 10.2507/26th.daaam.proceedings.016
[2] Damic, V. &. Montgomery, J. (2015). Mechatronics by Bond
Graphs, An object oriented Approach to Modelling and Simulation,
Springer-Verlag, ISBN 978-3-662-49002-0, Berlin Heidelberg
[3] www.bondsimulation.com, Accessed: 2016-09-01
[4] Damic, V. & Cohodar, M. (2015). Dynamic analysis of Stewart
platform by bond graphs, Procedia Engineering, Vol. 100, 2015, pp.
226-233, doi: 10.1016/j.proeng.2015.01.362.
[5] Vorotnikov, A; Bashevskaya, O; Ilyukhin, Y; Romash, E; Isaev,
A. V. & Poduraev, Y. (2016). Geometrical Approach for Industrial
Robot Axis Calibration Using Laser Tracker, Proceedings of the 26th
DAAAM International Symposium, pp.0897-0904, B. Katalinic (Ed.),
Published by DAAAM International, ISBN 978-3-902734-07-5, ISSN
1726-9679, Vienna, Austria DOI: 10.2507/26th.daaam.proceedings.125
[6] Svaco, M; Sekoranja, B; Suligoj, F. & Jerbic, B. (2014).
Calibration of an Industrial Robot using a stereo vision system,
Procedia Engineering, Vol. 69, 2014, pp. 459-463, doi:
10.1016/j.proeng.2014.03.012.
[7] Klancnik, S; Brezocnik, M; Balic, J. (2016) Intelligent CAD/CAM
system for programming of CNC machine tools. International journal of
simulation modelling, ISSN 1726-4529, 2016, vol. 15, no. 1, pp. 109- 120
[8] Ding, L; Wu, H; Yao, Y. & Yang, Y.(2015). Dynamic model
Identification for 6-DOF Industrial Robots, Journal of Robotics, Vol.
2015, 2015, https://www.hindawi.com/journals/jr/2015/471478/,
http://dx.doi.org/10.1155/2015/471478
[9] Chan, S.P. An Efficient Algorithm for Identification of Robot
Parameters Including Drive Characteristics, Journal of Intelligent and
Robotic Systems (2001) 32: 291. doi:10.1023/A:1013918927148
[10] www.ufactory.cc/ Accessed: 2016-09-01
[11] Tvrtkovic, M. (2016). Modeling and dynamic analysis of robot
manipulator, MSc thesis, Faculty of Mechanical Engineering University of
Sarajevo, B&H
[12] Matlab tutorials, www.mathworks.com, Accessed: 2016-09-01
[13] Siciliano, B.; Sciavicco, L.; Villani, L. & Oriolo G.
(2009). Robotics, Modelling, Planning and Control, Springer-Verlag,
London
This Publication has to be referred as: Damic, V[jekoslav];
Cohodar, M[aida] & Tvrtkovic, M[arko] (2016). Inverse Dynamic
Analysis of Hobby Robot uArm by Matlab/Simulink, Proceedings of the 27th
DAAAM International Symposium, pp.0095-0101, B. Katalinic (Ed.),
Published by DAAAM International, ISBN 978-3-902734-08-2, ISSN
1726-9679, Vienna, Austria
Caption: Fig. 1. The uArm manipulator mechanism: a) the right side;
b) the left side
Caption: Fig. 2. The uArm manipulator in its initial position
([[theta].sub.i]= 0, i=1,2,3) with attached coordinate frames
Caption: Fig. 3. Dynamic model of the uArm manipulator by
SimMechanics
Caption: Fig. 4. Structure of the uArm manipulator model
Caption: Fig. 5. Structure of subsystem: a) Revolute joint; b)
Direct kinematic model
Caption: Fig. 6. Simulation results: a) Change joint angles with
time; b) Change actuator torques with time
Caption: Fig. 7. Simulation results: a) Coordinates of TCP point in
the global frame; b) Error in TCP coordinates
Caption: Fig. 8. Internal animation screen during simulation
Caption: Fig. 9. a) Automatically generated dynamic model; b)
Animation screen
Table 1. DH parameters for uArm manipulator
Link [a.sub.i] [[alpha].sub.i]
Link 1 -[L.sub.1] [90.sup.0]
Link R1 [L.sub.2] 0
Link R3 [L.sub.3] 0
Link R4 (part [O.sub.3][O.sub.4]) [L.sub.2] 0
Link R2 [L.sub.3] 0
Link R4 (part [O.sub.4][O.sub.5]) [L.sub.4] 0
Link [d.sub.i]
Link 1 [L.sup.0]
Link R1 0
Link R3 0
Link R4 (part [O.sub.3][O.sub.4]) 0
Link R2 0
Link R4 (part [O.sub.4][O.sub.5]) 0
Link [[theta].sub.i]
Link 1 [[theta].sub.1]
Link R1 [[theta].sub.2a] =
[[theta].sub.2]
+ [55.sup.0]
Link R3 [[theta].sub.4]
Link R4 (part [O.sub.3][O.sub.4]) [[theta].sub.5]
Link R2 [[theta].sub.3a] =
[[theta].sub.3]
+ [55.sup.0]
Link R4 (part [O.sub.4][O.sub.5]) 0
COPYRIGHT 2017 DAAAM International Vienna
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2017 Gale, Cengage Learning. All rights reserved.