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 75 of file WorkerNode.h.