60 const double& max_a,
const double& max_gamma)
62 -max_a, max_a, -max_gamma, max_gamma) {}
78 const double& max_omega,
79 const double& min_a,
const double& max_a,
80 const double& min_gamma,
const double& max_gamma) {
81 double values[
nbLimits] = { min_v, max_v, max_omega,
82 min_a, max_a, min_gamma, max_gamma };
124 double limAcc(
const double& lim_dist,
const double& dist,
125 const double& vel,
const double& ldr_vel,
126 const double& time_step)
const;
150 const double& trans_fact,
151 const double& rot_fact,
152 const double& time_step)
const;
170 const double& trans_acc,
171 const double& rot_acc,
172 const double& time_step)
const;
179 { memcpy(limits, values,
sizeof(
double) *
nbLimits); }
183 #endif // QTCTRL_MOTION double limits[nbLimits]
The array of limits.
Limits
These are the indexes of the array of limits.
const double & maxTranslAcc() const
Descriptive method, giving the maximum translation acceleration.
Index of the maximum translation deceleration.
const double & maxRotVel() const
Descriptive method, giving the maximum rotation velocity.
Number of limits in the array.
const double & minRotAcc() const
Descriptive method, giving the minimum rotation acceleration (or maximum rotation deceleration)...
void applyAccelerationFactors(double &trans_vel, double &rot_vel, const double &trans_fact, const double &rot_fact, const double &time_step) const
Modify translation and rotation given velocities, applying the extremal accelerations multiplied by t...
MotionModel(const double &max_v, const double &max_omega, const double &max_a, const double &max_gamma)
Minimum constructor, supposing that minimum velocities and accelerations is the opposite of the maxim...
const double & minTranslAcc() const
Descriptive method, giving the minimum translation acceleration (or maximum translation deceleration)...
MotionModel(const double &min_v, const double &max_v, const double &max_omega, const double &min_a, const double &max_a, const double &min_gamma, const double &max_gamma)
General constructor, supposing that minimum velocities and accelerations are not the opposite of the ...
void applyAccelerations(double &trans_vel, double &rot_vel, const double &trans_acc, const double &rot_acc, const double &time_step) const
Modify translation and rotation given velocities, applying the given accelerations during the given t...
Index of the minimum translation velocity.
Index of the maximum rotation deceleration.
const double & maxTranslVel() const
Descriptive method, giving the maximum translation velocity.
This class defines a motion model, with the motion limits.
const double & minTranslVel() const
Descriptive method, giving the minimum translation velocity.
Index of the maximum translation acceleration.
Index of the maximum rotation acceleration.
Index of the maximum rotation velocity.
Index of the maximum translation velocity.
double limAcc(const double &lim_dist, const double &dist, const double &vel, const double &ldr_vel, const double &time_step) const
Descriptive method, giving the limit acceleration which ensure to avoid reaching limit distance for a...
const double & maxRotAcc() const
Descriptive method, giving the maximum rotation acceleration.