NJointTaskspaceController< NJointTaskspaceControllerType > Class Template Referenceabstract

Brief description of class NJointTaskspaceController. More...

#include <armarx/control/njoint_controller/task_space/Base.h>

+ Inheritance diagram for NJointTaskspaceController< NJointTaskspaceControllerType >:

Classes

struct  ArmData
 

Public Types

using ArmPtr = std::unique_ptr<ArmData>
 
using Config = typename NJointTaskspaceControllerType::Config
 
using ConfigDict = typename NJointTaskspaceControllerType::ConfigDict
 
using ConfigPtrT = ConfigurableNJointControllerConfigPtr
 
using ControlType = NJointTaskspaceControllerType
 
using PoseFrameMode = armarx::control::common::arondto::PoseFrameMode
 
using RtStatus = armarx::control::common::control_law::TSCtrlRtStatus
 
- Public Types inherited from NJointControllerBase
using ConfigPtrT = NJointControllerConfigPtr
 
using GenerateConfigDescriptionFunctionSignature
 
template<class ConfigPrtType>
using GenerateConfigFromVariantsFunctionSignature
 
- Public Types inherited from ManagedIceObject
using PeriodicTaskPtr = IceUtil::Handle<SimplePeriodicTask<std::function<void(void)>>>
 

Public Member Functions

void calibrateFTSensor (const Ice::Current &) override
 ft sensor
 
void createLimbs ()
 
