From bd081a79c1df4f59c517c57354605273ef9552a0 Mon Sep 17 00:00:00 2001 From: Fabian Reister <fabian.reister@kit.edu> Date: Tue, 27 Jul 2021 20:34:14 +0200 Subject: [PATCH] global planning: implemented aron_conversions --- .../libraries/global_planning/AStar.cpp | 17 +++++++++-- .../libraries/global_planning/AStar.h | 2 -- .../global_planning/aron/AStarParams.xml | 13 ++++----- .../aron/GlobalPlannerParams.xml | 9 ------ .../global_planning/aron_conversions.cpp | 28 +++++++++++++++++-- .../global_planning/aron_conversions.h | 14 ++++++++-- 6 files changed, 56 insertions(+), 27 deletions(-) diff --git a/source/Navigation/libraries/global_planning/AStar.cpp b/source/Navigation/libraries/global_planning/AStar.cpp index 4cb86374..fd38f8d3 100644 --- a/source/Navigation/libraries/global_planning/AStar.cpp +++ b/source/Navigation/libraries/global_planning/AStar.cpp @@ -6,7 +6,7 @@ #include <ArmarXCore/core/exceptions/local/ExpressionException.h> -#include "Navigation/libraries/global_planning/Point2Point.h" +#include "Navigation/libraries/global_planning/aron_conversions.h" #include <Navigation/libraries/algorithms/astar/AStarPlanner.h> #include <Navigation/libraries/algorithms/smoothing/ChainApproximation.h> #include <Navigation/libraries/algorithms/smoothing/CircularPathSmoothing.h> @@ -29,13 +29,24 @@ namespace armarx::nav::glob_plan aron::datanavigator::DictNavigatorPtr AStarParams::toAron() const { - return arondto::AStarParams().toAron(); // TODO implement + arondto::AStarParams dto; + + AStarParams bo; + aron_conv::toAron(dto, bo); + + return dto.toAron(); } AStarParams AStarParams::FromAron(const aron::datanavigator::DictNavigatorPtr& dict) { - return AStarParams(); // TODO implement + arondto::AStarParams dto; + dto.fromAron(dict); + + AStarParams bo; + aron_conv::fromAron(dto, bo); + + return bo; } // AStar diff --git a/source/Navigation/libraries/global_planning/AStar.h b/source/Navigation/libraries/global_planning/AStar.h index 28972bf4..c23d9186 100644 --- a/source/Navigation/libraries/global_planning/AStar.h +++ b/source/Navigation/libraries/global_planning/AStar.h @@ -35,13 +35,11 @@ namespace armarx::nav::glob_plan struct AStarParams : public GlobalPlannerParams { float linearVelocity{500}; - float resampleDistance{500}; Algorithms algorithm() const override; aron::datanavigator::DictNavigatorPtr toAron() const override; - static AStarParams FromAron(const aron::datanavigator::DictNavigatorPtr& dict); }; diff --git a/source/Navigation/libraries/global_planning/aron/AStarParams.xml b/source/Navigation/libraries/global_planning/aron/AStarParams.xml index bc9c32c9..39b41041 100644 --- a/source/Navigation/libraries/global_planning/aron/AStarParams.xml +++ b/source/Navigation/libraries/global_planning/aron/AStarParams.xml @@ -1,22 +1,21 @@ <?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>" /> </AronIncludes> <GenerateTypes> - <Object name='armarx::nav::glob_plan::arondto::AStarParams'> - <!-- <ObjectChild key='resolution'> + <Object name='armarx::nav::glob_plan::arondto::AStarParams' extends="armarx::nav::glob_plan::arondto::GlobalPlannerParams"> + <ObjectChild key='linearVelocity'> <float /> </ObjectChild> - <ObjectChild key='frame'> - <string /> + <ObjectChild key='resampleDistance'> + <float /> </ObjectChild> - <ObjectChild key='pose'> - <Pose /> - </ObjectChild> --> </Object> diff --git a/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml b/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml index f74b78db..40731e9b 100644 --- a/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml +++ b/source/Navigation/libraries/global_planning/aron/GlobalPlannerParams.xml @@ -8,15 +8,6 @@ <GenerateTypes> <Object name='armarx::nav::glob_plan::arondto::GlobalPlannerParams'> - <!-- <ObjectChild key='resolution'> - <float /> - </ObjectChild> - <ObjectChild key='frame'> - <string /> - </ObjectChild> - <ObjectChild key='pose'> - <Pose /> - </ObjectChild> --> </Object> diff --git a/source/Navigation/libraries/global_planning/aron_conversions.cpp b/source/Navigation/libraries/global_planning/aron_conversions.cpp index 4161254b..fa8e2c84 100644 --- a/source/Navigation/libraries/global_planning/aron_conversions.cpp +++ b/source/Navigation/libraries/global_planning/aron_conversions.cpp @@ -1,22 +1,24 @@ #include "aron_conversions.h" +#include "RobotAPI/libraries/aron/common/aron_conversions/core.h" #include <RobotAPI/libraries/aron/common/aron_conversions.h> +#include "Navigation/libraries/global_planning/AStar.h" #include "Navigation/libraries/global_planning/GlobalPlanner.h" #include "Navigation/libraries/global_planning/Point2Point.h" +#include "Navigation/libraries/global_planning/aron/AStarParams.aron.generated.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) + toAron(arondto::GlobalPlannerParams& dto, const GlobalPlannerParams& bo) { } void - fromAron(const arondto::GlobalPlannerParams& dto, GlobalPlanner& bo) + fromAron(const arondto::GlobalPlannerParams& dto, GlobalPlannerParams& bo) { } @@ -35,4 +37,24 @@ namespace armarx::nav::glob_plan::aron_conv aron::fromAron(dto.includeStartPose, bo.includeStartPose); aron::fromAron(dto.velocity, bo.velocity); } + + void + toAron(arondto::AStarParams& dto, const AStarParams& bo) + { + toAron(static_cast<arondto::GlobalPlannerParams&>(dto), + static_cast<const GlobalPlannerParams&>(bo)); + + aron::toAron(dto.linearVelocity, bo.linearVelocity); + aron::toAron(dto.resampleDistance, bo.resampleDistance); + } + + void + fromAron(const arondto::AStarParams& dto, AStarParams& bo) + { + fromAron(static_cast<const arondto::GlobalPlannerParams&>(dto), + static_cast<GlobalPlannerParams&>(bo)); + + aron::fromAron(dto.linearVelocity, bo.linearVelocity); + aron::fromAron(dto.resampleDistance, bo.resampleDistance); + } } // 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 113c7d8a..2a946d43 100644 --- a/source/Navigation/libraries/global_planning/aron_conversions.h +++ b/source/Navigation/libraries/global_planning/aron_conversions.h @@ -1,22 +1,30 @@ +#pragma once namespace armarx::nav::glob_plan { - struct GlobalPlanner; + struct GlobalPlannerParams; struct Point2PointParams; + struct AStarParams; namespace arondto { struct GlobalPlannerParams; struct Point2PointParams; + struct AStarParams; + } // namespace arondto + } // 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::GlobalPlannerParams& dto, const GlobalPlannerParams& bo); + void fromAron(const arondto::GlobalPlannerParams& dto, GlobalPlannerParams& bo); void toAron(arondto::Point2PointParams& dto, const Point2PointParams& bo); void fromAron(const arondto::Point2PointParams& dto, Point2PointParams& bo); + void toAron(arondto::AStarParams& dto, const AStarParams& bo); + void fromAron(const arondto::AStarParams& dto, AStarParams& bo); + } // namespace armarx::nav::glob_plan::aron_conv -- GitLab