Analysing

Summary
Analysing
Functions
ConstraintEquationsComputes the implicit equations induced by the constraints.
Type1SingularityEquations / SerialSingularitiesComputes the implicit equations satisfied by the singularities.
Type2SingularityEquations / ParallelSingularitiesComputes the implicit equations satisfied by the singularities.
InfiniteEquationsComputes the equations where the manipulator has infinitely many solutions.
ParallelCuspidalComputes the implicit equations satisfied by the cuspidal points
SerialCuspidalComputes the implicit equations satisfied by the cuspidal points
ProjectionProject on variables or expressions in a polynomial system.
CellDecompositionPlusDescribes the parameter space according to the number of real roots.
NumberOfSolutionsPlusReturns the number of real solutions of all cells obtained by CellDecompositionPlus.
DVNumberOfSolutionsPlusReturns the number of real solutions on the intersection points of the Discriminant Variety.
auxDVNumberOfSolutionsPlusAuxiliary function Returns the number of real solutions on the intersection points of the Discriminant Variety.
IsIntervalEmptyChecks that a polynomial has no real roots in an open interval.
CellGraphComputes the connexity graph of the cells of a CAD.
PseudoSingularitiesDecompositionComputes the decomposition with pseudo-singularities of a manipulator.
DirectInverseKinematicsReturns the cells having the same antecedent.
CellArea2DCompute the area of the cells returned CellDecomposition or CellDecompositionPlus
CellLocationPlusComputes the cells of a decomposition containing the given points.

Functions

ConstraintEquations

ConstraintEquations := proc (robot ::Manipulator,  
{   
constraints ::truefalse := false
}   
   )

Computes the implicit equations induced by the constraints.

Parameters

robota data structure returned by a function mechanisms.

Returns

A list of list of polynomials: each list represents a component of the equations satisfied by the constraints.

Type1SingularityEquations / SerialSingularities

Computes the implicit equations satisfied by the singularities.

Parameters

robota data structure returned by a function mechanisms.
noinf=b (optional)b is a boolean; if true, the output will not contain pose values reached by infinitely many articular values; default value: false.

Returns

A list of polynomials: the equations satisfied by the singular poses of the 1st kind.

Type2SingularityEquations / ParallelSingularities

Computes the implicit equations satisfied by the singularities.

Parameters

robota data structure returned by a function mechanisms.
noinf=b (optional)b is a boolean; if true, the output will not contain articular values leading to infinitely many pose values; default value: false.

Returns

A list of polynomials: the equations satisfied by the singular poses of the 2nd kind.

InfiniteEquations

InfiniteEquations := proc (robot ::Manipulator,  
vars ::list(name) := [op(robot:-ArticularVariables), op(robot:-GeometricParameters)])

Computes the equations where the manipulator has infinitely many solutions.

Parameters

robota data structure returned by a function mechanisms.
varsa list of names: the space above which the number of solutions is analyzed; default value: the articular and geometric variables.

Returns

A list of polynomials: the equations satisfied by the variables above which the manipulator has infinitely many solutions.

ParallelCuspidal

ParallelCuspidal := proc (robot ::Manipulator,  
{   
[fast,notest] ::truefalse := false,
direct ::truefalse := false,
parameters ::list(name) := []
}   
   )

Computes the implicit equations satisfied by the cuspidal points

Parameters

robota data structure returned by a function mechanisms.
notest=b (optional)b is a boolean; if true, the output will contain all points of multiplicity 3 and higher.
parameters=l (optional)l is a list of name; the variables considered to describe the curve; default value:[].
direct=b (optional)b is a boolean; if true, the function tries to remove the quadratic roots even if none exists; default value: false.
alternative = b (optional)b is a boolean; if true a different algorithm is used for the saturation default value: false
verbose (optional)”verb”=true or “verb”=false: verbose support default value: “verb”=false

Returns

A list of polynomials: the equations satisfied by the cuspidal poses.

SerialCuspidal

SerialCuspidal := proc (robot ::Manipulator,  
{   
[fast,notest] ::truefalse := false,
direct ::truefalse := false,
parameters ::list(name) := []
}   
   )

Computes the implicit equations satisfied by the cuspidal points

Parameters

robota data structure returned by a function mechanisms.
notest=b (optional)b is a boolean; if true, the output will contain all points of multiplicity 3 and higher.
parameters=l (optional)l is a list of name; the variables considered to describe the curve; default value:[].
direct=b (optional)b is a boolean; if true, the function tries to remove the quadratic roots even if none exists; default value: false.
verbose (optional)”verb”=true or “verb”=false: verbose support default value: “verb”=false

