controls  3.0.0
EncircleTrajectoryFactory.h
Go to the documentation of this file.
1 #ifndef ENCIRCLE_TRAJECTORY_FACTORY_H
2 #define ENCIRCLE_TRAJECTORY_FACTORY_H
3 
6 
7 #include <bb_controls_msgs/srv/encircle_traj.hpp>
8 #include <memory>
9 #include <string>
10 
21 public:
22  using Request = bb_controls_msgs::srv::EncircleTraj::Request;
23 
34  EncircleTrajectoryFactory(const Request& req, const State& origin, std::shared_ptr<Trajectory6DOFLimits> limits);
35 
44 
52  EncircleTrajectoryFactory& with_frame_id(const std::string& frame_id);
53 
59  std::unique_ptr<TrajectoryBase> build() override;
60 
61 private:
62  State origin_;
63  std::shared_ptr<Trajectory6DOFLimits> limits_;
64  double radius_ = 0.0;
65  double turn_angle_ = 0.0;
66  double tangent_offset_ = 0.0;
67  double spiral_proportion_ = 1.0;
68  double origin_twist_norm_threshold_ = 0.03;
69  std::string frame_id_ = "world_ned";
70  bool is_valid_ = true;
71 };
72 
73 #endif // ENCIRCLE_TRAJECTORY_FACTORY_H
Factory that builds circular arc (encircle) trajectories.
Definition: EncircleTrajectoryFactory.h:20
bb_controls_msgs::srv::EncircleTraj::Request Request
Definition: EncircleTrajectoryFactory.h:22
EncircleTrajectoryFactory & with_frame_id(const std::string &frame_id)
Sets the TF world frame ID embedded in visualisation messages.
Definition: EncircleTrajectoryFactory.cpp:42
EncircleTrajectoryFactory & with_origin_twist_threshold(double max_norm)
Sets the origin twist norm threshold below which the initial twist is zeroed.
Definition: EncircleTrajectoryFactory.cpp:37
EncircleTrajectoryFactory(const Request &req, const State &origin, std::shared_ptr< Trajectory6DOFLimits > limits)
Constructs the factory from an EncircleTraj service request.
Definition: EncircleTrajectoryFactory.cpp:9
std::unique_ptr< TrajectoryBase > build() override
Builds and returns the configured encircle trajectory.
Definition: EncircleTrajectoryFactory.cpp:47
Abstract factory interface for constructing TrajectoryBase instances.
Definition: TrajectoryFactoryInterface.h:15
Full kinematic state of the vehicle.
Definition: Types.h:63