From 2f3407ac20ce4941876c781e6c22bbd023767191 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Thu, 10 Nov 2022 14:16:03 +0100 Subject: [PATCH] Introduce and use constants for robot state memory IDs --- .../RobotStateMemory/RobotStateMemory.cpp | 5 ++- .../armem_robot_state/CMakeLists.txt | 2 + .../armem_robot_state/memory_ids.cpp | 36 ++++++++++++++++++ .../libraries/armem_robot_state/memory_ids.h | 37 +++++++++++++++++++ .../server/description/Segment.cpp | 3 +- .../server/localization/Segment.cpp | 3 +- .../server/proprioception/Segment.cpp | 3 +- 7 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 source/RobotAPI/libraries/armem_robot_state/memory_ids.cpp create mode 100644 source/RobotAPI/libraries/armem_robot_state/memory_ids.h diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp index 8233df3d6..e3f006eaf 100644 --- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp +++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp @@ -21,13 +21,14 @@ */ #include "RobotStateMemory.h" -#include "RobotAPI/libraries/armem/core/forward_declarations.h" +#include <RobotAPI/libraries/armem/core/forward_declarations.h> #include <RobotAPI/interface/core/PoseBase.h> #include <RobotAPI/libraries/core/Pose.h> #include <RobotAPI/libraries/armem/core/Prediction.h> #include <RobotAPI/libraries/armem_robot_state/server/proprioception/aron_conversions.h> #include <RobotAPI/libraries/armem_robot_state/server/common/Visu.h> +#include <RobotAPI/libraries/armem_robot_state/memory_ids.h> #include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h> #include <ArmarXCore/core/exceptions/local/ExpressionException.h> @@ -82,7 +83,7 @@ namespace armarx::armem::server::robot_state const std::string prefix = "mem."; - setMemoryName("RobotState"); + setMemoryName(armem::robot_state::memoryID.memoryName); descriptionSegment.defineProperties(defs, prefix + "desc."); proprioceptionSegment.defineProperties(defs, prefix + "prop."); diff --git a/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt b/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt index aafe0978d..a9c0ceb1b 100644 --- a/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt +++ b/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt @@ -38,6 +38,7 @@ armarx_add_library( client/localization/TransformWriter.h aron_conversions.h + memory_ids.h utils.h SOURCES @@ -52,6 +53,7 @@ armarx_add_library( client/localization/TransformWriter.cpp aron_conversions.cpp + memory_ids.cpp utils.cpp ) diff --git a/source/RobotAPI/libraries/armem_robot_state/memory_ids.cpp b/source/RobotAPI/libraries/armem_robot_state/memory_ids.cpp new file mode 100644 index 000000000..926c2e843 --- /dev/null +++ b/source/RobotAPI/libraries/armem_robot_state/memory_ids.cpp @@ -0,0 +1,36 @@ +/* + * 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/>. + * + * @package RobotAPI::ArmarXObjects::armem_robot_state + * @author Rainer Kartmann ( rainer dot kartmann at kit dot edu ) + * @date 2022 + * @copyright http://www.gnu.org/licenses/gpl-2.0.txt + * GNU General Public License + */ + +#include "memory_ids.h" + + +namespace armarx::armem +{ + + const MemoryID robot_state::memoryID { "RobotState" }; + + const MemoryID robot_state::descriptionSegmentID { memoryID.withCoreSegmentName("Description") }; + const MemoryID robot_state::proprioceptionSegmentID { memoryID.withCoreSegmentName("Proprioception") }; + const MemoryID robot_state::localizationSegmentID { memoryID.withCoreSegmentName("Localization") }; + + +} diff --git a/source/RobotAPI/libraries/armem_robot_state/memory_ids.h b/source/RobotAPI/libraries/armem_robot_state/memory_ids.h new file mode 100644 index 000000000..1d8008d4d --- /dev/null +++ b/source/RobotAPI/libraries/armem_robot_state/memory_ids.h @@ -0,0 +1,37 @@ +/* + * 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/>. + * + * @package RobotAPI::ArmarXObjects::armem_robot_state + * @author Rainer Kartmann ( rainer dot kartmann at kit dot edu ) + * @date 2022 + * @copyright http://www.gnu.org/licenses/gpl-2.0.txt + * GNU General Public License + */ + +#pragma once + +#include <RobotAPI/libraries/armem/core/MemoryID.h> + + +namespace armarx::armem::robot_state +{ + + extern const MemoryID memoryID; + + extern const MemoryID descriptionSegmentID; + extern const MemoryID proprioceptionSegmentID; + extern const MemoryID localizationSegmentID; + +} // namespace armarx::armem::objects diff --git a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp index f6cba1d8c..ec68b2634 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp @@ -20,13 +20,14 @@ #include <RobotAPI/libraries/armem_robot/aron_conversions.h> #include <RobotAPI/libraries/armem_robot/robot_conversions.h> #include <RobotAPI/libraries/armem_robot_state/aron/Proprioception.aron.generated.h> +#include <RobotAPI/libraries/armem_robot_state/memory_ids.h> namespace armarx::armem::server::robot_state::description { Segment::Segment(armem::server::MemoryToIceAdapter& memoryToIceAdapter) : - Base(memoryToIceAdapter, "Description", arondto::RobotDescription::ToAronType()) + Base(memoryToIceAdapter, armem::robot_state::descriptionSegmentID.coreSegmentName, arondto::RobotDescription::ToAronType()) { } diff --git a/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.cpp b/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.cpp index c41908c9a..3cadfeccb 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.cpp @@ -27,13 +27,14 @@ #include <RobotAPI/libraries/armem_robot_state/common/localization/TransformHelper.h> #include <RobotAPI/libraries/armem_robot_state/common/localization/types.h> #include <RobotAPI/libraries/armem_robot_state/client/common/constants.h> +#include <RobotAPI/libraries/armem_robot_state/memory_ids.h> namespace armarx::armem::server::robot_state::localization { Segment::Segment(armem::server::MemoryToIceAdapter& memoryToIceAdapter) : - Base(memoryToIceAdapter, "Localization", arondto::Transform::ToAronType(), 1024) + Base(memoryToIceAdapter, armem::robot_state::localizationSegmentID.coreSegmentName, arondto::Transform::ToAronType(), 1024) { } diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp index 3351772f3..99c330e76 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp @@ -13,6 +13,7 @@ #include <RobotAPI/libraries/armem/core/MemoryID.h> #include <RobotAPI/libraries/armem/util/prediction_helpers.h> #include <RobotAPI/libraries/armem_robot_state/aron/Proprioception.aron.generated.h> +#include <RobotAPI/libraries/armem_robot_state/memory_ids.h> namespace armarx::armem::server::robot_state::proprioception @@ -20,7 +21,7 @@ namespace armarx::armem::server::robot_state::proprioception Segment::Segment(armem::server::MemoryToIceAdapter& memoryToIceAdapter) : Base(memoryToIceAdapter, - "Proprioception", + armem::robot_state::proprioceptionSegmentID.coreSegmentName, arondto::Proprioception::ToAronType(), 1024) { -- GitLab