KBMComponent Class Reference

Wrapper for the KBM class. More...

#include <MemoryX/components/KBMComponent/KBMComponent.h>

+ Inheritance diagram for KBMComponent:

Public Member Functions

void accumulateEvaluationPositions (const std::vector< memoryx::KBM::Real > &positionSequence, const Ice::Current &c=Ice::emptyCurrent) override
 accumulates the given position in the evaluation accumulator More...
 
void accumulateEvaluationProprioceptions (const std::vector< memoryx::KBM::Real > &proprioceptions, const Ice::Current &c=Ice::emptyCurrent) override
 accumualteProprioceptions accumulates proprioceptions in the evaluate accumulator More...
 
void accumulatePositions (const std::vector< memoryx::KBM::Real > &positionSequence, const Ice::Current &c=Ice::emptyCurrent) override
 accumulate adds the given position to the accumulator to use it later More...
 
void accumulateProprioceptions (const std::vector< memoryx::KBM::Real > &proprioceptions, const Ice::Current &c=Ice::emptyCurrent) override
 accumualteProprioceptions accumulates proprioceptions More...
 
void accumulateRawJointValues (const std::vector< memoryx::KBM::Real > &rawJointValuesSequence, const Ice::Current &c=Ice::emptyCurrent) override
 accumualteRawJointValues accumulates raw joint values that will be transformed to proprioceptions later More...
 
void batch (const std::string &name, const std::vector< memoryx::KBM::Real > &proprioceptionSequence, const std::vector< memoryx::KBM::Real > &positionSequence, Ice::Int method, Ice::Float threshold, const Ice::Current &c=Ice::emptyCurrent) override
 batch learning of n training samples More...
 
void batchAccumulator (const std::string &name, Ice::Int method, Ice::Float threshold, const Ice::Current &c=Ice::emptyCurrent) override
 the same as batch but with the data from the accumulator More...
 
void clearAccumulators (const Ice::Current &c) override
 Clears the accumulators. More...
 
void createArmar3KBM (const std::string &name, const Ice::StringSeq &robotNodeNames, const std::vector< memoryx::KBM::Real > &jointValueAverages, const std::vector< memoryx::KBM::Real > &spreadAnglesSequence, const std::string &tcpName, bool useOrientation, const Ice::Current &c=Ice::emptyCurrent) override
 createArmar3KBM creates a KBM from a VirtualRobot model More...
 
void createKBM (const std::string &name, Ice::Int nDoF, Ice::Int dim, Ice::Float spreadAngle, const Ice::Current &c=Ice::emptyCurrent) override
 createKBM creates a new KBM and makes it available under the given name More...
 
std::string getDefaultName () const override
 
Ice::DoubleSeq getRawJointValuesAverages (int nDoF, const Ice::Current &c=Ice::emptyCurrent) override
 getRawJointValuesAverages calculates the average raw joint values for each joint from the data stored in the raw joint values accumulator. More...
 
Ice::DoubleSeq getSpreadAngles (int nDoF, const Ice::Current &c=Ice::emptyCurrent) override
 getSpreadAngles returns the spreadAngles calculated using the data in the proprioceptionAccumulator More...
 
bool isInMemory (const std::string &nodeSetName, const std::string &referenceFrameName, const std::string &robotName, const Ice::Current &c) override
 
Ice::StringSeq kbmNames (const Ice::Current &c) override
 Returns the names of the existing KBMs. More...
 
void online (const std::string &name, const std::vector< memoryx::KBM::Real > &proprioceptionSequence, const std::vector< memoryx::KBM::Real > &positionSequence, Ice::Float learningRate, const Ice::Current &c=Ice::emptyCurrent) override
 online learning of n training samples More...
 
void onlineAccumulator (const std::string &name, Ice::Float learningRate, const Ice::Current &c=Ice::emptyCurrent) override
 onlineAccumulator calls online after transforming the raw joint accumulator to proprioceptions More...
 
void onlineAccumulatorVerbose (const std::string &name, Ice::Float learningRate, const Ice::Current &c=Ice::emptyCurrent) override
 onlineAccumulatorVerbose same as onlineAccumulator, but evaluates after each learning step More...
 
