FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_cubic.h
1
2#ifndef FSB_CUBIC_H
3#define FSB_CUBIC_H
4
5#include "fsb_types.h"
6#include "fsb_trajectory_types.h"
7
8namespace fsb
9{
10
20constexpr Real kCubicMinDuration = 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};
32
36class CubicTrajectory final : public Segment
37{
38public:
39 CubicTrajectory() = default;
40
51 Real start_time, Real duration, const TrajState& initial_state,
52 const TrajState& final_state);
53
61 void set_coeffs(Real start_time, Real duration, const CubicCoeffs& coeffs);
62
69 [[nodiscard]] TrajState evaluate(Real t_eval) const override;
70
75 [[nodiscard]] TrajState get_final_state() const override
76 {
77 return evaluate(m_start_time + m_duration);
78 }
79
84 [[nodiscard]] Real get_start_time() const override
85 {
86 return m_start_time;
87 }
88
94 [[nodiscard]] Real get_duration() const override
95 {
96 return m_duration;
97 }
98
104 [[nodiscard]] Real get_final_time() const override
105 {
106 return m_start_time + m_duration;
107 }
108
109private:
110 Real m_start_time = 0.0;
111 Real m_duration = 0.0;
112
113 CubicCoeffs m_coeffs = {};
114};
115
120} // namespace fsb
121
122#endif
Cubic trajectory.
Definition fsb_cubic.h:37
bool generate(Real start_time, Real duration, const TrajState &initial_state, const TrajState &final_state)
Generate spline.
Real get_duration() const override
Get total duration.
Definition fsb_cubic.h:94
Real get_final_time() const override
Get final time of trajectory.
Definition fsb_cubic.h:104
Real get_start_time() const override
Get start time of segment.
Definition fsb_cubic.h:84
void set_coeffs(Real start_time, Real duration, const CubicCoeffs &coeffs)
Set coefficients of the cubic trajectory.
TrajState get_final_state() const override
Get final state of segment.
Definition fsb_cubic.h:75
TrajState evaluate(Real t_eval) const override
Evaluate position, velocity, acceleration, and jerk.
Abstract class for scalar motion.
Definition fsb_trajectory_types.h:93
constexpr Real kCubicMinDuration
Minimum duration for a cubic trajectory.
Definition fsb_cubic.h:20
Coefficients of a cubic polynomial.
Definition fsb_cubic.h:26
Real c0
Constant term.
Definition fsb_cubic.h:27
Real c3
Cubic term.
Definition fsb_cubic.h:30
Real c2
Quadratic term.
Definition fsb_cubic.h:29
Real c1
Linear term.
Definition fsb_cubic.h:28
Trajectory scalar motion state.
Definition fsb_trajectory_types.h:20