I = 1,2,…,n-1 – ElmoMC Multi-Axis Motion Controller-Maestro Motion Control User Manual

Page 7

Advertising
background image

Other popular types of splines like Bezier curves, B- splines or NURBS are usually not

interpolation but smoothing splines. The spline curve does not move through the given points but
near them.

So cubic splines are piecewise polynomial (built of cubic polynomials for each segment [i,i+1]) and
produce a curve with continuous first and second derivatives at the internal control points

P

1

,

P

2

,

…,

P

n-1

that, in case of motion control, means continuity of the velocity and acceleration. Denote a

cubic spline polynomial for the segment [i,i+1] as

S

i

(t)

than

S

i

(t

i

) = S

i+1

(t

i

), S

i

′(t

i

) = S

i+1

′(t

i

)

and

S

i

′′(t

i

) = S′′

i+1

(t

i

), i = 1,2,…,n-1.

The spline trajectory is executed in the maximum velocity mode vum = 1. Input parameters that
define kinematics of the trajectory are maximum velocity – parameter vsp, vector acceleration –
parameter vac and vector deceleration – parameter vdc.

The Motion Library user can define points for the spline interpolation applying the following
function calls:

vector_name.splines(trj_name) - starts a sequence of points to be interpolated. The PVT table is
saved in a file named trj_name. The function parameter trj_name can be missed. In this case, the
trajectory is saved in a temporary file named vector_name.trj (where vector_name – name
defined in a resource file).


To interpolate two-dimensional points, use a function call

vector_name.splinep(int PosX, int PosY) ) – adds interpolation point with coordinates (PosX,
PosY).

In three-dimensional space

vector_name.splinep(int PosX, int PosY, int PosZ) ) – adds 3D interpolation point with
coordinates (PosX, PosY, PosZ).


vector_name.splinee(parameter) - ends the spline trajectory sequence.

If

parameter = 0 the standard PVT table that in each line contains PVT points for the

X

and

Y

axes (for 2D spline) or PVT points for X, Y and Z axes (for 3D spline) is built.

If parameter ≠ 0 three tables for the axis X, axis Y and for the gear are built. The table for the
gear contains PVT points with the position equal to the distance along the spline from the
initial spline position, vector velocity V = [V

x2

+ V

y2

]

1/2

for this position and a standard time

step (in 3D case four tables for X,Y, Z and gear are built).

Inside the spline operator parenthesis splines(trj_name) and
vector_name.splinee(parameter) can be added operators for the position calculation (for
instance ellipse points X = X

c

+ acos(t), Y = Y

c

+ bsin(t)).

The Motion Library generates a trajectory by the cubic spline interpolation

Important note: Current position is not automatically added to the sequence of spline points.
Homing must be done to the first spline point.

Maestro Motion Library Tutorial

MAN-INTUG (Ver. 1.7)

4

Advertising