diff --git a/source/Navigation/libraries/global_planning/aron_conversions.cpp b/source/Navigation/libraries/global_planning/aron_conversions.cpp index 54836cfa90f0a1a50488c74c98ef215e638e68f8..36055448fb3bf3f411e8d3d09d9651f52480adbd 100644 --- a/source/Navigation/libraries/global_planning/aron_conversions.cpp +++ b/source/Navigation/libraries/global_planning/aron_conversions.cpp @@ -2,7 +2,11 @@ #include <RobotAPI/libraries/aron/common/aron_conversions.h> -#include <Navigation/libraries/global_planning/aron/GlobalPlannerParams.aron.generated.h> +#include "Navigation/libraries/global_planning/GlobalPlanner.h" +#include "Navigation/libraries/global_planning/Point2Point.h" +#include "Navigation/libraries/global_planning/aron/GlobalPlannerParams.aron.generated.h" +#include "Navigation/libraries/global_planning/aron/Point2PointParams.aron.generated.h" +// #include "Navigation/libraries/global_planning/aron/AStarParams.aron.generated.h" namespace armarx::nav::glob_plan::aron_conv { diff --git a/source/Navigation/libraries/global_planning/aron_conversions.h b/source/Navigation/libraries/global_planning/aron_conversions.h index bd803b3ce5d27a8aaa7e8e4e4c6a4c029adc61e9..64443b331c40e11cdc43696db889932cb186ed11 100644 --- a/source/Navigation/libraries/global_planning/aron_conversions.h +++ b/source/Navigation/libraries/global_planning/aron_conversions.h @@ -1,40 +1,22 @@ -/* - * This file is part of ArmarX. - * - * ArmarX is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * ArmarX 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 Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - * @author Fabian Reister ( fabian dot reister at kit dot edu ) - * @date 2021 - * @copyright http://www.gnu.org/licenses/gpl-2.0.txt - * GNU General Public License - */ -#pragma once +namespace armarx::nav::glob_plan +{ + struct GlobalPlanner; + struct Point2PointParams; -#include "Navigation/libraries/global_planning/GlobalPlanner.h" -#include "Navigation/libraries/global_planning/Point2Point.h" -// #include "Navigation/libraries/global_planning/AStar.h" -#include "Navigation/libraries/global_planning/aron/GlobalPlannerParams.aron.generated.h" -#include "Navigation/libraries/global_planning/aron/Point2PointParams.aron.generated.h" -// #include "Navigation/libraries/global_planning/aron/AStarParams.aron.generated.h" + namespace arondto + { + struct GlobalPlannerParams; + struct Point2PointParams; + } // namespace aron +} // namespace armarx::nav::glob_plan namespace armarx::nav::glob_plan::aron_conv { - void toAron(arondto::GlobalPlannerParams& dto, const GlobalPlanner& bo); void fromAron(const arondto::GlobalPlannerParams& dto, GlobalPlanner& bo); void toAron(arondto::Point2PointParams& dto, const Point2PointParams& bo); void fromAron(const arondto::Point2PointParams& dto, Point2PointParams& bo); -} // namespace armarx::nav::glob_plan +} // namespace armarx::nav::glob_plan::aron_conv diff --git a/source/Navigation/libraries/trajectory_control/CMakeLists.txt b/source/Navigation/libraries/trajectory_control/CMakeLists.txt index 5e52ec37a7d8a5bd3586e70336b39ae73c864b8b..81a695d336a8d4bbd4cdf0d5753dc1df9b520da6 100644 --- a/source/Navigation/libraries/trajectory_control/CMakeLists.txt +++ b/source/Navigation/libraries/trajectory_control/CMakeLists.txt @@ -1,34 +1,48 @@ -set(LIB_NAME ${PROJECT_NAME}TrajectoryControl) +set(LIB_NAME ${PROJECT_NAME}TrajectoryControl) armarx_component_set_name("${LIB_NAME}") armarx_set_target("Library: ${LIB_NAME}") armarx_add_library( - LIBS + LIBS ArmarXCoreInterfaces ArmarXCore RobotAPICore Navigation::Core - - SOURCES + SOURCES ./TrajectoryController.cpp ./TrajectoryFollowingController.cpp ./WaypointController.cpp - HEADERS + ./aron_conversions.cpp + HEADERS ./TrajectoryController.h ./TrajectoryFollowingController.h ./WaypointController.h + ./aron_conversions.h +) + +add_library( + Navigation::TrajectoryControl + ALIAS + ${PROJECT_NAME}TrajectoryControl ) -add_library(Navigation::TrajectoryControl ALIAS ${PROJECT_NAME}TrajectoryControl) +armarx_enable_aron_file_generation_for_target( + TARGET_NAME + "${LIB_NAME}" + ARON_FILES + aron/PIDParams.xml + aron/TrajectoryControllerParams.xml + aron/TrajectoryFollowingControllerParams.xml + aron/WaypointControllerParams.xml + # aron/AStarParams.xml +) -#find_package(MyLib QUIET) -#armarx_build_if(MyLib_FOUND "MyLib not available") -# all target_include_directories must be guarded by if(Xyz_FOUND) -# for multiple libraries write: if(X_FOUND AND Y_FOUND).... -#if(MyLib_FOUND) -# target_include_directories(trajectory_control PUBLIC ${MyLib_INCLUDE_DIRS}) -#endif() +# find_package(MyLib QUIET) armarx_build_if(MyLib_FOUND "MyLib not available") +# all target_include_directories must be guarded by if(Xyz_FOUND) for multiple +# libraries write: if(X_FOUND AND Y_FOUND).... if(MyLib_FOUND) +# target_include_directories(trajectory_control PUBLIC ${MyLib_INCLUDE_DIRS}) +# endif() # add unit tests add_subdirectory(test) diff --git a/source/Navigation/libraries/trajectory_control/aron/PIDParams.xml b/source/Navigation/libraries/trajectory_control/aron/PIDParams.xml new file mode 100644 index 0000000000000000000000000000000000000000..f31aa05d7a93af2e80b1d6b54f62e09aed5c3786 --- /dev/null +++ b/source/Navigation/libraries/trajectory_control/aron/PIDParams.xml @@ -0,0 +1,20 @@ +<!--Some fancy comment --> +<?xml version="1.0" encoding="UTF-8" ?> +<AronTypeDefinition> + <GenerateTypes> + + <Object name='armarx::nav::traj_ctrl::arondto::PIDParams'> + <ObjectChild key='Kp'> + <float /> + </ObjectChild> + <ObjectChild key='Ki'> + <float /> + </ObjectChild> + <ObjectChild key='Kd'> + <float /> + </ObjectChild> + </Object> + + + </GenerateTypes> +</AronTypeDefinition> diff --git a/source/Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.xml b/source/Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.xml new file mode 100644 index 0000000000000000000000000000000000000000..5309967bfc4cb1de0b44348ef60c5442c95bead5 --- /dev/null +++ b/source/Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.xml @@ -0,0 +1,25 @@ +<!--Some fancy comment --> +<?xml version="1.0" encoding="UTF-8" ?> +<AronTypeDefinition> + <CodeIncludes> + <!-- <Include include="<Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.aron.generated.h>" /> --> + </CodeIncludes> + <AronIncludes> + <!-- <Include include="<Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.xml>" /> --> + </AronIncludes> + + <GenerateTypes> + + <!-- <Object name='armarx::nav::glob_plan::arondto::Point2PointParams' extends="armarx::nav::traj_ctrl::arondto::TrajectoryControllerParams"> --> + <Object name='armarx::nav::traj_ctrl::arondto::TrajectoryControllerParams'> + <!-- <ObjectChild key='includeStartPose'> + <bool /> + </ObjectChild> + <ObjectChild key='velocity'> + <float /> + </ObjectChild> --> + </Object> + + + </GenerateTypes> +</AronTypeDefinition> diff --git a/source/Navigation/libraries/trajectory_control/aron/TrajectoryFollowingControllerParams.xml b/source/Navigation/libraries/trajectory_control/aron/TrajectoryFollowingControllerParams.xml new file mode 100644 index 0000000000000000000000000000000000000000..3688cf308e11a8c97805bf1bb528c5160a0f290a --- /dev/null +++ b/source/Navigation/libraries/trajectory_control/aron/TrajectoryFollowingControllerParams.xml @@ -0,0 +1,27 @@ +<!--Some fancy comment --> +<?xml version="1.0" encoding="UTF-8" ?> +<AronTypeDefinition> + <CodeIncludes> + <Include include="<Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.aron.generated.h>" /> + <Include include="<Navigation/libraries/trajectory_control/aron/PIDParams.aron.generated.h>" /> + </CodeIncludes> + <AronIncludes> + <Include include="<Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.xml>" /> + <Include include="<Navigation/libraries/trajectory_control/aron/PIDParams.xml>" /> + </AronIncludes> + + <GenerateTypes> + + <!-- <Object name='armarx::nav::traj_ctrl::arondto::TrajectoryFollowingControllerParams' extends="armarx::nav::traj_ctrl::arondto::TrajectoryControllerParams"> --> + <Object name='armarx::nav::traj_ctrl::arondto::TrajectoryFollowingControllerParams'> + <ObjectChild key='pidPos'> + <armarx::nav::traj_ctrl::arondto::PIDParams /> + </ObjectChild> + <ObjectChild key='pidOri'> + <armarx::nav::traj_ctrl::arondto::PIDParams /> + </ObjectChild> + </Object> + + + </GenerateTypes> +</AronTypeDefinition> diff --git a/source/Navigation/libraries/trajectory_control/aron/WaypointControllerParams.xml b/source/Navigation/libraries/trajectory_control/aron/WaypointControllerParams.xml new file mode 100644 index 0000000000000000000000000000000000000000..4deee7d399e6dfd6896a51a7e74f7563229ef839 --- /dev/null +++ b/source/Navigation/libraries/trajectory_control/aron/WaypointControllerParams.xml @@ -0,0 +1,25 @@ +<!--Some fancy comment --> +<?xml version="1.0" encoding="UTF-8" ?> +<AronTypeDefinition> + <CodeIncludes> + <Include include="<Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.aron.generated.h>" /> + </CodeIncludes> + <AronIncludes> + <Include include="<Navigation/libraries/trajectory_control/aron/TrajectoryControllerParams.xml>" /> + </AronIncludes> + + <GenerateTypes> + + <!-- <Object name='armarx::nav::traj_ctrl::arondto::WaypointControllerParams' extends="armarx::nav::traj_ctrl::arondto::TrajectoryControllerParams"> --> + <Object name='armarx::nav::traj_ctrl::arondto::WaypointControllerParams'> + <ObjectChild key='includeStartPose'> + <bool /> + </ObjectChild> + <ObjectChild key='velocity'> + <float /> + </ObjectChild> + </Object> + + + </GenerateTypes> +</AronTypeDefinition> diff --git a/source/Navigation/libraries/trajectory_control/aron_conversions.cpp b/source/Navigation/libraries/trajectory_control/aron_conversions.cpp new file mode 100644 index 0000000000000000000000000000000000000000..94884c330dc90d10af6157c2dfcae31b0d21d3f2 --- /dev/null +++ b/source/Navigation/libraries/trajectory_control/aron_conversions.cpp @@ -0,0 +1,42 @@ +#include "aron_conversions.h" + +#include <RobotAPI/libraries/aron/common/aron_conversions.h> + +#include "Navigation/libraries/trajectory_control/TrajectoryController.h" +#include "Navigation/libraries/trajectory_control/TrajectoryFollowingController.h" +#include "Navigation/libraries/trajectory_control/WaypointController.h" + +namespace armarx::nav::traj_ctrl::aron_conv +{ + void toAron(arondto::TrajectoryControllerParams& dto, const TrajectoryControllerParams& bo) + { + + } + + void fromAron(const arondto::TrajectoryControllerParams& dto, TrajectoryControllerParams& bo) + { + + } + + void toAron(arondto::TrajectoryFollowingControllerParams& dto, const TrajectoryFollowingControllerParams& bo) + { + + } + + void fromAron(const arondto::TrajectoryFollowingControllerParams& dto, TrajectoryFollowingControllerParams& bo) + { + + } + + void toAron(arondto::WaypointControllerParams& dto, const WaypointControllerParams& bo) + { + + } + + void fromAron(const arondto::WaypointControllerParams& dto, WaypointControllerParams& bo) + { + + } + + +} // namespace armarx::nav::traj_ctrl::aron_conv diff --git a/source/Navigation/libraries/trajectory_control/aron_conversions.h b/source/Navigation/libraries/trajectory_control/aron_conversions.h new file mode 100644 index 0000000000000000000000000000000000000000..95115c7c94af68409bf73ac883b4d6f45add4c2b --- /dev/null +++ b/source/Navigation/libraries/trajectory_control/aron_conversions.h @@ -0,0 +1,50 @@ +/* + * This file is part of ArmarX. + * + * ArmarX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * ArmarX 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 Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @author Fabian Reister ( fabian dot reister at kit dot edu ) + * @date 2021 + * @copyright http://www.gnu.org/licenses/gpl-2.0.txt + * GNU General Public License + */ + +#pragma once + + +namespace armarx::nav::traj_ctrl +{ + struct TrajectoryControllerParams; + struct TrajectoryFollowingControllerParams; + struct WaypointControllerParams; + + namespace arondto + { + class TrajectoryControllerParams; + class TrajectoryFollowingControllerParams; + class WaypointControllerParams; + } // namespace arondto +} // namespace armarx::nav::traj_ctrl + +namespace armarx::nav::traj_ctrl::aron_conv +{ + void toAron(arondto::TrajectoryControllerParams& dto, const TrajectoryControllerParams& bo); + void fromAron(const arondto::TrajectoryControllerParams& dto, TrajectoryControllerParams& bo); + + void toAron(arondto::TrajectoryFollowingControllerParams& dto, const TrajectoryFollowingControllerParams& bo); + void fromAron(const arondto::TrajectoryFollowingControllerParams& dto, TrajectoryFollowingControllerParams& bo); + + void toAron(arondto::WaypointControllerParams& dto, const WaypointControllerParams& bo); + void fromAron(const arondto::WaypointControllerParams& dto, WaypointControllerParams& bo); + +} // namespace armarx::nav::traj_ctrl::aron_conv