workspace analysis - utcluj.ro · workspace analysis the workspace is the set of all attainable...
TRANSCRIPT
7.
Workspace analysis
The workspace is the set of all attainable poses of the mobile platform [75]. The small
size of the workspace compared to the dimensions of the mechanism is the major drawback of
parallel robots. Workspace analysis is difficult for parallel robots. This difficulty is related to the
complexity of solving the forward kinematic problem. Parallel robots, unlike serial ones, have
the orientation and the translational workspace coupled [43.]. For workspace generation forward
kinematics must be solved first. The workspace of a parallel robot can be obtained numerically
by solving the direct kinematic problem for all discreet values of the joint space coordinates
(using a sufficiently large step variable) [1.], [43.]. For 4 or more d.o.f. representing every
characteristic of the workspace graphically is almost impossible. For 6 d.o.f. the workspace can
be fully represented only in 6D space. The translation ability of the parallel manipulators is
clearly dependent on the orientation of the end effector [53.]. Fixing the orientation of the end
effector makes it possible to represent the workspace in 3D but only for that particular
orientation.
Singularities
Singularities are defined as critical positions of the manipulator where it gains, or loses,
one or more degrees of freedom. This is an important issue from the trajectory planning point of
view both for serial and parallel manipulators similarly. Mainly these singular positions (or close
singular positions) are detected with the help of the Jacobian matrix. Merlet et al. in [51.]
specifies that an ideal singularity detection scheme should be able to determine singularities
despite assembly or manufacturing errors, deviations due to imperfect control system. In the
same article they present a method for calculating the inverse Jacobian matrix using Grossman
geometry. Li et al. in [39.] presents architectural singularities and advises to be avoided in the
design process. Joshi and Tsai in [31.] show that a 6x6 Jacobian matrix for limited d.o.f. parallel
manipulators provides information about both architecture and constraint singularities. In [15.]
diGregorio and Parenti-Castelli present analytical equations of the surfaces where a 3UPU
parallel manipulator has singular configurations. Pai et al in [60.] use a mathematical topology
based approach to study singularities.
Trajectory planning
Trajectory planning of a manipulator has more aspects. It can refer to the end effector
traveling to a specified point, describing a user given trajectory, or an optimal generation of a
trajectory as close as possible to the user desired trajectory taking in account the possible
8.
singular positions and/or the possible obstacles, and avoiding them. Trajectory planning of
parallel manipulator is similar to trajectory planning of serial manipulators. Avoiding
singularities is comparable to avoiding obstacles in the workspace. A simple point to point path
planning example is described in [23.]. In this article Her et al. use a fuzzy logic based approach.
Many publications deal with the detection of singular positions and their avoidance. Merlet in
[49.] published an almost real-time algorithm to verify that a given trajectory lies fully inside the
workspace and is singularity free. A similar approach is presented in [66.] by Su, Dietmaier and
McCarthy, but applied for a constrained parallel manipulator. Lahouar et al. in [47.] proposes a
path planning algorithm based on the alternation of two searching nodes. This algorithm treats
singularities as obstacles and avoids them. Weghe et al. in [71.] use an RRT algorithm based
approach and apply it to a redundant serial manipulator. A neural network approach for collision
free path planning is also published in [73.]
Control system
The most common type of control system used is based on classical control theory. Each
motor has a separate controller (mostly PID). The only problem with this type of control is that it
suffers from the so-called synchronization error problem [63.]. Very few papers deal with
substituting this type of control. In [12.], [61] a Fuzzy logic controller is used, it is used as a
MIMO system (multiple inputs, multiple outputs); there are no separate controllers for each
motor. Honegger in [24.] demonstrates the effectiveness of a nonlinear adaptive control in
comparison with linear control. Huang also presents an application of nonlinear control
techniques to parallel robots in [15.]. A sliding mode controller is used to control the dynamic
model of the classical Stewart platform.
Matlab is a high-level language and interactive environment that enables performing
universal, computationally intensive tasks faster than with traditional programming languages
[77.]. It is designed for engineering tasks; therefore it has a rich library of functions useful for
solving problems of different engineering domains. These functions are grouped as toolboxes
based of their domain of appartenence (control systems toolbox, optimization toolbox, filter
design toolbox, etc.
Simulink is a software package for Matlab that enables you to model, simulate, and
analyze systems whose outputs change over time. Such systems are often referred to as dynamic
systems. The Simulink software can be used to explore the behavior of a wide range of real-
world dynamic systems, including electrical circuits, shock absorbers, braking systems, and
many other electrical, mechanical, and thermodynamic systems.
9.
Simulating a dynamic system is a two-step process. First, block diagram is created, using
the Simulink model editor, that graphically depicts time-dependent mathematical relationships
among the system's inputs, states, and outputs. Then Simulink software simulates the system
represented by the model from a specified start time to a specified stop time. [77.]
The advantage of Simulink is that users with very limited programming experience can
use it effectively to build complex simulations. Its main disadvantage is also related to this fact.
Implementation of some algorithms (like equations), that are written rapidly in a text based
programming environment, is quite time consuming.
A balanced used of both code written in m-files and Simulink blocks is the recommended
method of implementing algorithms in Simulink. This method is possible using a special block
named Embedded Matlab function block. This permits m-functions to be run as a Simulink
block.
Running a simulation in Simulink is not the last step of product development with
Matlab. Simulink simulations can be converted, compiled and deployed to compatible hardware.
The list of compatible hardware is quite large when considering the usage Matlab components
Real-Time Workshop and Simulink HDL coder. With these two tools Matlab can generate code
for x86 processors (with Real-Time Workshop) and also for ASICs and FPGAs (with HDL
Coder). Commercial software is available to generate code for microcontrollers (PIC) directly
from Simulink. The Simulink model this way can be connected to the real (physical) system.
Testing, fine tuning and data logging can also be done this way from the Matlab environment.
Rapid controller prototyping – dSPACE development boards
The rapid controller prototyping (RCP) concept is an important factor for cost-efficient, fast
and adoptable implementation and perfection of theoretical algorithms. Rapid control
prototyping is a technique, in which a standard computer or a real time board temporarily
replaces the actual controller, provides a way to rapidly test algorithms during the development
of products [36.], [64.]. Also using RCP evaluation of algorithm from the performance point of
view is also easier. A possible solution for a reliable RCP technique can be the combined usage
of Matlab and a dSpace real-time development board. In this scenario algorithms developed,
tested, optimized, verified, and validated in Matlab using the powerful, specialized tools offered
by Matlab, can be effortlessly transferred to the development board and interfaced with the real,
physical system. Performance evaluation of the algorithms should be done using a real-time
environment. Non-real-time environments can heavily influence execution time.
Fig. 1. dSPACE realtime developement board and connector panel
In fig. 2 the Simulink implementation of the partner robots inverse kinematics is
presented. Form the target input which represent the desired coordinates of the end-effector this
model calculates the stroke of all six linear actuators of the partner robot. It consists of two main
blocks: initialization block and inverse kinematics block, and a target input. It also incorporates a
display block for direct visualization of results.
Fig. 1. Inverse kinematics Simulink model
10.
Target has the form of a 6x1 matrix (column vector) of double values. In this model this
is a constant. By deleting this constant and converting the model to a subsystem it can be used
also in path planning, with the target as an input variable. The elements of the vector define the
desired position of the end-effector as follows:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
=
z
y
x
dZdYdX
target
ϕ
ϕϕ
(1)
These values are relative to the park position of the end-effector. Outputs of the model are the
values of actuator strokes (q) as 6x1 column vector, and coordinates of Ai and Bi points when
the end effector is in the desired position (both as 6x3 matrix). The point coorinates ar important
for visual representaion porposes. The subsytem contins also a display block for visualization of
the actuator stroke values.
Initialization subsystem - block
This subsystem contains the input data needed for calculations and does the necessary
calculations for calculating the robot’s park position coordinates. It contains the values of OB,
OA, li, αAi, αBi. OB, OA, li, αAi, αBi. This subsystem has 3 outputs. The first and the second one are
6x3 matrixes containing the coordinates of the Ai and Bi points in park position; the third one is
the li row vector with 6 elements. These are included as output while they are needed for the
inverse kinematics calculations.
Inverse kinematics subsystem - block
The inverse kinematics subsystem is the part of this model that calculates the inverse
kinematics. It needs as input the park position coordinates of the Ai and Bi points, the lengths of
the connecting elements (li) and the desired position and orientation of the end-effector (Target).
As output this block returns the motor strokes (qi) for the desired position, it also returns the
coordinates of the Ai and BBi points in the desired position. The latter two are only significant for
visualization reasons.
In software project management, software testing, and software engineering, Verification
and Validation (V&V) is the process of checking that a software system meets specifications and
that it fulfills its intended purpose. It is normally part of the software testing process of a project.
11.
In other words, validation ensures that the product actually meets the user's needs, and
that the specifications were correct in the first place, while verification is ensuring that the
product has been built according to the requirements and design specifications. Validation
ensures that the software ‘does the right things’. Verification ensures that ‘it does the things
right’. Validation confirms that the product, as provided, will fulfill its intended use. [WEB VI.]
Software testing can be done in more ways. A very efficient way is the so-called unit
testing. This consists of testing (verifying and validating) the smallest components (objects in
object oriented programming or functions and/or procedures in procedural programming) of the
program. All of the above components of the inverse kinematics model where verified and
validated. The model itself was simulated for different input values for which the output values
were known or were predictable in pattern.
Simulation Results
The coordinates of 0Ai and 0Bi points are presented in table 2 and 3. Figure 3 presents
the Partner robot in park position. In figure 6 a 150mm translation along the Z axis is presented,
along with the corresponding qi values. In figure 5 a 150mm translation along the Z axis and a
100mm translation along the Y axis is presented compared to the park position of the robot, the
corresponding qi values are also listed.
Fig. 3. Partner robot in park position
12.
Table 2: Park position coordinates of B0 points
0BBiX
0BBiY0BBiZ
0B
B1 95.7556 -80.3485 652.28440B
B2 0 -125.0000 652.2844
0B
B3 -108.2532 -62.5000 652.28440B
B4 -108.2532 62.5000 652.2844
0B
B5 0 125.0000 652.28440B
B6 95.7556 80.3485 652.2844
Table 3: Park position coordinates of A0 points
0AiX
0AiY0AiZ
0A1 344.6827 -60.7769 00A2 -119.7071 -328.8924 00A3 -224.9757 -268.1156 00A4 -224.9757 268.1156 00A5 -119.7071 328.8924 00A6 344.6827 60.7769 0
qi Value [mm]
1 150
2 150
3 150
4 150
5 150
6 150
Fig. 4. : Partner robot in 150 mm translation along OZ axis
13.
qi Value [mm]
1 182.2
2 195,2
3 170,3
4 145,5
5 122,4
6 134,3
Fig. 5. Partner robot in 100m translation along OY axis and 150 mm translation along OZ axis (blue) compared to park position (red)
Results of the direct kinematics are easy to interpret when all inputs (all six strokes) are
equal. This should result in a pure translation on the Oz axis. In other cases the results can be
validated using inverse kinematics. For a given position and orientation of the end effectors
inverse kinematics can be used to obtain the motor strokes. The direct kinematics of these motor
strokes should return the same position and orientation given as input to the inverse kinematics.
When analyzing this direct kinematics algorithm two other parameters should be also
considered. Since it is based on Newton's method of solving nonlinear equation systems the
parameters of this method are also important. Execution time of the algorithm is heavily
dependent on the precision but also on a good initial guess.
Result presented in tables 1-4 are results from the direct kinematics algorithm, motor
precision and mechanical tolerances are not considered.
Table 1: result of direct kinematics for given motor stroke
qi 100mm 100mm 100mm 100mm 100mm 100mm
Direct X=0.000m Y=0.000m Z=100.000m φX=0.000de φY=0.000de φZ=0.000de
14.
15.
kinematic
s
m m m g g g
Elapsed time is 0.021661 seconds
Table 2: result of direct kinematics for motor strokes obtained from inverse kinematics
Inverse
kinemati
cs
X=30mm Y=20mm Z=50mm φX=0deg φY=0deg φZ=0deg
qi 47.4068mm 56.2287mm 63.9062mm 58.9286mm 41.9002mm
38.0524m
m
Direct
kinemati
cs
X=30.000m
m
Y=20.000m
m
Z=50.000m
m
φX=0.000de
g
φY=0.000de
g
φZ=0.000de
g
Elapsed time is 0.021845 seconds
Table 3: result of direct kinematics for motor strokes obtained from inverse kinematics
Inverse
kinemati
cs
X=30mm Y=0mm Z=50mm φX=0deg φY=0deg φZ= 20deg
qi54.0962mm
46.6327m
m 74.9432mm 55.6666mm 58.7546mm 37.7223mm
Direct
kinemati
cs
X=30.000m
m
Y=0.000m
m
Z=50.000m
m
φX=0.000de
g
φY=0.000de
g
φZ=20.000d
eg
Elapsed time is 0.021845 seconds
Table 4: result of direct kinematics for motor strokes obtained from inverse kinematics
Inverse
kinemati
cs
X=30mm Y=10mm Z=70mm φX= 30deg φY= 20deg φZ= 20deg
qi 59.5632mm 13.9921mm
52.0636m
m
144.5007m
m
156.9034m
m 55.4481mm
Direct X=30.000m Y=10.0001 Z=70.000m φX=30.000d φY=20.000d φZ=20.000d
kinemati
cs
m mm m eg eg eg
Elapsed time is 0.034640 seconds
Inverse Jacobian matrix
In mathematics, the Jacobian matrix is the matrix of all first-order partial derivatives of a vector-valued function. Suppose F : Rn → Rm is a function from Euclidean n-space to Euclidean m-space. Such a function is given by m real-valued component functions, y1(x1,...,xn), ..., ym(x1,...,xn). The partial derivatives of all these functions (if they exist) can be organized in an m-by-n matrix, the Jacobian matrix J of F, as follows [WEB. 9]:
(2)
The term Jacobian matrix (or determinant) when used in conjunction with robots, usually
refers to a matrix that fulfills the following equation:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
×=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
6
5
4
3
2
1
qqqqqq
Jzyx
z
y
x
&
&
&
&
&
&
&
&
&
&
&
&
ϕϕϕ (3)
where fi denotes the function(equation) that expresses the relation between the Cartesian
directions and rotations (q, y, z, phix, phiy, phiz) and the motor strokes (q).
From relation (3) the significance of the inverse Jacobian matrix can be observed:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
×=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−
z
y
x
zyx
J
qqqqqq
ϕϕϕ
&
&
&
&
&
&
&
&
&
&
&
&
1
6
5
4
3
2
1
(4)
16.
The elements of the inverse Jacobian matrix are also partial derivates:
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
∂∂
=−
zyx
zyx
zyx
zyx
zyx
zyx
fffzf
yf
xf
fffzf
yf
xf
fffzf
yf
xf
fffzf
yf
xf
fffzf
yf
xf
fffzf
yf
xf
J
ϕϕϕ
ϕϕϕ
ϕϕϕ
ϕϕϕ
ϕϕϕ
ϕϕϕ
666666
555555
444444
333333
222222
111111
1
(5)
One can observe that these fi equations are the inverse kinematic equations. Using
Matlab’s Symbolic Math toolbox the explicit form of these equations can be generated.
Every variable that represent a geometric parameter of the robot is declared as a symbolic
variable:
Matlab implementation:
syms x y z phix phiy phiz syms Apark11 Apark12 Apark13 syms Apark21 Apark22 Apark23 syms Apark31 Apark32 Apark33 syms Apark41 Apark42 Apark43 syms Apark51 Apark52 Apark53 syms Apark61 Apark62 Apark63 syms Bpark61 Bpark62 Bpark63 syms Bpark51 Bpark52 Bpark53 syms Bpark41 Bpark42 Bpark43 syms Bpark31 Bpark32 Bpark33 syms Bpark21 Bpark22 Bpark23 syms Bpark11 Bpark12 Bpark13 syms l1 l2 l3 l4 l5 l6 syms OA OB syms alfaA1 alfaA2 alfaA3 alfaA4 alfaA5 alfaA6 syms alfaB1 alfaB2 alfaB3 alfaB4 alfaB5 alfaB6
17.
18.
The second step is to re-implement the solution of the inverse kinematics problem, using
these variables.
Since symbolic math toolbox does not support the use of symbolic variables in a vector
or a matrix For-loop cannot be used as in the case of the inverse kinematics problem. Only one
example is shown for similar equations. The full code listing see appendix.
Symbolic calculation of the park position coordinates:
Apark11=OA*cos(alfaA1);
Apark12=OA*sin(alfaA1);
Bpark11=OB*cos(alfaB1);
Bpark12=OB*sin(alfaB1);
Bpark13=-Apark13 + sqrt ( l1^2 - (Apark11-Bpark11)^2-(Apark12-Bpark12)^2);
Symbolic calculation of the transfer matrix
A1 = [1, 0, 0, x; %X translation matrix 0, 1, 0, 0; 0, 0, 1, 0; 0, 0, 0, 1]; A2 = [1, 0, 0, 0; %Y translation matrix 0, 1, 0, y; 0, 0, 1, 0; 0, 0, 0, 1]; A3 = [1, 0, 0, 0; %Z translation matrix 0, 1, 0, 0; 0, 0, 1, z+Bpark13; 0, 0, 0, 1]; A4 = [ 1, 0, 0, 0; %Rotation matrix around X axis 0, cos(phix), -sin(phix), 0; 0, sin(phix), cos(phix), 0; 0, 0, 0, 1]; A5 = [ cos(phiy), 0, sin(phiy), 0; %Rotation matrix around Y axis 0, 1, 0, 0; -sin(phiy), 0, cos(phiy), 0; 0, 0, 0, 1]; A6 = [ cos(phiz), -sin(phiz), 0, 0; %Rotation matrix around Z axis
19.
sin(phiz), cos(phiz), 0, 0; 0, 0, 1, 0; 0, 0, 0, 1]; H=A1*A2*A3*A4*A5*A6;
B1=H*[Bpark11; Bpark12; Bpark13; 1];
Finally, when writing the equations
q1=B1(3)-sqrt(l1^2 - (B1(1)-Apark11)^2 - (B1(2)-Apark12)^2) q2=B2(3)-sqrt(l2^2 - (B2(1)-Apark21)^2 - (B2(2)-Apark22)^2) q3=B3(3)-sqrt(l3^2 - (B3(1)-Apark31)^2 - (B3(2)-Apark32)^2) q4=B4(3)-sqrt(l4^2 - (B4(1)-Apark41)^2 - (B4(2)-Apark42)^2) q5=B5(3)-sqrt(l5^2 - (B5(1)-Apark51)^2 - (B5(2)-Apark52)^2) q6=B6(3)-sqrt(l6^2 - (B6(1)-Apark61)^2 - (B6(2)-Apark62)^2) as result the most explicit form of the equations can be obtained:
q1 = z - Apark13 - (l1^2 - (y - OA*sin(alfaA1) + cos(phiy)*sin(phix)*(Apark13 - (l1^2 -
(OA*sin(alfaA1) - OB*sin(alfaB1))^2 - (OA*cos(alfaA1) - OB*cos(alfaB1))^2)^(1/2)) +
OB*cos(alfaB1)*(cos(phix)*sin(phiz) + cos(phiz)*sin(phix)*sin(phiy)) +
OB*sin(alfaB1)*(cos(phix)*cos(phiz) - sin(phix)*sin(phiy)*sin(phiz)))^2 - (OA*cos(alfaA1) - x
+ sin(phiy)*(Apark13 - (l1^2 - (OA*sin(alfaA1) - OB*sin(alfaB1))^2 - (OA*cos(alfaA1) -
OB*cos(alfaB1))^2)^(1/2)) - OB*cos(alfaB1)*cos(phiy)*cos(phiz) +
OB*cos(phiy)*sin(alfaB1)*sin(phiz))^2)^(1/2) + (l1^2 - (OA*sin(alfaA1) - OB*sin(alfaB1))^2 -
(OA*cos(alfaA1) - OB*cos(alfaB1))^2)^(1/2) - cos(phix)*cos(phiy)*(Apark13 - (l1^2 -
(OA*sin(alfaA1) - OB*sin(alfaB1))^2 - (OA*cos(alfaA1) - OB*cos(alfaB1))^2)^(1/2)) +
OB*cos(alfaB1)*(sin(phix)*sin(phiz) - cos(phix)*cos(phiz)*sin(phiy)) +
OB*sin(alfaB1)*(cos(phiz)*sin(phix) + cos(phix)*sin(phiy)*sin(phiz))
where Apark13 equals 0.
For all six equations please see appendix.
Now a symbolic matrix can be created with these 6 explicit equations:
eq=[q1; q2; q3; q4; q5; q6];
Another symbolic matrix is created with the variables with respect to the derivation will
be made:
vars=[x; y; z; phix; phiy; phiz];
For generating the Inverse Jacobian matrix the jacobian function from the Symbolic Math
toolbox is used:
J=jacobian(eq, vars);
Note that generating the 36 partial derivates takes some time.
After termination the result can be copied into an m- file or to an embedded Matlab
function block in Simulink.
Fig. 6. Simulink implementation of the inverse Jacobian matrix
System configuration
The experimental setup consists of:
20.
• a standard PC with Matlab and ControlDesk installed
• a dSAPCE DS-1103 realtime development system
• a dSPACE CP-1103 connector panel
• 6 Wittenstein Ternary TLSA046AAS-330N01-001 servomotors
• the mechanical structure of the robot
The algorithms where implemented in Matlab-Simulink, then transferred with the help of
the Matlab component Realtime-Workshop to the dSPACE development board. All applications
will be running on this board only. After transfer the PC will take the place of a Human Machine
Interface (HMI) using the ControlDesk software supplied with the development board.
Experimental setup is presented in figure 7 .
Fig. 7. Experimental setup
Data transmission
Data communications is the transfer of information from one point to another. Any
communications system requires a transmitter to send information, a receiver to accept it and a
link between the two. Types of link include copper wire, optical fiber, radio, and microwave.
There must be mutual agreement on data encoding and decoding method, the receiver must be
21.
22.
able to understand what the transmitter is sending. The structure in which the devices
communicate is known as a protocol. Traditionally, developers of software and hardware
platforms have developed protocols, which only their products can use. In order to develop more
integrated control systems, standardization of these communication protocols was required. The
OSI model, developed by the International Standards Organization (ISO), is now considered a
communication framework standard. The OSI model reduces every design and communication
problem into a number of 7 layers.
The CAN (Controller Area Network) fieldbus defines only the layers 1 and 2
(ISO11898); in practice these are completely handled by the CAN hardware. However, a high
level protocol is necessary in order to define how the CAN message frame's 11-bit identifier and
8 data bytes are used. Building CAN based industrial automation systems guaranteeing
interoperability and interchangeability of devices of different manufacturers requires a
standardized application layer and 'profiles', standardizing the communication system, the device
functionality and the system administration.
One of the existing higher layer communication protocols for CAN-based networks is
CAL (CAN Application Layer). It was adopted by the independent CAN users and manufacturer
group CAN in Automation (CiA), developed further and published in a series of standards.
CAL provides all network management services and message protocols, but it does not define
the contents of the CMS objects or the kind of objects being communicated (it defines how, not
what).This is where CANopen enters the picture.
CANopen is built on top of CAL, using a subset of CAL services and communication
protocols; it provides an implementation of a distributed control system using the services and
protocols of CAL. It does this in such a way that nodes can range from simple to complex in
their functionality without compromising the interoperability between the nodes in the network.
These nodes of the network (maximum 127) are in the case of the PARTNER robot, the servo
motors that are interconnected with the dSPACE system via the CANopen fieldbus. Maximum
communication speed of the CAN network is 2Mbit/s, Wittenstein Ternary servomotors are
capable of maximum 1Mbit/s.
Message format
The format of the command messages of the Ternary motors are strictly specified and described
in the motor’s documentation. In the 8 command bytes offered by CANopen almost every bit has
a functional role.
23.
A fast and reliable communication standard is vital in a real-time control system. At 1Mbit/s
it takes approx. 0,1ms for a CAN frame to reach its destination. From here results, that the delay
of the command of the first motor and the last motor is approx. 1,2ms. In a truly real-time system
this time can be reduced to almost 0 by taking full benefit of the Ternary motor capabilities,
usage of the PIO and CAN interface in a parallel manner. In this case setting reference position
or velocity can be done via the CAN interface, but the start command can be given by a discreet
signal, an impulse applied on the corresponding pin of the PIO connector at the same time for all
motors.
Various types of messages can and must be sent to assure a correct behavior of the motors.
An important achievement of this work is the creation of the PARTNER control block in the
Simulink environment. This block assures effortless future development of control algorithms.
Communication and compatibility issues with the Ternary motors where solved. The usage of
this block is very simple. It has 6 position inputs and 6 velocity inputs, one for every motor.
Besides this mode selection is needed, positioning mode and velocity mode inputs are used for
this. The value of 1 must be supplied to one of the inputs to select the operation mode. Also a
homing input exists. This is a triggered input; it raises the motors to the park position and resets
the internal encoder. Also limiting the maximum acceleration for the motors is possible.
As output the block supplies the current speed and velocity of all six motors, to use in closed
loop algorithms.
Note that this block is a subsystem, and requires dSPACE CAN RTI library. For code listing
of the motor controller block please see the inclosed CD.
Since on this type of servo motor there is a possibility to limit the maximum acceleration of
the motor the step response of the motor is checked for different maximum accelerations.
The maximum acceleration was limited to a high value. In this case as it can also be seen in
fig. 18 at the end of the motion has a finite shock at the end, because of the high acceleration.
(The maximum acceleration also limits the maximum deceleration at the end of the motion.)
In figure 9 the step response of the motor is presented when the acceleration is limited to a
smaller value. It can be seen that the motion has no shocks, although it is has a smaller velocity.
In this case the travel length of 100 mm needs more time then the travel length of 200 mm in
the with the larger acceleration limit.
Fig. 8. Step responce with high maximum acceleration
Fig. 9. Step response with low maximum acceleration
24.
A graphical user interface was created for the inverse and direct kinematics problem (Fig.
10.). After starting the nodes and homing the robot (and the interface) is fully functional.
On the left-hand side there are 6 sliders, with 6 numeric inputs beneath them. With these
the Cartesian coordinates of the end effector can be controlled. The sliders and the numeric
inputs control the same parameters, to give a precise coordinate use the numeric input.
From the six sliders on the right hand side, the positions of the motors can be controlled.
Here the numeric inputs beneath them are used for displaying the motor strokes in real-time, they
are not used as input for direct kinematics.
The two numeric input at the top right corner is used to set the travel speed also the
maximum acceleration of all six motors.
For the motors to move, after a coordinate is given (either inverse or direct kinematics)
the Move button should be pressed in order to execute the motion. If a continuous motion is
desired the checkbox ‘continuous movement’ should be checked.
The radio buttons in the top side of the layout are used to select the functioning mode.
Here direct kinematics, inverse kinematics, or the two demonstrational programs milling and
drilling can be selected.
Fig. 10. Inverse- and direct kinematics GUI in ControlDesk software
25.
Y
Z
Y
Z
Y
Z
Y
Z
Y
Fig. 11. Translation of the mobile platform on the Oy axis
Path planning - positioning mode
Path planning in positioning mode is based on guiding the robot to describe a given curve
using the motors in positioning mode. An equation of a curve is given for all six carthesian
coordinates of the end effector. The curve is descretized and inverse kinematics equations are
applied for every descrete value. It has the advantage that inverse kinematics have an explicit
form, therefore it is not a computationally complex mode of trajectory planning. On the other
hand a major disadvantage is that positioning mode of the servomotors implicitly means zero
velocity upon arrival to the target point, this will result in a somewhat vibratory, discontinuous
motion. By adjusting the maximum travel speed and maximum acceleration the amplitude of the
‘vibration’ can be reduced. In figure 12 and 13 the change of position and velocity of one motor
is plotted against time, when the robots end effector moves alongside a circle. The discontinuous
movement can be seem more clearly on fig. 14 and 15, where the same two plots are presented in
greater detail.
Note that the velocity plot is in absolute values, negative speeds are also plotted as
positive.
26.
Fig. 12.Position vs. time. Path planning in positioning mode
Fig. 13. Velocity vs. time. Path planning in positioning mode
27.
Fig. 2. Detailed view of position vs. time in positioning mode path planning
Fig. 3. Detailed view of velocity vs. time in positioning mode path planning
28.
Path planning - velocity mode
Path planning in velocity mode eliminates that discontinuous motion present in posining
mode. The robots invers Jacobian matrix is used to determine the velocities in joint space from
the velocities in Catesian space. A curve is given as a function for all six Cartesian coordinates.
In this mode the velocities are the important variables, so it is important also to give the derivate
of the curves. Since it uses the Jacobian matrix of the robot, it is a computationally complex
algorithm, which requires significantly more computational power for running on a real-time
system. Another disadvantage is present in this case. Since the motors are used in velocity mode,
and the required trajectory is by definition position, the integrator present in the transfer function
will lead to the accumulation (as a positioning error) of velocity deviances. In figure 16 and 17
the change of position and velocity of one motor is plotted against the time when the robots end
effector moves alongside of a circle.
Fig. 4. Postion vs. time. Path planning in velocity mode
29.
Fig. 17. Velocity vs. time. Path planning in velocity mode
To demonstrate the validity of the presented algorithms a small DC motor was fixed on
the mobile platform wich is driving a milling bit. Two small applications where created. One of
them is a drilling application.
This application assumes that under the mobile platform, at a given height there is a
rectangular object with one side facing towards the mobile platform. Using a graphical user
interface 9 points XY coordinates can be input, where 9 holes with given depths will be drilled.
The other application is a milling application. The same user interface can be used to
input up to 15 points XY and Z coordinates. The milling head will go from point to point in a
straight line with given velocity.
Conclusions
The graphical user interface developed in ControlDesk can be used to demonstrate the
validity of the control algorithms, but they also can have an educational significance.
30.
The drilling application developed demonstrates the concept of a manufacturing cell based
on a reconfigurable, modular parallel structure.
31.
This work also is a good basis for further development, improving the performance of path
planning both in velocity and in positioning mode.
References
[1.] F. A. Adkins' and E. J. Haug, Operational Envelope of a Spatial Stewart Platform, J. Mech.
Des. -- June 1997 -- Volume 119, Issue 2, 330 (3 pages)
[2.] L. Baron, J.Angeles, The Direct Kinematics of Parallel Manipulators Under Joint-Sensor
Redundancy, IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 16, NO.
1, FEBRUARY 2000
[3.] L. Baron, J. Angeles, The Kinematic Decoupling of Parallel Manipulators Using Joint-
Sensor Data, IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 16, NO. 6,
DECEMBER 2000
[4.] I. A. Bonev, J. Ryu, S.-G. Kim, S.-K. Lee, A Closed-Form Solution to the Direct Kinematics
of Nearly General Parallel Manipulators with Optimally Located Three Linear Extra Sensors,
IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 17, NO. 2, APRIL
2001
[5.] R. Boudreau N. Turkkan Solving the Forward Kinematics of Parallel Manipulators with a
Genetic Algorithm, - Journal of robotic systems, 1996 vol. 13, no2, pp. 111-125
[6.] R. Boudreau, S. Darenfed, and C. M. Gosselin, On the Computation of the Direct
Kinematics of Parallel Manipulators Using Polynomial Networks, IEEE TRANSACTIONS ON
SYSTEMS, MAN, AND CYBERNETICS, PART A: SYSTEMS AND HUMANS, VOL. 28,
NO. 2, MARCH 1998
[7.] S. Briot and Ilian A. Bonev, ARE PARALLEL ROBOTS MORE ACCURATE THAN
SERIAL ROBOTS?,
32.
[8.] S. Briot, V. Arakelian, Optimal Force Generation in Parallel Manipulators for Passing
through the Singular Positions The International Journal of Robotics Research 2008; 27; 967
[9.] Calderone: Inverse Kinematics and Generation of Trajectories
[10.] M. Callegari,M. Palpacelli, S. Ricci, CONTROLLER DESIGN OF THE INNOVATIVE
I.Ca.Ro. PARALLEL ROBOT, Proceedings of 16th Int. Workshop on Robotics in Alpe-Adria-
Danube Region - RAAD 2007
[11.] F. Chapelle, P. Bidaud, A Closed Form for Inverse Kinematics Approximation of General
6R Manipulators using Genetic Programming, Proceedings of the 2001 IEEE International
Conference on Robotics & Automation, 2001
[12.] I-M. CHEN, G. YANG W. K. LIM S. H. YEO, Self-Calibration of Three-Legged Modular
Reconfigurable Parallel Robots Based on Measurement Residues, In Computational Kinematics,
pages 117-132, 20-22, 2001
[13.] E.-M. Dafaoui, Y. Amirat, J. Pontnau, C. Francois, Analysis and Design of a Six-DOF
Parallel Manipulator, Modeling, Singular, Configurations, and Workspace, IEEE
TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 14, NO. 1, FEBRUARY
1998
[14.] A. K. Dasht I-M. Chent S. H. Yeo G. Yang, Singularity-Free Path Planning of Parallel
Manipulators Using Clustering Algorithm and Line Geometry, Proceedings ofthe 2003 IEEE
lnternalional Canrerenco 00 Robotics & Automation Taipei, Taiwan, September 14-19. 2003
[15.] R. DiGregorio, V. Parenti-Castelli, Mobility Analysis of the 3-UPU Parallel Mechanism
Assembled for a Pure Translational Motion Proceedings of the 1999 EEWASME International
Conference on Advanced Intelligent Mechatronics, 1999
[16.] Dinesh K. Pai, Member, IEEE, and M. C. Leu, Member, Genericity and Singularities of
Robot Manipulators, IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 8,
NO. 5, OCTOBER 1992
33.
[17.] S. Dutre, H. Bruyninckx, J. De Schutter, The analytical Jacobian and its derivative for a
parallel manipulator, IEEE International Conference on Robotics and Automation, Albuquerque,
New Mexico, USA, pp. 2961–2966, 1997
[18.] I. EBERT-UPHOFF,Introducing Parallel Manipulators Through Laboratory Experiments,
IEEE Robotics & Automation Magazine, SEPTEMBER 2003
[19.] E. GARCIA, M. A. JIMENEZ, P. G. DE SANTOS, M. ARMADA, The Evolution of
Robotic Research, Robotics & Automation Magazine, IEEE, March 2007 Volume: 14, Issue: 1
p90-103
[20.] M. Glavonjic, D. Milutinovic, S. Zivanovic, Functional simulator of 3-axis parallel
kinematic milling machine, Int J Adv Manuf Technol, 2008
[21.] C. GOSSELIN. Stiffness Mapping for Parallel Manipulators, IEEE TRANSACTIONS ON
ROBOTICS .AND AUTOMATION. VOL 6. NO 3. JUNE 1990
[22.] M.-G. Her, C.-Y. Chen, Y.-C. Hung, M. Karkoub, Approximating a Robot Inverse
Kinematics Solution Using Fuzzy Logic Tuned by Genetic Algorithms, Int J Adv Manuf
Technol (2002) 20:375–380
[23.] Ming-Guo Her, Chang-Yi Chen, M. Karkoub, Yu-Chung Hung, A generalised approach
to point-to-point motion of multi-DOF parallel manipulators illustrated with TMPM, Int J Adv
Manuf Technol (2003) 22: 216–223
[24.] M. Honegger, NONLINEAR ADAPTIVE CONTROL OF A 6 DOF PARALLEL
MANIPULATOR,
[25.] T. Huang, J. Wang, C. M. Gosselin, D. Whitehouse, Determination of Closed Form
Solution to the 2-D-Orientation Workspace of Gough–Stewart Parallel Manipulators
[26.] HUANG T., ZHAO X., ZHOU L., ZHANG D. ZENG Z., D. J. Whitehouse,Stiffness
estimation of a parallel kinematic machine, SCIENCE IN CHINA, October 2001, VOI. 44 NO. 5
34.
[27.] C.-I. Huang,L.-C. Fu, Adaptive Backstepping Tracking Control of the Stewart Platform,
43rd IEEE Conference on Decision and Control, 2004
[28.] M. L. Husty An Algorithm for Solving the Direct Kinematics Of Stewart-Gough-Type
Platforms, Mechanism and Machine Theory, 1996, p.1994
[29.] D. Jakobovic, L. Jelenkovic, THE FORWARD AND INVERSE KINEMATICS
PROBLEMS FOR STEWART PARALLEL MECHANISMS,
[30.] P. Ji, H. Wu, An Efficient Approach to the Forward Kinematics of a Planar Parallel
Manipulator With Similar Platforms, IEEE TRANSACTIONS ON ROBOTICS AND
AUTOMATION, VOL. 18, NO. 4, AUGUST 2002
[31.] S. A. Joshi; L.-W. Tsai; Jacobian Analysis of Limited-DOF Parallel Manipulators; Journal
of mechanical design; 2002, vol. 124, no2, pp. 254-258
[32.] Kecskemethy, A., MOBILE -User’s Guide and Reference Manual” Gerhard-Mervator-
Universität, GH Duisburg. 1994.
[33.] H. S. Kim, Y. J. Choi, Forward/Inverse Force Transmission Capability Analyses of Fully
Parallel Manipulators, IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL.
17, NO. 4, AUGUST 2001
[34. ] S. G. Kumar, Bikshapathi M, Nagarajan T, Srinivasa Y. G, STIFFNESS ANALYSIS AND
KINEMATIC MODELING OF STEWART PLATFORM FOR MACHINING
APPLICATIONS,
[35.] S. Lahouar, Saïd Zeghloul1 and Lotfi Romdhane2 Singularity Free Path Planning for
Parallel Robots Based on Passive-Joint Velocities , Advances in Robot Kinematics: Analysis and
Design , 2008, 235-242
[36.] C. Lăpuşan, V. Mătieş, R. Bălan, O. Hancu, S. Stan, R. Lateş, Rapid Control prototyping
using Matlab and dSpace. Application for a Planar Parallel Robot, Automation, Quality and
35.
Testing, Robotics, 2008. AQTR 2008. IEEE International Conference, Volume 2, 22-25 May
2008 Page(s):361 - 364
[37. ] S.M. LaValle, Rapidly Exploring Random Trees: A New Tool for Path Planning,
[38.] S M. LaValle, From Dynamic Programming to RRTs: Algorithmic Design of Feasible
Trajectories, Control Problems in Robotics ,Springer-Verlag, 2002
[39.]LI Luyang, WU Hongtao, ZHU Jianying, ARCHITECTURE SINGULARITY ANALYSIS
FOR A CLASS OF PARALLEL MANIPULATORS, International Technology and Innovation
Conference 2006 (ITIC 2006)
[40.] Richard P. Lippmann, An Introduction to Computing with Neural Nets, ASSP Magazine,
IEEE, Publication Date: Apr 1987 Volume: 4, Issue: 2, Part 1 On page(s): 4- 22
[41.] X.-J. Liu, J. Wang, F. Gao, L.-P. Wang, On the Analysis of a New Spatial Three-Degrees-
of-Freedom Parallel Manipulator, IEEE TRANSACTIONS ON ROBOTICS AND
AUTOMATION, VOL. 17, NO. 6, DECEMBER 2001
[42.] G. Liu, Y. Lou, Z. Li, Singularities of Parallel Manipulators: A Geometric Treatment, IEEE
TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 19, NO. 4, AUGUST 2003
[43.] X.-J. Liu, J. Kim, A New Spatial Three-DoF Parallel Manipulator With High Rotational
Capability, IEEE/ASME TRANSACTIONS ON MECHATRONICS, VOL. 10, NO. 5,
OCTOBER 2005
[44.] Y. Lou, G. Liu, Z. Li, Randomized Optimal Design of Parallel Manipulators, IEEE
TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 5, NO. 2,
APRIL 2008
[45.] T. Lozano-Perez, Spatial Planning: A Configuration Space, IEEE TRANSACTIONS ON
COMPUTERS, VOL. c-32, NO. 2, FEBRUARY 1983
[46.] V. LUKANIN, INVERSE KINEMATICS, FORWARD KINEMATICS AND WORKING
SPACE DETERMINATION OF 3DOF PARALLEL MANIPULATOR WITH S-P-R JOINT
36.
STRUCTURE, PERIODICA POLYTECHNICA SER. MECH. ENG. VOL. 49, NO. 1, PP. 39–
61 (2005)
[47.] R. V. MAYORGA, P. SANONGBOON, An Artificial Neural Network Approach for
Inverse Kinematics Computation and Singularities Prevention of Redundant Manipulators,
Journal of Intelligent and Robotic Systems (2005) 44: 1–23
[48.] K. Meah, S. Hietpas, S. Ula, Rapid Control Prototyping of a Permanent Magnet DC Motor
Drive System using dSPACE and Mathworks Simulink, Applied Power Electronics Conference,
APEC 2007 - Twenty Second Annual IEEE Feb. 25 2007-March 1 2007 Page(s):856 – 861
[49.] J.-P. Merlet, A Generic Trajectory Verifier for the Motion Planning of Parallel Robots, J
Mech Des, 2001, Vol 123, Issue 1, p510
[50.] J.-P. Merlet, Solving the Forward Kinematics of a Gough-Type Parallel Manipulator with
Interval Analysis, The International Journal of Robotics Research, 2004 Vol. 23, No. 3, 221-235
(2004)
[51.] J.-P. Merlet, P. Donelan, ON THE REGULARITY OF THE INVERSE JACOBIAN OF
PARALLEL ROBOTS, Advances in Robot Kinematics Mechanisms and Motion Springer
Netherlands, 2006, p41-48
[52.] J.-P. Merlet, C. Gosselin, Paralle mechanisms and motion, Springer Handbook of
Robotics, Springer Berlin Heidelberg, 2008, 269-285
[53.] J.-P MERLET, Determination of the Parallel Manipulators Orientation Workspace of
Parallel Manipulators, Journal of Intelligent and Robotic Systems 13: 143-160, 1995
[54.] S. Muruganandam, S. Pugazhenthi, Stiffness-based workspace atlas of hexapod machine
tool for optimal work piece Location, Int J Adv Manuf Technol
[55.] V. Nabat, S. Krut, O. Company, P. Poignet, F. Pierrot, On the Design of a Fast Parallel
Robot based on its Dynamic Model, The 10th International Symposium on Experimental
Robotics, Volume 39/2008 , 409-419
37.
[56.] C. C. Nguyen, Zhen-Lei Zhout Sami S. Antrazit, C. E. Campbell, EFFICIENT
COMPUTATION OF FORWARD KINEMATICS AND JACOBIAN MATRIX OF A
STEWART PLATFORM-BASED MANIPULATOR, Southeastcon '91., IEEE Proceedings of 7-
10 April 1991 Page(s):869 - 874 vol.2
[57.] T. Ogawa, H. Matsuura, H. Kanada, A Solution of Inverse Kinematics of Robot Arm Using
Network Inversion, Computational Intelligence for Modelling, Control and Automation, 2005
[58.] K. Oh, J. P. Hwang, E. Kim, and H. Lee, Path Planning of a Robot Manipulator using
Retrieval RRT Strategy, PROCEEDINGS OF WORLD ACADEMY OF SCIENCE,
ENGINEERING AND TECHNOLOGY VOLUME 21 JANUARY 2007 ISSN 1307-6884
[59.] P. J. Parikh & S. S. Lam, Solving the forward kinematics problem in parallel manipulators
using an iterative artificial neural network strategy, Int J Adv Manuf Technol, Volume 40,
Numbers 5-6 / Januar 2009 595-606
[60.] P. J. Parikh, S. S. Lam,A Hybrid Strategy to Solve the Forward Kinematics Problem in
Parallel Manipulators, IEEE TRANSACTIONS ON ROBOTICS, VOL. 21, NO. 1, FEBRUARY
2005
[61.] Z. Qi, J. E. McInroy, Improved Image Based Visual Servoing with Parallel Robot, J Intell
Robot Syst (2008)
[62.] N. Ranganathan, B. Parthasarathy, K. Hughes , A Parallel Algorithm and Architecture for
Robot Path Planning, Parallel Processing Symposium, 1994. Proceedings., Eighth International,
1994
[63.] L. Ren, J. K. Mills,D. Sun,Trajectory Tracking Control for a 3-DOF Planar Parallel
Manipulator Using the Convex Synchronized Control Method, IEEE TRANSACTIONS ON
CONTROL SYSTEMS TECHNOLOGY, VOL. 16, NO. 4, JULY 2008
[64.] Zhang Shangying, Han Junwei and Zhao Hui, RCP and RT Control of 6-DOF Parallel
Robot
38.
[65.] S. K. Singh, Motion Planning and Control of Non-Redundant Manipulators at Singularities;
Robotics and Automation, 1993. Proceedings., 1993 IEEE International Conference on,
Publication Date: 2-6 May 1993 On page(s): 487-492 vol.2
[66.] H. Su, P. Dietmaier, J. M. McCarthy, Trajectory Planning for Constrained Parallel
Manipulators, Journal of mechanical design 2003, vol. 125, no4, pp. 709-716
[67.] S. Tamura , N. Islam , H. Miyashita , T. Yanase , T. Ito A New Path Planning Algorithm
for Manipulators, Systems, Man and Cybernetics, 2005 IEEE International Conference on, 2005
[68.] L. TIAN and C. COLLINS, Motion Planning for Redundant Manipulators Using a Floating
Point Genetic Algorithm, Journal of Intelligent and Robotic Systems 38: 297–312, 2003
[69.] Y. Wang, An Incremental Method for Forward Kinematics of Parallel Manipulators,
Robotics, Automation and Mechatronics, 2006 IEEE Conference on, 2006
[70.] H. Wang, C. Xue, W. A. Gruver, Neural Network Control of a Parallel Robot, Neural
network control of a parallel robot, Systems, Man and Cybernetics, 1995. Intelligent Systems for
the 21st Century., IEEE International Conference on Volume 3,Page(s):2934 - 2938 vol.3 , 1995
[71.] M. V. Weghe, D. Ferguson, S. S. Srinivasa, Randomized Path Planning for Redundant
Manipulators without Inverse Kinematics, IEEE-RAS International Conference on Humanoid
Robots, November, 2007
[72.] J., h., Yakey, S. M. LaValle, L. E. Kavraki, Randomized Path Planning for linkages with
closed kinematic chains, Robotics and Automation, IEEE Transactions on, 2001 Volume: 17,
Issue: 6 page(s): 951-958
[73.] S. X. YANG, M. MENG, Real-time Collision-free Path Planning of Robot Manipulators
using Neural Network Approaches, Autonomous Robots 9, 27–39, 2000
[74.] G. Yang, I-Ming Chen, Wei Lin, J. Angeles, IEEE, Singularity Analysis of Three-Legged
Parallel Robots, IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 17,
NO. 4, AUGUST 2001
39.
[75.]. http://www.parallemic.org/Terminology/Kinematics.html
[76. http://en.wikipedia.org/wiki/Unimate
[77.] http://www.mathworks.com/products/matlab/
[78..] http://en.wikipedia.org/wiki/Code_reuse
[79.] http://en.wikipedia.org/wiki/Software_reuseability
[80.] http://en.wikipedia.org/wiki/Verification_and_Validation_(software)
[81.] http://en.wikipedia.org/wiki/Newton's_method
[82.] http://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant