Implements the worker side of the batch distributed adaptive dynamic domain informed rrt* planner.
More...
|
std::string | getDefaultName () const override |
|
Update | getUpdate (Ice::Long updateId, const Ice::Current &=Ice::emptyCurrent) const override |
|
void | ice_postUnmarshal () override |
| noop More...
|
|
void | killWorker (const Ice::Current &=Ice::emptyCurrent) override |
| Signals the worker thread to exit. More...
|
|
void | onConnectComponent () override |
| Gets a proxy to the topic. More...
|
|
void | onDisconnectComponent () override |
| noop More...
|
|
void | onExitComponent () override |
| Kills the worker thread (if it is still running) and joins it. More...
|
|
void | onInitComponent () override |
| Initializes the worker and starts the worker thread. More...
|
|
void | pauseWorker (bool pauseFlag, const Ice::Current &=Ice::emptyCurrent) override |
|
void | updateTree (const Update &u, const Ice::Current &=Ice::emptyCurrent) override |
| Receives an update from other workers and adds it to the queue of pending updates. More...
|
|
| WorkerNode (const CSpaceBasePtr &cspace, const VectorXf &startCfg, const VectorXf &goalCfg, Ice::Float DCDStepSize, AdaptiveDynamicDomainParameters addParams, const ManagerNodeBasePrx &manager, Ice::Long workerId, Ice::Long batchSize, Ice::Long nodeCountDeltaForGoalConnectionTries, const std::string &topicPrefix, const Ice::FloatSeq &rotationMatrix) |
| ctor More...
|
|
| ~WorkerNode () override |
| dtor. More...
|
|
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) |
|
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 () |
|
|
void | addAndRewireConfig (const ConfigType &cfgReached, const NodeId &nodeNearestId) |
| Adds a configuration to the tree. More...
|
|
void | applyPendingUpdates () |
| Applies all pending updates to the tree. More...
|
|
void | doBatch () |
| Executes a batch. More...
|
|
void | doBatchIteration () |
| Executes one iteration of a batch. More...
|
|
void | findBestParent (const NodeId &nodeNearestId, const ConfigType &cfgReached, NodeId &outNodeBestId, float &outCostReachedToNodeBest, std::vector< std::pair< NodeId, float >> &outKNearestIdsAndDistances, std::map< NodeId, bool > &outIsCollisionFreeCache) |
| Searches the optimal parent for a configuration. More...
|
|
std::size_t | getDimensionality () |
|
std::size_t | getK () |
|
Update | getRemoteUpdate (Ice::Long workerNodeId, Ice::Long updateSubId) |
|
void | initTree () |
| initializes the tree by getting the current tree from the manager More...
|
|
bool | isCollisionFree (const ConfigType &cfg) |
|
bool | isPathCollisionFree (const ConfigType &from, const ConfigType &to) |
|
void | rewire (const NodeId &nodeId, const std::vector< std::pair< NodeId, float >> &kNearestIdsAndDistances, const std::map< NodeId, bool > &isCollisionFreeCache) |
| The rewire operation of the rrt* algorithm. More...
|
|
ConfigType | steer (const ConfigType &from, const ConfigType &to) |
| Does a linear interpolation from from to to and checks the path per DCD. More...
|
|
| WorkerNode ()=default |
| Only used when transmitting through ice. More...
|
|
void | workerTask () |
| The worker task. More...
|
|
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 | preOnConnectComponent () |
|
virtual void | preOnDisconnectComponent () |
|
virtual void | preOnExitComponent () |
|
virtual void | preOnInitComponent () |
|
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 |
|
bool | checkLogLevel (MessageTypeT level) const |
|
const LogSenderPtr & | getLogSender () const |
| Retrieve log sender. More...
|
|
LogSenderPtr | loghelper (const char *file, int line, const char *function) const |
|
Implements the worker side of the batch distributed adaptive dynamic domain informed rrt* planner.
This algorithm has two variants for selecting nodes for rewiring. (see doi> 10.1177/0278364911406761) One using k-Nearest-Neighbours with:
- k(#nodes)= kRRT * log(#nodes)
- kRRT > 2^(dimensions+1) * e (1 + 1/dimensions)
One using Nearest-Neighbours with a radius:
- r(#nodes)= min{γRRT( log(#nodes) / #nodes )^(1/dimensions) , η}
- γRRT =(2 ( 1 + 1/dimensions))^(1/d) *(μ(Xfree) / ζd)^(1/dimensions)
- η = maximal step size during 1 extend (+inf in this implementation)
- μ(Xfree) = Lebesgue measure of the obstacle-free space
- ζd = volume of the d-dimensional unit ball in Euclidean space
since μ(Xfree) can only be estimated the k-NN version is used.
Definition at line 73 of file WorkerNode.h.