}
}
+BicycleCar *ParallelSlot::getFP()
+{
+ float x = this->slot().bnodes()[3]->x();
+ float y = this->slot().bnodes()[3]->y();
+ float h = this->slotHeading();
+ float nx;
+ float ny;
+ if (this->slotSide() == LEFT) {
+ nx = x + BCAR_WIDTH / 2 * cos(h + M_PI / 2);
+ ny = y + BCAR_WIDTH / 2 * sin(h + M_PI / 2);
+ } else {
+ nx = x + BCAR_WIDTH / 2 * cos(h - M_PI / 2);
+ ny = y + BCAR_WIDTH / 2 * sin(h - M_PI / 2);
+ }
+ x = nx + ((BCAR_LENGTH - BCAR_WHEEL_BASE) / 2 + 0.01) * cos(h);
+ y = ny + ((BCAR_LENGTH - BCAR_WHEEL_BASE) / 2 + 0.01) * sin(h);
+ return new BicycleCar(x, y, h);
+}
+
bool ParallelSlot::isInside(BicycleCar *c)
{
bool inside = true;
);
/** Test possible init poses */
void fpose();
+ /** Return start pose for fipr method */
+ BicycleCar *getFP();
/** Return true if car is inside slot */
bool isInside(BicycleCar *c);
/** Return values to set sampling function of RRT */