KatanaNativeInterface
$VERSION$
|
Go to the documentation of this file.
132 Exception("Joint speed too high", -70) {}
140 Exception("Wait parameter set to false", -71) {}
183 double totalTime(
double distance,
double acc,
double dec,
double vmax);
196 double relPosition(
double reltime,
double distance,
double acc,
double dec,
216 double *arr_p1,
double *arr_p2,
double *arr_p3,
double *arr_p4);
230 std::vector<int> solution,
double time);
239 CLMBase() : _maximumVelocity(20), _activatePositionController(true), _isInitialized(false) {}
247 void movLM(
double X,
double Y,
double Z,
248 double Al,
double Be,
double Ga,
249 bool exactflag,
double vmax,
bool wait=
true,
int tolerance = 100,
long timeout =
TM_ENDLESS);
254 void movLM2PwithL(
double X1,
double Y1,
double Z1,
double Al1,
double Be1,
255 double Ga1,
double X2,
double Y2,
double Z2,
double Al2,
double Be2,
256 double Ga2,
bool exactflag,
double vmax,
bool wait=
false,
257 int tolerance = 100,
long timeout =
TM_ENDLESS);
260 double Al1,
double Be1,
double Ga1,
261 double X2,
double Y2,
double Z2,
262 double Al2,
double Be2,
double Ga2,
263 bool exactflag,
double vmax,
bool wait=
false,
int tolerance = 100,
long timeout =
TM_ENDLESS);
291 void movLM2P(
double X1,
double Y1,
double Z1,
double Al1,
double Be1,
292 double Ga1,
double X2,
double Y2,
double Z2,
double Al2,
double Be2,
293 double Ga2,
bool exactflag,
double vmax,
bool wait=
true,
294 int tolerance = 100,
long timeout =
TM_ENDLESS);
310 double x,
double y,
double z,
311 double phi,
double theta,
double psi,
312 bool waitUntilReached =
true,
320 std::vector<double> coordinates,
321 bool waitUntilReached =
true,
double relPosition(double reltime, double distance, double acc, double dec, double vmax)
Calculates the relative position reached after the relative time given.
double time
time that it takes to reach the point (from starting position)
[LM] linear movement: parameters
void movLM2P(double X1, double Y1, double Z1, double Al1, double Be1, double Ga1, double X2, double Y2, double Z2, double Al2, double Be2, double Ga2, bool exactflag, double vmax, bool wait=true, int tolerance=100, long timeout=TM_ENDLESS)
New version of movLM2P with multiple splines.
TSplinepoint * splinepoints
void movLM2P4D(double X1, double Y1, double Z1, double Al1, double Be1, double Ga1, double X2, double Y2, double Z2, double Al2, double Be2, double Ga2, bool exactflag, double vmax, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
short mlm_intermediate_pos[5]
current position in cartesian units
TLM_points * points
points to be interpolated
double dt
time elapsed between one step and the next one
double * arr_tarpos
target position in cartesian units
double getMaximumLinearVelocity() const
void calcParameters(double *arr_actpos, double *arr_tarpos, double vmax)
#define TM_ENDLESS
timeout symbol for 'endless' waiting
void initLM()
Initialize the parameters for the linear movements.
int distance
distance between target and current position
void moveRobotLinearTo(std::vector< double > coordinates, bool waitUntilReached=true, int waitTimeout=TM_ENDLESS)
This method does the same as the one above and is mainly provided for convenience.
double totalTime(double distance, double acc, double dec, double vmax)
Calculates time needed for movement over a distance.
[LMBLEND] Standard coordinates for a point in space
void moveRobotLinearTo(double x, double y, double z, double phi, double theta, double psi, bool waitUntilReached=true, int waitTimeout=TM_ENDLESS)
bool getActivatePositionController()
Check if the position controller will be activated after the linear movement.
double ** derivatives
second order derivatives of the polinomes that join the points, in the points
Wait parameter set to false.
void setMaximumLinearVelocity(double maximumVelocity)
[LM] linear movement: points to be interpolated
void movLM2PwithL(double X1, double Y1, double Z1, double Al1, double Be1, double Ga1, double X2, double Y2, double Z2, double Al2, double Be2, double Ga2, bool exactflag, double vmax, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
Old version of movLM2P which uses L-Command (only 4 splines)
double pos
position of one point to be interpolated (% refer to the total trajectory)
short number_of_referencepoints
bool _activatePositionController
void setActivatePositionController(bool activate)
Re-Activate the position controller after the linear movement.
short ** motors
motor position in each point to be interpolated
void fillPoints(double vmax)
[LMBLEND] Trajectory points
short *** parameters
parameters to be sent in the command 'L' packet
void movLM(double X, double Y, double Z, double Al, double Be, double Ga, bool exactflag, double vmax, bool wait=true, int tolerance=100, long timeout=TM_ENDLESS)
TBLENDtrajectory blendtrajectory
bool checkJointSpeed(std::vector< int > lastsolution, std::vector< int > solution, double time)
Checks if the joint speeds are below speed limit.
TPoint6D * referencepoints
short number_of_splinepoints
double time
time that it takes from current position to target position
void splineCoefficients(int steps, double *timearray, double *encoderarray, double *arr_p1, double *arr_p2, double *arr_p3, double *arr_p4)
Calculates the spline coefficient and stores them in arr_p1 - arr_p4.
double * arr_actpos
current position in cartesian units
short number_of_points
number of points to interpolate
[LM] Store intermediate targets for multiple linear movements
double *** coefficients
coefficients of the polinomes that join the points