diff --git a/source/Navigation/libraries/global_planning/Point2Point.cpp b/source/Navigation/libraries/global_planning/Point2Point.cpp index ffe51c747db1d22bad7c77dc5b61737210f7aef4..fef24e7f71f9d3fadc737ad00769cbb04c1d12a1 100644 --- a/source/Navigation/libraries/global_planning/Point2Point.cpp +++ b/source/Navigation/libraries/global_planning/Point2Point.cpp @@ -12,6 +12,8 @@ #include "Navigation/libraries/core/types.h" #include "Navigation/libraries/global_planning/GlobalPlanner.h" #include "Navigation/libraries/global_planning/core.h" +#include <Navigation/libraries/global_planning/aron/Point2PointParams.aron.generated.h> +#include <Navigation/libraries/global_planning/aron_conversions.h> namespace armarx::nav::glob_plan { @@ -25,12 +27,23 @@ namespace armarx::nav::glob_plan aron::datanavigator::DictNavigatorPtr Point2PointParams::toAron() const { - return nullptr; // TODO implement + arondto::Point2PointParams dto; + + Point2PointParams bo; + aron_conv::toAron(dto, bo); + + return dto.toAron(); } Point2PointParams Point2PointParams::FromAron(const aron::datanavigator::DictNavigatorPtr& dict) { - return Point2PointParams(); // TODO implement + arondto::Point2PointParams dto; + dto.fromAron(dict); + + Point2PointParams bo; + aron_conv::fromAron(dto, bo); + + return bo; } // Point2Point diff --git a/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml b/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml index 240840b1a0698524ae631af7bdbffef2a3bb97a2..0e908374fbc7e261b1a8540e2424df1de9b77b59 100644 --- a/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml +++ b/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml @@ -9,7 +9,7 @@ <GenerateTypes> <Object name='armarx::nav::glob_plan::arondto::GlobalPlannerParams'> - <ObjectChild key='resolution'> + <!-- <ObjectChild key='resolution'> <float /> </ObjectChild> <ObjectChild key='frame'> @@ -17,7 +17,7 @@ </ObjectChild> <ObjectChild key='pose'> <Pose /> - </ObjectChild> + </ObjectChild> --> </Object> diff --git a/source/Navigation/libraries/global_planning/aron/Point2PointParams.xml b/source/Navigation/libraries/global_planning/aron/Point2PointParams.xml index 1c2f006f71307222247ec3605019cdc988fffd92..84e2f0fdcd3075f62dc541462bdd77b9ac85403d 100644 --- a/source/Navigation/libraries/global_planning/aron/Point2PointParams.xml +++ b/source/Navigation/libraries/global_planning/aron/Point2PointParams.xml @@ -2,6 +2,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <AronTypeDefinition> <CodeIncludes> + <Include include="<Navigation/libraries/global_planning/aron/GlobalPlannerParams.aron.generated.h>" /> </CodeIncludes> <AronIncludes> <Include include="<Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml>" /> @@ -9,17 +10,14 @@ <GenerateTypes> - <Object name='armarx::nav::glob_plan::arondto::GlobalPlannerParams' extends="armarx::nav::glob_plan::arondto::GlobalPlannerParams"> - <ObjectChild key='resolution'> - <float /> - </ObjectChild> - <ObjectChild key='frame'> - <string /> + <!-- <Object name='armarx::nav::glob_plan::arondto::Point2PointParams' extends="armarx::nav::glob_plan::arondto::GlobalPlannerParams"> --> + <Object name='armarx::nav::glob_plan::arondto::Point2PointParams'> + <ObjectChild key='includeStartPose'> + <bool /> </ObjectChild> - <ObjectChild key='pose'> - <Pose /> + <ObjectChild key='velocity'> + <float /> </ObjectChild> - </Object> diff --git a/source/Navigation/libraries/global_planning/aron_conversions.cpp b/source/Navigation/libraries/global_planning/aron_conversions.cpp index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54836cfa90f0a1a50488c74c98ef215e638e68f8 100644 --- a/source/Navigation/libraries/global_planning/aron_conversions.cpp +++ b/source/Navigation/libraries/global_planning/aron_conversions.cpp @@ -0,0 +1,30 @@ +#include "aron_conversions.h" + +#include <RobotAPI/libraries/aron/common/aron_conversions.h> + +#include <Navigation/libraries/global_planning/aron/GlobalPlannerParams.aron.generated.h> + +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) + { + // fromAron(static_cast<const arondto::GlobalPlannerParams&>(dto), static_cast<const GlobalPlannerParams&>(bo)); + aron::toAron(dto.includeStartPose, bo.includeStartPose); + aron::toAron(dto.velocity, bo.velocity); + } + + void fromAron(const arondto::Point2PointParams& dto, Point2PointParams& bo) + { + // fromAron(static_cast<arondto::GlobalPlannerParams&>(dto), static_cast<GlobalPlannerParams&>(bo)); + aron::fromAron(dto.includeStartPose, bo.includeStartPose); + aron::fromAron(dto.velocity, bo.velocity); + } +} // 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bd803b3ce5d27a8aaa7e8e4e4c6a4c029adc61e9 100644 --- a/source/Navigation/libraries/global_planning/aron_conversions.h +++ b/source/Navigation/libraries/global_planning/aron_conversions.h @@ -0,0 +1,40 @@ +/* + * 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 + +#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 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