Skip to content
Snippets Groups Projects
Commit e1cde248 authored by Fabian Reister's avatar Fabian Reister
Browse files

armem_objects/server: using virtual robot reader (new memory) instead of robot state component

parent b1af7613
No related branches found
No related tags found
1 merge request!251Feature/object memory connected to robot state memory
...@@ -21,6 +21,9 @@ armarx_add_library( ...@@ -21,6 +21,9 @@ armarx_add_library(
RobotAPI::armem_robot RobotAPI::armem_robot
RobotAPI::armem_objects RobotAPI::armem_objects
armem_robot_state
armem_robot
HEADERS HEADERS
class/FloorVis.h class/FloorVis.h
...@@ -51,4 +54,3 @@ armarx_add_library( ...@@ -51,4 +54,3 @@ armarx_add_library(
add_library(${PROJECT_NAME}::armem_objects_server ALIAS armem_objects_server) add_library(${PROJECT_NAME}::armem_objects_server ALIAS armem_objects_server)
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include <RobotAPI/libraries/core/FramedPose.h> #include <RobotAPI/libraries/core/FramedPose.h>
#include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h> #include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h>
#include "ArmarXCore/core/time/Clock.h"
#include <ArmarXCore/core/ice_conversions/ice_conversions_templates.h> #include <ArmarXCore/core/ice_conversions/ice_conversions_templates.h>
#include <ArmarXCore/core/logging/Logging.h> #include <ArmarXCore/core/logging/Logging.h>
#include <ArmarXCore/core/system/cmake/CMakePackageFinder.h> #include <ArmarXCore/core/system/cmake/CMakePackageFinder.h>
...@@ -190,6 +191,8 @@ namespace armarx::armem::server::obj::instance ...@@ -190,6 +191,8 @@ namespace armarx::armem::server::obj::instance
// Update the entity. // Update the entity.
stats.numUpdated++; stats.numUpdated++;
ARMARX_CHECK(virtualRobotReader->synchronizeRobot(*robot, timestamp));
objpose::ObjectPose& newPose = newObjectPoses.emplace_back(); objpose::ObjectPose& newPose = newObjectPoses.emplace_back();
if (provided.objectPoseFrame.empty()) if (provided.objectPoseFrame.empty())
{ {
...@@ -394,7 +397,12 @@ namespace armarx::armem::server::obj::instance ...@@ -394,7 +397,12 @@ namespace armarx::armem::server::obj::instance
if (!synchronized) // Synchronize only once. if (!synchronized) // Synchronize only once.
{ {
RemoteRobot::synchronizeLocalClone(agent, robotStateComponent); const auto timestamp = armarx::Clock::Now();
ARMARX_CHECK_NOT_NULL(agent);
ARMARX_CHECK_NOT_NULL(virtualRobotReader);
ARMARX_CHECK(virtualRobotReader->synchronizeRobot(*agent, timestamp));
synchronized = true; synchronized = true;
} }
objectPose.updateAttached(agent); objectPose.updateAttached(agent);
...@@ -653,7 +661,10 @@ namespace armarx::armem::server::obj::instance ...@@ -653,7 +661,10 @@ namespace armarx::armem::server::obj::instance
} }
else else
{ {
RemoteRobot::synchronizeLocalClone(agent, robotStateComponent); ARMARX_CHECK_NOT_NULL(virtualRobotReader);
const auto timestamp = armarx::Clock::Now();
ARMARX_CHECK(virtualRobotReader->synchronizeRobot(*agent, timestamp));
armarx::FramedPose framed(data.pose.objectPoseGlobal, armarx::GlobalFrame, agent->getName()); armarx::FramedPose framed(data.pose.objectPoseGlobal, armarx::GlobalFrame, agent->getName());
if (frameName == armarx::GlobalFrame) if (frameName == armarx::GlobalFrame)
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <SimoxUtility/caching/CacheMap.h> #include <SimoxUtility/caching/CacheMap.h>
#include <SimoxUtility/shapes/OrientedBox.h> #include <SimoxUtility/shapes/OrientedBox.h>
#include "RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.h"
#include <RobotAPI/interface/core/RobotState.h> #include <RobotAPI/interface/core/RobotState.h>
#include <RobotAPI/interface/objectpose/ObjectPoseStorageInterface.h> #include <RobotAPI/interface/objectpose/ObjectPoseStorageInterface.h>
...@@ -158,7 +159,7 @@ namespace armarx::armem::server::obj::instance ...@@ -158,7 +159,7 @@ namespace armarx::armem::server::obj::instance
public: public:
RobotStateComponentInterfacePrx robotStateComponent; robot_state::VirtualRobotReader* virtualRobotReader;
VirtualRobot::RobotPtr robot; VirtualRobot::RobotPtr robot;
objpose::ProviderInfoMap providers; objpose::ProviderInfoMap providers;
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include <RobotAPI/libraries/armem_objects/aron/ObjectInstance.aron.generated.h> #include <RobotAPI/libraries/armem_objects/aron/ObjectInstance.aron.generated.h>
#include <RobotAPI/libraries/aron/common/aron_conversions/core.h> #include <RobotAPI/libraries/aron/common/aron_conversions/core.h>
#include "ArmarXCore/core/time/Clock.h"
#include <ArmarXCore/core/ice_conversions/ice_conversions_templates.h> #include <ArmarXCore/core/ice_conversions/ice_conversions_templates.h>
#include <ArmarXCore/core/time/CycleUtil.h> #include <ArmarXCore/core/time/CycleUtil.h>
#include <ArmarXCore/core/time/ice_conversions.h> #include <ArmarXCore/core/time/ice_conversions.h>
...@@ -77,7 +78,7 @@ namespace armarx::armem::server::obj::instance ...@@ -77,7 +78,7 @@ namespace armarx::armem::server::obj::instance
void SegmentAdapter::connect( void SegmentAdapter::connect(
RobotStateComponentInterfacePrx robotStateComponent, robot_state::VirtualRobotReader* virtualRobotReader,
VirtualRobot::RobotPtr robot, VirtualRobot::RobotPtr robot,
KinematicUnitObserverInterfacePrx kinematicUnitObserver, KinematicUnitObserverInterfacePrx kinematicUnitObserver,
viz::Client arviz, viz::Client arviz,
...@@ -88,7 +89,7 @@ namespace armarx::armem::server::obj::instance ...@@ -88,7 +89,7 @@ namespace armarx::armem::server::obj::instance
this->arviz = arviz; this->arviz = arviz;
segment.robot = robot; segment.robot = robot;
segment.robotStateComponent = robotStateComponent; segment.virtualRobotReader = virtualRobotReader;
robotHead.kinematicUnitObserver = kinematicUnitObserver; robotHead.kinematicUnitObserver = kinematicUnitObserver;
robotHead.debugObserver = debugObserver; robotHead.debugObserver = debugObserver;
...@@ -175,7 +176,10 @@ namespace armarx::armem::server::obj::instance ...@@ -175,7 +176,10 @@ namespace armarx::armem::server::obj::instance
segment.doLocked([&]() segment.doLocked([&]()
{ {
RemoteRobot::synchronizeLocalClone(segment.robot, segment.robotStateComponent); const auto timestamp = armarx::Clock::Now();
ARMARX_CHECK_NOT_NULL(segment.robot);
ARMARX_CHECK(segment.virtualRobotReader->synchronizeRobot(*segment.robot, timestamp));
if (segment.robot->hasRobotNode(calibration.robotNode)) if (segment.robot->hasRobotNode(calibration.robotNode))
{ {
...@@ -653,4 +657,3 @@ namespace armarx::armem::server::obj::instance ...@@ -653,4 +657,3 @@ namespace armarx::armem::server::obj::instance
} }
} }
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <ArmarXGui/libraries/RemoteGui/Client/Widgets.h> #include <ArmarXGui/libraries/RemoteGui/Client/Widgets.h>
#include "RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.h"
#include <RobotAPI/interface/armem/server/ObjectMemoryInterface.h> #include <RobotAPI/interface/armem/server/ObjectMemoryInterface.h>
#include <RobotAPI/interface/core/RobotState.h> #include <RobotAPI/interface/core/RobotState.h>
...@@ -62,7 +63,7 @@ namespace armarx::armem::server::obj::instance ...@@ -62,7 +63,7 @@ namespace armarx::armem::server::obj::instance
void init(); void init();
void connect( void connect(
RobotStateComponentInterfacePrx robotStateComponent, robot_state::VirtualRobotReader* virtualRobotReader,
VirtualRobot::RobotPtr robot, VirtualRobot::RobotPtr robot,
KinematicUnitObserverInterfacePrx kinematicUnitObserver, KinematicUnitObserverInterfacePrx kinematicUnitObserver,
viz::Client arviz, viz::Client arviz,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment