From a32fb42d233af494ec6ce00d9b0159c0d021d704 Mon Sep 17 00:00:00 2001 From: armar-user <armar-user@kit.edu> Date: Wed, 5 May 2021 16:33:54 +0200 Subject: [PATCH] RobotStateMemory: creating "Localization" core segment on startup --- .../RobotStateMemory/RobotStateMemory.cpp | 23 ++++++++++++++----- .../RobotStateMemory/RobotStateMemory.h | 10 +++++++- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp index 3298e2672..1624f899c 100644 --- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp +++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp @@ -97,6 +97,8 @@ namespace armarx { setupRobotUnitSegment(); + setupLocalizationCoreSegment(); + cfg.loggingNames.emplace_back(robotUnitSensorPrefix); handler = make_shared<RobotUnitDataStreamingReceiver>(this, getRobotUnit(), cfg); keys = handler->getDataDescription(); @@ -119,17 +121,26 @@ namespace armarx stopRobotUnitStream(); } + /*************************************************************/ + // RobotUnit Streaming functions + /*************************************************************/ + void RobotStateMemory::setupLocalizationCoreSegment() + { + ARMARX_INFO << "Adding core segment " << localizationCoreSegmentName; + workingMemory.addCoreSegments({localizationCoreSegmentName}); + } + /*************************************************************/ // RobotUnit Streaming functions /*************************************************************/ void RobotStateMemory::setupRobotUnitSegment() { - ARMARX_INFO << "Adding core segment " << robotUnitCoreSegmentName; - workingMemory.addCoreSegments({robotUnitCoreSegmentName}); + ARMARX_INFO << "Adding core segment " << proprioceptionCoreSegmentName; + workingMemory.addCoreSegments({proprioceptionCoreSegmentName}); - ARMARX_INFO << "Adding provider segment " << robotUnitCoreSegmentName << "/" << robotUnitProviderSegmentName; + ARMARX_INFO << "Adding provider segment " << proprioceptionCoreSegmentName << "/" << robotUnitProviderSegmentName; armem::data::AddSegmentInput input; - input.coreSegmentName = robotUnitCoreSegmentName; + input.coreSegmentName = proprioceptionCoreSegmentName; input.providerSegmentName = robotUnitProviderSegmentName; auto encoderEntryType = std::make_shared<aron::typenavigator::ObjectNavigator>("RobotUnitEncoderEntry"); @@ -144,11 +155,11 @@ namespace armarx if (!result.success) { - ARMARX_ERROR << "Could not add segment " << robotUnitCoreSegmentName << "/" << robotUnitProviderSegmentName << ". The error message is: " << result.errorMessage; + ARMARX_ERROR << "Could not add segment " << proprioceptionCoreSegmentName << "/" << robotUnitProviderSegmentName << ". The error message is: " << result.errorMessage; } robotUnitProviderID.memoryName = workingMemoryName; - robotUnitProviderID.coreSegmentName = robotUnitCoreSegmentName; + robotUnitProviderID.coreSegmentName = proprioceptionCoreSegmentName; robotUnitProviderID.providerSegmentName = robotUnitProviderSegmentName; } diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h index 9787ac6f5..490b04109 100644 --- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h +++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h @@ -91,6 +91,9 @@ namespace armarx void startRobotUnitStream(); void stopRobotUnitStream(); + // localization segment + void setupLocalizationCoreSegment(); + private: std::string workingMemoryName = "RobotStateMemory"; bool addCoreSegmentOnUsage = false; @@ -98,10 +101,15 @@ namespace armarx mutable std::recursive_mutex startStopMutex; // Memory IDs - std::string robotUnitCoreSegmentName = "Proprioception"; + + // - proprioception + std::string proprioceptionCoreSegmentName = "Proprioception"; std::string robotUnitProviderSegmentName = "RobotUnit"; // get robot name? armem::data::MemoryID robotUnitProviderID; + // - localization + std::string localizationCoreSegmentName = "Localization"; + // RobotUnit stuff RobotUnitDataStreaming::DataStreamingDescription keys; std::vector<RobotUnitDataStreaming::DataEntry> keysList; -- GitLab