diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp index dd2a56edbbdb976f2b6d09552fc98c5e2eb11801..2d548e7c1f8932b15f526c07d0e87b6475114cc7 100644 --- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp +++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp @@ -110,8 +110,8 @@ namespace armarx::armem::server::robot_state robotUnit.pollFrequency = std::clamp(robotUnit.pollFrequency, 1, ROBOT_UNIT_MAXIMUM_FREQUENCY); robotUnit.writer.properties.memoryBatchSize = std::max(static_cast<unsigned int>(1), robotUnit.writer.properties.memoryBatchSize); - Ice::StringSeq includePaths; - auto packages = armarx::Application::GetProjectDependencies(); + std::vector<std::string> includePaths; + std::vector<std::string> packages = armarx::Application::GetProjectDependencies(); packages.push_back(Application::GetProjectName()); for (const std::string& projectName : packages) @@ -122,8 +122,8 @@ namespace armarx::armem::server::robot_state } CMakePackageFinder project(projectName); - auto pathsString = project.getIncludePaths(); - Ice::StringSeq projectIncludePaths = simox::alg::split(pathsString, ";,"); + std::string pathsString = project.getIncludePaths(); + std::vector<std::string> projectIncludePaths = simox::alg::split(pathsString, ";,"); includePaths.insert(includePaths.end(), projectIncludePaths.begin(), projectIncludePaths.end()); } @@ -140,13 +140,14 @@ namespace armarx::armem::server::robot_state robotUnit.plugin->waitUntilRobotUnitIsRunning(); } RobotUnitInterfacePrx robotUnitPrx = robotUnit.plugin->getRobotUnit(); - ARMARX_CHECK_NOT_NULL(robotUnitPrx->getKinematicUnit()); + ARMARX_CHECK_NOT_NULL(robotUnitPrx->getKinematicUnit()) + << "Robot unit '" << robotUnit.plugin->getRobotUnitName() << "' must have a kinematic unit."; - descriptionSegment.connect(getArvizClient(), robotUnitPrx); + descriptionSegment.connect(robotUnitPrx); - proprioceptionSegment.connect(getArvizClient(), robotUnitPrx); + proprioceptionSegment.connect(robotUnitPrx); - localizationSegment.connect(getArvizClient()); + localizationSegment.connect(); commonVisu.connect(getArvizClient()); diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h index d249678b6a9232ebc32743091f2038e0ed1ea3e5..39048334904470b929e0ebe045083a63d4f59125 100644 --- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h +++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h @@ -26,18 +26,11 @@ #include <atomic> #include <optional> #include <queue> -#include <thread> - -// Simox -#include <SimoxUtility/meta/enum/adapt_enum.h> // ArmarX #include <ArmarXCore/core/Component.h> -#include <ArmarXCore/core/services/tasks/RunningTask.h> - -// BaseClass -#include "RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h" +#include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> #include <RobotAPI/libraries/RobotUnitDataStreamingReceiver/RobotUnitDataStreamingReceiver.h> #include <RobotAPI/libraries/armem/server/ComponentPlugin.h> @@ -80,26 +73,19 @@ namespace armarx::armem::server::robot_state RobotStateMemory(); virtual ~RobotStateMemory() override; - /// @see armarx::ManagedIceObject::getDefaultName() + std::string getDefaultName() const override; + protected: - /// @see armarx::ManagedIceObject::onInitComponent() - void onInitComponent() override; + armarx::PropertyDefinitionsPtr createPropertyDefinitions() override; - /// @see armarx::ManagedIceObject::onConnectComponent() + void onInitComponent() override; void onConnectComponent() override; - - /// @see armarx::ManagedIceObject::onDisconnectComponent() void onDisconnectComponent() override; - - /// @see armarx::ManagedIceObject::onExitComponent() void onExitComponent() override; - /// @see PropertyUser::createPropertyDefinitions() - armarx::PropertyDefinitionsPtr createPropertyDefinitions() override; - private: diff --git a/source/RobotAPI/libraries/armem_objects/server/articulated_object_class/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/articulated_object_class/Segment.cpp index 425b5af02da13e58f4a654a0784029f5fbe9a9e0..354ac2efcb9b7caa8a20eff748485db6b9e33403 100644 --- a/source/RobotAPI/libraries/armem_objects/server/articulated_object_class/Segment.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/articulated_object_class/Segment.cpp @@ -57,11 +57,12 @@ namespace armarx::armem::server::obj::articulated_object_class } } - void Segment::connect(viz::Client arviz) + + void Segment::connect() { - // this->visu = std::make_unique<Visu>(arviz, *this); } + void Segment::loadByObjectFinder(const std::string& package) { ObjectFinder finder(package); diff --git a/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformWriter.cpp b/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformWriter.cpp index 47660fc439e597f4c8f59bbcff666223c5964e18..676a83e722e2356942252814675e7bcbac839edc 100644 --- a/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformWriter.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/client/localization/TransformWriter.cpp @@ -149,10 +149,4 @@ namespace armarx::armem::client::robot_state::localization return updateResult.success; } - // const std::string& TransformWriter::getPropertyPrefix() const - // { - // return propertyPrefix; - // } - - } // namespace armarx::armem::client::robot_state::localization 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 370f6f55bdcc6404d1129eee05474e379ca4120d..8c8d1fcac040b511b9d2cd30e425df0364200783 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp @@ -63,9 +63,8 @@ namespace armarx::armem::server::robot_state::description } - void Segment::connect(const viz::Client& arviz, const RobotUnitInterfacePrx& robotUnitPrx) + void Segment::connect(const RobotUnitInterfacePrx& robotUnitPrx) { - // this->visu = std::make_unique<Visu>(arviz, *this); robotUnit = robotUnitPrx; // store the robot description linked to the robot unit in this segment diff --git a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h index 073c40230dbd3075a9a7f6f8422fb25ffbf2c069..2411180a314d1953ad49a667e39236022ed3d16e 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h +++ b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h @@ -21,7 +21,6 @@ #pragma once -#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h> #include <string> #include <optional> #include <mutex> @@ -30,8 +29,7 @@ #include <ArmarXCore/core/logging/Logging.h> #include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h> -#include <RobotAPI/components/ArViz/Client/Client.h> - +#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h> #include <RobotAPI/libraries/armem/core/MemoryID.h> #include <RobotAPI/libraries/armem_objects/types.h> @@ -52,8 +50,6 @@ namespace armarx::armem namespace armarx::armem::server::robot_state::description { - class Visu; - class Segment : public armarx::Logging { public: @@ -63,7 +59,7 @@ namespace armarx::armem::server::robot_state::description void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix = ""); void init(); - void connect(const viz::Client& arviz, const RobotUnitInterfacePrx& robotUnitPrx); + void connect(const RobotUnitInterfacePrx& robotUnitPrx); std::mutex& mutex() const; 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 d2c02be7e3984418aeb0304d21017768a323e256..75d412a201933a07089ab6433f757533a11fd77d 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.cpp @@ -1,7 +1,6 @@ #include "Segment.h" // STL - #include <iterator> #include <sstream> @@ -12,6 +11,8 @@ #include <Eigen/Core> #include <Eigen/Geometry> +#include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h> +#include <ArmarXCore/core/application/properties/PluginAll.h> #include <ArmarXCore/core/logging/Logging.h> #include <ArmarXCore/core/time/TimeUtil.h> @@ -36,6 +37,7 @@ #include <RobotAPI/libraries/armem_robot_state/common/localization/TransformHelper.h> #include <RobotAPI/libraries/armem_robot_state/common/localization/types.h> + namespace armarx::armem::server::robot_state::localization { @@ -65,16 +67,13 @@ namespace armarx::armem::server::robot_state::localization ARMARX_CHECK_NOT_NULL(iceMemory.workingMemory); ARMARX_INFO << "Adding core segment '" << p.coreSegment << "'"; - - coreSegment = &iceMemory.workingMemory->addCoreSegment( - p.coreSegment, arondto::Transform::toAronType()); + coreSegment = &iceMemory.workingMemory->addCoreSegment(p.coreSegment, arondto::Transform::toAronType()); coreSegment->setMaxHistorySize(p.maxHistorySize); } - void Segment::connect(viz::Client arviz) + void Segment::connect() { - // this->visu = std::make_unique<Visu>(arviz, *this); } @@ -101,20 +100,15 @@ namespace armarx::armem::server::robot_state::localization RobotFramePoseMap frames; - const auto& localizationCoreSegment = - iceMemory.workingMemory->getCoreSegment(p.coreSegment); - const auto knownRobots = simox::alg::get_keys(localizationCoreSegment); - + const auto knownRobots = simox::alg::get_keys(*coreSegment); for (const auto& robotName : knownRobots) { - TransformQuery query{.header{.parentFrame = GlobalFrame, .frame = "root", // TODO, FIXME .agent = robotName, .timestamp = timestamp}}; - const auto result = TransformHelper::lookupTransformChain(localizationCoreSegment, query); - + const auto result = TransformHelper::lookupTransformChain(*coreSegment, query); if (not result) { // TODO @@ -142,17 +136,14 @@ namespace armarx::armem::server::robot_state::localization Segment::RobotPoseMap Segment::getRobotGlobalPoses(const armem::Time& timestamp) const { - using common::robot_state::localization::TransformHelper; using common::robot_state::localization::TransformQuery; RobotPoseMap robotGlobalPoses; - const auto& localizationCoreSegment = - iceMemory.workingMemory->getCoreSegment(p.coreSegment); - const auto knownRobots = simox::alg::get_keys(localizationCoreSegment); + const std::vector<std::string> knownRobots = simox::alg::get_keys(*coreSegment); - for (const auto& robotName : knownRobots) + for (const std::string& robotName : knownRobots) { TransformQuery query{.header{.parentFrame = GlobalFrame, @@ -160,8 +151,7 @@ namespace armarx::armem::server::robot_state::localization .agent = robotName, .timestamp = timestamp}}; - const auto result = TransformHelper::lookupTransform(localizationCoreSegment, query); - + const auto result = TransformHelper::lookupTransform(*coreSegment, query); if (not result) { // TODO @@ -171,7 +161,7 @@ namespace armarx::armem::server::robot_state::localization robotGlobalPoses.emplace(robotName, result.transform.transform); } - ARMARX_INFO << deactivateSpam(10) + ARMARX_INFO << deactivateSpam(60) << "Number of known robot poses: " << robotGlobalPoses.size(); return robotGlobalPoses; @@ -204,74 +194,4 @@ namespace armarx::armem::server::robot_state::localization return result.allSuccess(); } - // std::unordered_map<armem::MemoryID, ::armarx::armem::articulated_object::ArticulatedObjectDescription> Segment::getKnownObjectClasses() const - // { - // std::unordered_map<armem::MemoryID, ::armarx::armem::articulated_object::ArticulatedObjectDescription> objects; - - // for (const auto& [_, provSeg] : iceMemory.workingMemory->getCoreSegment(p.coreClassSegmentName)) - // { - // for (const auto& [name, entity] : provSeg.entities()) - // { - // const auto& entityInstance = entity.getLatestSnapshot().getInstance(0); - // const auto description = articulated_object::convertRobotDescription(entityInstance); - - // if (not description) - // { - // ARMARX_WARNING << "Could not convert entity instance to 'RobotDescription'"; - // continue; - // } - - // ARMARX_INFO << "Key is " << armem::MemoryID(entity.id()); - - // objects.emplace(armem::MemoryID(entity.id()), *description); - // } - // } - - // ARMARX_IMPORTANT << "Number of known articulated object classes: " << objects.size(); - - // return objects; - // } - - // void Segment::RemoteGui::setup(const Segment& data) - // { - // using namespace armarx::RemoteGui::Client; - - // maxHistorySize.setValue(std::max(1, int(data.p.maxHistorySize))); - // maxHistorySize.setRange(1, 1e6); - // infiniteHistory.setValue(data.p.maxHistorySize == -1); - // discardSnapshotsWhileAttached.setValue(data.p.discardSnapshotsWhileAttached); - - // GridLayout grid; - // int row = 0; - // grid.add(Label("Max History Size"), {row, 0}).add(maxHistorySize, {row, 1}); - // row++; - // grid.add(Label("Infinite History Size"), {row, 0}).add(infiniteHistory, {row, 1}); - // row++; - // grid.add(Label("Discard Snapshots while Attached"), {row, 0}).add(discardSnapshotsWhileAttached, {row, 1}); - // row++; - - // group.setLabel("Data"); - // group.addChild(grid); - // } - - // void Segment::RemoteGui::update(Segment& data) - // { - // if (infiniteHistory.hasValueChanged() || maxHistorySize.hasValueChanged() - // || discardSnapshotsWhileAttached.hasValueChanged()) - // { - // std::scoped_lock lock(data.memoryMutex); - - // if (infiniteHistory.hasValueChanged() || maxHistorySize.hasValueChanged()) - // { - // data.p.maxHistorySize = infiniteHistory.getValue() ? -1 : maxHistorySize.getValue(); - // if (data.coreSegment) - // { - // data.coreSegment->setMaxHistorySize(long(data.p.maxHistorySize)); - // } - // } - - // data.p.discardSnapshotsWhileAttached = discardSnapshotsWhileAttached.getValue(); - // } - // } - } // namespace armarx::armem::server::robot_state::localization diff --git a/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.h b/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.h index 4bc4e607be80db6229076e8d9ac22abd4f55dde2..d1ce5de2208f6fbcd32a99a8837710fcfba80f31 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.h +++ b/source/RobotAPI/libraries/armem_robot_state/server/localization/Segment.h @@ -27,17 +27,13 @@ #include <unordered_map> #include <ArmarXCore/core/logging/Logging.h> -#include "ArmarXCore/core/application/properties/PropertyDefinitionContainer.h" - -// #include "ArmarXGui/libraries/RemoteGui/Client/Widgets.h" - -#include "RobotAPI/components/ArViz/Client/Client.h" - -#include "RobotAPI/libraries/armem/core/MemoryID.h" -#include "RobotAPI/libraries/armem_objects/types.h" +#include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h> +#include <RobotAPI/libraries/armem/core/MemoryID.h> +#include <RobotAPI/libraries/armem_objects/types.h> #include <RobotAPI/libraries/armem_robot_state/types.h> + namespace armarx::armem { namespace server @@ -54,8 +50,6 @@ namespace armarx::armem namespace armarx::armem::server::robot_state::localization { - class Visu; - class Segment : public armarx::Logging { public: @@ -71,7 +65,7 @@ namespace armarx::armem::server::robot_state::localization void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix = ""); void init(); - void connect(viz::Client arviz); + void connect(); std::mutex& mutex() const; @@ -95,22 +89,6 @@ namespace armarx::armem::server::robot_state::localization }; Properties p; - // std::unique_ptr<Visu> visu; - - public: - - // struct RemoteGui - // { - // armarx::RemoteGui::Client::GroupBox group; - - // armarx::RemoteGui::Client::IntSpinBox maxHistorySize; - // armarx::RemoteGui::Client::CheckBox infiniteHistory; - // armarx::RemoteGui::Client::CheckBox discardSnapshotsWhileAttached; - - // void setup(const Segment& data); - // void update(Segment& data); - // }; - }; } // namespace armarx::armem::server::robot_state::localization 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 6885f5b0f070d6555bf88a703877a401db555d0c..043774b77c9d92511b2e236e03d0d8ab6352377e 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp +++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp @@ -1,13 +1,13 @@ #include "Segment.h" -#include <mutex> #include <sstream> -#include <ArmarXCore/core/time/TimeUtil.h> +#include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h> #include <ArmarXCore/core/logging/Logging.h> +#include <ArmarXCore/core/time/TimeUtil.h> -#include <RobotAPI/libraries/armem_robot_state/types.h> #include <RobotAPI/libraries/aron/common/aron_conversions.h> +#include <RobotAPI/libraries/armem_robot_state/types.h> #include <RobotAPI/libraries/armem/core/aron_conversions.h> #include <RobotAPI/libraries/armem/core/workingmemory/visitor.h> @@ -16,6 +16,7 @@ #include <RobotAPI/libraries/armem/client/query/Builder.h> #include <RobotAPI/libraries/armem/client/query/query_fns.h> #include <RobotAPI/libraries/armem/server/MemoryToIceAdapter.h> +#include <RobotAPI/libraries/armem/util/util.h> #include <RobotAPI/libraries/armem_robot/robot_conversions.h> #include <RobotAPI/libraries/armem_robot/aron/Robot.aron.generated.h> @@ -23,7 +24,6 @@ #include <RobotAPI/libraries/armem_objects/aron_conversions.h> -#include <RobotAPI/libraries/armem/util/util.h> namespace armarx::armem::server::robot_state::proprioception @@ -40,8 +40,8 @@ namespace armarx::armem::server::robot_state::proprioception void Segment::defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix) { - defs->optional(p.coreSegment, prefix + "seg.proprioception.CoreSegment", "Name of the object instance core segment."); - defs->optional(p.maxHistorySize, prefix + "seg.proprioception.MaxHistorySize", "Maximal size of object poses history (-1 for infinite)."); + defs->optional(p.coreSegmentName, prefix + "seg.proprioception.CoreSegment", "Name of the proprioception core segment."); + defs->optional(p.maxHistorySize, prefix + "seg.proprioception.MaxHistorySize", "Maximal size of proprioception entity histories (-1 for infinite)."); } @@ -49,18 +49,19 @@ namespace armarx::armem::server::robot_state::proprioception { ARMARX_CHECK_NOT_NULL(iceMemory.workingMemory); - ARMARX_INFO << "Adding core segment '" << p.coreSegment << "'"; - coreSegment = &iceMemory.workingMemory->addCoreSegment(p.coreSegment); + ARMARX_INFO << "Adding core segment '" << p.coreSegmentName << "'"; + coreSegment = &iceMemory.workingMemory->addCoreSegment(p.coreSegmentName); coreSegment->setMaxHistorySize(p.maxHistorySize); } - void Segment::connect(viz::Client arviz, RobotUnitInterfacePrx robotUnitPrx) + void Segment::connect(RobotUnitInterfacePrx robotUnitPrx) { - robotUnit = robotUnitPrx; + this->robotUnit = robotUnitPrx; - auto kinematicUnit = robotUnit->getKinematicUnit(); - const auto providerSegmentName = kinematicUnit->getRobotName(); + KinematicUnitInterfacePrx kinematicUnit = robotUnit->getKinematicUnit(); + const std::string providerSegmentName = kinematicUnit->getRobotName(); + this->robotUnitProviderID = coreSegment->id().withProviderSegmentName(providerSegmentName); // TODO what is the purpose? auto encoderEntryType = std::make_shared<aron::typenavigator::ObjectNavigator>("RobotUnitEncoderEntry"); @@ -150,6 +151,7 @@ namespace armarx::armem::server::robot_state::proprioception } else { + // This may happen, just ignore it. // ARMARX_WARNING << "Could not convert entity instance to 'JointState'"; } TIMING_END_COMMENT_STREAM(tEmplace, "tEmplace " + std::to_string(i), ARMARX_VERBOSE); @@ -172,53 +174,10 @@ namespace armarx::armem::server::robot_state::proprioception return jointMap; } + const armem::MemoryID& Segment::getRobotUnitProviderID() const { return robotUnitProviderID; } - - - // void Segment::RemoteGui::setup(const Segment& data) - // { - // using namespace armarx::RemoteGui::Client; - - // maxHistorySize.setValue(std::max(1, int(data.p.maxHistorySize))); - // maxHistorySize.setRange(1, 1e6); - // infiniteHistory.setValue(data.p.maxHistorySize == -1); - // discardSnapshotsWhileAttached.setValue(data.p.discardSnapshotsWhileAttached); - - // GridLayout grid; - // int row = 0; - // grid.add(Label("Max History Size"), {row, 0}).add(maxHistorySize, {row, 1}); - // row++; - // grid.add(Label("Infinite History Size"), {row, 0}).add(infiniteHistory, {row, 1}); - // row++; - // grid.add(Label("Discard Snapshots while Attached"), {row, 0}).add(discardSnapshotsWhileAttached, {row, 1}); - // row++; - - // group.setLabel("Data"); - // group.addChild(grid); - // } - - // void Segment::RemoteGui::update(Segment& data) - // { - // if (infiniteHistory.hasValueChanged() || maxHistorySize.hasValueChanged() - // || discardSnapshotsWhileAttached.hasValueChanged()) - // { - // std::scoped_lock lock(data.memoryMutex); - - // if (infiniteHistory.hasValueChanged() || maxHistorySize.hasValueChanged()) - // { - // data.p.maxHistorySize = infiniteHistory.getValue() ? -1 : maxHistorySize.getValue(); - // if (data.coreSegment) - // { - // data.coreSegment->setMaxHistorySize(long(data.p.maxHistorySize)); - // } - // } - - // data.p.discardSnapshotsWhileAttached = discardSnapshotsWhileAttached.getValue(); - // } - // } - } // namespace armarx::armem::server::robot_state::proprioception diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h index 10f7297a7e3a4ba7756344a94602e32fb1c6095f..abc827c90d236c57e76624de5b16b71a8e48f8b0 100644 --- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h +++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h @@ -21,21 +21,19 @@ #pragma once -#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h> #include <string> #include <optional> #include <mutex> #include <unordered_map> #include <ArmarXCore/core/logging/Logging.h> -#include "ArmarXCore/core/application/properties/PropertyDefinitionContainer.h" - -// #include "ArmarXGui/libraries/RemoteGui/Client/Widgets.h" +#include <ArmarXCore/core/application/properties/forward_declarations.h> -#include "RobotAPI/components/ArViz/Client/Client.h" +#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h> +#include <RobotAPI/components/ArViz/Client/Client.h> +#include <RobotAPI/libraries/armem/core/MemoryID.h> +#include <RobotAPI/libraries/armem_objects/types.h> -#include "RobotAPI/libraries/armem/core/MemoryID.h" -#include "RobotAPI/libraries/armem_objects/types.h" namespace armarx::armem { @@ -53,8 +51,6 @@ namespace armarx::armem namespace armarx::armem::server::robot_state::proprioception { - class Visu; - class Segment : public armarx::Logging { public: @@ -68,7 +64,7 @@ namespace armarx::armem::server::robot_state::proprioception void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix = ""); void init(); - void connect(viz::Client arviz, RobotUnitInterfacePrx robotUnitPrx); + void connect(RobotUnitInterfacePrx robotUnitPrx); std::mutex& mutex() const; @@ -85,32 +81,15 @@ namespace armarx::armem::server::robot_state::proprioception wm::CoreSegment* coreSegment = nullptr; RobotUnitInterfacePrx robotUnit; - armem::MemoryID robotUnitProviderID; struct Properties { - std::string coreSegment = "Proprioception"; + std::string coreSegmentName = "Proprioception"; int64_t maxHistorySize = 1000; }; Properties p; - // std::unique_ptr<Visu> visu; - - public: - - // struct RemoteGui - // { - // armarx::RemoteGui::Client::GroupBox group; - - // armarx::RemoteGui::Client::IntSpinBox maxHistorySize; - // armarx::RemoteGui::Client::CheckBox infiniteHistory; - // armarx::RemoteGui::Client::CheckBox discardSnapshotsWhileAttached; - - // void setup(const Segment& data); - // void update(Segment& data); - // }; - }; } // namespace armarx::armem::server::robot_state::proprioception