ros2_control - rolling
Loading...
Searching...
No Matches
sine_sweep.hpp
1// Copyright (c) 2008, Willow Garage, Inc.
2//
3// Redistribution and use in source and binary forms, with or without
4// modification, are permitted provided that the following conditions are met:
5//
6// * Redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer.
8//
9// * Redistributions in binary form must reproduce the above copyright
10// notice, this list of conditions and the following disclaimer in the
11// documentation and/or other materials provided with the distribution.
12//
13// * Neither the name of the Willow Garage nor the names of its
14// contributors may be used to endorse or promote products derived from
15// this software without specific prior written permission.
16//
17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27// POSSIBILITY OF SUCH DAMAGE.
28
29#ifndef CONTROL_TOOLBOX__SINE_SWEEP_HPP_
30#define CONTROL_TOOLBOX__SINE_SWEEP_HPP_
31
32#include <rclcpp/duration.hpp>
33
34namespace control_toolbox
35{
36/***************************************************/
52/***************************************************/
53
55{
56public:
60 SineSweep();
61
67 double update(rclcpp::Duration dt);
68
77 bool init(double start_freq, double end_freq, double duration, double amplitude);
78
79private:
80 double amplitude_;
81 rclcpp::Duration duration_;
82 double start_angular_freq_;
83 double end_angular_freq_;
84 double K_;
85 double L_;
86 double cmd_;
87};
88} // namespace control_toolbox
89
90#endif // CONTROL_TOOLBOX__SINE_SWEEP_HPP_
Generates a sine sweep for frequency analysis of a joint.
Definition sine_sweep.hpp:55
SineSweep()
Constructor.
Definition sine_sweep.cpp:37
double update(rclcpp::Duration dt)
Update the SineSweep loop with nonuniform time step size.
Definition sine_sweep.cpp:75
bool init(double start_freq, double end_freq, double duration, double amplitude)
Initializes everything and calculates the constants for the sweep.
Definition sine_sweep.cpp:48
Definition dither.hpp:42