FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_trapezoidal_position.h
1#ifndef FSB_TRAPEZOIDAL_POSITION_H
2#define FSB_TRAPEZOIDAL_POSITION_H
3
4#include "fsb_types.h"
5#include "fsb_trajectory_types.h"
6#include "fsb_trajectory_segment.h"
7#include "fsb_trapezoidal_velocity.h"
8
9namespace fsb
10{
11
21{
22public:
23 TrapezoidalPosition() = default;
24
36 Real start_time, Real initial_position, Real final_position,
37 Real max_velocity, Real max_acceleration, Real max_jerk);
38
53 Real start_time, Real initial_position, Real final_position,
54 Real initial_velocity, Real final_velocity,
55 Real max_velocity, Real max_acceleration, Real max_jerk);
56
63 [[nodiscard]] TrajState evaluate(Real t_eval) const override final;
64
69 [[nodiscard]] TrajState get_final_state() const override final
70 {
71 return evaluate(m_start_time + m_total_duration);
72 }
73
78 [[nodiscard]] TrajState get_initial_state() const override final
79 {
80 return evaluate(m_start_time);
81 }
82
87 [[nodiscard]] Real get_start_time() const override final
88 {
89 return m_start_time;
90 }
91
97 [[nodiscard]] Real get_duration() const override final
98 {
99 return m_total_duration;
100 }
101
107 [[nodiscard]] Real get_final_time() const override final
108 {
109 return m_start_time + m_total_duration;
110 }
111
112private:
113 Real m_start_time = 0.0;
114 Real m_total_duration = 0.0;
115
116 TrapezoidalVelocity m_accel_ramp;
117 SegmentConstVel m_cruise;
118 TrapezoidalVelocity m_decel_ramp;
119 SegmentConstVel m_seg_extrapolate;
120
121 TrajState m_initial_state = {};
122 TrajState m_final_state = {};
123};
124
129} // namespace fsb
130
131#endif
Constant velocity profile.
Definition fsb_trajectory_segment.h:184
Abstract class for segments.
Definition fsb_trajectory_types.h:67
Definition fsb_trapezoidal_position.h:21
TrapezoidalStatus generate(Real start_time, Real initial_position, Real final_position, Real max_velocity, Real max_acceleration, Real max_jerk)
Goto target position.
Definition fsb_trapezoidal_position.cpp:10
TrajState evaluate(Real t_eval) const override final
Evaluate trajectory.
Definition fsb_trapezoidal_position.cpp:150
Real get_final_time() const override final
Get final time of trajectory.
Definition fsb_trapezoidal_position.h:107
TrajState get_final_state() const override final
Get final state of segment.
Definition fsb_trapezoidal_position.h:69
TrapezoidalStatus generate(Real start_time, Real initial_position, Real final_position, Real initial_velocity, Real final_velocity, Real max_velocity, Real max_acceleration, Real max_jerk)
Goto target position with initial and final velocities.
TrajState get_initial_state() const override final
Get initial state of segment.
Definition fsb_trapezoidal_position.h:78
Real get_start_time() const override final
Get start time of segment.
Definition fsb_trapezoidal_position.h:87
Real get_duration() const override final
Get total duration.
Definition fsb_trapezoidal_position.h:97
Definition fsb_trapezoidal_velocity.h:70
TrapezoidalStatus
Result of attempting to compute trapezoidal trajectory.
Definition fsb_trapezoidal_velocity.h:21
Trajectory scalar motion state.
Definition fsb_trajectory_types.h:20