From 8a0dda20b9126a392780e62eeede7da28791c964 Mon Sep 17 00:00:00 2001 From: Joseph Mirabel <jmirabel@laas.fr> Date: Thu, 8 Oct 2015 16:56:14 +0200 Subject: [PATCH] Add optimizer Graph-ConfigOptimization --- include/hpp/manipulation/graph-optimizer.hh | 6 +++--- src/problem-solver.cc | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/include/hpp/manipulation/graph-optimizer.hh b/include/hpp/manipulation/graph-optimizer.hh index 9b2c15eb..bd2456dc 100644 --- a/include/hpp/manipulation/graph-optimizer.hh +++ b/include/hpp/manipulation/graph-optimizer.hh @@ -49,7 +49,7 @@ namespace hpp { public: typedef core::ProblemSolver::PathOptimizerBuilder_t PathOptimizerBuilder_t; - template <typename InnerPathOptimizer_t> + template <typename TraitsOrInnerType> static GraphOptimizerPtr_t create (const core::Problem& problem); virtual PathVectorPtr_t optimize (const PathVectorPtr_t& path); @@ -80,12 +80,12 @@ namespace hpp { /// \} /// Member function definition - template <typename InnerPathOptimizer_t> + template <typename TraitsOrInnerType> GraphOptimizerPtr_t GraphOptimizer::create (const core::Problem& problem) { return GraphOptimizerPtr_t ( - new GraphOptimizer (problem, InnerPathOptimizer_t::create) + new GraphOptimizer (problem, TraitsOrInnerType::create) ); } diff --git a/src/problem-solver.cc b/src/problem-solver.cc index d9020524..3c792008 100644 --- a/src/problem-solver.cc +++ b/src/problem-solver.cc @@ -45,6 +45,15 @@ namespace hpp { core::pathOptimization::PartialShortcutTraits { static bool removeLockedJoints () { return false; } }; + + template <typename InnerConfigOptimizationTraits> + struct GraphConfigOptimizationTraits { + static core::PathOptimizerPtr_t create (const core::Problem& problem) + { + return core::pathOptimization::ConfigOptimization:: + createWithTraits <InnerConfigOptimizationTraits> (problem); + } + }; } std::ostream& operator<< (std::ostream& os, const Device& robot) @@ -67,6 +76,11 @@ namespace hpp { addPathOptimizerType ("ConfigOptimization", core::pathOptimization::ConfigOptimization::createWithTraits <pathOptimization::ConfigOptimizationTraits>); + addPathOptimizerType ("Graph-ConfigOptimization", + GraphOptimizer::create < + GraphConfigOptimizationTraits + <pathOptimization::ConfigOptimizationTraits> + >); pathPlannerType ("M-RRT"); pathValidationType ("Graph-discretized", 0.05); } -- GitLab