void onlineVerbose (const std::string &name, const std::vector< memoryx::KBM::Real > &proprioceptionSequence, const std::vector< memoryx::KBM::Real > &positionSequence, Ice::Float learningRate, const std::vector< memoryx::KBM::Real > &evaluationProprioceptionSequence, const std::vector< memoryx::KBM::Real > &evaluationPositionSequence, const Ice::Current &c=Ice::emptyCurrent) override
 same as online, but evaluates after each learning iteration More...
 
std::vector< memoryx::KBM::Realpredict (const std::string &name, const std::vector< memoryx::KBM::Real > &proprioceptionSequence, const Ice::Current &c=Ice::emptyCurrent) override
 predict the position for n samples of proprioception (forward kinematics) More...
 
void predictAccumulator (const std::string &name, const Ice::Current &c=Ice::emptyCurrent) override
 the same as predict but with the data from the accumulator, however the results are currently just printed and not returned More...
 
void printAccumulatorStatistics (int nDim, int nDoF, const Ice::Current &c=Ice::emptyCurrent) override
 printAccumulatorStatistics prints information about the values in the accumulators More...
 
void printErrors (const std::string &name, const std::vector< memoryx::KBM::Real > &proprioceptionSequence, const std::vector< memoryx::KBM::Real > &positionSequence, const Ice::Current &c=Ice::emptyCurrent) override
 calls getErrors on the KBM and prints the result More...
 
void printErrorsAccumulator (const std::string &name, const Ice::Current &c=Ice::emptyCurrent) override
 the same as printErrors but with the data from the accumulator More...
 
void restoreFromMemory (const std::string &, const std::string &, const std::string &, const std::string &, const Ice::Current &) override
 
void setPositionLimits (int nDim, const Ice::Current &c=Ice::emptyCurrent) override
 setPositionLimits sets the position limits using the data in the position accumulator More...
 
void setProprioceptionAccumulatorFromRawJointAccumulator (const std::vector< memoryx::KBM::Real > &rawJointValuesAverages, const Ice::Current &c=Ice::emptyCurrent) override
 setProprioceptionAccumulatorFromRawJointAccumulator updates the proprioception accumulator More...
 
std::vector< memoryx::KBM::RealsolveDifferentialIK (const std::string &name, const std::vector< memoryx::KBM::Real > &targetPosition, const std::vector< memoryx::KBM::Real > &currentPosition, const std::vector< memoryx::KBM::Real > &proprioceptionSequence, const std::vector< memoryx::KBM::Real > &lowerProprioceptionLimitsSequence, const std::vector< memoryx::KBM::Real > &upperProprioceptionLimitsSequence, const Ice::Current &c=Ice::emptyCurrent) override
 solveDifferentialIK solves the differential inverse kinematics for the given position More...
 
std::vector< memoryx::KBM::RealsolveGlobalIK (const std::string &name, const std::vector< memoryx::KBM::Real > &targetPosition, const Ice::Current &c=Ice::emptyCurrent) override
 solveGlobalIK solves the global inverse kinematics for the given position More...
 
void storeToMemory (const std::string &, const std::string &, const std::string &, const std::string &, const Ice::Current &) override
 
- Public Member Functions inherited from Component
virtual void componentPropertiesUpdated (const std::set< std::string > &changedProperties)
 Implement this function if you would like to react to changes in the properties. More...
 
void forceComponentCreatedByComponentCreateFunc ()
 forces the flag to be set to true that the object instance was created by the Component::create function More...
 
std::vector< PropertyUserPtrgetAdditionalPropertyUsers () const
 
template<typename PropertyType >
Property< PropertyType > getProperty (const std::string &name)
 
template<typename PropertyType >
Property< PropertyType > getProperty (const std::string &name) const
 
template<class T >
void getProperty (std::atomic< T > &val, const std::string &name) const
 
template<class T >
void getProperty (T &val, const std::string &name) const
 
template<class ProxyType >
ProxyType getProxyFromProperty (const std::string &propertyName, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true)
 Get a proxy whose name is specified by the given property. More...
 
