33#ifndef CONTROL_TOOLBOX__PID_HPP_
34#define CONTROL_TOOLBOX__PID_HPP_
38#include "rclcpp/duration.hpp"
39#include "realtime_tools/realtime_buffer.hpp"
127 Gains(
double p,
double i,
double d,
double i_max,
double i_min)
146 Gains(
double p,
double i,
double d,
double i_max,
double i_min,
bool antiwindup)
182 double p = 0.0,
double i = 0.0,
double d = 0.0,
double i_max = 0.0,
double i_min = -0.0,
183 bool antiwindup =
false);
213 double p,
double i,
double d,
double i_max,
double i_min,
bool antiwindup =
false);
231 [[deprecated(
"Use initialize() instead")]]
void initPid(
232 double p,
double i,
double d,
double i_max,
double i_min,
bool antiwindup =
false);
245 void reset(
bool save_iterm);
260 void get_gains(
double & p,
double & i,
double & d,
double & i_max,
double & i_min);
270 [[deprecated(
"Use get_gains() instead")]]
void getGains(
271 double & p,
double & i,
double & d,
double & i_max,
double & i_min);
286 double & p,
double & i,
double & d,
double & i_max,
double & i_min,
bool & antiwindup);
300 [[deprecated(
"Use get_gains() instead")]]
void getGains(
301 double & p,
double & i,
double & d,
double & i_max,
double & i_min,
bool & antiwindup);
329 void set_gains(
double p,
double i,
double d,
double i_max,
double i_min,
bool antiwindup =
false);
345 [[deprecated(
"Use set_gains() instead")]]
void setGains(
346 double p,
double i,
double d,
double i_max,
double i_min,
bool antiwindup =
false);
362 [[deprecated(
"Use set_gains() instead")]]
void setGains(
const Gains & gains);
374 [[nodiscard]]
double compute_command(
double error,
const double & dt_s);
386 [[deprecated(
"Use compute_command() instead")]] [[nodiscard]]
double computeCommand(
387 double error, uint64_t dt);
399 [[nodiscard]]
double compute_command(
double error,
const rcl_duration_value_t & dt_ns);
411 [[nodiscard]]
double compute_command(
double error,
const rclcpp::Duration & dt);
423 [[nodiscard]]
double compute_command(
double error,
const std::chrono::nanoseconds & dt_ns);
436 [[nodiscard]]
double compute_command(
double error,
double error_dot,
const double & dt_s);
449 [[deprecated(
"Use compute_command() instead")]] [[nodiscard]]
double computeCommand(
450 double error,
double error_dot, uint64_t dt);
464 double error,
double error_dot,
const rcl_duration_value_t & dt_ns);
477 [[nodiscard]]
double compute_command(
double error,
double error_dot,
const rclcpp::Duration & dt);
491 double error,
double error_dot,
const std::chrono::nanoseconds & dt_ns);
501 [[deprecated(
"Use set_current_cmd() instead")]]
void setCurrentCmd(
double cmd);
511 [[deprecated(
"Use get_current_cmd() instead")]]
double getCurrentCmd();
533 double & pe,
double & ie,
double & de);
541 if (
this == &source) {
546 gains_buffer_ = source.gains_buffer_;
559 double p_error_last_;