Sensitivity analysis for parallel robots.
Ibraim, Cristina ; Chelaru, Elena Silvia ; Predincea, Nicolae 等
1. INTRODUCTION
Numerical methods that are known as Monte Carlo methods can be
loosely described as statistical simulation methods, where statistical
simulation is defined to be any method that utilizes sequences of random
numbers to perform the simulation.
Monte Carlo is now used routinely in many diverse fields, from the
simulation of complex physical phenomena such as radiation transport in
the earth's atmosphere and the simulation of the esoteric sub
nuclear processes in high energy physics experiments.
Statistical simulation methods may be contrasted to conventional
numerical discretization methods (Germer et al., 2003), which typically
are applied to ordinary or partial differential equations that describe
some underlying physical or mathematical system. In many applications of
Monte Carlo, the physical process is simulated directly, and there is no
need to even write down the differential equations that describe the
behaviour of the system. The essential characteristic of Monte Carlo is
the use of random sampling techniques to arrive at a solution of the
physical problem.
In contrast, a conventional numerical solution approach would start
with the mathematical model of the physical system, discretizing the
differential equations and then solving a set of algebraic equations for
the unknown state of the system.
1.1. Gauss Distribution
The normal (or Gaussian) distribution is one which appears in an
incredible variety of statistical applications.
The Monte Carlo simulation consists of many repetitions of the
random experiment with a changing random number input list.
The basic idea is to perform the direct kinematical algorithm for a
huge numbers of parameters variations. The choice of the right
distribution for parameters variation depends on the given task; in this
case the variation will be for each parameter a Gauss Distributions.
2. PROGRAM DESCRIPTION
2.1 Data representation
Information about all parameters is stored in KGraph matrix as:
First we will store the reference frame in data structure as
following:
KGraph(1,2).u KGraph(7,6).u
KGraph(1,2).v > Reference frame < KGraph(7,6).v
KGraph(1,2).w KGraph(7,6).w
Information about joint i
KGraph(i,i).type--type of Joint >Revolute Traslation Universal
Spherical
KGraph(i,i).driving--kind of Joint > 0--driven Joint; 1--driving
Joint
KGraph(i,i).teta--initial value for angle theta
KGraph(i,i).a--KGraph(i,i).b--KGraph(i,i).c
KGraph(i,i).alfa--KGraph(i,i).beta--KGraph(i,i).gama
For the first direction
Information about position of Joint i: KGraph(i,i-1).poz this is a
vector with 3 elements [ x y z ]
Information about Inlet orientation of joint i: KGraph(i,i+1).u
KGraph(i,i+1).v KGraph(i,i+1).w
Information about outlet orientation of joint i: KGraph(i,i-1).x;
KGraph(i,i-1).y; KGraph(i,i-1).z
For the second direction
Information about position of Joint i: KGraph(i,i+1) poz this is a
vector with 3 elements [ x y z ]
Information about inlet orientation of joint i: KGraph(i,i-1).u;
KGraph(i,i-1).v; KGraph(i,i-1).w
Information about outlet orientation of joint i: KGraph(i,i+1).x;
KGraph(i,i+1).y; KGraph(i,i+1).z
Information about the Cut Joint
There are two different positions and two different orientations
for the Cut Joint NRCJ--Number of cut joint:
* First position--KGraph(NRCJ+1,NRCJ).poz
* Second position--KGraph(NRCJ+1,NRCJ+1).poz
[FIGURE 1 OMITTED]
With this method, the local coordinate systems are automatically
arranged in the correct order, and in this way, the efficient recursive coordinate transformations can be performed.
2.2 Functions description
The following functions are used in the program in the purpose of
reducing the errors (Szatmari, 1999).
Read_Input_Data.m--this function is used to input the parameters
We need to enter the next variables:
* Number of joints
* Number of Cut Joint
For each joint we need to enter the next parameters:
* Type of Joint (R for rotation and T for translation)
* Kind of Joint (1 for driving Joint and 0 for driven Joint)
If we have to describe a Revolute Joint, we must enter the next
values: parameter for joint transformation Theta, parameters for link
transformation: A (Alfa), B (Betha), C (Gama)
If we have to describe a prismatic/translation Joint, we must enter
only the distance.
Build Matrix Structure.m--this function create the complete
structure of information based on the input parameters and
transformation rules.
The next transformations will be computed:
First Direction
1. Link Transformation between Reference Frame and First Joint
2. Joint Transformation and Link Transformation until to the Cut
Joint
Second Direction
1. Link Transformation between Reference Frame and Last Joint
2. Joint transformation and Link Transformation until to the Cut
Joint
Calcerrors.m--this function compute the error between the two
ccordinate systems of the cut Joint. The error is the distance between
the two positions: Pxyz=KGraph(i,i-1).Poz; Puvw=KGraph(i,i+1).Poz;
DP=sqrt((Pxyz(1)-Puvw(1))A2+(Pxyz(2)-Puvw(2))A2).
Minimisation.m--this function adjust the joint variables one by one
until the objective function can not be further reduced.
Gauss_Distribution.m--this function generate random values for each
parameter. We have to define here 3 variables: maximum variation for
distance, maximum variation for angles--number of variation (the number
of points).
[FIGURE 2 OMITTED]
[FIGURE 3 OMITTED]
[FIGURE 4 OMITTED]
After that we have to create the order for combinations, Fig. 4
(method to create Monte Carlo Simulation) shows how this algorithm
works.
Monte_Carlo_Simulation.m--based on the Gauss Distribution this
function store the parameters in data structure. We have after Gauss
distribution the vector A1 with normal distributed values and vector
permutA1 with a random permutation.
For example:
for i:1:1000
KGraph (2,2).a=A1(permutA1(i));
...
end
CCD_for_Mesh_Analysis.m--this is similar with function
CCDcomplete.m this time we need to store in matrix information about
each point from workspace.
InverseKinematik.m--compute the inverse Kinematical solutions
(Li-Chun & Cheng Chen 1993) q1 and q2 starting with the value P(x,y)
from mesh surface.
MeshAnalysis.m--this function is described in the chapter
'Mesh analysis over the entire workspace'
3. CONCLUSIONS
With this program the users have a powerful tool to reduce the
errors and to identify which parameter have a big influence on the
absolute accuracy and witch can be neglected in calibration process
(Conrad, 2000). To verify this method presented in this paper, it is
applied to 'FUNFGELENK' robot. The simulation results have
proved that for finding a realistic prediction of absolute accuracy.
This article is intended to determine the influence of geometric
parameter variation on the absolute accuracy of parallel robots.
4. REFERENCES
Conrad, K. L.; Shiakolas, P.S.& Yih, T. C (2000). "Robotic
calibration issues: Accuracy, Repeatability and Calibration",
Mediterranean Conference on Control & Automation, Patras, Greece
Costa, M. & Smaby, N. (1997). "Calibration and precision
manufacturing", ME 319 Robotics and Vision Lab
Germer, C.; Hansen, U.; Franke, H.-J. & Buttgenbach, S. (2003).
"Development of a 3D-CAD add-in for tolerance analysis and
synthesis in micro systems" Symposion on Design, Test, Integration
and Packing of MEMS/MOMS, ISBN: 0-7803-7066-X
Li-Chun, W. & Cheng Chen, C. (1993). "On the Numerical
Kinematic Analysis of general Parallel Robotic Manipulators Robotics and
Automation, IEEE Transactions on, ISSN: 1042-296X
Szatmari, S. (1999). "Geometrical errors of parallel
robots" Periodica Polytechnica Ser. Mech. Eng. Vol. 43, No. 2