template<class ProxyType >
void getProxyFromProperty (ProxyType &proxy, const std::string &propertyName, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true)
 
template<class TopicProxyType >
TopicProxyType getTopicFromProperty (const std::string &propertyName)
 Get a topic proxy whose name is specified by the given property. More...
 
template<class TopicProxyType >
void getTopicFromProperty (TopicProxyType &top, const std::string &propertyName)
 
void initializeProperties (const std::string &configName, Ice::PropertiesPtr const &properties, const std::string &configDomain)
 initializes the properties of this component. More...
 
void injectPropertyDefinitions (PropertyDefinitionsPtr &props) override
 
void offeringTopicFromProperty (const std::string &propertyName)
 Offer a topic whose name is specified by the given property. More...
 
virtual void preOnConnectComponent () override
 
virtual void preOnInitComponent () override
 
bool usingProxyFromProperty (const std::string &propertyName, const std::string &endpoints="")
 Use a proxy whose name is specified by the given property. More...
 
void usingTopicFromProperty (const std::string &propertyName, bool orderedPublishing=false)
 Use a topic whose name is specified by the given property. More...
 
- Public Member Functions inherited from ManagedIceObject
void enableProfiler (bool enable)
 setProfiler allows setting ManagedIceObject::profiler to a new instance (if the new instance is actually not a null pointer) More...
 
std::string generateSubObjectName (const std::string &subObjectName)
 Generates a unique name for a sub object from a general name. More...
 
ArmarXManagerPtr getArmarXManager () const
 Returns the ArmarX manager used to add and remove components. More...
 
ManagedIceObjectConnectivity getConnectivity () const
 Retrieve connectivity of the object (topcis as well as proxies) More...
 
IceManagerPtr getIceManager () const
 Returns the IceManager. More...
 
VariantBasePtr getMetaInfo (const std::string &id)
 
StringVariantBaseMap getMetaInfoMap () const
 
std::string getName () const
 Retrieve name of object. More...
 
Ice::ObjectAdapterPtr getObjectAdapter () const
 Returns object's Ice adapter. More...
 
ArmarXObjectSchedulerPtr getObjectScheduler () const
 
PeriodicTaskPtr getPeriodicTask (const std::string &name)
 
Profiler::ProfilerPtr getProfiler () const
 getProfiler returns an instance of armarx::Profiler More...
 
template<class ProxyTarg , class... Args>
void getProxy (const char *name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args)
 
template<class ProxyType >
ProxyType getProxy (const std::string &name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true)
 Retrieves a proxy object. More...
 
template<class ProxyTarg , class... Args>
void getProxy (const std::string &name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args)
 
template<class ProxyTarg , class... Args>
void getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const char *name, Args &&...args)
 
template<class ProxyTarg , class... Args>
void getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const std::string &name, Args &&...args)
 Assigns a proxy to proxy. More...
 
Ice::ObjectPrx getProxy (long timeoutMs=0, bool waitForScheduler=true) const
 Returns the proxy of this object (optionally it waits for the proxy) More...
 
template<class Prx >
Prx getProxy (long timeoutMs=0, bool waitForScheduler=true) const
 
template<class ProxyType >
void getProxy (ProxyType &proxy, const char *name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true)
 Overload to allow using string literals as name (solve ambiguous overload). More...
 
template<class Prx >
void getProxy (Prx &prx, long timeoutMs=0, bool waitForScheduler=true) const
 
int getState () const
 Retrieve current state of the ManagedIceObject. More...
 
template<class TopicProxyType >
TopicProxyType getTopic (const std::string &name)
 Returns a proxy of the specified topic. More...
 
template<class TopicProxyType >
void getTopic (TopicProxyType &topicProxy, const std::string &name)
 Assigns a proxy of the specified topic to topicProxy. More...
 
std::vector< std::string > getUnresolvedDependencies () const
 returns the names of all unresolved dependencies More...
 
 ManagedIceObject (ManagedIceObject const &other)
 
void offeringTopic (const std::string &name)
 Registers a topic for retrival after initialization. More...
 
void preambleGetTopic (std::string const &name)
 
void setMetaInfo (const std::string &id, const VariantBasePtr &value)
 Allows to set meta information that can be queried live via Ice interface on the ArmarXManager. More...
 