Returns

A list of polynomials: the equations satisfied by the cuspidal poses.

Projection

Project on variables or expressions in a polynomial system.

Parameters

syslist of polynomials with rational coefficients and trigonometric functions: the system
vars1list of names or equation of the shape name=algebraic: variables to project on.
vars2 (optional)list of names: variables to eliminate
char (optional)integer: characteristic of the base field default value: 0
output=fmt (optional)fmt is the keyword list or listlist; if list, the output is a list of polynomials, otherwise, it is a list of list of polynomials.
verbose (optional)”verb”=true or “verb”=false: verbose support default value: “verb”=false

Returns

With output=list, a list of polynomials: the generators of the elimination ideal.  With output=listlist, a list of components of the elimination ideal (multiplicities may have been lost); each component is represented by a list of polynomials.

Example

> Projection ( [x+y^2,y-x], [z=x+y] );
< [z^2+2*z]

CellDecompositionPlus

CellDecompositionPlus := proc (equ ::list(algebraic),  
ineq ::list(algebraic),  
vars ::list(name),  
pars ::list(name) := [ op(indets([equ,ineq],name) minus {op(vars)}) ],
{   
nofactor ::truefalse := false,
gbfactor ::truefalse := false,
norealrootstest ::truefalse := false
}   
   )

Describes the parameter space according to the number of real roots.

Parameters

equa list of polynomials and trigonometric expressions: the equations.
ineqa list of polynomials and trigonometric expressions: the inequalities where each expression p stands for p>0.
varsa list of names: the variables of the system
pars (optional)a list of names: the parameters of the system; default value: the remaining variables of equ and ineq

Returns

A maple object: the same as the one returned by the maple function RootFinding[Parametric][CellDecomposition].  The main difference is that it handles trigonometric expressions.

NumberOfSolutionsPlus

NumberOfSolutionsPlus := proc (celldec)

Returns the number of real solutions of all cells obtained by CellDecompositionPlus.

Parameters

celldecoutput by CellDecompositionPlus

Returns

A list whose elements are of the form [CellId, NumSolsInCell, NumSolsLowBorder, NumSolsUpBorder]

DVNumberOfSolutionsPlus

DVNumberOfSolutionsPlus := proc (celldec)

Returns the number of real solutions on the intersection points of the Discriminant Variety.

Parameters

celldecoutput by CellDecompositionPlus

Returns

A list of lists.  Each element is of the form [point, numsols]

auxDVNumberOfSolutionsPlus

auxDVNumberOfSolutionsPlus := proc (polysys,
dv,
ineq,
var,
diffvar)

Auxiliary function Returns the number of real solutions on the intersection points of the Discriminant Variety.

Parameters

polysyslist of polynomials
dvlist of lists (of polynomials)
ineqlist of unknowns (to be assumed positive)
varunknown w.r.t. which dv depend but not used to differentiate (corresponds to the one plotted on the x-axis)
diffvarunknown w.r.t. which we differentiate (normally it corresponds to the one plotted on the y-axis)

Returns

A list of lists.  Each element is of the form [point, numsols]

IsIntervalEmpty

IsIntervalEmpty := proc (p ::polynom,  
lb ::constant,  
ub ::constant,  
precision ::integer := 4)

Checks that a polynomial has no real roots in an open interval.

Parameters

pa univariate polynomial
lba numerical value: the lower bound of an interval
uba numerical value: the upper bound of an interval

Returns

True means the polynomial has no root in the given open interval.  False is returned when the polynomial may have root in the open interval.

CellGraph

CellGraph := proc (cells ::record)

Computes the connexity graph of the cells of a CAD.

Parameters

cellsan object returned by CellDecomposition or CellDecompositionPlus.

Returns

A graph representing the connections between the cells.

PseudoSingularitiesDecomposition

Computes the decomposition with pseudo-singularities of a manipulator.

Parameters

robota data structure returned by a function mechanisms.

Returns

A maple object: the same as the one returned by the function CellDecompositionPlus, augmented with the PseudoSingularities.

DirectInverseKinematics

DirectInverseKinematics := proc (
   cells ::record := PseudoSingularityDecomposition(robot),
   i ::{list(integer),integer} := [ $ 1 .. nops(cells:-SamplePoints) ]
)

Returns the cells having the same antecedent.

Parameters

cellsan object returned by PseudoSingularitiesDecomposition
i (optional)an integer or a list of integer: the indices of the cells to plot in cells. default value: all the cells

Returns

A list of components: each components is a list of cells containing a cell c given in input and all the cells having the same antecedents as c.

