diff --git a/CMakeLists.txt b/CMakeLists.txt index 63aaac3dab6514c7d654e6f541ebcae5571b357a..a7beb9e6d70ec3b3a6cdd3c060f624769455cff2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,15 +37,9 @@ LIST(APPEND PKG_CONFIG_ADDITIONAL_VARIABLES cmake_plugin) # Ask Doxygen to create a tree view in html documentation SET(DOXYGEN_TREEVIEW "NO" CACHE STRING "Set to YES to generate a tree view in the html documentation") -SET(HPP_MANIPULATION_HAS_WHOLEBODY_STEP TRUE - CACHE BOOL "Compile with dependency to hpp-wholebody-step") - ADD_PROJECT_DEPENDENCY(Boost REQUIRED COMPONENTS regex) ADD_PROJECT_DEPENDENCY("hpp-core" REQUIRED) -IF(HPP_MANIPULATION_HAS_WHOLEBODY_STEP) - ADD_PROJECT_DEPENDENCY("hpp-wholebody-step" REQUIRED) -ENDIF() IF(BUILD_TESTING) FIND_PACKAGE(Boost REQUIRED COMPONENTS unit_test_framework) ADD_PROJECT_DEPENDENCY("example-robot-data" REQUIRED) @@ -82,7 +76,6 @@ SET(${PROJECT_NAME}_HEADERS include/hpp/manipulation/graph/helper.hh include/hpp/manipulation/graph/validation.hh - include/hpp/manipulation/path-optimization/small-steps.hh include/hpp/manipulation/path-optimization/enforce-transition-semantic.hh include/hpp/manipulation/path-optimization/random-shortcut.hh include/hpp/manipulation/path-optimization/spline-gradient-based.hh @@ -140,19 +133,9 @@ SET(${PROJECT_NAME}_SOURCES src/steering-method/graph.cc ) -IF(HPP_MANIPULATION_HAS_WHOLEBODY_STEP) - SET(${PROJECT_NAME}_SOURCES - ${${PROJECT_NAME}_SOURCES} - src/path-optimization/small-steps.cc - ) -ENDIF(HPP_MANIPULATION_HAS_WHOLEBODY_STEP) - ADD_LIBRARY(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:include>) TARGET_LINK_LIBRARIES(${PROJECT_NAME} hpp-core::hpp-core Boost::regex) -IF(HPP_MANIPULATION_HAS_WHOLEBODY_STEP) - TARGET_LINK_LIBRARIES(${PROJECT_NAME} hpp-wholebody-step::hpp-wholebody-step) -ENDIF(HPP_MANIPULATION_HAS_WHOLEBODY_STEP) INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION lib) diff --git a/NEWS b/NEWS index b145194cf23bdcbf70c65a1f082158c6dc45b5a2..2c7e97af0f3001b48a3f404f09c6563be6edc782 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,5 @@ -*- outline -*- +* Dependency to hpp-wholebody-step has been removed. New in 4.10.0 * In graph::steeringMethod, if q1 == q2, the steering method calls the problem inner steering method. This avoids a failure if no loop transition has been diff --git a/include/hpp/manipulation/path-optimization/small-steps.hh b/include/hpp/manipulation/path-optimization/small-steps.hh deleted file mode 100644 index b1341557e7efc5ca3987c27dedb2abd8f4dd0df6..0000000000000000000000000000000000000000 --- a/include/hpp/manipulation/path-optimization/small-steps.hh +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) 2016, Joseph Mirabel -// Authors: Joseph Mirabel (joseph.mirabel@laas.fr) -// -// This file is part of hpp-manipulation. -// hpp-manipulation is free software: you can redistribute it -// and/or modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation, either version -// 3 of the License, or (at your option) any later version. -// -// hpp-manipulation is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Lesser Public License for more details. You should have -// received a copy of the GNU Lesser General Public License along with -// hpp-manipulation. If not, see <http://www.gnu.org/licenses/>. - -#ifndef HPP_MANIPULATION_PATHOPTIMIZATION_SMALLSTEPS_HH -#define HPP_MANIPULATION_PATHOPTIMIZATION_SMALLSTEPS_HH - -#include <hpp/manipulation/fwd.hh> -#include <hpp/manipulation/config.hh> - -#include <hpp/core/path-optimizer.hh> - -namespace hpp { - namespace manipulation { - namespace pathOptimization { - using hpp::core::Path; - using hpp::core::PathPtr_t; - using hpp::core::PathVector; - using hpp::core::PathVectorPtr_t; - - /// \addtogroup path_optimization - /// \{ - - /// Walking trajectory generator for paths created with the constraint graph - /// - /// This class encapsulates hpp::wholebodyStep::SmallSteps. - class HPP_MANIPULATION_DLLAPI SmallSteps : public PathOptimizer - { - public: - static SmallStepsPtr_t create (const core::ProblemConstPtr_t& problem) - { - SmallSteps* ptr (new SmallSteps (problem)); - return SmallStepsPtr_t (ptr); - } - - PathVectorPtr_t optimize (const PathVectorPtr_t& path); - - protected: - /// Constructor - SmallSteps (const core::ProblemConstPtr_t& problem) : - PathOptimizer (problem) - {} - }; - /// \} - - } // namespace pathOptimization - } // namespace manipulation -} // namespace hpp - -#endif // HPP_MANIPULATION_PATHOPTIMIZATION_SMALLSTEPS_HH diff --git a/src/path-optimization/small-steps.cc b/src/path-optimization/small-steps.cc deleted file mode 100644 index 9689c66773e2f9556b6473828cd84bbef67ad010..0000000000000000000000000000000000000000 --- a/src/path-optimization/small-steps.cc +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) 2016, Joseph Mirabel -// Authors: Joseph Mirabel (joseph.mirabel@laas.fr) -// -// This file is part of hpp-manipulation. -// hpp-manipulation is free software: you can redistribute it -// and/or modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation, either version -// 3 of the License, or (at your option) any later version. -// -// hpp-manipulation is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty -// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Lesser Public License for more details. You should have -// received a copy of the GNU Lesser General Public License along with -// hpp-manipulation. If not, see <http://www.gnu.org/licenses/>. - -#include <hpp/manipulation/path-optimization/small-steps.hh> - -#include <hpp/core/problem.hh> -#include <hpp/core/path-vector.hh> - -#include <hpp/wholebody-step/small-steps.hh> - -#include <hpp/manipulation/graph/edge.hh> -#include <hpp/manipulation/constraint-set.hh> -#include <hpp/manipulation/graph-path-validation.hh> - -namespace hpp { - namespace manipulation { - namespace pathOptimization { - PathVectorPtr_t SmallSteps::optimize (const PathVectorPtr_t& path) - { - PathVectorPtr_t - opted = PathVector::create (path->outputSize(), - path->outputDerivativeSize()), - flat = PathVector::create (path->outputSize(), - path->outputDerivativeSize()), - toConcat; - path->flatten (flat); - - GraphPathValidationPtr_t gpv(HPP_DYNAMIC_PTR_CAST(GraphPathValidation, - this->problem()->pathValidation())); - const_cast<core::Problem&>(*this->problem()).pathValidation - (gpv->innerValidation()); - - wholebodyStep::SmallStepsPtr_t stepPtr - (wholebodyStep::SmallSteps::create(problem())); - wholebodyStep::SmallSteps& step (*stepPtr); - step.leftHand_.active = true; - - ConstraintSetPtr_t c; - for (std::size_t i_s = 0; i_s < flat->numberPaths ();) { - PathVectorPtr_t toOpt = PathVector::create ( - path->outputSize(), path->outputDerivativeSize()); - PathPtr_t current = flat->pathAtRank (i_s); - toOpt->appendPath (current); - graph::EdgePtr_t edge; - c = HPP_DYNAMIC_PTR_CAST (ConstraintSet, current->constraints ()); - if (c) edge = c->edge (); - std::size_t i_e = i_s + 1; - for (; i_e < flat->numberPaths (); ++i_e) { - current = flat->pathAtRank (i_e); - c = HPP_DYNAMIC_PTR_CAST (ConstraintSet, current->constraints ()); - if (!c && edge) break; - if (c && edge->state() != c->edge ()->state()) break; - toOpt->appendPath (current); - } - toConcat = step.optimize (toOpt); - i_s = i_e; - opted->concatenate (toConcat); - } - - const_cast<core::Problem&>(*this->problem ()).pathValidation (gpv); - return opted; - } - } // namespace pathOptimization - } // namespace manipulation -} // namespace hpp diff --git a/src/problem-solver.cc b/src/problem-solver.cc index b7bc3f03d4ff41d49d40071eb5b740b0c9da9f3f..c7ee81619dd0e79e037c8a8e7b187ca3175044e2 100644 --- a/src/problem-solver.cc +++ b/src/problem-solver.cc @@ -62,11 +62,6 @@ #include "hpp/manipulation/steering-method/graph.hh" #include "hpp/manipulation/steering-method/end-effector-trajectory.hh" -#if HPP_MANIPULATION_HAS_WHOLEBODY_STEP -#include <hpp/wholebody-step/small-steps.hh> -#include "hpp/manipulation/path-optimization/small-steps.hh" -#endif - namespace hpp { namespace manipulation { typedef constraints::Implicit Implicit; @@ -177,11 +172,6 @@ namespace hpp { createSMWithGuess <steeringMethod::CrossStateOptimization, core::steeringMethod::Snibud>); steeringMethods.add ("EndEffectorTrajectory", steeringMethod::EndEffectorTrajectory::create); -#if HPP_MANIPULATION_HAS_WHOLEBODY_STEP - pathOptimizers.add ("Walkgen", wholebodyStep::SmallSteps::create); - pathOptimizers.add ("Graph-Walkgen", pathOptimization::SmallSteps::create); -#endif - pathPlannerType ("M-RRT"); steeringMethodType ("Graph-SteeringMethodStraight"); }