15 #ifndef GEOMETRY__SPLINE__HERMITE_CURVE_HPP_
16 #define GEOMETRY__SPLINE__HERMITE_CURVE_HPP_
18 #include <gtest/gtest.h>
21 #include <geometry_msgs/msg/point.hpp>
22 #include <geometry_msgs/msg/pose.hpp>
23 #include <geometry_msgs/msg/vector3.hpp>
53 const geometry_msgs::msg::Pose & start_pose,
const geometry_msgs::msg::Pose & goal_pose,
54 const geometry_msgs::msg::Vector3 & start_vec,
const geometry_msgs::msg::Vector3 & goal_vec);
56 double ax,
double bx,
double cx,
double dx,
double ay,
double by,
double cy,
double dy,
57 double az,
double bz,
double cz,
double dz);
58 std::vector<geometry_msgs::msg::Point>
getTrajectory(
size_t num_points = 30)
const;
60 double start_s,
double end_s,
double resolution,
bool denormalize_s =
false)
const;
61 const geometry_msgs::msg::Pose
getPose(
62 double s,
bool denormalize_s =
false,
bool fill_pitch =
true)
const;
63 const geometry_msgs::msg::Point
getPoint(
double s,
bool denormalize_s =
false)
const;
64 const geometry_msgs::msg::Vector3
getTangentVector(
double s,
bool denormalize_s =
false)
const;
65 const geometry_msgs::msg::Vector3
getNormalVector(
double s,
bool denormalize_s =
false)
const;
68 double getLength(
size_t num_points)
const;
71 const geometry_msgs::msg::Pose & pose,
double threshold_distance = 3.0,
72 bool denormalize_s =
false)
const;
74 const geometry_msgs::msg::Point & point,
double s,
bool denormalize_s =
false)
const;
76 const geometry_msgs::msg::Point & point,
double s,
bool denormalize_s =
false)
const;
78 const geometry_msgs::msg::Point & point0,
const geometry_msgs::msg::Point & point1,
79 bool search_backward =
false,
bool denormalize_s =
false)
const;
81 const geometry_msgs::msg::Point & point0,
const geometry_msgs::msg::Point & point1,
82 bool search_backward =
false,
bool denormalize_s =
false)
const;
84 const std::vector<geometry_msgs::msg::Point> & polygon,
bool search_backward =
false,
85 bool close_start_end =
true,
bool denormalize_s =
false)
const;
87 const std::vector<geometry_msgs::msg::Point> & polygon,
bool search_backward =
false,
88 bool close_start_end =
true,
bool denormalize_s =
false)
const;
91 std::pair<double, double> get2DMinMaxCurvatureValue()
const;
Definition: hermite_curve.hpp:32
const geometry_msgs::msg::Point getPoint(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:367
const geometry_msgs::msg::Pose getPose(double s, bool denormalize_s=false, bool fill_pitch=true) const
Definition: hermite_curve.cpp:283
const geometry_msgs::msg::Vector3 getNormalVector(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:257
friend class HermiteCurveTest
Definition: hermite_curve.hpp:34
geometry_msgs::msg::Vector3 getSquaredDistanceVector(const geometry_msgs::msg::Point &point, double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:76
double get2DCurvature(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:300
std::vector< geometry_msgs::msg::Point > getTrajectory(size_t num_points=30) const
Definition: hermite_curve.cpp:243
HermiteCurve(const geometry_msgs::msg::Pose &start_pose, const geometry_msgs::msg::Pose &goal_pose, const geometry_msgs::msg::Vector3 &start_vec, const geometry_msgs::msg::Vector3 &goal_vec)
Definition: hermite_curve.cpp:50
double getLength() const
Definition: hermite_curve.hpp:69
std::optional< double > getSValue(const geometry_msgs::msg::Pose &pose, double threshold_distance=3.0, bool denormalize_s=false) const
Definition: hermite_curve.cpp:202
double getMaximum2DCurvature() const
Definition: hermite_curve.cpp:335
const geometry_msgs::msg::Vector3 getTangentVector(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:270
double getSquaredDistanceIn2D(const geometry_msgs::msg::Point &point, double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:69
std::set< double > getCollisionPointsIn2D(const geometry_msgs::msg::Point &point0, const geometry_msgs::msg::Point &point1, bool search_backward=false, bool denormalize_s=false) const
Definition: hermite_curve.cpp:123
std::optional< double > getCollisionPointIn2D(const geometry_msgs::msg::Point &point0, const geometry_msgs::msg::Point &point1, bool search_backward=false, bool denormalize_s=false) const
Definition: hermite_curve.cpp:188
Definition: polynomial_solver.hpp:26
Definition: bounding_box.hpp:32