#include <utils/math/interpolation/linear.h>
Inheritance diagram for fawkes::SinusoidalInterpolator:
Public Member Functions | |
virtual float | interpolate (float t_current, float t_end, float t_step, float v_start, float v_end) |
Interpolate a point at a specific time. |
The interpolator creates intermediate points given a starting and and end point and time constraints. Times are supplied in a discrete unit like miliseconds or microseconds. The values are interpolated on a sinusoidal curve with a slow start, the greatest slope in the middle and then a slow down in the end. This interpolation is useful for example for smooth servo movements.
The calculation is executed with the following equation:
Graeme McPhillips
Stephen Marais
Definition at line 34 of file sinusoidal.h.
float fawkes::SinusoidalInterpolator::interpolate | ( | float | t_current, | |
float | t_end, | |||
float | t_step, | |||
float | v_start, | |||
float | v_end | |||
) | [virtual] |
Interpolate a point at a specific time.
t_current | current time for which to calculate the intermediate point | |
t_end | end time/total time. The start time is always 0. | |
t_step | Time of a time slice for discrete intermediate interpolation points. Set to 1 for maximum resolution. | |
v_start | start value | |
v_end | end value |
Implements fawkes::Interpolator.
Definition at line 55 of file sinusoidal.cpp.