void startPeriodicTask (const std::string &uniqueName, std::function< void(void)> f, int periodMs, bool assureMeanInterval=false, bool forceSystemTime=true)
 
bool stopPeriodicTask (const std::string &name)
 
bool unsubscribeFromTopic (const std::string &name)
 Unsubscribe from a topic. More...
 
bool usingProxy (const std::string &name, const std::string &endpoints="")
 Registers a proxy for retrieval after initialization and adds it to the dependency list. More...
 
void usingTopic (const std::string &name, bool orderedPublishing=false)
 Registers a proxy for subscription after initialization. More...
 
void waitForObjectScheduler ()
 Waits until the ObjectScheduler could resolve all dependencies. More...
 
void waitForProxy (std::string const &name, bool addToDependencies)
 
- Public Member Functions inherited from Logging
SpamFilterDataPtr deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const
 disables the logging for the current line for the given amount of seconds. More...
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. More...
 
void setTag (const LogTag &tag)
 
void setTag (const std::string &tagName)
 
virtual ~Logging ()
 
- Public Member Functions inherited from PropertyUser
std::vector< std::string > getComponentProxyNames ()
 
Ice::PropertiesPtr getIceProperties () const
 Returns the set of Ice properties. More...
 
template<typename PropertyType >
Property< PropertyType > getProperty (const std::string &name)
 Property creation and retrieval. More...
 
template<typename PropertyType >
Property< PropertyType > getProperty (const std::string &name) const
 Hack to allow using getProperty in const-modified methods. More...
 
template<class T >
void getProperty (std::atomic< T > &val, const std::string &name) const
 
template<class T >
void getProperty (T &val, const std::string &name) const
 
template<class T >
std::vector< TgetPropertyAsCSV (const std::string &name, const std::string &splitBy=",;", bool trimElements=true, bool removeEmptyElements=true)
 
template<class ContainerT >
void getPropertyAsCSV (ContainerT &val, const std::string &name, const std::string &splitBy=",;", bool trimElements=true, bool removeEmptyElements=true)
 
PropertyDefinitionsPtr getPropertyDefinitions ()
 Returns the component's property definition container. More...
 
std::vector< std::string > getSubscribedTopicNames ()
 
std::vector< std::string > getTopicProxyNames ()
 
bool hasProperty (const std::string &name)
 
 PropertyUser ()
 
virtual void setIceProperties (Ice::PropertiesPtr properties)
 Sets the Ice properties. More...
 
bool tryAddProperty (const std::string &propertyName, const std::string &value)
 
virtual void updateIceProperties (const std::map< std::string, std::string > &changes)
 
void updateProperties ()
 
void updateProxies (IceManagerPtr)
 
 ~PropertyUser () override
 

Protected Member Functions

armarx::PropertyDefinitionsPtr createPropertyDefinitions () override
 
memoryx::KBM::Models::KBM_ptr getKBM (const std::string &name)
 returns a pointer to the KBM with the given name if it exists or a nullptr if it doesn't More...
 
Eigen::Map< const memoryx::KBM::MatrixmapMatrix (int rows, const std::vector< memoryx::KBM::Real > &data)
 maps a sequence to an Eigen::Map More...
 
Eigen::Map< const memoryx::KBM::VectormapPosition (const memoryx::KBM::Models::KBM &kbm, const std::vector< memoryx::KBM::Real > &position)
 mapPosition converts the position sequence into an Eigen::Map of a Vector More...
 
Eigen::Map< const memoryx::KBM::MatrixmapPositions (const memoryx::KBM::Models::KBM &kbm, const std::vector< memoryx::KBM::Real > &position)
 mapPositions converts the position sequence into an Eigen::Map of a Matrix More...
 
Eigen::Map< const memoryx::KBM::VectormapProprioception (const memoryx::KBM::Models::KBM &kbm, const std::vector< memoryx::KBM::Real > &proprioception)
 mapProprioception converts the proprioception sequence into an Eigen::Map of a Vector More...
 
