diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp index 4ddd9457f3ac7d684bb86c15b080040985157342..8b6d4e525f4710dde4f6384af5ce89fe99e0e372 100644 --- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp +++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp @@ -135,11 +135,11 @@ namespace armarx::armem::articulated_object void Reader::synchronize(ArticulatedObject& obj, const armem::Time& timestamp) { - auto state = queryState(obj.description, timestamp); + auto state = queryState(obj.instance, timestamp); if (not state) /* c++20 [[unlikely]] */ { - ARMARX_WARNING << "Could not synchronize object " << obj.description.name; + ARMARX_WARNING << "Could not synchronize object " << obj.instance; return; } diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp index dcd44d6739bfaa3e211a79721a330cc10b4751fc..05506152012d6527110801adb5bfe5b015a42d1b 100644 --- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp +++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp @@ -104,6 +104,8 @@ namespace armarx::armem::articulated_object std::optional<armem::MemoryID> Writer::storeOrGetClass(const ArticulatedObject& obj) { + ARMARX_TRACE; + const auto objectId = knownObjects.find(obj.description.name); // check if exists @@ -187,7 +189,10 @@ namespace armarx::armem::articulated_object const auto& timestamp = obj.timestamp; - ARMARX_DEBUG << "Storing articulated object instance '" << obj.description.name << "' (provider '" << properties.providerName << "')"; + ARMARX_CHECK(not obj.instance.empty()) << "An object instance name must be provided!"; + const std::string entityName = obj.description.name + "/" + obj.instance; + + ARMARX_DEBUG << "Storing articulated object instance '" << entityName << "' (provider '" << properties.providerName << "')"; const auto providerId = armem::MemoryID() .withMemoryName(properties.memoryName) @@ -195,7 +200,7 @@ namespace armarx::armem::articulated_object .withProviderSegmentName(properties.providerName); armem::EntityUpdate update; - update.entityID = providerId.withEntityName(obj.description.name); + update.entityID = providerId.withEntityName(entityName); // .withTimestamp(timestamp); // You only need to specify the entity ID, not the snapshot ID // arondto::Robot aronArticulatedObject;