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);