FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_timescale.h
1#ifndef FSB_TIMESCALE_H
2#define FSB_TIMESCALE_H
3
4#include <cstdint>
5#include "fsb_trajectory_types.h"
6#include "fsb_types.h"
7#include "fsb_trapezoidal_velocity.h"
8
9namespace fsb
10{
11
27TrajState timescale_trajectory(const TrajState& timescale, const TrajState& traj);
28
32enum class TimescaleResult : uint8_t
33{
37 SUCCESS = 0,
46};
47
52{
53public:
54 Timescale() = default;
55
64 bool set_limits(Real max_timescale, Real max_timescale_deriv, Real max_timescale_2nd_deriv);
65
74 bool start(Real time_mono, Real time_scaled_init, Real timescale = 1.0);
75
83 TimescaleResult goto_timescale(Real time_mono, Real target_timescale);
84
91 [[nodiscard]] TrajState evaluate(Real time_mono) const;
92
93private:
94 Real m_max_timescale = 0.0;
95 Real m_max_timescale_deriv = 0.0;
96 Real m_max_timescale_2nd_deriv = 0.0;
97
98 TrapezoidalVelocity m_time_traj;
99};
100
105} // namespace fsb
106
107#endif
Timescale trajectory with trapezoidal velocity profile.
Definition fsb_timescale.h:52
TimescaleResult goto_timescale(Real time_mono, Real target_timescale)
Set new timescale.
Definition fsb_timescale.cpp:57
bool start(Real time_mono, Real time_scaled_init, Real timescale=1.0)
Start timescale with initial conditions.
Definition fsb_timescale.cpp:39
bool set_limits(Real max_timescale, Real max_timescale_deriv, Real max_timescale_2nd_deriv)
Set timescale transition limits.
Definition fsb_timescale.cpp:21
TrajState evaluate(Real time_mono) const
Evaluate timescale at given monotonic time.
Definition fsb_timescale.cpp:78
Definition fsb_trapezoidal_velocity.h:70
@ SUCCESS
Successful operation.
TimescaleResult
Result of timescale transition.
Definition fsb_timescale.h:33
TrajState timescale_trajectory(const TrajState &timescale, const TrajState &traj)
Apply timescale to trajectory position, velocity, and acceeleration.
Definition fsb_timescale.cpp:11
@ FAILED_TO_TRANSITION
Timescale transition failed.
@ MAX_TIMESCALE_BELOW_TOLERANCE
Timescale transition failed due to maximum timescale below tolerance.
Trajectory scalar motion state.
Definition fsb_trajectory_types.h:20