ros2_control - humble
|
Generates a sine sweep for frequency analysis of a joint. More...
#include <sine_sweep.hpp>
Public Member Functions | |
SineSweep () | |
Constructor. | |
double | update (rclcpp::Duration dt) |
Update the SineSweep loop with nonuniform time step size. More... | |
bool | init (double start_freq, double end_freq, double duration, double amplitude) |
Initializes everything and calculates the constants for the sweep. More... | |
Generates a sine sweep for frequency analysis of a joint.
This class basically calculates the output for a sine sweep. Where the signal is a sine wave, whose frequency is exponentially increased from \(\omega_1\) to \(\omega_2\) over \(T\) seconds.
\(s(n) = A \sin [ K(e^{\delta t/L} - 1) ]\)
where:
\(K = \frac{\omega_1T}{\ln \frac{\omega_2}{\omega_1} }\)
\(L = \frac{T}{\ln \frac{\omega_2}{\omega_1} }\).
bool control_toolbox::SineSweep::init | ( | double | start_freq, |
double | end_freq, | ||
double | duration, | ||
double | amplitude | ||
) |
Initializes everything and calculates the constants for the sweep.
start_freq | Start frequency of the sweep, \(\omega_1\) . |
end_freq | End frequency of the sweep, \(\omega_2\). |
duration | The duration of the sweep, \(T\). |
amplitude | The amplitude of the sweep, \(A\). |
double control_toolbox::SineSweep::update | ( | rclcpp::Duration | dt | ) |
Update the SineSweep loop with nonuniform time step size.
dt | Change in time since last call |