1 #ifndef TRAJECTORYFOLLOWER_HPP
2 #define TRAJECTORYFOLLOWER_HPP
7 namespace trajectory_follower
19 virtual Motion2D&
update(
double speed,
double distanceError,
double angleError,
double curvature,
double variationOfCurvature) =0;
20 virtual void reset() =0;
32 l1 = base::unset<double>();
33 K0 = base::unset<double>();
41 throw std::runtime_error(
"l1 value must be greater than zero.");
46 throw std::runtime_error(
"K0 value must be greater than zero.");
54 virtual Motion2D&
update(
double speed,
double distanceError,
double angleError,
double curvature,
double variationOfCurvature);
66 K0 = base::unset<double>();
67 K2 = base::unset<double>();
68 K3 = base::unset<double>();
74 if (config.
K2 <= 0 || config.
K3 <= 0)
76 throw std::runtime_error(
"K2 & K3 value must be greater than zero.");
79 if (config.
K0 <= 0 || base::isUnset< double >(config.
K0))
81 std::cout <<
"ChainedController disabling integral" << std::endl;
95 virtual Motion2D&
update(
double speed,
double distanceError,
double angleError,
double curvature,
double variationOfCurvature);
97 controllerIntegral = 0.;
102 double controllerIntegral;
110 K2 = base::unset<double>();
111 K3 = base::unset<double>();
117 if(config.
K2 <= 0 || config.
K3 <= 0)
119 throw std::runtime_error(
"K2 & K3 value must be greater than zero.");
127 virtual Motion2D&
update(
double speed,
double distanceError,
double angleError,
double curvature,
double variationOfCurvature);
187 double pointTurnDirection;
189 double dampingCoefficient;
190 base::Pose currentPose;
193 double currentCurveParameter;
194 double distanceError;
195 double angleError, lastAngleError;
197 double splineReferenceErrorCoefficient;
207 #endif // TRAJECTORYFOLLOWER_HPP
NoOrientationController()
Definition: TrajectoryFollower.hpp:29
virtual Motion2D & update(double speed, double distanceError, double angleError, double curvature, double variationOfCurvature)
Definition: TrajectoryFollower.cpp:34
Definition: TrajectoryFollowerTypes.hpp:18
const FollowerData & getData()
Definition: TrajectoryFollower.hpp:177
Definition: TrajectoryFollower.hpp:138
Definition: TrajectoryFollowerTypes.hpp:65
Definition: TrajectoryFollowerTypes.hpp:51
virtual Motion2D & update(double speed, double distanceError, double angleError, double curvature, double variationOfCurvature)
Definition: TrajectoryFollower.cpp:68
Motion2D motionCommand
Definition: TrajectoryFollower.hpp:24
double l1
Position of reference point P(l1,0) on the robot chassis such that l1u1 > 0.
Definition: TrajectoryFollowerTypes.hpp:37
void computeErrors(const base::Pose &robotPose)
Definition: TrajectoryFollower.cpp:174
Definition: TrajectoryFollowerTypes.hpp:78
virtual Motion2D & update(double speed, double distanceError, double angleError, double curvature, double variationOfCurvature)
Definition: NoOrientationController.cpp:52
Definition: TrajectoryFollower.hpp:61
Controller()
Definition: TrajectoryFollower.hpp:12
void removeTrajectory()
Definition: TrajectoryFollower.hpp:162
bool configured
Definition: TrajectoryFollower.hpp:23
SamsonController(const SamsonControllerConfig &config)
Definition: TrajectoryFollower.hpp:114
double K2
Controller constant.
Definition: TrajectoryFollowerTypes.hpp:54
ChainedController(const ChainedControllerConfig &config)
Definition: TrajectoryFollower.hpp:71
Definition: TrajectoryFollower.hpp:10
virtual void reset()
Definition: TrajectoryFollower.hpp:128
virtual void reset()
Definition: TrajectoryFollower.hpp:96
SamsonController()
Definition: TrajectoryFollower.hpp:107
Definition: SubTrajectory.hpp:13
virtual Motion2D & update(double speed, double distanceError, double angleError, double curvature, double variationOfCurvature)=0
void setNewTrajectory(const SubTrajectory &trajectory, const base::Pose &robotPose)
Definition: TrajectoryFollower.cpp:140
double K2
Definition: TrajectoryFollowerTypes.hpp:67
Definition: TrajectoryFollower.hpp:105
ChainedController()
Definition: TrajectoryFollower.hpp:63
Definition: TrajectoryFollower.hpp:27
virtual ~Controller()
Definition: TrajectoryFollower.cpp:8
Definition: Motion2D.hpp:17
double K0
Integrator constant.
Definition: TrajectoryFollowerTypes.hpp:53
double K3
Controller constant.
Definition: TrajectoryFollowerTypes.hpp:55
Definition: TrajectoryFollowerTypes.hpp:124
ControllerType
Definition: TrajectoryFollowerTypes.hpp:26
double K3
Definition: TrajectoryFollowerTypes.hpp:68
FollowerStatus
Definition: TrajectoryFollowerTypes.hpp:15
FollowerStatus traverseTrajectory(Motion2D &motionCmd, const base::Pose &robotPose)
Definition: TrajectoryFollower.cpp:233
double K0
Constant for the calculation of k(d, theta_e)
Definition: TrajectoryFollowerTypes.hpp:38
Definition: TrajectoryFollowerTypes.hpp:35
TrajectoryFollower()
Definition: TrajectoryFollower.cpp:92
bool checkTurnOnSpot()
Definition: TrajectoryFollower.cpp:365
NoOrientationController(const NoOrientationControllerConfig &config)
Definition: TrajectoryFollower.hpp:36
virtual void reset()
Definition: TrajectoryFollower.hpp:55