void disableCoordinator (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
void enableSafeGuardForceTorque (const std::string &nodeSetName, const bool forceGuard, const bool torqueGuard, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
::armarx::aron::data::dto::DictPtr getConfig (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
Ice::DoubleSeq getCurrentTCPPose (const std::string &nodeSetName, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
::armarx::aron::data::dto::DictPtr getRTStatus (const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
Ice::FloatSeq getTCPVel (const std::string &rns, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
bool isSafeForceTorque (const std::string &nodeSetName, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 -----------------------------— Other interaces ----------------------------------------—
 
 NJointTaskspaceController (const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
 
void rtRun (const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
 TODO make protected and use attorneys.
 
void updateConfig (const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 NJointController interface.
 
bool updateTargetPose (const TargetPoseMap &targetPoseMap, const TargetNullspaceMap &targetNullspaceMap, const Ice::Current &=Ice::emptyCurrent) override
 
void useCoordinator (const std::string &type, const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
bool wasNotSafeForceTorque (const std::string &nodeSetName, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
 
- Public Member Functions inherited from SynchronousNJointController
virtual void rtSwapBufferAndRun (const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration)
 
- Public Member Functions inherited from NJointControllerBase
void activateController (const Ice::Current &=Ice::emptyCurrent) 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) override
 
void deleteController (const Ice::Current &=Ice::emptyCurrent) final override
 
std::string getClassName (const Ice::Current &=Ice::emptyCurrent) const override=0
 
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.
 
ConstSensorDevicePtr peekSensorDevice (const std::string &deviceName) const
 Get a const ptr to the given SensorDevice.
 
const std::string & rtGetClassName () const
 Returns the class name.
 
const std::vector< std::size_t > & rtGetControlDeviceUsedIndices () const
 Returns the indices of all ControlDevice's this NJointControllerBase calculates a ControlTarget for.
 
bool rtGetErrorState () const
 Sets the error state to true.
 
const std::string & rtGetInstanceName () const
 Returns the instance name.
 
std::size_t rtGetNumberOfUsedControlDevices () const
 Returns the number of used ControlDevices.
 
const VirtualRobot::RobotPtrrtGetRobot ()
 TODO make protected and use attorneys.
 
const std::vector< VirtualRobot::RobotNodePtr > & rtGetRobotNodes ()
 Returns the nodes of the virtual robot used by this NJointControllerBase in the rtRun.
 
bool rtUsesControlDevice (std::size_t deviceIndex) const
 Returns whether this NJointControllerBase calculates a ControlTarget for the given ControlDevice.
 
ControlTargetBaseuseControlTarget (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.
 
template<class T>
TuseControlTarget (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.
 
template<class T>
const TuseSensorValue (const std::string &deviceName) const
 Get a const ptr to the given SensorDevice's SensorValue.
 
const SensorValueBaseuseSensorValue (const std::string &sensorDeviceName) const
 Get a const ptr to the given SensorDevice's SensorValue.
 
const VirtualRobot::RobotPtruseSynchronizedRtRobot (bool updateCollisionModel=false)
 Requests a VirtualRobot for use in rtRun *.
 
 ~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)
 
std::string generateSubObjectName (const std::string &subObjectName)
 Generates a unique name for a sub object from a general name.
 
ArmarXManagerPtr getArmarXManager () const
 Returns the ArmarX manager used to add and remove components.
 
ManagedIceObjectConnectivity getConnectivity () const
 Retrieve connectivity of the object (topcis as well as proxies)
 
IceManagerPtr getIceManager () const
 Returns the IceManager.
 
VariantBasePtr getMetaInfo (const std::string &id)
 
StringVariantBaseMap getMetaInfoMap () const
 
std::string getName () const
 Retrieve name of object.
 
Ice::ObjectAdapterPtr getObjectAdapter () const
 Returns object's Ice adapter.
 
ArmarXObjectSchedulerPtr getObjectScheduler () const
 
PeriodicTaskPtr getPeriodicTask (const std::string &name)
 
Profiler::ProfilerPtr getProfiler () const
 getProfiler returns an instance of armarx::Profiler
 
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.
 
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.
 
Ice::ObjectPrx getProxy (long timeoutMs=0, bool waitForScheduler=true) const
 Returns the proxy of this object (optionally it waits for the proxy)
 
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).
 
template<class Prx>
void getProxy (Prx &prx, long timeoutMs=0, bool waitForScheduler=true) const
 
int getState () const
 Retrieve current state of the ManagedIceObject.
 
template<class TopicProxyType>
TopicProxyType getTopic (const std::string &name)
 Returns a proxy of the specified topic.
 
template<class TopicProxyType>
void getTopic (TopicProxyType &topicProxy, const std::string &name)
 Assigns a proxy of the specified topic to topicProxy.
 
std::vector< std::string > getUnresolvedDependencies () const
 returns the names of all unresolved dependencies
 
 ManagedIceObject (ManagedIceObject const &other)
 
void offeringTopic (const std::string &name)
 Registers a topic for retrival after initialization.
 
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.
 
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.
 
bool usingProxy (const std::string &name, const std::string &endpoints="")
 Registers a proxy for retrieval after initialization and adds it to the dependency list.
 
void usingTopic (const std::string &name, bool orderedPublishing=false)
 Registers a proxy for subscription after initialization.
 
void waitForObjectScheduler ()
 Waits until the ObjectScheduler could resolve all dependencies.
 
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.
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set.
 
void setTag (const LogTag &tag)
 
void setTag (const std::string &tagName)
 
virtual ~Logging ()
 
- Public Member Functions inherited from TSCtrlInterface
void calibrateFTSensor ()
 ft sensor
 
void disableCoordinator ()
 
void enableSafeGuardForceTorque (string rns, bool forceGuard, bool torqueGuard)
 
Ice::DoubleSeq getCurrentTCPPose (string nodeSetName)
 
armarx::aron::data::dto::Dict getRTStatus ()
 
Ice::FloatSeq getTCPVel (string rns)
 
bool isSafeForceTorque (string nodeSetName)
 
bool updateTargetPose (TargetPoseMap targetPoseMap, TargetNullspaceMap targetNullspaceMap)
 
void useCoordinator (string type, armarx::aron::data::dto::Dict dto)
 
bool wasNotSafeForceTorque (string nodeSetName)
 
- Public Member Functions inherited from ArVizComponentPluginUser
 ArVizComponentPluginUser ()
 
armarx::viz::Client createArVizClient ()
 
armarx::viz::ClientgetArvizClient ()
 

Static Public Member Functions

static WidgetDescription::WidgetPtr GenerateConfigDescription (const VirtualRobot::RobotPtr &, const std::map< std::string, ConstControlDevicePtr > &, const std::map< std::string, ConstSensorDevicePtr > &)
 --------------------------------— GUI Widget ------------------------------------------—
 
static ConfigPtrT GenerateConfigFromVariants (const StringVariantBaseMap &values)
 
- 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.
 
static std::string GetObjectStateAsString (int state)
 

Protected Member Functions

void activateController (const Ice::Current &current=Ice::emptyCurrent) final
 NJointControllerBase interface.
 
virtual void additionalTask ()
 
void additionalTaskSetTarget ()
 
std::tuple< bool, bool > additionalTaskUpdateStatus ()
 
virtual void collectArviz (viz::StagedCommit &stage) const
 
void commitArviz ()
 
void deactivateController (const Ice::Current &current=Ice::emptyCurrent) final
 
void handleRTNotSafeInNonRT ()
 
void limbInit (const std::string &nodeSetName, ArmPtr &arm, Config &cfg, VirtualRobot::RobotPtr &nonRtRobotPtr)
 
void limbNonRT (ArmPtr &arm)
 
void limbPublish (ArmPtr &arm, const DebugObserverInterfacePrx &debugObs)
 
virtual void limbPublishConfig (StringVariantBaseMap &datafields, ArmPtr &arm)=0
 
void limbReInit (ArmPtr &arm)
 
void limbRT (ArmPtr &arm, const double deltaT)
 
void limbRTSetTarget (ArmPtr &arm, const size_t nDoFTorque, const size_t nDoFVelocity, const Eigen::VectorXf &targetTorque, const Eigen::VectorXf &targetVelocity)
 
void limbRTUpdateStatus (ArmPtr &arm, const double deltaT)
 -----------------------------— Real time cotnrol --------------------------------------—
 
void onInitNJointController () override
 
void onPublish (const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &) override
 
void onPublishCoordinator (const DebugObserverInterfacePrx &debugObs)
 
bool rtGetDesiredPoseSafeStatus ()
 
bool rtGetDesiredPoseSafeStatusOnActivation ()
 
void rtPostDeactivateController () override
 This function is called after the controller is deactivated.
 
void rtPreActivateController () override
 This function is called before the controller is activated.
 
void rtRunCoordinator (double deltaT)
 coordinator
 
void updateInputData (const std::string &key, const Eigen::Matrix4f &targetPose, const PoseFrameMode &targetPoseMode, const Eigen::Matrix4f &pose, const Eigen::Vector6f &vel, const Eigen::Vector6f &ft, const Eigen::Vector6f &stiffness)
 some method for coordinator
 
void validateConfigData (Config &config, ArmPtr &arm)
 
virtual void validateConfigDataCheckSize (Config &configData, ArmPtr &arm)=0
 
- Protected Member Functions inherited from NJointControllerBase
std::string getDefaultName () const override
 
ThreadPoolPtr getThreadPool () const
 
void onConnectComponent () final
 
virtual void onConnectNJointController ()
 
void onDisconnectComponent () final
 
virtual void onDisconnectNJointController ()
 
void onExitComponent () final
 
virtual void onExitNJointController ()
 
void onInitComponent () final
 
virtual void onPublishActivation (const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &)
 
virtual void onPublishDeactivation (const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &)
 
void rtSetErrorState ()
 Sets the error state to true.
 
template<typename Task>
void runTask (const std::string &taskName, Task &&task)
 Executes a given task in a separate thread from the Application ThreadPool.
 
- 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.
 
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.
 
void setName (std::string name)
 Override name of well-known object.
 
void terminate ()
 Initiates termination of this IceManagedObject.
 
 ~ManagedIceObject () override
 
- Protected Member Functions inherited from Logging
bool checkLogLevel (MessageTypeT level) const
 
const LogSenderPtrgetLogSender () const
 Retrieve log sender.
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 

Protected Attributes

std::map< std::string, VirtualRobot::RobotNodeSetPtr > controllableNodeSets
 
std::shared_ptr< common::coordination::SyncCoordinationcoordinator = nullptr
 
std::atomic_bool coordinatorEnabled = false
 coordinator
 
std::map< std::string, common::coordination::InputDatacoordinatorInputData
 
core::HandControlPtr hands = nullptr
 
std::map< std::string, ArmPtrlimb
 
VirtualRobot::RobotPtr nonRtRobot
 
RobotUnitPtr robotUnit
 
std::optional< viz::ScopedClientscopedArviz = std::nullopt
 
ConfigDict userConfig
 
- 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
 

Additional Inherited Members

- Public Attributes inherited from ArVizComponentPluginUser
armarx::viz::Client arviz
 
- 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.
 

Detailed Description

template<typename NJointTaskspaceControllerType>
class armarx::control::njoint_controller::task_space::NJointTaskspaceController< NJointTaskspaceControllerType >

Brief description of class NJointTaskspaceController.

Detailed description of class NJointTaskspaceController.

Definition at line 55 of file Base.h.

Member Typedef Documentation

◆ ArmPtr

template<typename NJointTaskspaceControllerType>
using ArmPtr = std::unique_ptr<ArmData>

Definition at line 114 of file Base.h.

◆ Config

template<typename NJointTaskspaceControllerType>
using Config = typename NJointTaskspaceControllerType::Config

Definition at line 63 of file Base.h.

◆ ConfigDict

template<typename NJointTaskspaceControllerType>
using ConfigDict = typename NJointTaskspaceControllerType::ConfigDict

Definition at line 64 of file Base.h.

◆ ConfigPtrT

template<typename NJointTaskspaceControllerType>
using ConfigPtrT = ConfigurableNJointControllerConfigPtr

Definition at line 62 of file Base.h.

◆ ControlType

template<typename NJointTaskspaceControllerType>
using ControlType = NJointTaskspaceControllerType

Definition at line 61 of file Base.h.

◆ PoseFrameMode

template<typename NJointTaskspaceControllerType>
using PoseFrameMode = armarx::control::common::arondto::PoseFrameMode

Definition at line 67 of file Base.h.

◆ RtStatus

template<typename NJointTaskspaceControllerType>
using RtStatus = armarx::control::common::control_law::TSCtrlRtStatus

Definition at line 66 of file Base.h.

Constructor & Destructor Documentation

◆ NJointTaskspaceController()

template<typename NJointTaskspaceControllerType>
NJointTaskspaceController ( const RobotUnitPtr & robotUnit,
const NJointControllerConfigPtr & config,
const VirtualRobot::RobotPtr &  )

Definition at line 138 of file Base.cpp.

+ Here is the caller graph for this function:

Member Function Documentation

◆ activateController()

template<typename NJointTaskspaceControllerType>
void activateController ( const Ice::Current & current = Ice::emptyCurrent)
finalprotected

NJointControllerBase interface.

Definition at line 1275 of file Base.cpp.

+ Here is the call graph for this function:

◆ additionalTask()

◆ additionalTaskSetTarget()

template<typename NJointTaskspaceControllerType>
void additionalTaskSetTarget ( )
protected

Definition at line 314 of file Base.cpp.

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

◆ additionalTaskUpdateStatus()

template<typename NJointTaskspaceControllerType>
std::tuple< bool, bool > additionalTaskUpdateStatus ( )
protected

Definition at line 265 of file Base.cpp.

+ Here is the caller graph for this function:

◆ calibrateFTSensor()

template<typename NJointTaskspaceControllerType>
void calibrateFTSensor ( const Ice::Current & )
override

ft sensor

Definition at line 1118 of file Base.cpp.

◆ collectArviz()

template<typename NJointTaskspaceControllerType>
void collectArviz ( viz::StagedCommit & stage) const
protectedvirtual

Reimplemented in NJointTSColController< NJointTSImpController, law::arondto::TSImpColConfigDict >, NJointTSColController< NJointTSMixImpVelController, law::arondto::TSMixImpVelColConfigDict >, and NJointTSColController< NJointTSVelController, law::arondto::TSVeloColConfigDict >.

Definition at line 983 of file Base.cpp.

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

◆ commitArviz()

template<typename NJointTaskspaceControllerType>
void commitArviz ( )
protected

Definition at line 965 of file Base.cpp.

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

◆ createLimbs()

template<typename NJointTaskspaceControllerType>
void createLimbs ( )

Definition at line 172 of file Base.cpp.

◆ deactivateController()

template<typename NJointTaskspaceControllerType>
void deactivateController ( const Ice::Current & current = Ice::emptyCurrent)
finalprotected

Definition at line 1298 of file Base.cpp.

+ Here is the call graph for this function:

◆ disableCoordinator()

template<typename NJointTaskspaceControllerType>
void disableCoordinator ( const Ice::Current & iceCurrent = Ice::emptyCurrent)
override

Definition at line 1182 of file Base.cpp.

◆ enableSafeGuardForceTorque()

template<typename NJointTaskspaceControllerType>
void enableSafeGuardForceTorque ( const std::string & nodeSetName,
const bool forceGuard,
const bool torqueGuard,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

Definition at line 650 of file Base.cpp.

+ Here is the caller graph for this function:

◆ GenerateConfigDescription()

template<typename NJointTaskspaceControllerType>
WidgetDescription::WidgetPtr GenerateConfigDescription ( const VirtualRobot::RobotPtr & ,
const std::map< std::string, ConstControlDevicePtr > & ,
const std::map< std::string, ConstSensorDevicePtr > &  )
static

--------------------------------— GUI Widget ------------------------------------------—

select default config

Definition at line 1361 of file Base.cpp.

◆ GenerateConfigFromVariants()

template<typename NJointTaskspaceControllerType>
NJointTaskspaceController< NJointTaskspaceControllerType >::ConfigPtrT GenerateConfigFromVariants ( const StringVariantBaseMap & values)
static

Definition at line 1404 of file Base.cpp.

+ Here is the call graph for this function:

◆ getConfig()

template<typename NJointTaskspaceControllerType>
armarx::aron::data::dto::DictPtr getConfig ( const Ice::Current & iceCurrent = Ice::emptyCurrent)
override

Definition at line 616 of file Base.cpp.

◆ getCurrentTCPPose()

template<typename NJointTaskspaceControllerType>
Ice::DoubleSeq getCurrentTCPPose ( const std::string & nodeSetName,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

Definition at line 729 of file Base.cpp.

+ Here is the call graph for this function:

◆ getRTStatus()

template<typename NJointTaskspaceControllerType>
armarx::aron::data::dto::DictPtr getRTStatus ( const Ice::Current & iceCurrent = Ice::emptyCurrent)
override

Definition at line 633 of file Base.cpp.

◆ getTCPVel()

template<typename NJointTaskspaceControllerType>
Ice::FloatSeq getTCPVel ( const std::string & rns,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

Definition at line 712 of file Base.cpp.

◆ handleRTNotSafeInNonRT()

template<typename NJointTaskspaceControllerType>
void handleRTNotSafeInNonRT ( )
protected

Definition at line 328 of file Base.cpp.

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

◆ isSafeForceTorque()

template<typename NJointTaskspaceControllerType>
bool isSafeForceTorque ( const std::string & nodeSetName,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

-----------------------------— Other interaces ----------------------------------------—

Definition at line 678 of file Base.cpp.

◆ limbInit()

template<typename NJointTaskspaceControllerType>
void limbInit ( const std::string & nodeSetName,
ArmPtr & arm,
Config & cfg,
VirtualRobot::RobotPtr & nonRtRobotPtr )
protected

Definition at line 57 of file Base.cpp.

+ Here is the call graph for this function:

◆ limbNonRT()

template<typename NJointTaskspaceControllerType>
void limbNonRT ( ArmPtr & arm)
protected

Definition at line 244 of file Base.cpp.

+ Here is the caller graph for this function:

◆ limbPublish()

template<typename NJointTaskspaceControllerType>
void limbPublish ( ArmPtr & arm,
const DebugObserverInterfacePrx & debugObs )
protected

admittance interface

Definition at line 819 of file Base.cpp.

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

◆ limbPublishConfig()

template<typename NJointTaskspaceControllerType>
virtual void limbPublishConfig ( StringVariantBaseMap & datafields,
ArmPtr & arm )
protectedpure virtual

Implemented in NJointTSAdmController, NJointTSImpController, NJointTSImpController, NJointTSMixImpVelController, NJointTSMixImpVelController, and NJointTSVelController.

+ Here is the caller graph for this function:

◆ limbReInit()

template<typename NJointTaskspaceControllerType>
void limbReInit ( ArmPtr & arm)
protected

Note: this function will always be called once ctrl_proxy->activateController() is called. For situations where heavy objects are hold in hands in torque control mode, user has to check if this controller is already activated, and only call acitvateContgroller when it is not active. Or you can use the controllerBuilder wrapper, which handles this automatically

Is there a case where using current pose to initialize the RT desired pose is not suitable?

Definition at line 1205 of file Base.cpp.

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

◆ limbRT()

template<typename NJointTaskspaceControllerType>
void limbRT ( ArmPtr & arm,
const double deltaT )
protected

Definition at line 425 of file Base.cpp.

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

◆ limbRTSetTarget()

template<typename NJointTaskspaceControllerType>
void limbRTSetTarget ( ArmPtr & arm,
const size_t nDoFTorque,
const size_t nDoFVelocity,
const Eigen::VectorXf & targetTorque,
const Eigen::VectorXf & targetVelocity )
protected

Definition at line 380 of file Base.cpp.

+ Here is the caller graph for this function:

◆ limbRTUpdateStatus()

template<typename NJointTaskspaceControllerType>
void limbRTUpdateStatus ( ArmPtr & arm,
const double deltaT )
protected

-----------------------------— Real time cotnrol --------------------------------------—

Definition at line 351 of file Base.cpp.

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

◆ onInitNJointController()

template<typename NJointTaskspaceControllerType>
void onInitNJointController ( )
overrideprotectedvirtual

Reimplemented from NJointControllerBase.

Definition at line 217 of file Base.cpp.

+ Here is the call graph for this function:

◆ onPublish()

◆ onPublishCoordinator()

template<typename NJointTaskspaceControllerType>
void onPublishCoordinator ( const DebugObserverInterfacePrx & debugObs)
protected

Definition at line 929 of file Base.cpp.

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

◆ rtGetDesiredPoseSafeStatus()

template<typename NJointTaskspaceControllerType>
bool rtGetDesiredPoseSafeStatus ( )
protected

Definition at line 289 of file Base.cpp.

◆ rtGetDesiredPoseSafeStatusOnActivation()

template<typename NJointTaskspaceControllerType>
bool rtGetDesiredPoseSafeStatusOnActivation ( )
protected

Definition at line 302 of file Base.cpp.

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

◆ rtPostDeactivateController()

template<typename NJointTaskspaceControllerType>
void rtPostDeactivateController ( )
overrideprotectedvirtual

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.

@Andre Meixner: introduced the following line, which contradicts the use case where you disabled the controller during a coordination mode and reactivtion will not automatically activate the coordination mode again.

Reimplemented from NJointControllerBase.

Reimplemented in NJointTSColController< NJointTSImpController, law::arondto::TSImpColConfigDict >, NJointTSColController< NJointTSMixImpVelController, law::arondto::TSMixImpVelColConfigDict >, NJointTSColController< NJointTSVelController, law::arondto::TSVeloColConfigDict >, and NJointTSVelBasedColController< NJointTSVelController, law::arondto::TSVelColConfigDict >.

Definition at line 1329 of file Base.cpp.

◆ rtPreActivateController()

◆ rtRun()

template<typename NJointTaskspaceControllerType>
void rtRun ( const IceUtil::Time & sensorValuesTimestamp,
const IceUtil::Time & timeSinceLastIteration )
overridevirtual

TODO make protected and use attorneys.

Implements SynchronousNJointController.

Reimplemented in NJointTSColController< NJointTSImpController, law::arondto::TSImpColConfigDict >, NJointTSColController< NJointTSMixImpVelController, law::arondto::TSMixImpVelColConfigDict >, NJointTSColController< NJointTSVelController, law::arondto::TSVeloColConfigDict >, and NJointTSVelBasedColController< NJointTSVelController, law::arondto::TSVelColConfigDict >.

Definition at line 534 of file Base.cpp.

+ Here is the call graph for this function:

◆ rtRunCoordinator()

template<typename NJointTaskspaceControllerType>
void rtRunCoordinator ( double deltaT)
protected

coordinator

TODO, fix this for vel controller, as it does not have kpImpedance

Definition at line 490 of file Base.cpp.

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

◆ updateConfig()

template<typename NJointTaskspaceControllerType>
void updateConfig ( const ::armarx::aron::data::dto::DictPtr & dto,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

NJointController interface.

---------------------------— update/get config ----------------------------------------—

When user updates the controller config before the controller is activated, we need to copy the userconfig to rt data struct directly, as upon activation, the rtConfig will be validated and used to reinitialize all buffers.

Definition at line 560 of file Base.cpp.

+ Here is the call graph for this function:

◆ updateInputData()

template<typename NJointTaskspaceControllerType>
void updateInputData ( const std::string & key,
const Eigen::Matrix4f & targetPose,
const PoseFrameMode & targetPoseMode,
const Eigen::Matrix4f & pose,
const Eigen::Vector6f & vel,
const Eigen::Vector6f & ft,
const Eigen::Vector6f & stiffness )
protected

some method for coordinator

Definition at line 460 of file Base.cpp.

+ Here is the caller graph for this function:

◆ updateTargetPose()

template<typename NJointTaskspaceControllerType>
bool updateTargetPose ( const TargetPoseMap & targetPoseMap,
const TargetNullspaceMap & targetNullspaceMap,
const Ice::Current & = Ice::emptyCurrent )
override

Definition at line 749 of file Base.cpp.

◆ useCoordinator()

template<typename NJointTaskspaceControllerType>
void useCoordinator ( const std::string & type,
const ::armarx::aron::data::dto::DictPtr & dto,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

TODO think about other types of coordinators

TODO add check if the current controller has all robotNodeSets that the coordinator requires. currently, use check below.

Definition at line 1128 of file Base.cpp.

+ Here is the call graph for this function:

◆ validateConfigData()

template<typename NJointTaskspaceControllerType>
void validateConfigData ( Config & config,
ArmPtr & arm )
protected

Definition at line 782 of file Base.cpp.

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

◆ validateConfigDataCheckSize()

template<typename NJointTaskspaceControllerType>
virtual void validateConfigDataCheckSize ( Config & configData,
ArmPtr & arm )
protectedpure virtual
+ Here is the caller graph for this function:

◆ wasNotSafeForceTorque()

template<typename NJointTaskspaceControllerType>
bool wasNotSafeForceTorque ( const std::string & nodeSetName,
const Ice::Current & iceCurrent = Ice::emptyCurrent )
override

Definition at line 695 of file Base.cpp.

Member Data Documentation

◆ controllableNodeSets

template<typename NJointTaskspaceControllerType>
std::map<std::string, VirtualRobot::RobotNodeSetPtr> controllableNodeSets
protected

Definition at line 220 of file Base.h.

◆ coordinator

template<typename NJointTaskspaceControllerType>
std::shared_ptr<common::coordination::SyncCoordination> coordinator = nullptr
protected

Definition at line 224 of file Base.h.

◆ coordinatorEnabled

template<typename NJointTaskspaceControllerType>
std::atomic_bool coordinatorEnabled = false
protected

coordinator

Definition at line 223 of file Base.h.

◆ coordinatorInputData

template<typename NJointTaskspaceControllerType>
std::map<std::string, common::coordination::InputData> coordinatorInputData
protected

Definition at line 225 of file Base.h.

◆ hands

template<typename NJointTaskspaceControllerType>
core::HandControlPtr hands = nullptr
protected

Definition at line 219 of file Base.h.

◆ limb

template<typename NJointTaskspaceControllerType>
std::map<std::string, ArmPtr> limb
protected

Definition at line 215 of file Base.h.

◆ nonRtRobot

template<typename NJointTaskspaceControllerType>
VirtualRobot::RobotPtr nonRtRobot
protected

Definition at line 216 of file Base.h.

◆ robotUnit

template<typename NJointTaskspaceControllerType>
RobotUnitPtr robotUnit
protected

Definition at line 217 of file Base.h.

◆ scopedArviz

template<typename NJointTaskspaceControllerType>
std::optional<viz::ScopedClient> scopedArviz = std::nullopt
protected

Definition at line 227 of file Base.h.

◆ userConfig

template<typename NJointTaskspaceControllerType>
ConfigDict userConfig
protected

Definition at line 218 of file Base.h.


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