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#include "fsb_trajectory_segment.h"
8
9namespace fsb
10{
11
21constexpr real_t QUINTIC_MIN_DURATION = 1e-6;
22
27{
28 real_t c0 = 0.0;
29 real_t c1 = 0.0;
30 real_t c2 = 0.0;
31 real_t c3 = 0.0;
32 real_t c4 = 0.0;
33 real_t c5 = 0.0;
34};
35
39class QuinticTrajectory final : public Segment
40{
41public:
42 QuinticTrajectory() = default;
43
53 bool generate(
54 real_t start_time, real_t duration, const TrajState& initial_state,
55 const TrajState& final_state);
56
63 [[nodiscard]] TrajState evaluate(real_t t_eval) const override;
64
69 [[nodiscard]] TrajState get_final_state() const override
70 {
71 return evaluate(m_start_time + m_duration);
72 }
73
78 [[nodiscard]] real_t get_start_time() const override
79 {
80 return m_start_time;
81 }
82
88 [[nodiscard]] real_t get_duration() const override
89 {
90 return m_duration;
91 }
92
98 [[nodiscard]] real_t get_final_time() const override
99 {
100 return m_start_time + m_duration;
101 }
102
103private:
104 real_t m_start_time = 0.0;
105 real_t m_duration = 0.0;
106
107 QuinticCoeffs m_coeffs = {};
108};
109
114} // namespace fsb
115
116#endif
Quintic trajectory.
Definition fsb_quintic.h:40
TrajState evaluate(real_t t_eval) const override
Evaluate position, velocity, acceleration, and jerk.
Definition fsb_quintic.cpp:110
TrajState get_final_state() const override
Get final state of segment.
Definition fsb_quintic.h:69
real_t get_final_time() const override
Get final time of trajectory.
Definition fsb_quintic.h:98
real_t get_duration() const override
Get total duration.
Definition fsb_quintic.h:88
real_t get_start_time() const override
Get start time of segment.
Definition fsb_quintic.h:78
bool generate(real_t start_time, real_t duration, const TrajState &initial_state, const TrajState &final_state)
Generate spline.
Definition fsb_quintic.cpp:93
Abstract class for scalar motion.
Definition fsb_trajectory_segment.h:48
constexpr real_t QUINTIC_MIN_DURATION
Minimum duration for a quintic trajectory.
Definition fsb_quintic.h:21
Coefficients of a quintic polynomial.
Definition fsb_quintic.h:27
real_t c5
Quintic term.
Definition fsb_quintic.h:33
real_t c2
Quadratic term.
Definition fsb_quintic.h:30
real_t c0
Constant term.
Definition fsb_quintic.h:28
real_t c4
Quartic term.
Definition fsb_quintic.h:32
real_t c3
Cubic term.
Definition fsb_quintic.h:31
real_t c1
Linear term.
Definition fsb_quintic.h:29
Trajectory scalar motion state.
Definition fsb_trajectory_types.h:18