CellArea2D

CellArea2D := proc (
   cells ::record,  
   i ::{list(list(integer)),list(integer),integer} := [ $ 1 .. nops(cells:-SamplePoints) ],
   ranges ::seq(name=range) := NULL,
   {   
   precision ::integer := 3,
   border ::constant := 10^(-2*Digits)
   }   
      
)

Compute the area of the cells returned CellDecomposition or CellDecompositionPlus

Parameters

cellsan object returned by CellDecomposition or CellDecompositionPlus
i (optional)an integer, a list of integer or a list of list of integer: the indices of the cells to plot in cells. default value: all the cells
ranges (optional)a sequence of the form v=n1..n2 where v is a variable and n1,n2 are numerical values; when not specified for a variable, the default range is -5..5.
precision = p (optional)p is an integer used for the numeric precision default value: 3.
border = e (optional)e is a numeric value: defines the precision on the border; default value: 0.0000001.

Returns

The area of the cells indiced by i in cells.

Example

> cells := CellDecompositionPlus ([T],[25-(x^2+y^2),x+y],[T],[x,y]):
> CellArea2D (cells,[11,15],color=blue);

CellLocationPlus

CellLocationPlus := proc (cells ::record,
L ::{list(name=realcons), list(list(name=realcons))})

Computes the cells of a decomposition containing the given points.

Parameters

cellsan object returned by CellDecomposition or CellDecompositionPlus
La point, or a list of point: each point is given by a list of equalities of the shape ‘name’=’number’.

Returns

The cells of cells containing the points of L.

Example

> cells := CellDecompositionPlus ([T],[cos(x)-y,sin(x)-1/2],[T],[x,y]):
> CellLocationPlus (cells,[[x=1,y=2],[x=0.5,y=3]]);
                                    [4, 2]
ConstraintEquations := proc (robot ::Manipulator,  
{   
constraints ::truefalse := false
}   
   )
Computes the implicit equations induced by the constraints.
InfiniteEquations := proc (robot ::Manipulator,  
vars ::list(name) := [op(robot:-ArticularVariables), op(robot:-GeometricParameters)])
Computes the equations where the manipulator has infinitely many solutions.
ParallelCuspidal := proc (robot ::Manipulator,  
{   
[fast,notest] ::truefalse := false,
direct ::truefalse := false,
parameters ::list(name) := []
}   
   )
Computes the implicit equations satisfied by the cuspidal points
SerialCuspidal := proc (robot ::Manipulator,  
{   
[fast,notest] ::truefalse := false,
direct ::truefalse := false,
parameters ::list(name) := []
}   
   )
Computes the implicit equations satisfied by the cuspidal points
CellDecompositionPlus := proc (equ ::list(algebraic),  
ineq ::list(algebraic),  
vars ::list(name),  
pars ::list(name) := [ op(indets([equ,ineq],name) minus {op(vars)}) ],
{   
nofactor ::truefalse := false,
gbfactor ::truefalse := false,
norealrootstest ::truefalse := false
}   
   )
Describes the parameter space according to the number of real roots.
NumberOfSolutionsPlus := proc (celldec)
Returns the number of real solutions of all cells obtained by CellDecompositionPlus.
DVNumberOfSolutionsPlus := proc (celldec)
Returns the number of real solutions on the intersection points of the Discriminant Variety.
auxDVNumberOfSolutionsPlus := proc (polysys,
dv,
ineq,
var,
diffvar)
Auxiliary function Returns the number of real solutions on the intersection points of the Discriminant Variety.
IsIntervalEmpty := proc (p ::polynom,  
lb ::constant,  
ub ::constant,  
precision ::integer := 4)
Checks that a polynomial has no real roots in an open interval.
CellGraph := proc (cells ::record)
Computes the connexity graph of the cells of a CAD.
DirectInverseKinematics := proc (
   cells ::record := PseudoSingularityDecomposition(robot),
   i ::{list(integer),integer} := [ $ 1 .. nops(cells:-SamplePoints) ]
)
Returns the cells having the same antecedent.
CellArea2D := proc (
   cells ::record,  
   i ::{list(list(integer)),list(integer),integer} := [ $ 1 .. nops(cells:-SamplePoints) ],
   ranges ::seq(name=range) := NULL,
   {   
   precision ::integer := 3,
   border ::constant := 10^(-2*Digits)
   }   
      
)
Compute the area of the cells returned CellDecomposition or CellDecompositionPlus
CellLocationPlus := proc (cells ::record,
L ::{list(name=realcons), list(list(name=realcons))})
Computes the cells of a decomposition containing the given points.
Close