Skip to content
Snippets Groups Projects
Commit ffe80971 authored by Florent Lamiraux's avatar Florent Lamiraux
Browse files

[TransitionPlanner] Use Reeds and Shepp Parameterization when relevant.

parent 0b60bc2b
No related branches found
No related tags found
No related merge requests found
...@@ -162,6 +162,8 @@ class HPP_MANIPULATION_DLLAPI TransitionPlanner : public core::PathPlanner { ...@@ -162,6 +162,8 @@ class HPP_MANIPULATION_DLLAPI TransitionPlanner : public core::PathPlanner {
PathPlannerPtr_t innerPlanner_; PathPlannerPtr_t innerPlanner_;
/// Vector of optimizers to call after solve /// Vector of optimizers to call after solve
std::vector<PathOptimizerPtr_t> pathOptimizers_; std::vector<PathOptimizerPtr_t> pathOptimizers_;
/// Time parameterization instance
core::PathOptimizerPtr_t timeParameterization_;
/// weak pointer to itself /// weak pointer to itself
TransitionPlannerWkPtr_t weakPtr_; TransitionPlannerWkPtr_t weakPtr_;
}; // class TransitionPlanner }; // class TransitionPlanner
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <hpp/core/constraint-set.hh> #include <hpp/core/constraint-set.hh>
#include <hpp/core/distance/reeds-shepp.hh> #include <hpp/core/distance/reeds-shepp.hh>
#include <hpp/core/joint-bound-validation.hh> #include <hpp/core/joint-bound-validation.hh>
#include <hpp/core/path-optimization/rs-time-parameterization.hh>
#include <hpp/core/path-optimization/simple-time-parameterization.hh> #include <hpp/core/path-optimization/simple-time-parameterization.hh>
#include <hpp/core/path-optimizer.hh> #include <hpp/core/path-optimizer.hh>
#include <hpp/core/path-planner/bi-rrt-star.hh> #include <hpp/core/path-planner/bi-rrt-star.hh>
...@@ -159,10 +160,7 @@ core::PathVectorPtr_t TransitionPlanner::optimizePath(const PathPtr_t& path) { ...@@ -159,10 +160,7 @@ core::PathVectorPtr_t TransitionPlanner::optimizePath(const PathPtr_t& path) {
core::PathVectorPtr_t TransitionPlanner::timeParameterization( core::PathVectorPtr_t TransitionPlanner::timeParameterization(
const PathVectorPtr_t& path) { const PathVectorPtr_t& path) {
core::PathOptimizerPtr_t tp( return timeParameterization_->optimize(path);
core::pathOptimization::SimpleTimeParameterization::create(
innerProblem_));
return tp->optimize(path);
} }
void TransitionPlanner::setEdge(std::size_t id) { void TransitionPlanner::setEdge(std::size_t id) {
...@@ -188,6 +186,8 @@ void TransitionPlanner::setReedsAndSheppSteeringMethod(double turningRadius) { ...@@ -188,6 +186,8 @@ void TransitionPlanner::setReedsAndSheppSteeringMethod(double turningRadius) {
core::DistancePtr_t dist(core::distance::ReedsShepp::create(innerProblem_)); core::DistancePtr_t dist(core::distance::ReedsShepp::create(innerProblem_));
innerProblem_->steeringMethod(sm); innerProblem_->steeringMethod(sm);
innerProblem_->distance(dist); innerProblem_->distance(dist);
timeParameterization_ = core::pathOptimization::RSTimeParameterization::create(
innerProblem_);
} }
void TransitionPlanner::pathProjector(const PathProjectorPtr_t pathProjector) { void TransitionPlanner::pathProjector(const PathProjectorPtr_t pathProjector) {
...@@ -233,6 +233,9 @@ TransitionPlanner::TransitionPlanner(const core::ProblemConstPtr_t& problem, ...@@ -233,6 +233,9 @@ TransitionPlanner::TransitionPlanner(const core::ProblemConstPtr_t& problem,
// Create default path planner // Create default path planner
innerPlanner_ = hpp::core::pathPlanner::BiRrtStar::createWithRoadmap( innerPlanner_ = hpp::core::pathPlanner::BiRrtStar::createWithRoadmap(
innerProblem_, roadmap); innerProblem_, roadmap);
// Create default time parameterization
timeParameterization_ = core::pathOptimization::SimpleTimeParameterization::create(
innerProblem_);
} }
void TransitionPlanner::init(TransitionPlannerWkPtr_t weak) { void TransitionPlanner::init(TransitionPlannerWkPtr_t weak) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment