24#include "modules/common_msgs/basic_msgs/pnc_point.pb.h"
37double Normalize(
const double value,
const double mean,
const double std);
44double Relu(
const double value);
51std::vector<double>
Softmax(
const std::vector<double>& value,
61 std::pair<double, double>* roots);
70 const double t,
const uint32_t order,
71 const double end_t,
const double end_v);
80 const double t,
const uint32_t order,
81 const double end_t,
const double end_v);
92 const std::array<double, 4>& coefs,
const double t,
const uint32_t order,
93 const double end_t = std::numeric_limits<double>::infinity(),
94 const double end_v = 0.0);
96template <std::
size_t N>
98 const std::array<double, N - 1>& start_state,
99 const std::array<double, N - 1>& end_state,
const double param);
103 const std::array<double, 2>& start_state,
104 const std::array<double, 2>& end_state,
const double param) {
105 std::array<double, 4> coefs;
106 coefs[0] = start_state[0];
107 coefs[1] = start_state[1];
109 auto m0 = end_state[0] - start_state[0] - start_state[1] * param;
110 auto m1 = end_state[1] - start_state[1];
112 auto param_p3 = param * param * param;
113 coefs[3] = (m1 * param - 2.0 * m0) / param_p3;
115 coefs[2] = (m1 - 3.0 * coefs[3] * param * param) / param * 0.5;
119double GetSByConstantAcceleration(
const double v0,
const double acceleration,
124namespace predictor_util {
131void TranslatePoint(
const double translate_x,
const double translate_y,
145 Eigen::Matrix<double, 6, 1>* state,
146 const Eigen::Matrix<double, 6, 6>& transition,
double theta,
147 const double start_time,
const std::size_t num,
const double period,
148 std::vector<common::TrajectoryPoint>* points);
double EvaluateQuarticPolynomial(const std::array< double, 5 > &coeffs, const double t, const uint32_t order, const double end_t, const double end_v)
Evaluate quartic polynomial.
double EvaluateQuinticPolynomial(const std::array< double, 6 > &coeffs, const double t, const uint32_t order, const double end_t, const double end_v)
Evaluate quintic polynomial.
double EvaluateCubicPolynomial(const std::array< double, 4 > &coefs, const double t, const uint32_t order, const double end_t, const double end_v)
Evaluate cubic polynomial.
double Relu(const double value)
RELU function used in neural networks as an activation function.
std::array< double, 2 *N - 2 > ComputePolynomial(const std::array< double, N - 1 > &start_state, const std::array< double, N - 1 > &end_state, const double param)
std::vector< double > Softmax(const std::vector< double > &value, bool use_exp)
Softmax function used in neural networks as an activation function.
std::array< double, 4 > ComputePolynomial< 3 >(const std::array< double, 2 > &start_state, const std::array< double, 2 > &end_state, const double param)
int SolveQuadraticEquation(const std::vector< double > &coefficients, std::pair< double, double > *roots)
Solve quadratic equation.
double Normalize(const double value, const double mean, const double std)
Normalize the value by specified mean and standard deviation.
double AdjustSpeedByCurvature(const double speed, const double curvature)
Adjust a speed value according to a curvature.
void GenerateFreeMoveTrajectoryPoints(Eigen::Matrix< double, 6, 1 > *state, const Eigen::Matrix< double, 6, 6 > &transition, double theta, const double start_time, const std::size_t num, const double period, std::vector< TrajectoryPoint > *points)
Generate a set of free move trajectory points
void TranslatePoint(const double translate_x, const double translate_y, TrajectoryPoint *point)
Translate a point.