ReedsSheppPath reedsShepp(double q0[3], double q1[3]);
protected:
- void interpolate(double q0[3], ReedsSheppPath &path, double seg, double q[3]);
+ void interpolate(double q0[3], ReedsSheppPath &path, double seg, double q[4]);
/** \brief Turning radius */
double rho_;
double dist = rho_ * path.length();
for (double seg=0.0; seg<=dist; seg+=step_size){
- double qnew[3] = {};
+ double qnew[4] = {};
interpolate(q0, path, seg/rho_, qnew);
cb( qnew, user_data);
}
return;
}
-void ReedsSheppStateSpace::interpolate(double q0[3], ReedsSheppPath &path, double seg, double s[3])
+void ReedsSheppStateSpace::interpolate(double q0[3], ReedsSheppPath &path, double seg, double s[4])
{
if (seg < 0.0) seg = 0.0;
s[0] = s[0] * rho_ + q0[0];
s[1] = s[1] * rho_ + q0[1];
+ s[3] = v;
}
return nv;
}
-int cb_rs_steer(double q[3], void *user_data)
+int cb_rs_steer(double q[4], void *user_data)
{
std::vector<RRTNode> *nodes = (std::vector<RRTNode> *) user_data;
nodes->push_back(RRTNode());
nodes->back().x(q[0]);
nodes->back().y(q[1]);
nodes->back().h(q[2]);
+ nodes->back().sp(q[3]);
return 0;
}