67 uint32_t acceleration, uint32_t deceleration, uint32_t torque_slope,
68 float sine_frequency, uint32_t sustain_time_ms,
bool repeat,
69 bool master_generated =
false,
bool absolute_target =
false);
125 bool non_stop =
false);
215 uint32_t acceleration_;
216 uint32_t deceleration_;
217 uint32_t torque_slope_;
218 uint32_t sustain_time_ms_;
220 uint32_t encoder_resolution_ = 0;
221 double feed_constant_ = 0;
222 int32_t position_delta_ = 0;
225 bool absolute_target_;
227 bool aborted_ =
false;
230 bool master_generated_;
231 int32_t min_position_range_limit_ = 0;
232 int32_t max_position_range_limit_ = 0;
233 float sine_frequency_;
258 bool is_slave_position_profile_supported();
259 bool is_slave_velocity_profile_supported();
260 bool is_slave_torque_profile_supported();
263 bool bidirectional =
false);
272 void deinit_master_profile();
280 void execute_master_position_profile_stage(int32_t start, int32_t target);
289 void execute_master_position_profile_sin(int32_t start, int32_t target,
298 void execute_master_velocity_profile_stage(int32_t start, int32_t target);
307 void execute_master_velocity_profile_sin(int32_t start, int32_t target,
316 void execute_master_torque_profile_stage(int32_t start, int32_t target);
325 void execute_master_torque_profile_sin(int32_t start, int32_t target,
336 int32_t calculate_position_profile_steps(int32_t start, int32_t target);
346 int32_t calculate_velocity_profile_steps(int32_t start, int32_t target);
356 int32_t calculate_torque_profile_steps(int32_t start, int32_t target);
366 void init_master_profile_limits(int32_t max_torque_acceleration,
367 int32_t max_acceleration,
368 int32_t max_position, int32_t min_position);
375 int32_t init_linear_profile();
384 int32_t position_profile_generate(int32_t step);
391 int32_t linear_profile_generate_in_steps(int32_t step);
401 static double rpm_to_ticks(uint32_t rpm, uint32_t encoder_resolution);
411 static double ticks_to_rpm(
double ticks, uint32_t encoder_resolution);
422 void validate_position_profile_acceleration_deceleration();
430 void interruptible_sustain(uint32_t sustain_time_ms);
MotionMasterWarning
Definition util.h:154
Definition cia402_drive.h:48
Definition motion_master_error.h:6
MotionMasterError start_sine_wave_velocity_profile()
Start executing a velocity sine wave profile.
Definition profile.cc:1230
MotionMasterError start_trapezoidal_velocity_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a velocity trapezoidal profile from zero to target, then back to zero....
Definition profile.cc:981
MotionMasterError start_trapezoidal_position_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a position trapezoidal profile from zero to target, then back to zero....
Definition profile.cc:523
MotionMasterError start_bidirectional_position_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a position trapezoidal profile from zero to target, then back to negative target and ...
Definition profile.cc:677
bool was_aborted() const
Indicates if the profile has been aborted before it finished.
Definition profile.cc:1620
void stop()
Stop the currently running (repeating) profile after a full cycle.
Definition profile.cc:1618
MotionMasterError start_ramp_position_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a position trapezoidal profile from zero to target. (Z - zero; T - target)
Definition profile.cc:424
MotionMasterError start_sine_wave_torque_profile()
Start executing a torque sine wave profile.
Definition profile.cc:1587
~Profile()
Definition profile.cc:39
MotionMasterError start_bidirectional_torque_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a torque trapezoidal profile from zero to target, then back to negative target and th...
Definition profile.cc:1453
MotionMasterError start_bidirectional_velocity_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a velocity trapezoidal profile from zero to target, then back to negative target and ...
Definition profile.cc:1097
MotionMasterError start_sine_wave_position_profile()
Start executing a position sine wave profile.
Definition profile.cc:860
MotionMasterError start_ramp_torque_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a torque trapezoidal profile from zero to target. (Z - zero; T - target)
Definition profile.cc:1261
Profile(Cia402Drive &cia402_drive, int64_t target, uint32_t velocity, uint32_t acceleration, uint32_t deceleration, uint32_t torque_slope, float sine_frequency, uint32_t sustain_time_ms, bool repeat, bool master_generated=false, bool absolute_target=false)
Definition profile.cc:21
MotionMasterError start_trapezoidal_torque_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr)
Start executing a torque trapezoidal profile from zero to target, then back to zero....
Definition profile.cc:1335
MotionMasterError start_ramp_velocity_profile(std::function< void(MotionMasterWarning)> warning_callback=nullptr, bool non_stop=false)
Start executing a velocity trapezoidal profile from zero to target. (Z - zero; T - target)
Definition profile.cc:902
double t_cruise
Definition profile.h:53
double acc
Definition profile.h:17
double gi
Definition profile.h:38
double min_position
Definition profile.h:59
double bi
Definition profile.h:33
double di
Definition profile.h:35
double qfd
Definition profile.h:43
int32_t steps
Definition profile.h:61
double ai
Definition profile.h:32
double tb_acc
Definition profile.h:50
double q
Definition profile.h:56
double ei
Definition profile.h:36
double ts
Definition profile.h:54
int32_t max_torque_acceleration
Definition profile.h:13
double max_velocity
Definition profile.h:11
int32_t max_torque
Definition profile.h:12
double ci
Definition profile.h:34
double distance_acc
Definition profile.h:47
double T
Definition profile.h:25
double distance_cruise
Definition profile.h:45
double s_time
Definition profile.h:26
double distance_dec
Definition profile.h:48
double dec
Definition profile.h:18
double max_acceleration
Definition profile.h:10
double qi
Definition profile.h:20
double total_distance
Definition profile.h:46
int32_t direction
Definition profile.h:28
double fi
Definition profile.h:37
double tb_dec
Definition profile.h:51
double qid
Definition profile.h:42
double max_position
Definition profile.h:58
double vi
Definition profile.h:19
double qf
Definition profile.h:21
double tf
Definition profile.h:52