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
65 set_limits(real_t max_timescale, real_t max_timescale_deriv, real_t max_timescale_2nd_deriv);
66
73 bool start(real_t time_mono, real_t time_scaled_init, real_t timescale = 1.0);
74
82 TimescaleResult goto_timescale(real_t time_mono, real_t target_timescale);
83
89 [[nodiscard]] TrajState evaluate(real_t time_mono) const;
90
91private:
92 real_t m_max_timescale = 0.0;
93 real_t m_max_timescale_deriv = 0.0;
94 real_t m_max_timescale_2nd_deriv = 0.0;
95
96 TrapezoidalVelocity m_time_traj;
97};
98
103} // namespace fsb
104
105#endif
Timescale trajectory with trapezoidal velocity profile.
Definition fsb_timescale.h:52
bool set_limits(real_t max_timescale, real_t max_timescale_deriv, real_t max_timescale_2nd_deriv)
Set timescale transition limits.
Definition fsb_timescale.cpp:21
TrajState evaluate(real_t time_mono) const
Definition fsb_timescale.cpp:76
TimescaleResult goto_timescale(real_t time_mono, real_t target_timescale)
Set new timescale.
Definition fsb_timescale.cpp:57
bool start(real_t time_mono, real_t time_scaled_init, real_t timescale=1.0)
Definition fsb_timescale.cpp:39
Definition fsb_trapezoidal_velocity.h:70
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:18