Class Profile

Class Documentation

class Profile

A single-dof kinematic profile with position, velocity, acceleration and jerk.

The class members are only available in the Ruckig Community Version.

Public Types

enum class ReachedLimits

Values:

enumerator ACC0_ACC1_VEL
enumerator VEL
enumerator ACC0
enumerator ACC1
enumerator ACC0_ACC1
enumerator ACC0_VEL
enumerator ACC1_VEL
enumerator NONE
enum class Direction

Values:

enumerator UP
enumerator DOWN
enum class ControlSigns

Values:

enumerator UDDU
enumerator UDUD

Public Functions

template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_velocity(double jf, double aMax, double aMin)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_velocity_with_timing(double, double jf, double aMax, double aMin)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_velocity_with_timing(double tf, double jf, double aMax, double aMin, double jMax)
inline void set_boundary_for_velocity(double p0_new, double v0_new, double a0_new, double vf_new, double af_new)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_second_order_velocity(double aUp)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_second_order_velocity_with_timing(double, double aUp)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_second_order_velocity_with_timing(double tf, double aUp, double aMax, double aMin)
template<ControlSigns control_signs, ReachedLimits limits, bool set_limits = false>
inline bool check(double jf, double vMax, double vMin, double aMax, double aMin)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_with_timing(double, double jf, double vMax, double vMin, double aMax, double aMin)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_with_timing(double tf, double jf, double vMax, double vMin, double aMax, double aMin, double jMax)
inline void set_boundary(const Profile &profile)
inline void set_boundary(double p0_new, double v0_new, double a0_new, double pf_new, double vf_new, double af_new)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_second_order(double aUp, double aDown, double vMax, double vMin)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_second_order_with_timing(double, double aUp, double aDown, double vMax, double vMin)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_second_order_with_timing(double tf, double aUp, double aDown, double vMax, double vMin, double aMax, double aMin)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_first_order(double vUp)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_first_order_with_timing(double, double vUp)
template<ControlSigns control_signs, ReachedLimits limits>
inline bool check_for_first_order_with_timing(double tf, double vUp, double vMax, double vMin)
inline Bound get_position_extrema() const
inline bool get_first_state_at_position(double pt, double &time, double time_after = 0.0) const
inline std::string to_string() const

Public Members

std::array<double, 7> t
std::array<double, 7> t_sum
std::array<double, 7> j
std::array<double, 8> a
std::array<double, 8> v
std::array<double, 8> p
BrakeProfile brake

Brake sub-profiles.

BrakeProfile accel
double pf

Target (final) kinematic state.

double vf
double af
enum ruckig::Profile::ReachedLimits limits
enum ruckig::Profile::Direction direction
enum ruckig::Profile::ControlSigns control_signs

Public Static Functions

static inline void check_position_extremum(double t_ext, double t_sum, double t, double p, double v, double a, double j, Bound &ext)
static inline void check_step_for_position_extremum(double t_sum, double t, double p, double v, double a, double j, Bound &ext)