Motion Master
Loading...
Searching...
No Matches
full_auto_tuning.h
Go to the documentation of this file.
1#pragma once
2
3#include <readerwriterqueue/readerwriterqueue.h>
4
5#include <chrono>
6#include <cstdint>
7#include <map>
8#include <mutex>
9#include <string>
10#include <variant>
11
12#include "util.h"
13
14class Cia402Drive;
16
18 public:
19 FullAutoTuning(uint32_t device_address, Cia402Drive &cia402_drive,
20 ControllerType controller_type);
21
29 std::variant<std::tuple<double, double, std::string>, MotionMasterError>
31
39 std::variant<std::tuple<double, double, std::string>, MotionMasterError>
41
45 void abort();
46
52 bool abort_callback();
53
60 void progress_callback(int32_t percentage);
61
69 motionmaster::MotionMasterMessage::Status::FullAutoTuning::Warning::Code
70 warning_code,
71 std::string message);
72
78 moodycamel::ReaderWriterQueue<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
88 moodycamel::ReaderWriterQueue<motionmaster::MotionMasterMessage::Status *>
89 outgoing_status_message_queue_;
90
91 bool abort_ = false;
92
101 double get_max_velocity_noise();
102
112 static double get_missing_data_percentage(
113 std::vector<int32_t> &raw_positions, std::vector<int32_t> &raw_velocities,
114 std::vector<int16_t> &raw_torques);
115
126 static std::vector<double> convert_velocity_to_rpm(
127 const std::vector<int32_t> &raw_velocities, double gear_ratio,
128 double velocity_unit_scaling, double feed_constant);
129};
Definition: cia402_drive.h:48
Definition: full_auto_tuning.h:17
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:23
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:90
moodycamel::ReaderWriterQueue< motionmaster::MotionMasterMessage::Status * > & get_status_message_queue()
Get the queue with the pending internal messages.
Definition: full_auto_tuning.cc:179
bool abort_callback()
Used for getting the abort command as a callback from Cython.
Definition: full_auto_tuning.cc:156
void progress_callback(int32_t percentage)
A simple function for calling the progress callback function.
Definition: full_auto_tuning.cc:158
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:166
void abort()
Stop the currently running auto-tuning procedure.
Definition: full_auto_tuning.cc:154
Definition: motion_master_error.h:6
ControllerType
Definition: util.h:44