29#include <MemoryX/interface/observers/ObjectMemoryObserverInterface.h>
59 ::
armarx::Serializable(source),
61 ObjectInstanceBase(source),
81 EntityAttributeBasePtr
95 const ::Ice::Current&)
101 MultivariateNormalDistributionBasePtr uncertainty =
102 MultivariateNormalDistributionBasePtr::dynamicCast(
151 return armarx::DEFAULT_VIEWTARGET_PRIORITY;
162 MultivariateNormalDistributionBasePtr
165 return MultivariateNormalDistributionBasePtr::dynamicCast(
171 const ::Ice::Current&)
178 EntityAttributeBasePtr
192 const ::Ice::Current&)
217 ClassProbabilityMap classes;
220 int numberValues = attr->size();
222 std::pair<std::string, float> element;
224 for (
int v = 0; v < numberValues; v++)
226 element.first = attr->getValueAt(v)->getString();
227 element.second = DiscreteProbabilityBasePtr::dynamicCast(attr->getUncertaintyAt(v))
230 classes.insert(element);
244 attr->setValueWithUncertainty(
259 attr->addValueWithUncertainty(
279 ClassProbabilityMap::const_iterator itMax = classes.end();
281 for (ClassProbabilityMap::const_iterator it = classes.begin(); it != classes.end(); ++it)
282 if (itMax == classes.end() || it->second > itMax->second)
287 return (itMax != classes.end()) ? itMax->first :
"";
294 ClassProbabilityMap::const_iterator it = classes.find(className);
296 if (it != classes.end())
311 << motionModel->getMotionModelName();
325 return this->
clone();
347 ObjectInstance::output(std::ostream& stream)
const
355 armarx::FramedPositionBasePtr
359 ->getClass<armarx::FramedPositionBase>();
362 armarx::FramedOrientationBasePtr
366 ->getClass<armarx::FramedOrientationBase>();
The FramedOrientation class.
The FramedPosition class.
Implements a Variant type for timestamps.
The Variant class is described here: Variants.
The DiscreteProbability class.
Attribute of MemoryX entities.
void setId(const ::std::string &id, const ::Ice::Current &=Ice::emptyCurrent) override
Set id of this entity.
bool hasAttribute(const ::std::string &attrName, const ::Ice::Current &=Ice::emptyCurrent) const override
Check whether this entity has an attribute with the given name.
EntityAttributeBasePtr getAttribute(const ::std::string &attrName, const ::Ice::Current &=Ice::emptyCurrent) const override
Retrieve attribute from entity.
void setName(const ::std::string &name, const ::Ice::Current &=Ice::emptyCurrent) override
Set name of this entity.
Entity(const Entity &source)
virtual armarx::VariantPtr getAttributeValue(const ::std::string &attrName) const
Retrieve value of an attribute from entity.
std::mutex attributesMutex
std::recursive_mutex wrappersMutex
void output(std::ostream &stream) const
void putAttribute(const ::memoryx::EntityAttributeBasePtr &attr, const ::Ice::Current &=Ice::emptyCurrent) override
Store attribute in entity.
::std::string getName(const ::Ice::Current &=Ice::emptyCurrent) const override
Retrieve name of this entity.
std::shared_mutex entityMutex
void setMotionModel(AbstractMotionModelPtr motionModel)
Set the motion model for this object.
int getLocalizationPriority(const ::Ice::Current &=Ice::emptyCurrent) const override
void setOrientation(const armarx::FramedOrientationBasePtr &orientation, const ::Ice::Current &=Ice::emptyCurrent) override
Set orientation of the instance.
void setPositionUncertainty(const MultivariateNormalDistributionBasePtr &uncertainty, const ::Ice::Current &=Ice::emptyCurrent) override
Set uncertainty of position estimate.
EntityAttributeBasePtr getOrientationAttribute() const
Retrieve attribute which holds instance position.
armarx::FramedPosePtr getPose() const
Convenience function to get position and orientation attributes at once.
armarx::FramedOrientationPtr getOrientation() const
Retrieve orientation of the instance.
armarx::FramedPositionPtr getPosition() const
Retrieve position of the instance.
void setClass(const std::string &className, float probability, const Ice::Current &=Ice::emptyCurrent) override
Set the class attribute of the ObjectInstance.
bool hasLocalizationTimestamp() const
armarx::FramedPositionBasePtr getPositionBase(const ::Ice::Current &=Ice::emptyCurrent) const override
void setExistenceCertainty(float existenceCertainty, const ::Ice::Current &=Ice::emptyCurrent) override
Set existence certainty for this instance.
AbstractMotionModelPtr motionModel
void addClass(const std::string &className, float probability, const Ice::Current &=Ice::emptyCurrent) override
Adds new class membership to the class attribute.
void clearClasses(const Ice::Current &=Ice::emptyCurrent) override
Clear class membership.
float getExistenceCertainty(const ::Ice::Current &=Ice::emptyCurrent) const override
Retrieve existence certainty for this instance.
void setPose(const armarx::FramedPoseBasePtr &newPose)
Convenience function to set position and orientation attributes at once.
void setPosition(const armarx::FramedPositionBasePtr &position, const ::Ice::Current &=Ice::emptyCurrent) override
Set position of the instance.
AbstractMotionModelPtr getMotionModel() const
armarx::FramedOrientationBasePtr getOrientationBase(const ::Ice::Current &=Ice::emptyCurrent) const override
::std::string getMostProbableClass(const ::Ice::Current &=Ice::emptyCurrent) const override
Retrieve the class with highest membership probability.
void setLocalizationPriority(Ice::Int priority, const ::Ice::Current &=Ice::emptyCurrent) override
void setLocalizationTimestamp(const IceUtil::Time ×tamp)
Ice::ObjectPtr ice_clone() const override
ObjectInstance(const std::string &name, const std::string &id="")
Constructs a new ObjectInstance WorkingMemory entity.
MultivariateNormalDistributionBasePtr getPositionUncertainty(const ::Ice::Current &=Ice::emptyCurrent) const override
Get uncertainty of position estimate.
EntityAttributeBasePtr getPositionAttribute() const
Retrieve attribute which holds instance position.
ObjectInstancePtr clone(const Ice::Current &c=Ice::emptyCurrent) const
float getClassProbability(const ::std::string &className, const ::Ice::Current &=Ice::emptyCurrent) const override
Retrieve membership probability for a given class.
ClassProbabilityMap getClasses(const ::Ice::Current &=Ice::emptyCurrent) const override
Retrieve classes and associated class membership probability for this instance.
IceUtil::Time getLocalizationTimestamp() const
#define ARMARX_CHECK_EXPRESSION(expression)
This macro evaluates the expression and if it turns out to be false it will throw an ExpressionExcept...
#define ARMARX_DEBUG_S
The logging level for output that is only interesting while debugging.
#define ARMARX_DEBUG
The logging level for output that is only interesting while debugging.
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< Variant > VariantPtr
IceInternal::Handle< FramedPosition > FramedPositionPtr
IceInternal::Handle< FramedOrientation > FramedOrientationPtr
IceInternal::Handle< FramedPose > FramedPosePtr
IceInternal::Handle< EntityAttribute > EntityAttributePtr
Typedef of EntityAttributePtr as IceInternal::Handle<EntityAttribute> for convenience.
IceInternal::Handle< ObjectInstance > ObjectInstancePtr
IceInternal::Handle< AbstractMotionModel > AbstractMotionModelPtr