41 const std::string Component::defaultName =
"ObjectMemoryToSimulation";
56 def->component(simulator);
60 def->optional(properties.objectPoseProviderName,
"p.objectPoseProviderName");
109 synchronizeSimulator();
125 return Component::defaultName;
131 return Component::defaultName;
141 Component::synchronizeSimulator(const ::Ice::Current&)
143 ARMARX_INFO <<
"Synchronizing memory and simulator";
146 const std::vector<armarx::objpose::ObjectPose> objectPoses =
147 (properties.objectPoseProviderName.empty())
151 ARMARX_INFO <<
"Found " << objectPoses.size() <<
" objects";
153 for (
const auto& objectPose : objectPoses)
158 const auto objectInfo = finder.
findObject(objectPose);
161 const auto globalPoseIce =
armarx::toIce(objectPose.objectPoseGlobal);
162 const auto instanceName = objectPose.objectID.str();
164 const auto articulatedModelFile = objectInfo->getArticulatedModel();
165 if (articulatedModelFile.has_value())
167 ARMARX_INFO <<
"Found robot: " << articulatedModelFile->absolutePath;
169 const auto robotName = simulator->addRobotFromFile(
172 simulator->setRobotPose(robotName, globalPoseIce);
181 simulator->addObjectFromFile(
182 packagePath.serialize(), instanceName, globalPoseIce, objectPose.isStatic);
Default component property definition container.
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Used to find objects in the ArmarX objects repository [1] (formerly [2]).
std::optional< ObjectInfo > findObject(const std::string &dataset, const std::string &name) const
objpose::ObjectPoseSeq getObjectPoses()
objpose::ObjectPoseSeq getObjectPosesByProvider(const std::string &providerName)
data::PackagePath serialize() const
static std::filesystem::path toSystemPath(const data::PackagePath &pp)
void onInitComponent() override
void onDisconnectComponent() override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void onConnectComponent() override
static std::string GetDefaultName()
Get the component's default name.
void onExitComponent() override
std::string getDefaultName() const override
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
#define ARMARX_INFO
The normal logging level.
armarx::PackagePath toPackagePath(const armarx::PackageFileLocation &packageFileLocation)
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
void toIce(std::map< IceKeyT, IceValueT > &iceMap, const boost::container::flat_map< CppKeyT, CppValueT > &cppMap)
std::string package
Name of the ArmarX package.
std::string relativePath
Relative to the package's data directory.