6#include "../TrajectoryMetric.h" 
    8#pragma warning "The JerkMetric is not supported at the moment." 
   11class JerkMetric : 
public TMetric<JerkMetric> {
 
   13  static double evaluateMetric(
const ompl::geometric::PathGeometric &trajectory,
 
   32    unsigned long vsize = trajectory->getV().size();
 
   33    double *vel = 
new double[vsize];
 
   34    for (
auto vi : trajectory->getV()) {
 
   41    for (
int k = 0; k < vsize; k++) {
 
   42      if (vel[k] > vel[maxV]) maxV = k;
 
   48    if (path.size() > 3) {
 
   49      for (std::size_t i = 0; i < path.size() - 1; i++) {
 
   50        v_x[i] = (path[i + 1].x - path[i].x);
 
   51        v_y[i] = (path[i + 1].y - path[i].y);
 
   54      for (std::size_t i = 0; i < path.size() - 2; i++) {
 
   55        acc_x[i] = (v_x[i + 1] - v_x[i]);
 
   56        acc_y[i] = (v_y[i + 1] - v_y[i]);
 
   61      for (std::size_t i = 1; i < path.size() - 3; i++) {
 
   62        jerk_x[i] = (acc_x[i + 1] - acc_x[i - 1]) / (2 * dt);
 
   63        jerk_y[i] = (acc_y[i + 1] - acc_y[i - 1]) / (2 * dt);
 
   66      for (std::size_t i = 1; i < path.size() - 3; i++) {
 
   68            std::sqrt(jerk_x[i] * jerk_x[i] + jerk_y[i] * jerk_y[i]) * dt);
 
   71      jerk_ = -pjerk / (T * Vmax);
 
   82  static const bool MoreIsBetter = 
false;
 
Definition: TrajectoryMetric.h:10
 
static std::vector< Point > fromPath(const ompl::geometric::PathGeometric &p, bool interpolate=false)
Definition: Primitives.cpp:25