From b56b1b8d767007ab39f0ec98e279238fd163697d Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Thu, 16 Nov 2023 14:20:58 +0100 Subject: [PATCH] Add NavigateToNamedLocation skill to skill provider --- .../navigation_skill_provider/Component.cpp | 29 ++++++++++++++----- .../navigation_skill_provider/Component.h | 3 ++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/source/armarx/navigation/components/navigation_skill_provider/Component.cpp b/source/armarx/navigation/components/navigation_skill_provider/Component.cpp index 06466322..3cb0bdee 100644 --- a/source/armarx/navigation/components/navigation_skill_provider/Component.cpp +++ b/source/armarx/navigation/components/navigation_skill_provider/Component.cpp @@ -25,21 +25,16 @@ #include <ArmarXCore/libraries/DecoupledSingleComponent/Decoupled.h> +#include <armarx/navigation/location/constants.h> #include <armarx/navigation/skills/GuideHumanToRoom.h> #include <armarx/navigation/skills/MoveRelativePlanar.h> #include <armarx/navigation/skills/MoveXMeters.h> #include <armarx/navigation/skills/NavigateTo.h> #include <armarx/navigation/skills/NavigateToLocation.h> +#include <armarx/navigation/skills/NavigateToNamedLocation.h> #include <armarx/navigation/skills/RotateXDegrees.h> #include <armarx/navigation/skills/constants.h> -// Include headers you only need in function definitions in the .cpp. - -// #include <Eigen/Core> - -// #include <SimoxUtility/color/Color.h> - - namespace armarx::navigation::components::navigation_skill_provider { Component::Component() @@ -61,6 +56,17 @@ namespace armarx::navigation::components::navigation_skill_provider def->required(properties.robotName, "RobotName", "Default robot name."); + auto optionalSubSkillID = + [&def](armarx::skills::SkillID& skillID, const std::string& nameBase) + { + ARMARX_CHECK(skillID.providerId.has_value()); + def->optional(skillID.providerId->providerName, nameBase + ".providerName"); + def->optional(skillID.skillName, nameBase + ".skillName"); + }; + + optionalSubSkillID(properties.navigateToNamedLocation.subSkillIDs.navigateToLocation, + "p.navigateToNamedLocation.subSkillIDs.navigateToLocation"); + return def; } @@ -97,6 +103,15 @@ namespace armarx::navigation::components::navigation_skill_provider addSkillFactory<skills::NavigateToLocation>(srv); } + { + skills::NavigateToNamedLocation::Services services{ + .locationReader = + memoryNameSystem().getReader(armarx::navigation::location::coreSegmentID), + }; + addSkillFactory<skills::NavigateToNamedLocation>(properties.navigateToNamedLocation, + services); + } + { skills::MoveXMeters::Services srv{ .iceNavigator = iceNavigator, diff --git a/source/armarx/navigation/components/navigation_skill_provider/Component.h b/source/armarx/navigation/components/navigation_skill_provider/Component.h index 5862cc84..086efa45 100644 --- a/source/armarx/navigation/components/navigation_skill_provider/Component.h +++ b/source/armarx/navigation/components/navigation_skill_provider/Component.h @@ -37,6 +37,7 @@ #include <armarx/navigation/components/navigation_skill_provider/ComponentInterface.h> #include <armarx/navigation/memory/client/costmap/Reader.h> #include <armarx/navigation/memory/client/rooms/Reader.h> +#include <armarx/navigation/skills/NavigateToNamedLocation.h> #include <armarx/navigation/skills/forward_declarations.h> namespace armarx::navigation::components::navigation_skill_provider @@ -109,6 +110,8 @@ namespace armarx::navigation::components::navigation_skill_provider struct Properties { std::string robotName; + + skills::NavigateToNamedLocation::Properties navigateToNamedLocation; }; Properties properties; -- GitLab