Motion Master
Loading...
Searching...
No Matches
full_auto_tuning.h
Go to the documentation of this file.
1#pragma once
2
3#include <chrono>
4#include <cstdint>
5#include <map>
6#include <mutex>
7#include <string>
8#include <variant>
9
11#include "util.h"
12
13class Cia402Drive;
15
17 public:
18 FullAutoTuning(uint32_t device_address, Cia402Drive& cia402_drive,
19 ControllerType controller_type);
20
28 std::variant<std::tuple<double, double, std::string>, MotionMasterError>
30
38 std::variant<std::tuple<double, double, std::string>, MotionMasterError>
40
44 void abort();
45
51 bool abort_callback();
52
59 void progress_callback(int32_t percentage);
60
68 motionmaster::MotionMasterMessage::Status::FullAutoTuning::Warning::Code
69 warning_code,
70 std::string message);
71
78 motionmaster::MotionMasterMessage::Status*>&
80
81 private:
82 uint32_t device_address_;
83 Cia402Drive& cia402_drive_;
84
85 // Used for full position auto-tuning only
86 ControllerType controller_type_;
87
89 motionmaster::MotionMasterMessage::Status*>
90 outgoing_status_message_queue_;
91
92 bool abort_ = false;
93
102 double get_max_velocity_noise();
103
113 static double get_missing_data_percentage(
114 std::vector<int32_t>& raw_positions, std::vector<int32_t>& raw_velocities,
115 std::vector<int16_t>& raw_torques);
116
127 static std::vector<double> convert_velocity_to_rpm(
128 const std::vector<int32_t>& raw_velocities, double gear_ratio,
129 double velocity_unit_scaling, double feed_constant);
130};
ControllerType
Definition util.h:43
Definition cia402_drive.h:48
mm::core::containers::ThreadSafeQueue< motionmaster::MotionMasterMessage::Status * > & get_status_message_queue()
Get the queue with the pending internal messages.
Definition full_auto_tuning.cc:193
std::variant< std::tuple< double, double, std::string >, MotionMasterError > start_full_position_auto_tuning()
Start the position full auto-tuning.
Definition full_auto_tuning.cc:24
std::variant< std::tuple< double, double, std::string >, MotionMasterError > start_full_velocity_auto_tuning()
Start the velocity full auto-tuning.
Definition full_auto_tuning.cc:97
FullAutoTuning(uint32_t device_address, Cia402Drive &cia402_drive, ControllerType controller_type)
Definition full_auto_tuning.cc:16
bool abort_callback()
Used for getting the abort command as a callback from Cython.
Definition full_auto_tuning.cc:169
void progress_callback(int32_t percentage)
A simple function for calling the progress callback function.
Definition full_auto_tuning.cc:171
void warning_callback(motionmaster::MotionMasterMessage::Status::FullAutoTuning::Warning::Code warning_code, std::string message)
A simple function for calling the warning callback function.
Definition full_auto_tuning.cc:179
void abort()
Stop the currently running auto-tuning procedure.
Definition full_auto_tuning.cc:167
Definition motion_master_error.h:6
Thread-safe FIFO queue with optional capacity limit.
Definition thread_safe_queue.h:23