ADAMS-MATLAB Co-Simulation of A Serial Manipulator
ADAMS-MATLAB Co-Simulation of A Serial Manipulator
ADAMS-MATLAB Co-Simulation of A Serial Manipulator
1051/ matecconf/20179508002
ICMME 2016
Abstract. This paper presents the dynamic modelling and simulation of a now redundant robot, Mitsubishi RM-501,
and proposes a general algorithm for experimental simulation in kinematics, dynamics and control analysis to any
such robot. Through reverse engineering, a model as accurate as the real robot was developed in SolidWorks.The
simulations of the same were performed in ADAMS (dynamicmodeling software offered by MSC Software
Corp)along with MATLAB for motion studies and control dynamics. Finally, with a user-input path the accuracy and
precision of the simulator was verified.
© The Authors, published by EDP Sciences. This is an open access article distributed under the terms of the Creative Commons Attribution
License 4.0 (http://creativecommons.org/licenses/by/4.0/).
MATEC Web of Conferences 95 , 08002 (2017) DOI: 10.1051/ matecconf/20179508002
ICMME 2016
ADAMS software was used for the dynamic analysis of the modified Denavit-Hartenberg parameters are shown
the robot model. The basic pre-requisites includes in Figure 1 and Table 2, respectively.
geometric correctness and the validity of constraints were
done in SolidWorks. The material of the robot parts (as
this determines the mass and other basic dynamic
parameters) is equally significant as observed during
reverse engineering (RE). Once this is done in
SolidWorks the “Motion Study” itself is capable of
exporting these details along with the geometric model to
ADAMS. Verification of the coherence in inertial
parameters can be confirmed in both ADAMS and
SolidWorks platforms (Table 1).
Table 1. Inertial parameters of RM-501
2
MATEC Web of Conferences 95 , 08002 (2017) DOI: 10.1051/ matecconf/20179508002
ICMME 2016
frames, along with information on any vector of a are 3×1 column vectors (for x, y and z axis).
particular frame, if that vector is viewed from some other
frame. Transformation matrices for RM 501 are
3.2 Inverse kinematics
elaborated in next section.
Inverse kinematics, as the name suggests compliments
3.1 Forward kinematics the forward kinematics. It deals with identifying the joint
angles when the position and orientation of end effector
Given the set of joint angles ( ) at any instance, the is given. This is very much useful if the robot is to follow
forward kinematics is simple, as the basic equations of a predetermined path.
forward kinematics easily determines the end-effector The non-linearity involved in forward
position and orientation. The modified Denavit - kinematicsmakes the solution to the inverse kinematics
Hartenberg (DH) convention and methodology was used not only difficult but also non-unique. A single strategy
to derive the kinematics. to tackle the challenging of inverse problem is by using
The following convention was followed: (x0, y0, z0) to translation Jacobian matrices. This approach isused in
(x4, y4, z4) represent the local coordinate frames at the five this work. The results obtained using Jacobian matrices
joints respectively, (x5, y5, z5) represented the local are in close agreement with the actual angles, provided
coordinate frame at the end-effector, α, γ and θ are the that the motion imparted to the robot is small between
rotation angles about x, y, and z axis respectively. The two successive measuring positions.
base local coordinate frame (x0, y0, z0) overlapped with Let X represent a 6×1 column vector containing the
the global coordinate system (X, Y, Z) as it was attached end positions and orientation of the end effector tip.Then
to the base frame. the Jacobian () for the base-tool transformation matrix
0
Based on the DH convention, the transformation T6 is defined as:
* −- 0 /
= (6)
- *. * *. −-. −-.
= ' 2 (1) where represents the corresponding D-H parameter.
- * -. *. *.
0 0 0 1 The forward kinematic equation is:
matrix from joint n to joint n + 1 is given by: = ( , , , , ) (7)
, where θ and α are DH parameters and cθi, sθi represent where represents 5×1 the column vector containing the
cos (θi) and sin (θi), respectively. relevant D-H parameters. As both sides are deterministic,
Another mathematical entity which is frequently used it is possible to invert the Jacobian using erstwhile and
for describing the frame motion is a 3×3 rotation obtain the value of Ɵ and subsequently the next set of ,
matrix( ) that is essentially the first 3 rows and 3 according to the equation,
columns of the transformation matrix ( ). The Ɵ = ( , , , , ) (8)
transformation matrices for all the frames are listed here.
Hence, the position and orientation of the end-effector Ɵ! = Ɵ + Ɵ (9)
can be calculated if all the joint angles are given. Once
the joint angles are found, other kinematic variables can It is clearly seen that the Jacobian is a matrix of
be calculated through forward kinematics using the partial derivate of the position and orientation with
following equations. respect to the five joint angles. Inverse solutions for the
velocity and acceleration of each link with respect to its
=
+ ̇
(2) frame i.e. ̇ and ̈ can be obtained by directly
differentiating the obtained values of . If the simulation
+ × ̇ ̈ (3)
̇ = ̇ +
is done in discrete steps, it suffices to differentiate using a
first order scheme to obtain the required derivatives.
̇ = ̇ × + × × + ̇ (4)
3.3 Trajectory planning
̇ = ̇ × +
× × Our simulation requires, the path (trajectory) as closely
(5)
+ ̇ spaced discrete points in ADAMS environment 3D space
and whose coordinates are stored in a database (Microsoft
Here, ‘i’ varies from 0 to 5. Furthermore is the Excel Spreadsheet), using a specially-constructed macro
angular velocity of a link, ̇ is the angular acceleration of routine. These points are taken as guides in planning the
a link, ̇ is the angular velocity of a joint motor, ̈ is the path to be taken by the robot using the command of
angular acceleration of a joint motor, is the velocity of inbuilt database read. The interpolation between any pair
a link, ̇ is the acceleration of a link and is the distance of these consecutive points is given as a cubic polynomial:
from the joint. A subscript c indicates the reference to the
center of mass of a link.
is the unit vector along Z- (") = # + $ " + % " + & " (10)
axis of the frame i+1 . All the above mentioned quantities
Here i is the storing indexed positions (points) in the
3
MATEC Web of Conferences 95 , 08002 (2017) DOI: 10.1051/ matecconf/20179508002
ICMME 2016
database. The curve is constructed with two basic the maximum force and torque that the end effector
constraints. Firstly, the velocity at the starting point and experiences are clearly specified for any simulation.
the ending point are zero. Secondly, the velocity at the
intermediate points are unique. The coefficients of the
polynomials is solved using a Tri-Diagonal Matrix 5 Control systems
Algorithm (TDMA). Robotic control is considered to be the spine of robotics.
The only disadvantage of a cubic interpolation is the It involves making a robot manipulator to perform
jerks in ("). As we can clearly see the second derivative operations automatically and precisely with the help of
of (") yields a linear function which will change controllers. Hence it is a vital part in all modern robots.
between a pair of consecutive input points. Though this Typically, the controllers take the form of an equation or
could have been avoided by a quadratic polynomial, it an algorithm which is realized via specialized computer
would render the equation solution-less due to the programs.
constraints involved. Present industrial systems use a combination of
proportional, integral and derivative (PID) control. This
4 Dynamic analysis particular method has a wide range of applicability, ease
of implementation and is very robust, while sacrificing
Dynamic analysis is the study of motion with regard to some accuracy in comparison to non-linear control
the causal entities (forces and torques). Dynamic methods.The values of AB , AC and A in the PID control
modeling is vital for simulation and implementation of loop can be fixed based on the response pattern. With any
control algorithm. The Newton-Euler methodology used control system, the key parameters are rise time,
here is based on Newton’s second law,in order to overshoot, settling time, and the steady state error for a
determine inverse dynamics that is used in this paper [6]. step input. Each of the three parameters (AB , AC , A ) have
This equation can describe the behavior of a robot distinct effects on the four output parameters above, and
manipulator link-by-link and joint-by-joint from base to fine tuning is necessary to obtain the best possible
end-effector, called forward recursion and also transfer response. MATLAB also offers a PID tuning algorithm
the essential information from end-effector to base frame, that can help in deciding the values of AB , AC and A after
called backward recursion. an iterative process. In the given example, the value of
The forward recursion dynamic equations for the AB , AC and A are approximately 10 each. The values are
force and net moment acting on a joint are:
obtained with the help of MATLAB toolbox mentioned
= 4 above. In this simulation a simple PID control system
3 ̇ (11)
was implemented for each individual angle outputs.
789: 789:
5 = 6 ̇ +
× 6 (12)
6 Simulation and results
where 3 is the force acting on a link, 5 is the moment
acting on a link, 4 is the mass of a link, is the angular Co-simulation between ADAMS and MATLAB is of
velocity of a link, ̇ is the angular acceleration of a link, paramount importance due to their efficient simulation
̇ is the acceleration of a link and 6 is the moment of platform. An acceptable format for the inputs and outputs
inertia of a link ‘i’ about its center of mass. 6 is a 3×3 of each program is required to execute the co-simulation.
matrix and function of mass of the body and geometry. The objective of co-simulation is to establish a
The rest of the quantities are 3×1 column vectors (for x, y connection so that any change in one of the programs is
and z axis). reflected and further affects the other one, thus utilizing
The inverse recursion dynamic equations for the benefits of both the program modules [7]. To provide
calculating the joint forces and joint torques are: a simulation that enables ADAMS to recognize the
exported output from MATLAB, there is a need for
; = ; + 3 (13) activating the ‘Control’ plug-in in the ‘Plug-in Manager’
of ADAMS and defining the robot as a plant. After
< = 5 +
< + × 3 + ×
activation, a new window appears for the determination
; (14) of plant and its inputs and outputs.
To call the generated plant in MATLAB, the plant
> = <? (15)
name should be entered in the ‘MATLAB command
where; is the force acting on a joint, < is the moment window’ such that the computer recognizes and displays
acting on a joint and > is the component of < along the the input and output information. By executing the
local rotational axis. These quantities are 3×1 column ‘Adams_sys’ command, the block containing the
vectors (for x, y and z axis). A subscript c indicates the information about the dynamic model is created and
reference to the center of mass of a link. loaded in the SIMULINK environment. The ‘Adams-sub’
Based on the same, required forces and joint torques block created in the SIMULINK should be configured as
can be calculated easily. It is noted that a pseudo-force is shown in Figure3. This is a vital component, as this block
applied on each and every link that simulates gravity in is included in the master simulation and control model,
real life situations by explicitly defining the acceleration which is again defined in SIMULINK as a separate entity.
of the base to be equal to @ in the upward direction. Also
4
MATEC Web of Conferences 95 , 08002 (2017) DOI: 10.1051/ matecconf/20179508002
ICMME 2016
7 Conclusions
In this paper, the virtual development of a 5-DOF robot
has been done using SolidWorks and the simulation,
testing and validation were carried out using ADAMS
and MATLAB-SIMULINK. The validity of the control
loop was put to test by imparting a sinusoidal disturbance
to the joint torques.Please do note that this observed error
was because of the purposeful sinusoidal disturbance.
Furthermore, loading the .res file into ADAMS post-
processor, it was possible to cross-check all the inertia
forces, gravity, centrifugal forces, Coriolis forces and
instantaneous power of the driver motorwith the results
that were obtained from calculation in MATLAB.
1. K.T. Park, Y.J. Shin, C.H. Park, Y.S. Mo, and D.C.
Jeong,ICCAS, "Robot application for assembly
process of engine part,"(2008)
2. D. D. Ray and M. Singh, CARPI,"Development of a
force reflecting Tele-robot for remote handling in
nuclear installations," (2010)
3. B. Armstrong, O. Khatib, and J. Burdick, ICRA,
"The explicit dynamic model and inertial parameters
of the PUMA 560 arm," (1986).
4. F. Cheraghpour, M. Vaezi, H. E. ShooriJazeh, and S.
A. A. Moosavian, IEEE-ICM “Dynamic modeling
and kinematic simulation of Stäubli© TX40 robot
using MATLAB/ADAMS co-simulation,” (2011).
5. Mitsubishi Electric Corporation Tokyo,"Movemaster
II RM-501 model instruction manual", (1984).
6. J. J. Craig, Introduction to Robotics: Mechanics and
Figure 5. 2nd – Degree Norm Position* of End-Effector
(with and without control systems) Control, 3rd ed. United Kingdom: Prentice Hall,
(2003).
2 Degree Norm Position is DE + F + G
* nd
5
MATEC Web of Conferences 95 , 08002 (2017) DOI: 10.1051/ matecconf/20179508002
ICMME 2016
7. Z. Yi, X. Min-min, Q. Jin-yi, and Z. Hu, 8. R. M. Inigo and J. S. Morton, IEEE Trans. Educ.,
ICCASM,"Research on co-simulation using ADAMS "Simulation of the dynamics of an industrial
and MATLAB for automobile active suspension robot,"vol. 34, no. 1, pp. 89–99, (1991)
system," (2010)