From 928e42835716e042bcadad05729799e36ac533fc Mon Sep 17 00:00:00 2001 From: Gilwoo Lee Date: Tue, 3 Mar 2020 13:16:07 -0800 Subject: [PATCH 1/3] Create planner_dart component --- src/planner/CMakeLists.txt | 12 +---- src/planner/dart/CMakeLists.txt | 62 ++++++++++++++++++++++++++ src/planner/vectorfield/CMakeLists.txt | 1 + tests/planner/CMakeLists.txt | 3 +- 4 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 src/planner/dart/CMakeLists.txt diff --git a/src/planner/CMakeLists.txt b/src/planner/CMakeLists.txt index 8358a7b6a6a..f572d8fbaec 100644 --- a/src/planner/CMakeLists.txt +++ b/src/planner/CMakeLists.txt @@ -13,17 +13,6 @@ set(sources SequenceMetaPlanner.cpp World.cpp WorldStateSaver.cpp - dart/ConfigurationToConfiguration.cpp - dart/ConfigurationToConfigurationPlanner.cpp - dart/ConfigurationToEndEffectorOffset.cpp - dart/ConfigurationToEndEffectorPose.cpp - dart/ConfigurationToTSR.cpp - dart/ConfigurationToEndEffectorOffsetPlanner.cpp - # dart/ConfigurationToEndEffectorPosePlanner.cpp - dart/ConfigurationToTSRPlanner.cpp - dart/ConfigurationToConfiguration_to_ConfigurationToConfiguration.cpp - dart/ConfigurationToConfiguration_to_ConfigurationToTSR.cpp - dart/util.cpp ) add_library("${PROJECT_NAME}_planner" SHARED ${sources}) @@ -59,6 +48,7 @@ add_component_dependencies(${PROJECT_NAME} planner clang_format_add_sources(${sources}) add_subdirectory("ompl") # [constraint], [distance], [statespace], [trajectory], dart, ompl +add_subdirectory("dart") # [constraint], [distance], [trajectory], [statespace], [planner_ompl], dart, ompl add_subdirectory("parabolic") # [external], [common], [trajectory], [statespace], dart add_subdirectory("vectorfield") # [common], [trajectory], [statespace], dart add_subdirectory("kunzretimer") # [external], [common], [trajectory], [statespace], dart diff --git a/src/planner/dart/CMakeLists.txt b/src/planner/dart/CMakeLists.txt new file mode 100644 index 00000000000..88bfcadacc2 --- /dev/null +++ b/src/planner/dart/CMakeLists.txt @@ -0,0 +1,62 @@ +if(CMAKE_COMPILER_IS_GNUCXX) + if(OMPL_VERSION VERSION_GREATER 1.2.0 OR OMPL_VERSION VERSION_EQUAL 1.2.0) + if(Boost_VERSION VERSION_LESS 106501) + message(STATUS "OMPL planners are disabled for OMPL (>=1.2.0) + GCC + " + "Boost (< 1.65.1). For details, please see: " + " https://github.com/personalrobotics/aikido/issues/363" + ) + return() + endif() + endif() +endif() + +#============================================================================== +# Libraries +# +set(sources + ConfigurationToConfiguration.cpp + ConfigurationToConfigurationPlanner.cpp + ConfigurationToConfiguration_to_ConfigurationToConfiguration.cpp + ConfigurationToConfiguration_to_ConfigurationToTSR.cpp + ConfigurationToEndEffectorOffset.cpp + ConfigurationToEndEffectorPose.cpp + ConfigurationToEndEffectorOffsetPlanner.cpp + ConfigurationToTSR.cpp + ConfigurationToTSRPlanner.cpp + util.cpp +) + +add_library("${PROJECT_NAME}_planner_dart" SHARED ${sources}) +target_include_directories("${PROJECT_NAME}_planner_dart" SYSTEM + PUBLIC + ${DART_INCLUDE_DIRS} + ${OMPL_INCLUDE_DIRS} +) +target_link_libraries("${PROJECT_NAME}_planner_dart" + PUBLIC + "${PROJECT_NAME}_common" + "${PROJECT_NAME}_constraint" + "${PROJECT_NAME}_distance" + "${PROJECT_NAME}_trajectory" + "${PROJECT_NAME}_statespace" + "${PROJECT_NAME}_planner" + "${PROJECT_NAME}_planner_ompl" + ${DART_LIBRARIES} + ${OMPL_LIBRARIES} +) +target_compile_options("${PROJECT_NAME}_planner_dart" + PUBLIC ${AIKIDO_CXX_STANDARD_FLAGS} +) + +add_component(${PROJECT_NAME} planner_dart) +add_component_targets(${PROJECT_NAME} planner_dart "${PROJECT_NAME}_planner_dart") +add_component_dependencies(${PROJECT_NAME} planner_dart + constraint + distance + planner + planner_ompl + statespace + trajectory +) + +clang_format_add_sources(${sources}) diff --git a/src/planner/vectorfield/CMakeLists.txt b/src/planner/vectorfield/CMakeLists.txt index 74ce82c4d6f..deac97111ea 100644 --- a/src/planner/vectorfield/CMakeLists.txt +++ b/src/planner/vectorfield/CMakeLists.txt @@ -19,6 +19,7 @@ target_link_libraries("${PROJECT_NAME}_planner_vectorfield" "${PROJECT_NAME}_trajectory" "${PROJECT_NAME}_statespace" "${PROJECT_NAME}_planner" + "${PROJECT_NAME}_planner_dart" ${DART_LIBRARIES} ${Boost_LIBRARIES} ) diff --git a/tests/planner/CMakeLists.txt b/tests/planner/CMakeLists.txt index 9e5e2138710..eb6f7e69b68 100644 --- a/tests/planner/CMakeLists.txt +++ b/tests/planner/CMakeLists.txt @@ -15,7 +15,8 @@ target_link_libraries(test_DartPlanners "${PROJECT_NAME}_constraint" "${PROJECT_NAME}_distance" "${PROJECT_NAME}_trajectory" - "${PROJECT_NAME}_planner") + "${PROJECT_NAME}_planner" + "${PROJECT_NAME}_planner_dart") aikido_add_test(test_World test_World.cpp) target_link_libraries(test_World From 1919374c7372c3d6b5a53f468dbba1731e4ed07e Mon Sep 17 00:00:00 2001 From: Gilwoo Lee Date: Tue, 3 Mar 2020 13:25:54 -0800 Subject: [PATCH 2/3] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47675dd4e7c..93301a14634 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,7 +58,7 @@ * Updated findTimeOfClosestStateTrajectory to use StateSpace Distance Metric: [#543](https://github.com/personalrobotics/aikido/pull/543) * Planner - + * Make planner_dart component and build all DART planners as planner_dart component: [#567](https://github.com/personalrobotics/aikido/pull/567) * Make all DART planners take MetaSkeleton, and add adapter for turning planners into DART planners: [#437](https://github.com/personalrobotics/aikido/pull/437) * Added parabolic timing for linear spline [#302](https://github.com/personalrobotics/aikido/pull/302), [#324](https://github.com/personalrobotics/aikido/pull/324) * Fixed step sequence iteration in VFP: [#303](https://github.com/personalrobotics/aikido/pull/303) From 6ea074163e99c598182bfc8755ba554db5f7e93a Mon Sep 17 00:00:00 2001 From: sniyaz Date: Fri, 25 Sep 2020 03:37:38 -0700 Subject: [PATCH 3/3] Think I added CMake gaurds if dart_planners not built. --- src/planner/vectorfield/CMakeLists.txt | 4 ++++ src/robot/CMakeLists.txt | 3 ++- tests/planner/CMakeLists.txt | 12 ++++++++---- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/planner/vectorfield/CMakeLists.txt b/src/planner/vectorfield/CMakeLists.txt index deac97111ea..42e0717d349 100644 --- a/src/planner/vectorfield/CMakeLists.txt +++ b/src/planner/vectorfield/CMakeLists.txt @@ -1,3 +1,7 @@ +if(NOT TARGET ${PROJECT_NAME}_planner_dart) + return() +endif() + set(sources VectorFieldPlanner.cpp VectorField.cpp diff --git a/src/robot/CMakeLists.txt b/src/robot/CMakeLists.txt index 9c6c6ad8fd0..9e79838bb13 100644 --- a/src/robot/CMakeLists.txt +++ b/src/robot/CMakeLists.txt @@ -1,7 +1,8 @@ #============================================================================== # Dependencies # -if(NOT TARGET ${PROJECT_NAME}_planner_ompl) +if(NOT TARGET ${PROJECT_NAME}_planner_ompl OR + NOT TARGET ${PROJECT_NAME}_planner_vectorfield) return() endif() set(CMAKE_REQUIRED_DEFINITIONS "") diff --git a/tests/planner/CMakeLists.txt b/tests/planner/CMakeLists.txt index eb6f7e69b68..369060af8ad 100644 --- a/tests/planner/CMakeLists.txt +++ b/tests/planner/CMakeLists.txt @@ -10,6 +10,14 @@ target_link_libraries(test_SnapPlanner "${PROJECT_NAME}_trajectory" "${PROJECT_NAME}_planner") +aikido_add_test(test_World test_World.cpp) +target_link_libraries(test_World + "${PROJECT_NAME}_planner") + +if(NOT TARGET ${PROJECT_NAME}_planner_dart) + return() +endif() + aikido_add_test(test_DartPlanners test_DartPlanners.cpp) target_link_libraries(test_DartPlanners "${PROJECT_NAME}_constraint" @@ -17,7 +25,3 @@ target_link_libraries(test_DartPlanners "${PROJECT_NAME}_trajectory" "${PROJECT_NAME}_planner" "${PROJECT_NAME}_planner_dart") - -aikido_add_test(test_World test_World.cpp) -target_link_libraries(test_World - "${PROJECT_NAME}_planner")