Eigen::Map< const memoryx::KBM::MatrixmapProprioceptions (const memoryx::KBM::Models::KBM &kbm, const std::vector< memoryx::KBM::Real > &proprioception)
 mapProprioceptions converts the proprioception sequence into an Eigen::Map of a Matrix More...
 
void onConnectComponent () override
 
void onDisconnectComponent () override
 
void onExitComponent () override
 
void onInitComponent () override
 
- Protected Member Functions inherited from Component
void addPropertyUser (const PropertyUserPtr &subPropertyUser)
 Add additional property users here that should show up in the application help text. More...
 
 Component ()
 Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead. More...
 
std::string getConfigDomain ()
 Retrieve config domain for this component as set in constructor. More...
 
std::string getConfigIdentifier ()
 Retrieve config identifier for this component as set in constructor. More...
 
std::string getConfigName ()
 Retrieve config name for this component as set in constructor. More...
 
virtual void icePropertiesInitialized ()
 
- Protected Member Functions inherited from ManagedIceObject
template<class PluginT , class... ParamsT>
PluginT * addPlugin (const std::string prefix="", ParamsT &&...params)
 
template<class PluginT , class... ParamsT>
void addPlugin (PluginT *&targ, const std::string prefix="", ParamsT &&...params)
 
template<class PluginT , class... ParamsT>
void addPlugin (std::experimental::observer_ptr< PluginT > &targ, const std::string prefix="", ParamsT &&...params)
 
Ice::CommunicatorPtr getCommunicator () const
 
std::unique_ptr< ManagedIceObjectPlugin > & getPluginPointer (std::type_info const &type, std::string const &prefix)
 
 ManagedIceObject ()
 Protected default constructor. More...
 
virtual void postOnConnectComponent ()
 
virtual void postOnDisconnectComponent ()
 
virtual void postOnExitComponent ()
 
virtual void postOnInitComponent ()
 
virtual void preOnDisconnectComponent ()
 
virtual void preOnExitComponent ()
 
bool removeProxyDependency (const std::string &name)
 This function removes the dependency of this object on the in parameter name specified object. More...
 
void setName (std::string name)
 Override name of well-known object. More...
 
void terminate ()
 Initiates termination of this IceManagedObject. More...
 
 ~ManagedIceObject () override
 
- Protected Member Functions inherited from Logging
bool checkLogLevel (MessageTypeT level) const
 
const LogSenderPtrgetLogSender () const
 Retrieve log sender. More...
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 

Additional Inherited Members

- Public Types inherited from ManagedIceObject
using PeriodicTaskPtr = IceUtil::Handle< SimplePeriodicTask< std::function< void(void)> >>
 
- Static Public Member Functions inherited from Component
template<class T , class TPtr = IceInternal::Handle<T>>
static TPtr create (Ice::PropertiesPtr properties=Ice::createProperties(), const std::string &configName="", const std::string &configDomain="ArmarX")
 Factory method for a component. More...
 
- Static Public Member Functions inherited from ManagedIceObject
static std::string generateSubObjectName (const std::string &superObjectName, const std::string &subObjectName)
 Generates a unique name for a sub object from a general name and unique name. More...
 
static std::string GetObjectStateAsString (int state)
 
- Static Public Attributes inherited from ManagedIceObject
static const ManagedIceObjectPtr NullPtr
 A nullptr to be used when a const ref to a nullptr is required. More...
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Detailed Description

Wrapper for the KBM class.

Definition at line 167 of file KBMComponent.h.

Member Function Documentation

◆ accumulateEvaluationPositions()

