1 #ifndef ENCIRCLE_TRAJECTORY_FACTORY_H
2 #define ENCIRCLE_TRAJECTORY_FACTORY_H
7 #include <bb_controls_msgs/srv/encircle_traj.hpp>
22 using Request = bb_controls_msgs::srv::EncircleTraj::Request;
59 std::unique_ptr<TrajectoryBase>
build()
override;
63 std::shared_ptr<Trajectory6DOFLimits> limits_;
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;
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