FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_quintic.h
1
2#ifndef FSB_QUINTIC_H
3#define FSB_QUINTIC_H
4
5#include "fsb_types.h"
6#include "fsb_trajectory_types.h"
7
8namespace fsb
9{
10
20constexpr Real kQuinticMinDuration = 1e-6;
21
26{
27 Real c0 = 0.0;
28 Real c1 = 0.0;
29 Real c2 = 0.0;
30 Real c3 = 0.0;
31 Real c4 = 0.0;
32 Real c5 = 0.0;
33};
34
38class Quintic final : public SegmentScalar
39{
40public:
41 Quintic() = default;
42
52 bool generate(
53 Real start_time, Real duration, const TrajState& initial_state,
54 const TrajState& final_state);
55
62 [[nodiscard]] TrajState evaluate(Real t_eval) const override final;
63
68 [[nodiscard]] TrajState get_final_state() const override final
69 {
70 return evaluate(m_start_time + m_duration);
71 }
72
77 [[nodiscard]] TrajState get_initial_state() const override final
78 {
79 return evaluate(m_start_time);
80 }
81
86 [[nodiscard]] Real get_start_time() const override final
87 {
88 return m_start_time;
89 }
90
96 [[nodiscard]] Real get_duration() const override final
97 {
98 return m_duration;
99 }
100
106 [[nodiscard]] Real get_final_time() const override final
107 {
108 return m_start_time + m_duration;
109 }
110
111private:
112 Real m_start_time = 0.0;
113 Real m_duration = 0.0;
114
115 QuinticCoeffs m_coeffs = {};
116};
117
122} // namespace fsb
123
124#endif
Quintic trajectory.
Definition fsb_quintic.h:39
Real get_start_time() const override final
Get start time of segment.
Definition fsb_quintic.h:86
TrajState get_initial_state() const override final
Get initial state of segment.
Definition fsb_quintic.h:77
bool generate(Real start_time, Real duration, const TrajState &initial_state, const TrajState &final_state)
Generate spline.
Definition fsb_quintic.cpp:94
Real get_duration() const override final
Get total duration.
Definition fsb_quintic.h:96
TrajState evaluate(Real t_eval) const override final
Evaluate position, velocity, acceleration, and jerk.
Definition fsb_quintic.cpp:111
Real get_final_time() const override final
Get final time of trajectory.
Definition fsb_quintic.h:106
TrajState get_final_state() const override final
Get final state of segment.
Definition fsb_quintic.h:68
Abstract class for segments.
Definition fsb_trajectory_types.h:67
constexpr Real kQuinticMinDuration
Minimum duration for a quintic trajectory.
Definition fsb_quintic.h:20
Coefficients of a quintic polynomial.
Definition fsb_quintic.h:26
Real c2
Quadratic term.
Definition fsb_quintic.h:29
Real c0
Constant term.
Definition fsb_quintic.h:27
Real c1
Linear term.
Definition fsb_quintic.h:28
Real c5
Quintic term.
Definition fsb_quintic.h:32
Real c3
Cubic term.
Definition fsb_quintic.h:30
Real c4
Quartic term.
Definition fsb_quintic.h:31
Trajectory scalar motion state.
Definition fsb_trajectory_types.h:20