void accumulateEvaluationPositions ( const std::vector< memoryx::KBM::Real > &  positionSequence,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

accumulates the given position in the evaluation accumulator

Parameters
positionlength must be Dim * n

Definition at line 809 of file KBMComponent.cpp.

◆ accumulateEvaluationProprioceptions()

void accumulateEvaluationProprioceptions ( const std::vector< memoryx::KBM::Real > &  proprioceptions,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

accumualteProprioceptions accumulates proprioceptions in the evaluate accumulator

Definition at line 819 of file KBMComponent.cpp.

◆ accumulatePositions()

void accumulatePositions ( const std::vector< memoryx::KBM::Real > &  positionSequence,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

accumulate adds the given position to the accumulator to use it later

Parameters
positionlength must be Dim * n

Definition at line 779 of file KBMComponent.cpp.

◆ accumulateProprioceptions()

void accumulateProprioceptions ( const std::vector< memoryx::KBM::Real > &  proprioceptions,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

accumualteProprioceptions accumulates proprioceptions

Definition at line 789 of file KBMComponent.cpp.

◆ accumulateRawJointValues()

void accumulateRawJointValues ( const std::vector< memoryx::KBM::Real > &  rawJointValuesSequence,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

accumualteRawJointValues accumulates raw joint values that will be transformed to proprioceptions later

Definition at line 799 of file KBMComponent.cpp.

◆ batch()

void batch ( const std::string &  name,
const std::vector< memoryx::KBM::Real > &  proprioceptionSequence,
const std::vector< memoryx::KBM::Real > &  positionSequence,
Ice::Int  method,
Ice::Float  threshold,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

batch learning of n training samples

Parameters
namethe name of the KBM
proprioceptionlength must be DoF * n
positionlength must be Dim * n
methodwill be mapped to the Enum in the KBM class, currently 0 = STANDARD, 1 = PLS
thresholdshould equal the expected mean positioning error

Definition at line 327 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ batchAccumulator()

void batchAccumulator ( const std::string &  name,
Ice::Int  method,
Ice::Float  threshold,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

the same as batch but with the data from the accumulator

Definition at line 753 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ clearAccumulators()

void clearAccumulators ( const Ice::Current &  c)
override

Clears the accumulators.

Definition at line 1384 of file KBMComponent.cpp.

◆ createArmar3KBM()

void createArmar3KBM ( const std::string &  name,
const Ice::StringSeq &  robotNodeNames,
const std::vector< memoryx::KBM::Real > &  jointValueAverages,
const std::vector< memoryx::KBM::Real > &  spreadAnglesSequence,
const std::string &  tcpName,
bool  useOrientation,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

createArmar3KBM creates a KBM from a VirtualRobot model

Parameters
namethe KBM will be available under this name
activeJointsthe names of the joints that are used
tcpNamename of the joint that corresponds best to the tool center point
useOrientationuse only the position (3 dimensions) or position and orientation (9 dimensions in total)

Definition at line 181 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ createKBM()

void createKBM ( const std::string &  name,
Ice::Int  nDoF,
Ice::Int  dim,
Ice::Float  spreadAngle,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

createKBM creates a new KBM and makes it available under the given name

Parameters
namethe name of the KBM
nDoFdegrees of freedom
dimdimensions
spreadAnglethe common spreadAngle for joints

Definition at line 157 of file KBMComponent.cpp.

◆ createPropertyDefinitions()

armarx::PropertyDefinitionsPtr createPropertyDefinitions ( )
overrideprotectedvirtual
See also
PropertyUser::createPropertyDefinitions()

Reimplemented from Component.

Definition at line 68 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ getDefaultName()

std::string getDefaultName ( ) const
inlineoverridevirtual
See also
armarx::ManagedIceObject::getDefaultName()

Implements ManagedIceObject.

Definition at line 175 of file KBMComponent.h.

◆ getKBM()

memoryx::KBM::Models::KBM_ptr getKBM ( const std::string &  name)
protected

returns a pointer to the KBM with the given name if it exists or a nullptr if it doesn't

Parameters
namethe name of the KBM
Returns
pointer to the KBM or nullptr

Definition at line 135 of file KBMComponent.cpp.

+ Here is the caller graph for this function:

◆ getRawJointValuesAverages()

Ice::DoubleSeq getRawJointValuesAverages ( int  nDoF,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

getRawJointValuesAverages calculates the average raw joint values for each joint from the data stored in the raw joint values accumulator.

Definition at line 650 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ getSpreadAngles()

Ice::DoubleSeq getSpreadAngles ( int  nDoF,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

getSpreadAngles returns the spreadAngles calculated using the data in the proprioceptionAccumulator

Definition at line 664 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ isInMemory()

bool isInMemory ( const std::string &  nodeSetName,
const std::string &  referenceFrameName,
const std::string &  robotName,
const Ice::Current &  c 
)
override

Definition at line 1446 of file KBMComponent.cpp.

◆ kbmNames()

Ice::StringSeq kbmNames ( const Ice::Current &  c)
override

Returns the names of the existing KBMs.

Definition at line 1372 of file KBMComponent.cpp.

◆ mapMatrix()

Eigen::Map< const memoryx::KBM::Matrix > mapMatrix ( int  rows,
const std::vector< memoryx::KBM::Real > &  data 
)
protected

maps a sequence to an Eigen::Map

Definition at line 122 of file KBMComponent.cpp.

+ Here is the caller graph for this function:

◆ mapPosition()

Eigen::Map< const memoryx::KBM::Vector > mapPosition ( const memoryx::KBM::Models::KBM kbm,
const std::vector< memoryx::KBM::Real > &  position 
)
protected

mapPosition converts the position sequence into an Eigen::Map of a Vector

Parameters
kbmthe dimension of this KBM will be used
positionthe position sequence
Returns
the map

Definition at line 82 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapPositions()

Eigen::Map< const memoryx::KBM::Matrix > mapPositions ( const memoryx::KBM::Models::KBM kbm,
const std::vector< memoryx::KBM::Real > &  position 
)
protected

mapPositions converts the position sequence into an Eigen::Map of a Matrix

Parameters
kbmthe dimension of this KBM will be used
positionthe position sequence
Returns
the map

Definition at line 96 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapProprioception()

Eigen::Map< const memoryx::KBM::Vector > mapProprioception ( const memoryx::KBM::Models::KBM kbm,
const std::vector< memoryx::KBM::Real > &  proprioception 
)
protected

mapProprioception converts the proprioception sequence into an Eigen::Map of a Vector

Parameters
kbmthe DoF of this KBM will be used
proprioceptionthe proprioception sequence
Returns
the map

Definition at line 89 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapProprioceptions()

Eigen::Map< const memoryx::KBM::Matrix > mapProprioceptions ( const memoryx::KBM::Models::KBM kbm,
const std::vector< memoryx::KBM::Real > &  proprioception 
)
protected

mapProprioceptions converts the proprioception sequence into an Eigen::Map of a Matrix

Parameters
kbmthe DoF of this KBM will be used
proprioceptionthe proprioception sequence
Returns
the map

Definition at line 109 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onConnectComponent()

void onConnectComponent ( )
overrideprotectedvirtual

◆ onDisconnectComponent()

void onDisconnectComponent ( )
overrideprotectedvirtual
See also
armarx::ManagedIceObject::onDisconnectComponent()

Reimplemented from ManagedIceObject.

Definition at line 59 of file KBMComponent.cpp.

◆ onExitComponent()

void onExitComponent ( )
overrideprotectedvirtual
See also
armarx::ManagedIceObject::onExitComponent()

Reimplemented from ManagedIceObject.

Definition at line 64 of file KBMComponent.cpp.

◆ onInitComponent()

void onInitComponent ( )
overrideprotectedvirtual
See also
armarx::ManagedIceObject::onInitComponent()

Implements ManagedIceObject.

Definition at line 45 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ online()

void online ( const std::string &  name,
const std::vector< memoryx::KBM::Real > &  proprioceptionSequence,
const std::vector< memoryx::KBM::Real > &  positionSequence,
Ice::Float  learningRate,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

online learning of n training samples

Parameters
namethe name of the KBM
proprioceptionlength must be DoF * n
positionlength must be Dim * n
learnRatelearning rate between 0 and 1

Definition at line 368 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onlineAccumulator()

void onlineAccumulator ( const std::string &  name,
Ice::Float  learningRate,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

onlineAccumulator calls online after transforming the raw joint accumulator to proprioceptions

Definition at line 739 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ onlineAccumulatorVerbose()

void onlineAccumulatorVerbose ( const std::string &  name,
Ice::Float  learningRate,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

onlineAccumulatorVerbose same as onlineAccumulator, but evaluates after each learning step

Definition at line 746 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ onlineVerbose()

void onlineVerbose ( const std::string &  name,
const std::vector< memoryx::KBM::Real > &  proprioceptionSequence,
const std::vector< memoryx::KBM::Real > &  positionSequence,
Ice::Float  learningRate,
const std::vector< memoryx::KBM::Real > &  evaluationProprioceptionSequence,
const std::vector< memoryx::KBM::Real > &  evaluationPositionSequence,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

same as online, but evaluates after each learning iteration

Parameters
namethe name of the KBM
proprioceptionlength must be DoF * n
positionlength must be Dim * n
learnRatelearning rate between 0 and 1

Definition at line 409 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ predict()

std::vector< memoryx::KBM::Real > predict ( const std::string &  name,
const std::vector< memoryx::KBM::Real > &  proprioceptionSequence,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

predict the position for n samples of proprioception (forward kinematics)

Parameters
namethe name of the KBM
proprioceptionlength must be DoF * n
Returns
the predicted position with length Dim * n

Definition at line 557 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ predictAccumulator()

void predictAccumulator ( const std::string &  name,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

the same as predict but with the data from the accumulator, however the results are currently just printed and not returned

Definition at line 766 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ printAccumulatorStatistics()

void printAccumulatorStatistics ( int  nDim,
int  nDoF,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

printAccumulatorStatistics prints information about the values in the accumulators

Definition at line 634 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ printErrors()

void printErrors ( const std::string &  name,
const std::vector< memoryx::KBM::Real > &  proprioceptionSequence,
const std::vector< memoryx::KBM::Real > &  positionSequence,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

calls getErrors on the KBM and prints the result

Parameters
namethe name of the KBM
proprioceptionthe proprioception to pass to getErrors
positionthe position to pass to getErrors

Definition at line 591 of file KBMComponent.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ printErrorsAccumulator()

void printErrorsAccumulator ( const std::string &  name,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

the same as printErrors but with the data from the accumulator

Definition at line 761 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ restoreFromMemory()

void restoreFromMemory ( const std::string &  kbmName,
const std::string &  nodeSetName,
const std::string &  referenceFrameName,
const std::string &  robotName,
const Ice::Current &  c 
)
override

Definition at line 1414 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ setPositionLimits()

void setPositionLimits ( int  nDim,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

setPositionLimits sets the position limits using the data in the position accumulator

Definition at line 730 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ setProprioceptionAccumulatorFromRawJointAccumulator()

void setProprioceptionAccumulatorFromRawJointAccumulator ( const std::vector< memoryx::KBM::Real > &  rawJointValuesAverages,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

setProprioceptionAccumulatorFromRawJointAccumulator updates the proprioception accumulator

Definition at line 689 of file KBMComponent.cpp.

◆ solveDifferentialIK()

std::vector< memoryx::KBM::Real > solveDifferentialIK ( const std::string &  name,
const std::vector< memoryx::KBM::Real > &  targetPosition,
const std::vector< memoryx::KBM::Real > &  currentPosition,
const std::vector< memoryx::KBM::Real > &  proprioceptionSequence,
const std::vector< memoryx::KBM::Real > &  lowerProprioceptionLimitsSequence,
const std::vector< memoryx::KBM::Real > &  upperProprioceptionLimitsSequence,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

solveDifferentialIK solves the differential inverse kinematics for the given position

Parameters
namethe name of the KBM
targetPosition
currentPosition
currentProprioception
Returns
the proprioception

Definition at line 873 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ solveGlobalIK()

std::vector< memoryx::KBM::Real > solveGlobalIK ( const std::string &  name,
const std::vector< memoryx::KBM::Real > &  targetPosition,
const Ice::Current &  c = Ice::emptyCurrent 
)
override

solveGlobalIK solves the global inverse kinematics for the given position

Parameters
namethe name of the KBM
targetPosition
Returns
the proprioception

Definition at line 829 of file KBMComponent.cpp.

+ Here is the call graph for this function:

◆ storeToMemory()

void storeToMemory ( const std::string &  kbmName,
const std::string &  nodeSetName,
const std::string &  referenceFrameName,
const std::string &  robotName,
const Ice::Current &  c 
)
override

Definition at line 1391 of file KBMComponent.cpp.


The documentation for this class was generated from the following files: