Inverse dynamic analysis of hobby robot uArm by Matlab/Simulink.
Damic, Vjekoslav ; Cohodar, Maida ; Tvrtkovic, Marko 等
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 BondSimVisual, 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 IN ASCII], (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 IN ASCII]. (2)
For closed structure of manipulator (Fig.2), following conditions have to be satisfied:
[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII]. (3)
That implies:
[[theta].sub.4] = [[theta].sub.3a] - [[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 IN ASCII]. (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 IN ASCII]. (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 IN ASCII]. (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 RungeKutta (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.08970904, 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
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] [a.sub.i] [d.sub.i] Link 1 -[L.sub.1] 900 L0 Link R1 [L.sub.2] 0 0 Link R3 [L.sub.3] 0 0 Link R4 (part [O.sub.3][O.sub.4]) [L.sub.2] 0 0 Link R2 [L.sub.3] 0 0 Link R4 (part [O.sub.4][O.sub.5]) [L.sub.4] 0 0 Link [[theta].sub.i] Link 1 [[theta].sub.1] Link R1 [[theta].sub.2a]= 02+[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