22#include <RobotAPI/libraries/armem_robot_state/aron/Proprioception.aron.generated.h>
23#include <RobotAPI/libraries/armem_robot_state/aron/Robot.aron.generated.h>
24#include <RobotAPI/libraries/armem_robot_state/aron/RobotState.aron.generated.h>
25#include <RobotAPI/libraries/armem_robot_state/aron/Transform.aron.generated.h>
26#include <RobotAPI/libraries/armem_robot_state/aron/TransformHeader.aron.generated.h>
32namespace fs = ::std::filesystem;
78 update.entityID = entityID;
80 arondto::RobotDescription aronDescription;
83 update.instancesData = {aronDescription.toAron()};
102 const std::string& robotName,
103 const std::string& robotRootNodeName,
107 const auto providerId =
109 const auto entityID = providerId.withEntityName(
GlobalFrame +
"," + robotRootNodeName)
113 update.entityID = entityID;
115 arondto::Transform aronTransform;
119 aronTransform.header.agent = robotName;
120 aronTransform.header.frame = robotRootNodeName;
122 aronTransform.header.timestamp =
timestamp;
124 aronTransform.transform = globalRootPose;
127 update.instancesData = {aronTransform.toAron()};
146 const std::string& robotTypeName,
147 const std::string& robotName,
153 const auto entityID = providerId.withEntityName(robotName).withTimestamp(
timestamp);
156 update.entityID = entityID;
158 arondto::Proprioception aronProprioception;
159 aronProprioception.joints.position = jointMap;
161 update.instancesData = {aronProprioception.toAron()};
180 const std::string& robotTypeName,
181 const std::string& robotName,
182 const std::string& robotRootNodeName)
186 const bool successProp =
189 return successLoc and successProp;
static DateTime Now()
Current time on the virtual clock.
The memory name system (MNS) client.
Writer useWriter(const MemoryID &memoryID)
Use a memory server and get a writer for it.
Indicates that a query to the Memory Name System failed.
void connect(armem::client::MemoryNameSystem &memoryNameSystem)
struct armarx::armem::robot_state::RobotWriter::Properties properties
bool storeProprioception(const std::map< std::string, float > &jointMap, const std::string &robotTypeName, const std::string &robotName, const armem::Time ×tamp)
bool storeLocalization(const Eigen::Matrix4f &globalRootPose, const std::string &robotName, const std::string &robotRootNodeName, const armem::Time ×tamp)
const std::string propertyPrefix
void registerPropertyDefinitions(::armarx::PropertyDefinitionsPtr &def)
bool storeDescription(const description::RobotDescription &description, const armem::Time ×tamp=armem::Time::Invalid()) override
bool storeState(const RobotState &state, const std::string &robotTypeName, const std::string &robotName, const std::string &robotRootNodeName) override
armem::client::Writer memoryWriter
#define ARMARX_IMPORTANT
The logging level for always important information, but expected behaviour (in contrast to ARMARX_WAR...
#define ARMARX_ERROR
The logging level for unexpected behaviour, that must be fixed.
#define ARMARX_DEBUG
The logging level for output that is only interesting while debugging.
std::string const GlobalFrame
Variable of the global coordinate system.
const std::string descriptionCoreSegment
const std::string memoryName
const std::string localizationCoreSegment
const std::string proprioceptionCoreSegment
const std::string descriptionEntityName
void toAron(arondto::ObjectInstance &dto, const RobotState &bo)
armarx::core::time::DateTime Time
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
Result of an EntityUpdate.
An update of an entity for a specific point in time.