|
SiMoLib.NET API V4.0.0.1
|
Interface to a single 1D spline function. More...
Public Member Functions | |
| int | Calculate () |
| Calculate a 1D spline, for the settings of vStart, vEnd, aStart, aEnd, jStart and jEnd see the corresponding raw functions. The return values are OK = 0, OPTI_ERROR_NOT_LICENSED = -1, OPTI_ERROR_SPLINE_TYPE = -2, OPTI_ERROR_SPLINE_CONDITIONS = -3, OPTI_ERROR_SPLINE_SINGULAR_MATRIX1 = -4, OPTI_ERROR_SPLINE_SINGULAR_MATRIX2 = -5. | |
| int | CalculateLinearRaw (int n, ref double[] x, ref double[] y, ref double[] v) |
| Calculate a 1D linear spline from raw data, because v is not continuous the evaluated v[i] is the first derivative of the polynomial at the right side of x[i]. | |
| int | CalculateCubicSimple (int n, ref double[] x, ref double[] y, ref double[] v, ref double[] a, double vStart, double vEnd) |
| Calculate a 1D cubic spline from raw data, if vStart and/or vEnd are equal to 1.0e30 or larger, the routine is signaled to set the corresponding boundary condition for a natural spline, with zero second derivative on that boundary. | |
| int | CalculateCubicRaw (int n, ref double[] x, ref double[] y, ref double[] v, ref double[] a, double vStart, double vEnd, double aStart, double aEnd) |
| Calculate a 1D cubic spline from raw data, either vStart or aStart has to be equal to 1.0e30 or larger and either vEnd or aEnd has to be equal to 1.0e30 or larger, at a time the other start/end boundary condition is valid then. | |
| int | CalculateQuarticRaw (int n, ref double[] x, ref double[] y, ref double[] v, ref double[] a, ref double[] j, double vStart, double vEnd, double aStart, double aEnd) |
| Calculate a 1D quartic spline from raw data, exactly one of the four parameters vStart, vEnd, aStart and aEnd has to be set to 1.0e30 or larger, i.e. the corresponding boundary condition is not set and the other three boundary conditions are valid. | |
| int | CalculateQuinticRaw (int n, ref double[] x, ref double[] y, ref double[] v, ref double[] a, ref double[] j, double vStart, double vEnd, double aStart, double aEnd) |
| Calculate a 1D quintic spline from raw data, all of the four parameters vStart, vEnd, aStart and aEnd have to be set. | |
| int | CalculateSeptimicRaw (int n, ref double[] x, ref double[] y, ref double[] v, ref double[] a, ref double[] j, double vStart, double vEnd, double aStart, double aEnd, double jStart, double jEnd) |
| Calculate a 1D septimic spline from raw data, all of the four parameters vStart, vEnd, aStart, aEnd, jStart and jEnd have to be set. | |
| int | CalculateSerializedPolys () |
| Calculate the serialized polynomials in the corresponding spline. | |
| int | CalculateFromSerializedPolys (ref ISpline1D ResultSpline1D) |
| Calculate a linear smoothed spline from serialized polynomials, after setting the NumberOfSerializedPolys and defining each polynomial seperately in the SerializedPoly[] array. The corresponding linear smoothed spline then is calculated in the ResultSpline1D, if cyclic behaviour is detected the Cyclic flag is set in the resulting spline. | |
| bool | EvaluateMinMax () |
| Evaluate the minima and maxima of the spline function and its serialized segments, i.e. sMin and sMax are calculated automatically. | |
| bool | EvaluateExtrema () |
| Evaluate the extrema vMin, vMax, aMin, aMax, jMin and jMax values of the spline function and its serialized segments. | |
| bool | Integrate () |
| Integrate the spline curve. | |
| int | CreateNormPoly (int n) |
| Create normalized polynomial of grade n to be defined by the user. | |
| int | CalculatePolyRaw (int n, ref double[] x, ref int[] deriveGrade, ref double[] evalValue, ref double[] Factor) |
| Calculate a 1D polynomial from raw constraints data, n is the polynomial grade, evalValue specifies the value of the derivative degree deriveGrade at point x, in Factor the n + 1 factors of the resulting polynomial are given. | |
| int | CalculateRegPoly (int n, ref double[] Factor, ref double R_squared) |
| Calculate a 1D regression polynomial of grade n regarding the spline base points, in Factor the n + 1 factors of the resulting polynomial are given and in R_squared the coefficient of determination R^2 is returned. | |
| int | EvaluatePolyRaw (int n, ref double[] Factor, double x, ref double[] evalValue) |
| Evaluate a 1D polynomial, n is the polynomial grade, in evalValue the evaluated values of the polynomial and the first three derivatives at point x are given, in Factor the n + 1 factors of the polynomial must be given. | |
| int | CalculateNormFunction () |
| Calculate a norm function according the set MovementType. | |
| int | EvaluateNormFunction (double x, ref double[] evalValue) |
| Evaluate a previously calculated norm function according the set StartRamp and StopRamp, in evalValue the evaluated values of the norm function and the first three derivatives at point x are given. | |
| double | CalculateEndEffectorMove () |
| Calculate the end effector movement with underlying spline movement. | |
| int | IterateEndEffectorMove () |
| Iterate one step of the end effector movement with underlying spline movement, given X, x_endeff and v_endeff, the next values for a_endeff, v_endeff and x_endeff are calculated. | |
Properties | |
| int | NumberOfPoints [get, set] |
| Number of base points. | |
| SplineTypes | SplineType [get, set] |
| Spline type, i.e. when PTP the spline consists of user defined polynomial segments, when Linear of straight lines, when Cubic of 3rd order polynomials, when Quartic of 4th order polynomials, when Quintic of 5th order polynomials and when Septimic of 7th order polynomials. | |
| double[] | baseX [get] |
| Base point values x, for smoothing of splines at the beginning set baseX[0] as virtual start point, for smoothing at the end set baseX[NumberOfPoints + 1] as virtual end point. | |
| double[] | baseY [get] |
| Base point values y, for smoothing of splines at the beginning set baseY[0] as virtual start point, for smoothing at the end set baseY[NumberOfPoints + 1] as virtual end point. | |
| double | vStart [get, set] |
| 'Velocity' of the spline function, i.e. dY/dX, at the start point | |
| double | vEnd [get, set] |
| 'Velocity' of the spline function, i.e. dY/dX, at the end point | |
| double | aStart [get, set] |
| 'Acceleration' of the spline function, i.e. d^2Y/dX^2, at the start point | |
| double | aEnd [get, set] |
| 'Acceleration' of the spline function, i.e. d^2Y/dX^2, at the end point | |
| double | jStart [get, set] |
| 'Jerk' of the spline function, i.e. d^3Y/dX^3, at the start point | |
| double | jEnd [get, set] |
| 'Jerk' of the spline function, i.e. d^3Y/dX^3, at the end point | |
| IPoly[] | Poly [get] |
| Polynomials in the corresponding spline. | |
| double[] | sMin [get] |
| Minimum space values of the spline and its serialized segments in Y direction after applying EvaluateMinMax(). | |
| double[] | sMax [get] |
| Maximum space values of the spline and its serialized segments in Y direction after applying EvaluateMinMax(). | |
| double[] | vMin [get] |
| Minimum 'velocity' values of the spline and its serialized segments after applying EvaluateExtrema(). | |
| double[] | vMax [get] |
| Maximum 'velocity' values of the spline and its serialized segments after applying EvaluateExtrema(). | |
| double[] | aMin [get] |
| Minimum 'acceleration' values of the spline and its serialized segments after applying EvaluateExtrema(). | |
| double[] | aMax [get] |
| Maximum 'acceleration' values of the spline and its serialized segments after applying EvaluateExtrema(). | |
| double[] | jMin [get] |
| Minimum 'jerk' values of the spline and its serialized segments after applying EvaluateExtrema(). | |
| double[] | jMax [get] |
| Maximum 'jerk' values of the spline and its serialized segments after applying EvaluateExtrema(). | |
| double[] | SmoothingDistance [get] |
| Smoothing distance at each base point, if set greater than 0.0 by default with linear splines a Poly5 and with all other splines a Poly7 is used to smooth the path at this base point. | |
| IPoly[] | SmoothingPoly [get] |
| Smoothing polynomials in the corresponding spline. | |
| bool | Cyclic [get, set] |
| If set to TRUE and the SmoothingDistance of the first and the last base point is not zero then a cyclic spline is calculated. | |
| int | NumberOfSerializedPolys [get, set] |
| Number of serialized polynomials. | |
| IPoly[] | SerializedPoly [get] |
| Serialized polynomials in the corresponding spline, i.e. all polynomials including smoothing polynomials in ascending order used to export the spline. | |
| ISpline1D | NormPoly [get] |
| Normalized polynomial to be defined by the user. | |
| double[] | NormPolyFactor [get, set] |
| Factors resp. coefficients of the norm polynomial function, when DefineWithConstraints() is used they will be automatically calculated. | |
| double | X [get, set] |
| Defines the X value in order to evaluate the spline function. | |
| double | pX [get] |
| Evaluated space value of the spline function in Y direction after writing space value X. | |
| double | vX [get] |
| Evaluated 'velocity' value, i.e. dY/dX, of the spline function after writing space value X. | |
| double | aX [get] |
| Evaluated 'acceleration' value, i.e. d^2Y/dX^2 of the spline function after writing space value X. | |
| double | jX [get] |
| Evaluated 'jerk' value, i.e. d^3Y/dX^3 of the spline function after writing space value X. | |
| double | Eigenfrequency [get, set] |
| Eigenfrequency of the end effector [Hz]. | |
| double | DampingRatio [get, set] |
| Damping ratio of the end effector, i.e. 1 / half-live time. | |
| double | OverlayAmplitude [get, set] |
| Harmonic overlay amplitude. | |
| double | OverlayPhaseShift [get, set] |
| Harmonic overlay phase shift. | |
| bool | RelativeFriction [get, set] |
| If set to TRUE the friction of the end effector movement is assumed to be relative to the spline movement. | |
| double | x_endeff [get, set] |
| Calculated end effector position with underlying spline movement. | |
| double | v_endeff [get, set] |
| Calculated end effector velocity with underlying spline movement. | |
| double | a_endeff [get, set] |
| Calculated end effector acceleration with underlying spline movement. | |
| int | IterationStepsEndeffector [get, set] |
| Iteration steps over the spline baseX range. | |
| MovementTypes | MovementType [get, set] |
| Movement type of a norm function. | |
| double | StartRamp [get, set] |
| Start ramp for a norm function. | |
| double | StopRamp [get, set] |
| Stop ramp for a norm function. | |
| double | S_Curving_Start [get, set] |
| Start S_Curving ramp between [0, 1]. | |
| double | S_Curving_Stopp [get, set] |
| Stopp S_Curving ramp between [0, 1]. | |
| string | LicenseKey [get, set] |
| To input a Developer or Developer Deploy license string, when read the hardware or software license is stated. | |
| string | LicenseKeyStacker [get, set] |
| To input a Stacker Developer or Stacker Developer Deploy license string, when read the hardware or software license is stated. | |
Interface to a single 1D spline function.
| int SiMoPoly.ISpline1D.Calculate | ( | ) |
Calculate a 1D spline, for the settings of vStart, vEnd, aStart, aEnd, jStart and jEnd see the corresponding raw functions. The return values are OK = 0, OPTI_ERROR_NOT_LICENSED = -1, OPTI_ERROR_SPLINE_TYPE = -2, OPTI_ERROR_SPLINE_CONDITIONS = -3, OPTI_ERROR_SPLINE_SINGULAR_MATRIX1 = -4, OPTI_ERROR_SPLINE_SINGULAR_MATRIX2 = -5.
| int SiMoPoly.ISpline1D.CalculateCubicRaw | ( | int | n, |
| ref double[] | x, | ||
| ref double[] | y, | ||
| ref double[] | v, | ||
| ref double[] | a, | ||
| double | vStart, | ||
| double | vEnd, | ||
| double | aStart, | ||
| double | aEnd ) |
| int SiMoPoly.ISpline1D.CalculateCubicSimple | ( | int | n, |
| ref double[] | x, | ||
| ref double[] | y, | ||
| ref double[] | v, | ||
| ref double[] | a, | ||
| double | vStart, | ||
| double | vEnd ) |
| double SiMoPoly.ISpline1D.CalculateEndEffectorMove | ( | ) |
Calculate the end effector movement with underlying spline movement.
| int SiMoPoly.ISpline1D.CalculateFromSerializedPolys | ( | ref ISpline1D | ResultSpline1D | ) |
Calculate a linear smoothed spline from serialized polynomials, after setting the NumberOfSerializedPolys and defining each polynomial seperately in the SerializedPoly[] array.
The corresponding linear smoothed spline then is calculated in the ResultSpline1D, if cyclic behaviour is detected the Cyclic flag is set in the resulting spline.
| int SiMoPoly.ISpline1D.CalculateLinearRaw | ( | int | n, |
| ref double[] | x, | ||
| ref double[] | y, | ||
| ref double[] | v ) |
Calculate a 1D linear spline from raw data, because v is not continuous the evaluated v[i] is the first derivative of the polynomial at the right side of x[i].
| int SiMoPoly.ISpline1D.CalculateNormFunction | ( | ) |
Calculate a norm function according the set MovementType.
| int SiMoPoly.ISpline1D.CalculatePolyRaw | ( | int | n, |
| ref double[] | x, | ||
| ref int[] | deriveGrade, | ||
| ref double[] | evalValue, | ||
| ref double[] | Factor ) |
Calculate a 1D polynomial from raw constraints data, n is the polynomial grade, evalValue specifies the value of the derivative degree deriveGrade at point x, in Factor the n + 1 factors of the resulting polynomial are given.
| int SiMoPoly.ISpline1D.CalculateQuarticRaw | ( | int | n, |
| ref double[] | x, | ||
| ref double[] | y, | ||
| ref double[] | v, | ||
| ref double[] | a, | ||
| ref double[] | j, | ||
| double | vStart, | ||
| double | vEnd, | ||
| double | aStart, | ||
| double | aEnd ) |
| int SiMoPoly.ISpline1D.CalculateQuinticRaw | ( | int | n, |
| ref double[] | x, | ||
| ref double[] | y, | ||
| ref double[] | v, | ||
| ref double[] | a, | ||
| ref double[] | j, | ||
| double | vStart, | ||
| double | vEnd, | ||
| double | aStart, | ||
| double | aEnd ) |
| int SiMoPoly.ISpline1D.CalculateRegPoly | ( | int | n, |
| ref double[] | Factor, | ||
| ref double | R_squared ) |
Calculate a 1D regression polynomial of grade n regarding the spline base points, in Factor the n + 1 factors of the resulting polynomial are given and in R_squared the coefficient of determination R^2 is returned.
| int SiMoPoly.ISpline1D.CalculateSeptimicRaw | ( | int | n, |
| ref double[] | x, | ||
| ref double[] | y, | ||
| ref double[] | v, | ||
| ref double[] | a, | ||
| ref double[] | j, | ||
| double | vStart, | ||
| double | vEnd, | ||
| double | aStart, | ||
| double | aEnd, | ||
| double | jStart, | ||
| double | jEnd ) |
| int SiMoPoly.ISpline1D.CalculateSerializedPolys | ( | ) |
Calculate the serialized polynomials in the corresponding spline.
| int SiMoPoly.ISpline1D.CreateNormPoly | ( | int | n | ) |
Create normalized polynomial of grade n to be defined by the user.
| bool SiMoPoly.ISpline1D.EvaluateExtrema | ( | ) |
Evaluate the extrema vMin, vMax, aMin, aMax, jMin and jMax values of the spline function and its serialized segments.
| bool SiMoPoly.ISpline1D.EvaluateMinMax | ( | ) |
Evaluate the minima and maxima of the spline function and its serialized segments, i.e. sMin and sMax are calculated automatically.
| int SiMoPoly.ISpline1D.EvaluateNormFunction | ( | double | x, |
| ref double[] | evalValue ) |
Evaluate a previously calculated norm function according the set StartRamp and StopRamp, in evalValue the evaluated values of the norm function and the first three derivatives at point x are given.
| int SiMoPoly.ISpline1D.EvaluatePolyRaw | ( | int | n, |
| ref double[] | Factor, | ||
| double | x, | ||
| ref double[] | evalValue ) |
Evaluate a 1D polynomial, n is the polynomial grade, in evalValue the evaluated values of the polynomial and the first three derivatives at point x are given, in Factor the n + 1 factors of the polynomial must be given.
| bool SiMoPoly.ISpline1D.Integrate | ( | ) |
Integrate the spline curve.
| int SiMoPoly.ISpline1D.IterateEndEffectorMove | ( | ) |
Iterate one step of the end effector movement with underlying spline movement, given X, x_endeff and v_endeff, the next values for a_endeff, v_endeff and x_endeff are calculated.
|
getset |
Calculated end effector acceleration with underlying spline movement.
|
getset |
'Acceleration' of the spline function, i.e. d^2Y/dX^2, at the end point
Default value is 0.0
Referenced by CalculateCubicRaw(), CalculateQuarticRaw(), CalculateQuinticRaw(), and CalculateSeptimicRaw().
|
get |
Maximum 'acceleration' values of the spline and its serialized segments after applying EvaluateExtrema().
|
get |
Minimum 'acceleration' values of the spline and its serialized segments after applying EvaluateExtrema().
|
getset |
'Acceleration' of the spline function, i.e. d^2Y/dX^2, at the start point
Default value is 0.0
Referenced by CalculateCubicRaw(), CalculateQuarticRaw(), CalculateQuinticRaw(), and CalculateSeptimicRaw().
|
get |
Evaluated 'acceleration' value, i.e. d^2Y/dX^2 of the spline function after writing space value X.
|
get |
Base point values x, for smoothing of splines at the beginning set baseX[0] as virtual start point, for smoothing at the end set baseX[NumberOfPoints + 1] as virtual end point.
|
get |
Base point values y, for smoothing of splines at the beginning set baseY[0] as virtual start point, for smoothing at the end set baseY[NumberOfPoints + 1] as virtual end point.
|
getset |
If set to TRUE and the SmoothingDistance of the first and the last base point is not zero then a cyclic spline is calculated.
Default value is FALSE
|
getset |
Damping ratio of the end effector, i.e. 1 / half-live time.
Default value is 0.0
|
getset |
Eigenfrequency of the end effector [Hz].
Default value is 0.0
|
getset |
Iteration steps over the spline baseX range.
Default value is 1000
|
getset |
'Jerk' of the spline function, i.e. d^3Y/dX^3, at the end point
Default value is 0.0
Referenced by CalculateSeptimicRaw().
|
get |
Maximum 'jerk' values of the spline and its serialized segments after applying EvaluateExtrema().
|
get |
Minimum 'jerk' values of the spline and its serialized segments after applying EvaluateExtrema().
|
getset |
'Jerk' of the spline function, i.e. d^3Y/dX^3, at the start point
Default value is 0.0
Referenced by CalculateSeptimicRaw().
|
get |
Evaluated 'jerk' value, i.e. d^3Y/dX^3 of the spline function after writing space value X.
|
getset |
To input a Developer or Developer Deploy license string, when read the hardware or software license is stated.
|
getset |
To input a Stacker Developer or Stacker Developer Deploy license string, when read the hardware or software license is stated.
|
getset |
Movement type of a norm function.
Default value is MovementTypes.ModTrapez
|
get |
Normalized polynomial to be defined by the user.
|
getset |
Factors resp. coefficients of the norm polynomial function, when DefineWithConstraints() is used they will be automatically calculated.
|
getset |
Number of base points.
Default value is 2.0
|
getset |
Number of serialized polynomials.
|
getset |
Harmonic overlay amplitude.
Default value is 0.0
|
getset |
Harmonic overlay phase shift.
Default value is 0.0
|
get |
Polynomials in the corresponding spline.
|
get |
Evaluated space value of the spline function in Y direction after writing space value X.
|
getset |
If set to TRUE the friction of the end effector movement is assumed to be relative to the spline movement.
Default value is TRUE
|
getset |
Start S_Curving ramp between [0, 1].
Default value is 0.25
|
getset |
Stopp S_Curving ramp between [0, 1].
Default value is 0.25
|
get |
Serialized polynomials in the corresponding spline, i.e. all polynomials including smoothing polynomials in ascending order used to export the spline.
|
get |
Maximum space values of the spline and its serialized segments in Y direction after applying EvaluateMinMax().
|
get |
Minimum space values of the spline and its serialized segments in Y direction after applying EvaluateMinMax().
|
get |
Smoothing distance at each base point, if set greater than 0.0 by default with linear splines a Poly5 and with all other splines a Poly7 is used to smooth the path at this base point.
Default value is 0.0
|
get |
Smoothing polynomials in the corresponding spline.
|
getset |
Spline type, i.e. when PTP the spline consists of user defined polynomial segments, when Linear of straight lines, when Cubic of 3rd order polynomials, when Quartic of 4th order polynomials, when Quintic of 5th order polynomials and when Septimic of 7th order polynomials.
Default value is SplineTypes.Cubic
|
getset |
Start ramp for a norm function.
Default value is 0.2
|
getset |
Stop ramp for a norm function.
Default value is 0.2
|
getset |
Calculated end effector velocity with underlying spline movement.
|
getset |
'Velocity' of the spline function, i.e. dY/dX, at the end point
Default value is 0.0
Referenced by CalculateCubicRaw(), CalculateCubicSimple(), CalculateQuarticRaw(), CalculateQuinticRaw(), and CalculateSeptimicRaw().
|
get |
Maximum 'velocity' values of the spline and its serialized segments after applying EvaluateExtrema().
|
get |
Minimum 'velocity' values of the spline and its serialized segments after applying EvaluateExtrema().
|
getset |
'Velocity' of the spline function, i.e. dY/dX, at the start point
Default value is 0.0
Referenced by CalculateCubicRaw(), CalculateCubicSimple(), CalculateQuarticRaw(), CalculateQuinticRaw(), and CalculateSeptimicRaw().
|
get |
Evaluated 'velocity' value, i.e. dY/dX, of the spline function after writing space value X.
|
getset |
Defines the X value in order to evaluate the spline function.
|
getset |
Calculated end effector position with underlying spline movement.