15 const std::function<
void()>& started_callback = {},
16 const std::function<void(motionmaster::MotionMasterMessage::Status::
17 SystemIdentification::Warning::Code,
18 std::string)>& warning_callback = {},
19 bool skip_chirp_signal =
false);
31 std::variant<MotionMasterError, PlantModel>
start();
34 uint32_t device_address_;
40 const std::function<void()>& started_callback_;
41 const std::function<void(motionmaster::MotionMasterMessage::Status::
42 SystemIdentification::Warning::Code,
43 std::string)>& warning_callback_;
47 bool skip_chirp_signal_ =
false;
49 double gear_ratio_ = 1.0;
50 double feed_constant_ = 1.0;
81 static double missing_data(std::vector<int32_t>& raw_positions,
82 std::vector<int32_t>& raw_velocities,
83 std::vector<int32_t>& raw_torques);
94 static int32_t calculate_linear_interpolation_step_value(
95 std::vector<int32_t> data, uint32_t first_zero_index,
96 uint32_t last_zero_index);
105 static void linear_interpolation(std::vector<int32_t>& raw_positions,
106 std::vector<int32_t>& raw_velocities,
107 std::vector<int32_t>& raw_torques);
119 static std::vector<double> convert_velocity_to_si(
120 const std::vector<int32_t>& raw_velocities,
double gear_ratio = 1.0,
121 double velocity_unit_scaling = 1,
double feed_constant = 1.0);
137 const std::vector<int16_t>& chirp_target_torques,
138 const std::vector<double>& velocities,
139 const std::vector<int32_t>& raw_positions);
148 static int32_t find_torque_sign_change(
149 const std::vector<int16_t>& chirp_target_torques);
169 const std::vector<int32_t>& torques,
170 const std::vector<double>& velocities);
186 std::vector<double> convert_velocity_q15_to_si(
187 const std::vector<int32_t>& q15_velocities);
197 static std::vector<double> convert_torque_to_si(
198 const std::vector<int32_t>& raw_torques, uint32_t nominal_torque);
210 static bool check_model_stability(
const PlantModel& m);
212 static void write_sys_id_csv(
const std::string& filename,
213 const std::vector<double>& torques_si,
214 const std::vector<double>& velocities_si);
SystemIdentification(uint32_t device_address, Cia402Drive &cia402_drive, TuningParameters tuning_params, const std::function< void()> &started_callback={}, const std::function< void(motionmaster::MotionMasterMessage::Status::SystemIdentification::Warning::Code, std::string)> &warning_callback={}, bool skip_chirp_signal=false)
Definition system_identification.cc:27