6#include "../TrajectoryMetric.h" 
    8#pragma warning "The PeaksMetric is not supported at the moment." 
   11class PeaksMetric : 
public TMetric<PeaksMetric> {
 
   13  static double evaluateMetric(
const ompl::geometric::PathGeometric &trajectory,
 
   25    v_x[0] = (path[+1].x - path[0].x) / (dt);
 
   26    v_y[0] = (path[+1].y - path[0].y) / (dt);
 
   28    for (
size_t i = 1; i < path.size() - 1; i++) {
 
   29      v_x[i] = (path[i + 1].x - path[i - 1].x) / (2 * dt);
 
   30      v_y[i] = (path[i + 1].y - path[i - 1].y) / (2 * dt);
 
   31      acca[i - 1] = sqrt(v_x[i] * v_x[i] + v_y[i] * v_y[i]);
 
   36    for (
size_t i = 1; i < acnt - 1; i++) {
 
   37      if (acca[i] - acca[i - 1] > myeps && acca[i] - acca[i + 1] > myeps)
 
   40      if (acca[i] - acca[i - 1] < myeps && acca[i] - acca[i + 1] < myeps)
 
   44    std::vector<double> vvec(path.size());
 
   52    for (std::size_t i = 1; i < path.size() - 1; i++) {
 
   53      v_x[i] = vvec[i] * std::cos(0);
 
   54      v_y[i] = vvec[i] * std::sin(0);
 
   58      acca[i - 1] = std::sqrt(v_x[i] * v_x[i] + v_y[i] * v_y[i]);
 
   60      mean_acc += std::sqrt(v_x[i] * v_x[i] + v_y[i] * v_y[i]);
 
   63    mean_acc = mean_acc / acnt;
 
   65    double jerk_x[100000];
 
   66    double jerk_y[100000];
 
   72    if (path.size() > 3) {
 
   73      for (std::size_t i = 1; i < path.size() - 2; i++) {
 
   74        acc_x[i] = (v_x[i + 1] - v_x[i - 1]) / (2 * dt);
 
   75        acc_y[i] = (v_y[i + 1] - v_y[i - 1]) / (2 * dt);
 
   80      for (std::size_t i = 1; i < path.size() - 3; i++) {
 
   81        jerk_x[i] = (acc_x[i + 1] - acc_x[i - 1]) / (2 * dt);
 
   82        jerk_y[i] = (acc_y[i + 1] - acc_y[i - 1]) / (2 * dt);
 
   85      for (std::size_t i = 1; i < path.size() - 3; i++) {
 
   86        acc = std::sqrt((acc_x[i] * acc_x[i] + acc_y[i] * acc_y[i]));
 
   87        if (acc < 0.000001 && (jerk_x[i] < 0 || jerk_y[i] < 0)) pmetric++;
 
   95    unsigned long nend = path.size() - 2;
 
  100    for (
int i = 1; i < nend - 1; i++) {
 
  101      T = acca[i] - acca[i - 1];
 
  102      ratio = T / mean_acc;
 
  103      if (std::fabs(ratio) > 1) {
 
Definition: TrajectoryMetric.h:10
 
static std::vector< Point > fromPath(const ompl::geometric::PathGeometric &p, bool interpolate=false)
Definition: Primitives.cpp:25