5 #include <VirtualRobot/ManipulationObject.h>
20 PriorKnowledgeInterfacePrx
const& priorKnowledge,
21 WorkingMemoryInterfacePrx
const& workingMemory,
30 this->robotStateComponent = robotStateComponent;
31 sharedRobot = robotStateComponent->getSynchronizedRobot();
33 objectInstancesSegment = workingMemory->getObjectInstancesSegment();
36 std::vector<ObjectInstanceWrapper>
39 memoryx::EntityBaseList entities = objectInstancesSegment->getAllEntities();
40 std::vector<memoryx::ObjectInstancePtr> objectInstances;
41 for (
auto& entity : entities)
46 if (ids.empty() || ids.count(object->getId()))
48 objectInstances.push_back(
object);
53 std::vector<ObjectInstanceWrapper> result;
54 for (
auto& objectInstance : objectInstances)
56 std::string objectName = objectInstance->getName();
59 if (objectInstance->hasLocalizationTimestamp())
61 IceUtil::Time localizationTimestamp = objectInstance->getLocalizationTimestamp();
63 localRobot, robotStateComponent, localizationTimestamp.toMicroSeconds());
69 Eigen::Matrix4f globalPose = objectInstance->getPose()->toGlobalEigen(localRobot);
71 std::string objectClass = objectInstance->getMostProbableClass();
76 << objectClass <<
"'."
77 <<
" Skipping object '" << objectName <<
"'.";
82 VirtualRobot::ManipulationObjectPtr manipulationObject =
83 entry->manipulationObject->clone(objectName);
84 manipulationObject->setGlobalPose(globalPose);
88 object.manipulationObject = manipulationObject;
89 result.push_back(
object);