Analysing | |
Functions | |
ConstraintEquations | Computes the implicit equations induced by the constraints. |
Type1SingularityEquations / SerialSingularities | Computes the implicit equations satisfied by the singularities. |
Type2SingularityEquations / ParallelSingularities | Computes the implicit equations satisfied by the singularities. |
InfiniteEquations | Computes the equations where the manipulator has infinitely many solutions. |
ParallelCuspidal | Computes the implicit equations satisfied by the cuspidal points |
SerialCuspidal | Computes the implicit equations satisfied by the cuspidal points |
Projection | Project on variables or expressions in a polynomial system. |
CellDecompositionPlus | Describes the parameter space according to the number of real roots. |
NumberOfSolutionsPlus | Returns the number of real solutions of all cells obtained by CellDecompositionPlus. |
DVNumberOfSolutionsPlus | Returns the number of real solutions on the intersection points of the Discriminant Variety. |
auxDVNumberOfSolutionsPlus | Auxiliary function Returns the number of real solutions on the intersection points of the Discriminant Variety. |
IsIntervalEmpty | Checks that a polynomial has no real roots in an open interval. |
CellGraph | Computes the connexity graph of the cells of a CAD. |
PseudoSingularitiesDecomposition | Computes the decomposition with pseudo-singularities of a manipulator. |
DirectInverseKinematics | Returns the cells having the same antecedent. |
CellArea2D | Compute the area of the cells returned CellDecomposition or CellDecompositionPlus |
CellLocationPlus | Computes the cells of a decomposition containing the given points. |
ConstraintEquations := proc ( robot ::Manipulator, { constraints ::truefalse := false } )
Computes the implicit equations induced by the constraints.
robot | a data structure returned by a function mechanisms. |
A list of list of polynomials: each list represents a component of the equations satisfied by the constraints.
Computes the implicit equations satisfied by the singularities.
robot | a 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. |
A list of polynomials: the equations satisfied by the singular poses of the 1st kind.
Computes the implicit equations satisfied by the singularities.
robot | a 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. |
A list of polynomials: the equations satisfied by the singular poses of the 2nd kind.
InfiniteEquations := proc ( robot ::Manipulator, vars ::list(name) := [op(robot:-ArticularVariables), op(robot:-GeometricParameters)] )
Computes the equations where the manipulator has infinitely many solutions.
robot | a data structure returned by a function mechanisms. |
vars | a list of names: the space above which the number of solutions is analyzed; default value: the articular and geometric variables. |
A list of polynomials: the equations satisfied by the variables above which 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
robot | a 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 |
A list of polynomials: the equations satisfied by the cuspidal poses.
SerialCuspidal := proc ( robot ::Manipulator, { [fast,notest] ::truefalse := false, direct ::truefalse := false, parameters ::list(name) := [] } )
Computes the implicit equations satisfied by the cuspidal points
robot | a 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 |
A list of polynomials: the equations satisfied by the cuspidal poses.
Project on variables or expressions in a polynomial system.
sys | list of polynomials with rational coefficients and trigonometric functions: the system |
vars1 | list 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 |
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.
> Projection ( [x+y^2,y-x], [z=x+y] ); < [z^2+2*z]
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.
equ | a list of polynomials and trigonometric expressions: the equations. |
ineq | a list of polynomials and trigonometric expressions: the inequalities where each expression p stands for p>0. |
vars | a 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 |
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.
auxDVNumberOfSolutionsPlus := proc ( polysys, dv, ineq, var, diffvar )
Auxiliary function Returns the number of real solutions on the intersection points of the Discriminant Variety.
polysys | list of polynomials |
dv | list of lists (of polynomials) |
ineq | list of unknowns (to be assumed positive) |
var | unknown w.r.t. which dv depend but not used to differentiate (corresponds to the one plotted on the x-axis) |
diffvar | unknown w.r.t. which we differentiate (normally it corresponds to the one plotted on the y-axis) |
A list of lists. Each element is of the form [point, numsols]
IsIntervalEmpty := proc ( p ::polynom, lb ::constant, ub ::constant, precision ::integer := 4 )
Checks that a polynomial has no real roots in an open interval.
p | a univariate polynomial |
lb | a numerical value: the lower bound of an interval |
ub | a numerical value: the upper bound of an interval |
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.
DirectInverseKinematics := proc ( cells ::record := PseudoSingularityDecomposition(robot), i ::{list(integer),integer} := [ $ 1 .. nops(cells:-SamplePoints) ] )
Returns the cells having the same antecedent.
cells | an 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 |
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 := 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
cells | an 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. |
The area of the cells indiced by i in cells.
> cells := CellDecompositionPlus ([T],[25-(x^2+y^2),x+y],[T],[x,y]): > CellArea2D (cells,[11,15],color=blue);
CellLocationPlus := proc ( cells ::record, L ::{list(name=realcons), list(list(name=realcons))} )
Computes the cells of a decomposition containing the given points.
cells | an object returned by CellDecomposition or CellDecompositionPlus |
L | a point, or a list of point: each point is given by a list of equalities of the shape ‘name’=’number’. |
The cells of cells containing the points of L.
> 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]
Computes the implicit equations induced by the constraints.
ConstraintEquations := proc ( robot ::Manipulator, { constraints ::truefalse := false } )
Computes the equations where the manipulator has infinitely many solutions.
InfiniteEquations := proc ( robot ::Manipulator, vars ::list(name) := [op(robot:-ArticularVariables), op(robot:-GeometricParameters)] )
Computes the implicit equations satisfied by the cuspidal points
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) := [] } )
Describes the parameter space according to the number of real roots.
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 } )
Returns the number of real solutions of all cells obtained by CellDecompositionPlus.
NumberOfSolutionsPlus := proc ( celldec )
Returns the number of real solutions on the intersection points of the Discriminant Variety.
DVNumberOfSolutionsPlus := proc ( celldec )
Auxiliary function Returns the number of real solutions on the intersection points of the Discriminant Variety.
auxDVNumberOfSolutionsPlus := proc ( polysys, dv, ineq, var, diffvar )
Checks that a polynomial has no real roots in an open interval.
IsIntervalEmpty := proc ( p ::polynom, lb ::constant, ub ::constant, precision ::integer := 4 )
Computes the connexity graph of the cells of a CAD.
CellGraph := proc ( cells ::record )
Returns the cells having the same antecedent.
DirectInverseKinematics := proc ( cells ::record := PseudoSingularityDecomposition(robot), i ::{list(integer),integer} := [ $ 1 .. nops(cells:-SamplePoints) ] )
Compute the area of the cells returned CellDecomposition or CellDecompositionPlus
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) } )
Computes the cells of a decomposition containing the given points.
CellLocationPlus := proc ( cells ::record, L ::{list(name=realcons), list(list(name=realcons))} )