|
The NJointTrajectoryController class. More...
#include <RobotAPI/components/units/RobotUnit/NJointControllers/NJointTrajectoryController.h>
Public Member Functions | |
std::string | getClassName (const Ice::Current &) const override |
float | getCurrentProgressFraction (const Ice::Current &) override |
double | getCurrentTimestamp (const Ice::Current &) override |
double | getCurrentTrajTime () const |
TrajectoryPtr | getTrajectoryCopy () const |
double | getTrajEndTime () const |
bool | isFinished (const Ice::Current &) override |
NJointTrajectoryController (RobotUnit *prov, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &) | |
void | onConnectNJointController () override |
void | onInitNJointController () override |
void | rtPostDeactivateController () override |
This function is called after the controller is deactivated. More... | |
void | rtPreActivateController () override |
This function is called before the controller is activated. More... | |
void | rtRun (const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override |
TODO make protected and use attorneys. More... | |
void | setLooping (bool looping) |
void | setTrajectory (const TrajectoryBasePtr &t, const Ice::Current &) override |
~NJointTrajectoryController () | |
Public Member Functions inherited from NJointControllerWithTripleBuffer< NJointTrajectoryControllerControlData > | |
NJointControllerWithTripleBuffer (const NJointTrajectoryControllerControlData &initialCommands=NJointTrajectoryControllerControlData()) | |
void | rtSwapBufferAndRun (const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override |
Public Member Functions inherited from NJointControllerBase | |
void | activateController (const Ice::Current &=Ice::emptyCurrent) final override |
void | callDescribedFunction (const std::string &, const StringVariantBaseMap &, const Ice::Current &=Ice::emptyCurrent) override |
void | deactivateAndDeleteController (const Ice::Current &=Ice::emptyCurrent) final override |
void | deactivateController (const Ice::Current &=Ice::emptyCurrent) final override |
void | deleteController (const Ice::Current &=Ice::emptyCurrent) final override |
const std::map< std::string, const JointController * > & | getControlDevicesUsedJointController () |
const std::vector< char > & | getControlDeviceUsedBitmap () const |
StringStringDictionary | getControlDeviceUsedControlModeMap (const Ice::Current &=Ice::emptyCurrent) const final override |
const std::vector< std::size_t > & | getControlDeviceUsedIndices () const |
NJointControllerDescription | getControllerDescription (const Ice::Current &=Ice::emptyCurrent) const final override |
NJointControllerDescriptionWithStatus | getControllerDescriptionWithStatus (const Ice::Current &=Ice::emptyCurrent) const final override |
NJointControllerStatus | getControllerStatus (const Ice::Current &=Ice::emptyCurrent) const final override |
WidgetDescription::StringWidgetDictionary | getFunctionDescriptions (const Ice::Current &=Ice::emptyCurrent) const override |
std::string | getInstanceName (const Ice::Current &=Ice::emptyCurrent) const final override |
bool | hasControllerError (const Ice::Current &=Ice::emptyCurrent) const final override |
bool | isControllerActive (const Ice::Current &=Ice::emptyCurrent) const final override |
bool | isControllerRequested (const Ice::Current &=Ice::emptyCurrent) const final override |
bool | isDeletable (const Ice::Current &=Ice::emptyCurrent) const final override |
std::optional< std::vector< char > > | isNotInConflictWith (const NJointControllerBasePtr &other) const |
std::optional< std::vector< char > > | isNotInConflictWith (const std::vector< char > &used) const |
NJointControllerBase () | |
ConstControlDevicePtr | peekControlDevice (const std::string &deviceName) const |
Get a const ptr to the given ControlDevice. More... | |
ConstSensorDevicePtr | peekSensorDevice (const std::string &deviceName) const |
Get a const ptr to the given SensorDevice. More... | |
const std::string & | rtGetClassName () const |
Returns the class name. More... | |
const std::vector< std::size_t > & | rtGetControlDeviceUsedIndices () const |
Returns the indices of all ControlDevice's this NJointControllerBase calculates a ControlTarget for. More... | |
bool | rtGetErrorState () const |
Sets the error state to true. More... | |
const std::string & | rtGetInstanceName () const |
Returns the instance name. More... | |
std::size_t | rtGetNumberOfUsedControlDevices () const |
Returns the number of used ControlDevices. More... | |
const VirtualRobot::RobotPtr & | rtGetRobot () |
TODO make protected and use attorneys. More... | |
const std::vector< VirtualRobot::RobotNodePtr > & | rtGetRobotNodes () |
Returns the nodes of the virtual robot used by this NJointControllerBase in the rtRun. More... | |
bool | rtUsesControlDevice (std::size_t deviceIndex) const |
Returns whether this NJointControllerBase calculates a ControlTarget for the given ControlDevice. More... | |
ControlTargetBase * | useControlTarget (const std::string &deviceName, const std::string &controlMode) |
Declares to calculate the ControlTarget for the given ControlDevice in the given ControlMode when rtRun is called. More... | |
template<class T > | |
T * | useControlTarget (const std::string &deviceName, const std::string &controlMode) |
Declares to calculate the ControlTarget for the given ControlDevice in the given ControlMode when rtRun is called. More... | |
template<class T > | |
const T * | useSensorValue (const std::string &deviceName) const |
Get a const ptr to the given SensorDevice's SensorValue. More... | |
const SensorValueBase * | useSensorValue (const std::string &sensorDeviceName) const |
Get a const ptr to the given SensorDevice's SensorValue. More... | |
const VirtualRobot::RobotPtr & | useSynchronizedRtRobot (bool updateCollisionModel=false) |
Requests a VirtualRobot for use in rtRun *. More... | |
~NJointControllerBase () override | |
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 () |
Additional Inherited Members | |
Public Types inherited from NJointControllerWithTripleBuffer< NJointTrajectoryControllerControlData > | |
using | LockGuardType = std::lock_guard< std::recursive_mutex > |
using | MutexType = std::recursive_mutex |
Public Types inherited from NJointControllerBase | |
using | ConfigPtrT = NJointControllerConfigPtr |
using | GenerateConfigDescriptionFunctionSignature = WidgetDescription::WidgetPtr(*)(const VirtualRobot::RobotPtr &, const std::map< std::string, ConstControlDevicePtr > &controlDevices, const std::map< std::string, ConstSensorDevicePtr > &sensorDevices) |
template<class ConfigPrtType > | |
using | GenerateConfigFromVariantsFunctionSignature = ConfigPrtType(*)(const StringVariantBaseMap &) |
Public Types inherited from ManagedIceObject | |
using | PeriodicTaskPtr = IceUtil::Handle< SimplePeriodicTask< std::function< void(void)> >> |
Static Public Member Functions inherited from NJointControllerBase | |
template<class ItT > | |
static std::optional< std::vector< char > > | AreNotInConflict (ItT first, ItT last) |
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 NJointControllerBase | |
static const NJointControllerBasePtr | NullPtr {nullptr} |
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 Member Functions inherited from NJointControllerWithTripleBuffer< NJointTrajectoryControllerControlData > | |
NJointTrajectoryControllerControlData & | getWriterControlStruct () |
void | reinitTripleBuffer (const NJointTrajectoryControllerControlData &initial) |
const NJointTrajectoryControllerControlData & | rtGetControlStruct () const |
bool | rtUpdateControlStruct () |
void | setControlStruct (const NJointTrajectoryControllerControlData &newStruct) |
void | writeControlStruct () |
Protected Member Functions inherited from NJointControllerBase | |
std::string | getDefaultName () const override |
ThreadPoolPtr | getThreadPool () const |
void | onConnectComponent () final |
void | onDisconnectComponent () final |
virtual void | onDisconnectNJointController () |
void | onExitComponent () final |
virtual void | onExitNJointController () |
void | onInitComponent () final |
virtual void | onPublish (const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) |
virtual void | onPublishActivation (const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) |
virtual void | onPublishDeactivation (const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) |
void | rtSetErrorState () |
Sets the error state to true. More... | |
template<typename Task > | |
void | runTask (const std::string &taskName, Task &&task) |
Executes a given task in a separate thread from the Application ThreadPool. More... | |
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 | 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 | |
Protected Member Functions inherited from Logging | |
bool | checkLogLevel (MessageTypeT level) const |
const LogSenderPtr & | getLogSender () const |
Retrieve log sender. More... | |
LogSenderPtr | loghelper (const char *file, int line, const char *function) const |
Protected Attributes inherited from NJointControllerWithTripleBuffer< NJointTrajectoryControllerControlData > | |
MutexType | controlDataMutex |
Protected Attributes inherited from NJointControllerBase | |
std::map< std::string, std::shared_ptr< ThreadPool::Handle > > | threadHandles |
std::mutex | threadHandlesMutex |
Protected Attributes inherited from Logging | |
MessageTypeT | minimumLoggingLevel |
SpamFilterDataPtr | spamFilter |
LogTag | tag |
The NJointTrajectoryController class.
Definition at line 28 of file NJointTrajectoryController.h.
NJointTrajectoryController | ( | RobotUnit * | prov, |
const NJointControllerConfigPtr & | config, | ||
const VirtualRobot::RobotPtr & | robot | ||
) |
Definition at line 17 of file NJointTrajectoryController.cpp.
Definition at line 51 of file NJointTrajectoryController.cpp.
|
overridevirtual |
Implements NJointControllerBase.
Definition at line 56 of file NJointTrajectoryController.cpp.
|
override |
Definition at line 249 of file NJointTrajectoryController.cpp.
|
override |
Definition at line 243 of file NJointTrajectoryController.cpp.
double getCurrentTrajTime | ( | ) | const |
Definition at line 255 of file NJointTrajectoryController.cpp.
TrajectoryPtr getTrajectoryCopy | ( | ) | const |
Definition at line 281 of file NJointTrajectoryController.cpp.
double getTrajEndTime | ( | ) | const |
Definition at line 275 of file NJointTrajectoryController.cpp.
|
override |
Definition at line 237 of file NJointTrajectoryController.cpp.
|
overridevirtual |
Reimplemented from NJointControllerBase.
Definition at line 68 of file NJointTrajectoryController.cpp.
|
overridevirtual |
Reimplemented from NJointControllerBase.
Definition at line 62 of file NJointTrajectoryController.cpp.
|
overridevirtual |
This function is called after the controller is deactivated.
You can use it to deactivate a thread (DO NOT JOIN THREADS!) e.g. via a std::atomic_bool.
Reimplemented from NJointControllerBase.
Definition at line 301 of file NJointTrajectoryController.cpp.
|
overridevirtual |
This function is called before the controller is activated.
You can use it to activate a thread again (DO NOT SPAWN NEW THREADS!) e.g. via a std::atomic_bool.
Reimplemented from NJointControllerBase.
Definition at line 295 of file NJointTrajectoryController.cpp.
|
overridevirtual |
TODO make protected and use attorneys.
Implements SynchronousNJointController.
Definition at line 75 of file NJointTrajectoryController.cpp.
void setLooping | ( | bool | looping | ) |
Definition at line 269 of file NJointTrajectoryController.cpp.
|
override |
Definition at line 123 of file NJointTrajectoryController.cpp.