Skill Class Reference

Base class for skills. More...

#include <RobotAPI/libraries/skills/core/Skill.h>

Inherits Logging, and SkillExecutorInterface.

Inherited by SpecializedSkill< arondto::CloseHandParams >, SpecializedSkill< arondto::ExecuteTrajectoryParams >, SpecializedSkill< arondto::GuidingWithCollAvoidanceParams >, SpecializedSkill< arondto::MoveJointsToNamedConfigurationParams >, SpecializedSkill< arondto::MoveJointsToPositionParams >, SpecializedSkill< arondto::MoveJointsWithVelocityParams >, SpecializedSkill< arondto::OpenHandParams >, SpecializedSkill< arondto::RelaxHandParams >, SpecializedSkill< arondto::ShapeHandParams >, SpecializedSkill< arondto::SwitchCoordinationModeParams >, SpecializedSkill< armarx::control::skills::params::ZeroTorque >, SpecializedSkill< arondto::NamedConfigurationParams >, SpecializedSkill< arondto::FollowerParams >, SpecializedSkill< arondto::GuideHumanToRoomParams >, SpecializedSkill< arondto::NavigateToParams >, SpecializedSkill< arondto::NavigateToAlternativesParams >, SpecializedSkill< arondto::NavigateToChargingStationParams >, SpecializedSkill< arondto::NavigateToLocationParams >, SpecializedSkill< arondto::NavigateToNamedLocationParams >, SpecializedSkill< arondto::RotateTowardsLocationParams >, SpecializedSkill< arondto::BringObjectToLandmarkAcceptedType >, SpecializedSkill< hand_control::arondto::CloseHandAcceptedType >, SpecializedSkill< grasp_object::arondto::CloseHandAndAttachAcceptedType >, SpecializedSkill< grasp_object::arondto::ExecuteGraspAcceptedType >, SpecializedSkill< grasp_object::arondto::ExecutePutdownAcceptedType >, SpecializedSkill< grasp_object::arondto::GraspObjectAcceptedType >, SpecializedSkill< joint_control::arondto::MoveJointsToPositionAcceptedType >, SpecializedSkill< joint_control::arondto::MoveJointsWithVelocityAcceptedType >, SpecializedSkill< grasp_object::arondto::MovePlatformAfterGraspAcceptedType >, SpecializedSkill< grasp_object::arondto::MovePlatformAfterPutdownAcceptedType >, SpecializedSkill< grasp_object::arondto::MovePlatformForGraspAcceptedType >, SpecializedSkill< grasp_object::arondto::MovePlatformForPutdownAcceptedType >, SpecializedSkill< platform_control::arondto::MovePlatformToLandmarkAcceptedType >, SpecializedSkill< platform_control::arondto::MovePlatformToPoseAcceptedType >, SpecializedSkill< tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >, SpecializedSkill< hand_control::arondto::OpenHandAcceptedType >, SpecializedSkill< grasp_object::arondto::OpenHandAndDetachAcceptedType >, SpecializedSkill< grasp_object::arondto::PutdownObjectAcceptedType >, SpecializedSkill< visual_servo_tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >, SpecializedSkill< visual_search::arondto::WhatCanYouSeeNowAcceptedType >, SpecializedSkill< skills::Example::ChainingAsyncSkillParams >, SpecializedSkill< skills::Example::ChainingSkillParams >, SpecializedSkill< skills::Example::DataPassingParams >, SpecializedSkill< skills::Example::HelloWorldAcceptedType >, SpecializedSkill< skills::Example::RecursiveSkillParams >, SpecializedSkill< armarx::skills::Example::SleepAcceptedType >, SpecializedSkill< arondto::LookAtParams >, SpecializedSkill< arondto::LookAtArticulatedObjectFrameParams >, SpecializedSkill< arondto::LookAtHumanFaceParams >, SpecializedSkill< arondto::LookAtHumanHandParams >, SpecializedSkill< arondto::LookAtObjectParams >, SpecializedSkill< arondto::LookDirectionParams >, SpecializedSkill< arondto::LookForObjectsParams >, SpecializedSkill< arondto::ResetGazeTargetsParams >, SpecializedSkill< arondto::ScanLocationParams >, SpecializedSkill< arondto::ScanLocationsForObjectParams >, SpecializedSkill< arondto::SetCustomGazeTargetParams >, LambdaSkill, PeriodicSkill, SimpleSkill, and SpecializedSkill< AronT >.

Classes

struct  ExitResult
 A result struct for skill exit function. More...
 
struct  InitResult
 A result struct for skill initialization. More...
 
struct  MainResult
 A result struct for th main method of a skill. More...
 
struct  PrepareResult
 A result struct for skill preparing. More...
 

Public Types

using CallbackT
 

Public Member Functions

std::optional< TerminatedSkillStatusUpdate > callSubskill (const SkillID &skillId)
 Call a subskill with the given ID and its default parameters.
 
std::optional< TerminatedSkillStatusUpdate > callSubskill (const SkillID &skillId, const aron::data::DictPtr &parameters)
 Call a subskill with the given ID and parameters.
 
template<class ParameterT>
std::optional< TerminatedSkillStatusUpdate > callSubskill (const SkillID &skillId, const ParameterT &parameters)
 Call a subskill with the given ID and parameters.
 
std::optional< TerminatedSkillStatusUpdate > callSubskill (const SkillID &skillId, std::function< void(aron::data::DictPtr &parameters)> parametersFunction)
 Call a subskill with parameters based on the default parameters.
 
template<class ParameterT>
std::optional< TerminatedSkillStatusUpdate > callSubskill (const SkillID &skillId, std::function< void(ParameterT &parameters)> parametersFunction)
 Call a subskill with parameters based on the default parameters.
 
std::optional< TerminatedSkillStatusUpdate > callSubskill (const skills::SkillProxy &proxy)
 Call a subskill with default parameters and block until the subskill terminates.
 
std::optional< TerminatedSkillStatusUpdate > callSubskill (const skills::SkillProxy &proxy, const aron::data::DictPtr &parameters)
 Call a subskill with given parameters and block until the subskill terminates.
 
std::optional< TerminatedSkillStatusUpdate > callSubskill (SkillProxyPtr proxy)
 Call a subskill with default parameters and block until the subskill terminates.
 
std::optional< TerminatedSkillStatusUpdate > callSubskill (SkillProxyPtr proxy, const aron::data::DictPtr &parameters)
 Call a subskill with given parameters and block until the subskill terminates.
 
SkillExecutionHandlePtr callSubskillAsync (const SkillID &skillId)
 
SkillExecutionHandlePtr callSubskillAsync (const SkillID &skillId, const aron::data::DictPtr &parameters)
 
SkillExecutionHandlePtr callSubskillAsync (const SkillID &skillId, std::function< void(aron::data::DictPtr &)> parametersFunction)
 
template<class ParameterT>
SkillExecutionHandlePtr callSubskillAsync (const SkillID &skillId, std::function< void(ParameterT &parameters)> parametersFunction)
 Similar to callSubskill but non-blocking.
 
template<class ParameterT>
SkillExecutionHandlePtr callSubskillAsync (const SkillProxy &proxy, std::function< void(ParameterT &parameters)> parametersFunction)
 Similar to callSubskill but non-blocking.
 
SkillExecutionHandlePtr callSubskillAsync (const skills::SkillProxy &proxy, const aron::data::DictPtr &parameters)
 
SkillExecutionHandlePtr callSubskillAsync (SkillProxyPtr proxy)
 Similar to callSubskill but non-blocking.
 
SkillExecutionHandlePtr callSubskillAsync (SkillProxyPtr proxy, const aron::data::DictPtr &parameters)
 Similar to callSubskill but non-blocking.
 
template<class ParameterT>
SkillExecutionHandlePtr callSubskillAsync (SkillProxyPtr proxy, std::function< void(ParameterT &parameters)> parametersFunction)
 
ExitResult exitSkill ()
 Exit method of a skill.
 
aron::data::DictPtr getParameters () const
 Get the parameters of a skill that have been set so far.
 
SkillDescription getSkillDescription () const
 Get the description of a skill.
 
SkillID getSkillId () const
 Get the id of the skill.
 
InitResult initSkill ()
 Initialization of a skill.
 
void installConditionWithCallback (std::function< bool()> &&f, std::function< void()> &&cb)
 install a condition which is frequently checked from the conditionCheckingThread
 
MainResult mainOfSkill ()
 Main method of a skill.
 
void notifySkillToStop ()
 Notify the skill from extern to stop.
 
PrepareResult prepareSkill ()
 Prepare a skill once.
 
void setCallback (const CallbackT &callback)
 
void setExecutorName (const std::string &executorName)
 
void setManager (const manager::dti::SkillManagerInterfacePrx &manager)
 
void setParameters (const aron::data::DictPtr &d)
 Hard set the parameters, ignoring everything that has been set or merged before.
 
void setProviderId (const skills::ProviderID &pid)
 Set the provider id of the description of the skill.
 
bool shouldSkillTerminate () const override
 Returns whether the skill should terminate as soon as possible.
 
 Skill ()=delete
 We completely remove the default constructor!
 
 Skill (const SkillDescription &)
 Constructor of a skill for inheritance. Every skill must have a skill description.
 
void updateParameters (const aron::data::DictPtr &d)
 Merge parameters to the local parameters of the skill.
 
void updateSubSkillStatus (const skills::SkillStatusUpdate &statusUpdate)
 
void waitFor (const armarx::Duration &duration, const armarx::Duration &interval=armarx::Duration::MilliSeconds(200)) const override
 
 ~Skill () override
 Virtual destructor of a skill.
 
- 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 Attributes

armarx::core::time::DateTime exited = armarx::core::time::DateTime::Invalid()
 
armarx::core::time::DateTime started = armarx::core::time::DateTime::Now()
 

Protected Member Functions

virtual ExitResult exit ()
 Override this method with the actual implementation.
 
virtual InitResult init ()
 Override this method with the actual implementation.
 
virtual MainResult main ()
 Override this method with the actual implementation.
 
void notifyTimeoutReached ()
 
virtual void onStopRequested ()
 
virtual void onTimeoutReached ()
 Override these methods if you want to do something special when notification comes.
 
virtual PrepareResult prepare ()
 Override this method with the actual implementation.
 
void throwIfSkillShouldTerminate (const std::function< void()> &do_before, const std::string &abortedMessage="") const
 
void throwIfSkillShouldTerminate (const std::string &abortedMessage="") const
 
- Protected Member Functions inherited from Logging
bool checkLogLevel (MessageTypeT level) const
 
const LogSenderPtr & getLogSender () const
 Retrieve log sender.
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 
- Protected Member Functions inherited from SkillExecutorInterface
virtual ~SkillExecutorInterface ()=default
 

Static Protected Member Functions

static MainResult MakeAbortedResult (aron::data::DictPtr data=nullptr)
 
static MainResult MakeFailedResult (aron::data::DictPtr data=nullptr)
 
static MainResult MakeSucceededResult (aron::data::DictPtr data=nullptr)
 

Protected Attributes

CallbackT callback = CallbackT()
 
std::atomic_bool constructing = true
 
SkillDescription description
 
std::string executorName = ""
 
std::atomic_bool exiting = false
 
std::atomic_bool finished = false
 
std::atomic_bool initializing = false
 
manager::dti::SkillManagerInterfacePrx manager = nullptr
 
armarx::aron::data::DictPtr parameters = nullptr
 
std::mutex parametersMutex
 
std::atomic_bool preparing = false
 
std::atomic_bool running = false
 
std::atomic_bool stopped = false
 
armem::task_outcome::TaskOutcome taskOutcome_
 
std::atomic_bool timeoutReached = false
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Detailed Description

Base class for skills.

Member Typedef Documentation

◆ CallbackT

using CallbackT
Initial value:
std::function<void(const SkillStatus s, const armarx::aron::data::DictPtr&)>
std::shared_ptr< Dict > DictPtr
Definition Dict.h:42
SkillStatus
Definition SkillStatusUpdate.h:18

Constructor & Destructor Documentation

◆ Skill() [1/2]

Skill ( )
delete

We completely remove the default constructor!

A skill without a desciption cannot exist

◆ Skill() [2/2]

Skill ( const SkillDescription & desc)

Constructor of a skill for inheritance. Every skill must have a skill description.

◆ ~Skill()

~Skill ( )
override

Virtual destructor of a skill.

Member Function Documentation

◆ callSubskill() [1/9]

std::optional< TerminatedSkillStatusUpdate > callSubskill ( const SkillID & skillId)

Call a subskill with the given ID and its default parameters.

Parameters
skillIdThe subskill's ID.
Returns
The terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [2/9]

std::optional< TerminatedSkillStatusUpdate > callSubskill ( const SkillID & skillId,
const aron::data::DictPtr & parameters )

Call a subskill with the given ID and parameters.

Parameters
skillIdThe subskill's ID.
parametersThe parameters.
Returns
The terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [3/9]

template<class ParameterT>
std::optional< TerminatedSkillStatusUpdate > callSubskill ( const SkillID & skillId,
const ParameterT & parameters )
inline

Call a subskill with the given ID and parameters.

Parameters
skillIdThe subskill's ID.
parametersThe parameters.
Returns
The terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [4/9]

std::optional< TerminatedSkillStatusUpdate > callSubskill ( const SkillID & skillId,
std::function< void(aron::data::DictPtr &parameters)> parametersFunction )

Call a subskill with parameters based on the default parameters.

Creates the skill's default parameters, and calls parametersFunction on them. This allows the caller to modify the parameters before executing the skill.

Parameters
skillIdThe subskill's ID.
parametersFunctionFunction which edits the parameters.
Returns
The terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [5/9]

template<class ParameterT>
std::optional< TerminatedSkillStatusUpdate > callSubskill ( const SkillID & skillId,
std::function< void(ParameterT &parameters)> parametersFunction )
inline

Call a subskill with parameters based on the default parameters.

Creates the skill's default parameters, converts them to ParameterT, and calls parametersFunction on them. This allows the caller to modify the parameters as ParameterT before executing the skill.

Parameters
skillIdThe subskill's ID.
parametersFunctionFunction which edits the parameters.
Returns
The terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [6/9]

std::optional< TerminatedSkillStatusUpdate > callSubskill ( const skills::SkillProxy & proxy)
inline

Call a subskill with default parameters and block until the subskill terminates.

If you call a subskill this way it will be stopped if the current skill stops.

Parameters
proxySkill proxy.
Returns
Terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [7/9]

std::optional< TerminatedSkillStatusUpdate > callSubskill ( const skills::SkillProxy & proxy,
const aron::data::DictPtr & parameters )
inline

Call a subskill with given parameters and block until the subskill terminates.

Parameters
proxySkill proxy.
parametersParameters passed to the skill.
Returns
Terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [8/9]

std::optional< TerminatedSkillStatusUpdate > callSubskill ( SkillProxyPtr proxy)

Call a subskill with default parameters and block until the subskill terminates.

If you call a subskill this way it will be stopped if the current skill stops.

Parameters
proxySkill proxy.
Returns
Terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskill() [9/9]

std::optional< TerminatedSkillStatusUpdate > callSubskill ( SkillProxyPtr proxy,
const aron::data::DictPtr & parameters )

Call a subskill with given parameters and block until the subskill terminates.

Parameters
proxySkill proxy.
parametersParameters passed to the skill.
Returns
Terminated skill status update.
Exceptions
armarx::skills::error::SkillAbortedExceptionIf the calling skill has been aborted.
armarx::skills::error::SkillFailedExceptionIf the calling skill's timeout was reached.

◆ callSubskillAsync() [1/9]

SkillExecutionHandlePtr callSubskillAsync ( const SkillID & skillId)
nodiscard

◆ callSubskillAsync() [2/9]

SkillExecutionHandlePtr callSubskillAsync ( const SkillID & skillId,
const aron::data::DictPtr & parameters )
nodiscard

◆ callSubskillAsync() [3/9]

SkillExecutionHandlePtr callSubskillAsync ( const SkillID & skillId,
std::function< void(aron::data::DictPtr &)> parametersFunction )
nodiscard

◆ callSubskillAsync() [4/9]

template<class ParameterT>
SkillExecutionHandlePtr callSubskillAsync ( const SkillID & skillId,
std::function< void(ParameterT &parameters)> parametersFunction )
inlinenodiscard

Similar to callSubskill but non-blocking.

◆ callSubskillAsync() [5/9]

template<class ParameterT>
SkillExecutionHandlePtr callSubskillAsync ( const SkillProxy & proxy,
std::function< void(ParameterT &parameters)> parametersFunction )
inline

Similar to callSubskill but non-blocking.

◆ callSubskillAsync() [6/9]

SkillExecutionHandlePtr callSubskillAsync ( const skills::SkillProxy & proxy,
const aron::data::DictPtr & parameters )
inline

◆ callSubskillAsync() [7/9]

SkillExecutionHandlePtr callSubskillAsync ( Skill::SkillProxyPtr prx)
nodiscard

Similar to callSubskill but non-blocking.

◆ callSubskillAsync() [8/9]

SkillExecutionHandlePtr callSubskillAsync ( Skill::SkillProxyPtr prx,
const aron::data::DictPtr & parameters )
nodiscard

Similar to callSubskill but non-blocking.

◆ callSubskillAsync() [9/9]

template<class ParameterT>
SkillExecutionHandlePtr callSubskillAsync ( SkillProxyPtr proxy,
std::function< void(ParameterT &parameters)> parametersFunction )
inline

◆ exit()

Skill::ExitResult exit ( )
protectedvirtual

Override this method with the actual implementation.

Reimplemented in SimpleSkill, SimpleSpecializedSkill< AronT >, SimpleSpecializedSkill< ::armarx::control::collision_avoidance::arondto::CollisionAvoidanceParams >, SimpleSpecializedSkill< ::armarx::control::collision_avoidance::arondto::CollisionAvoidanceParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseWithFaceRecognitionParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseWithFaceRecognitionParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanProfileParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanProfileParams >, SimpleSpecializedSkill< armarx::control::skills::params::ZeroTorque >, SimpleSpecializedSkill< armarx::skills::Example::SleepAcceptedType >, SimpleSpecializedSkill< arondto::BringObjectToLandmarkAcceptedType >, SimpleSpecializedSkill< arondto::ExecuteTrajectoryParams >, SimpleSpecializedSkill< arondto::FollowerParams >, SimpleSpecializedSkill< arondto::GuideHumanToRoomParams >, SimpleSpecializedSkill< arondto::GuidingWithCollAvoidanceParams >, SimpleSpecializedSkill< arondto::LookAtArticulatedObjectFrameParams >, SimpleSpecializedSkill< arondto::LookAtHumanFaceParams >, SimpleSpecializedSkill< arondto::LookAtHumanHandParams >, SimpleSpecializedSkill< arondto::LookAtObjectParams >, SimpleSpecializedSkill< arondto::LookAtParams >, SimpleSpecializedSkill< arondto::LookDirectionParams >, SimpleSpecializedSkill< arondto::LookForObjectsParams >, SimpleSpecializedSkill< arondto::MoveJointsToNamedConfigurationParams >, SimpleSpecializedSkill< arondto::MoveJointsToPositionParams >, SimpleSpecializedSkill< arondto::MoveJointsWithVelocityParams >, SimpleSpecializedSkill< arondto::NamedConfigurationParams >, SimpleSpecializedSkill< arondto::NavigateToAlternativesParams >, SimpleSpecializedSkill< arondto::NavigateToChargingStationParams >, SimpleSpecializedSkill< arondto::NavigateToLocationParams >, SimpleSpecializedSkill< arondto::NavigateToNamedLocationParams >, SimpleSpecializedSkill< arondto::NavigateToParams >, SimpleSpecializedSkill< arondto::PointAtParams >, SimpleSpecializedSkill< arondto::PointAtParams >, SimpleSpecializedSkill< arondto::RelaxHandParams >, SimpleSpecializedSkill< arondto::ResetGazeTargetsParams >, SimpleSpecializedSkill< arondto::RotateTowardsLocationParams >, SimpleSpecializedSkill< arondto::ScanLocationParams >, SimpleSpecializedSkill< arondto::ScanLocationsForObjectParams >, SimpleSpecializedSkill< arondto::SetCustomGazeTargetParams >, SimpleSpecializedSkill< arondto::SwitchCoordinationModeParams >, SimpleSpecializedSkill< grasp_object::arondto::CloseHandAndAttachAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::ExecuteGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::ExecutePutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::GraspObjectAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformAfterGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformAfterPutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformForGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformForPutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::OpenHandAndDetachAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::PutdownObjectAcceptedType >, SimpleSpecializedSkill< hand_control::arondto::CloseHandAcceptedType >, SimpleSpecializedSkill< hand_control::arondto::OpenHandAcceptedType >, SimpleSpecializedSkill< joint_control::arondto::MoveJointsToPositionAcceptedType >, SimpleSpecializedSkill< joint_control::arondto::MoveJointsWithVelocityAcceptedType >, SimpleSpecializedSkill< Params >, SimpleSpecializedSkill< Params >, SimpleSpecializedSkill< platform_control::arondto::MovePlatformToLandmarkAcceptedType >, SimpleSpecializedSkill< platform_control::arondto::MovePlatformToPoseAcceptedType >, SimpleSpecializedSkill< RetrieveHandParams >, SimpleSpecializedSkill< RetrieveHandParams >, SimpleSpecializedSkill< skills::Example::ChainingAsyncSkillParams >, SimpleSpecializedSkill< skills::Example::ChainingSkillParams >, SimpleSpecializedSkill< skills::Example::DataPassingParams >, SimpleSpecializedSkill< skills::Example::HelloWorldAcceptedType >, SimpleSpecializedSkill< skills::Example::RecursiveSkillParams >, SimpleSpecializedSkill< tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >, SimpleSpecializedSkill< visual_search::arondto::WhatCanYouSeeNowAcceptedType >, and SimpleSpecializedSkill< visual_servo_tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >.

◆ exitSkill()

Skill::ExitResult exitSkill ( )

Exit method of a skill.

It is guaranteed that exit is always called (unless there is a segfault or similar)

◆ getParameters()

aron::data::DictPtr getParameters ( ) const

Get the parameters of a skill that have been set so far.

◆ getSkillDescription()

SkillDescription getSkillDescription ( ) const

Get the description of a skill.

◆ getSkillId()

SkillID getSkillId ( ) const

Get the id of the skill.

◆ init()

Skill::InitResult init ( )
protectedvirtual

Override this method with the actual implementation.

Reimplemented in SimpleSkill, SimpleSpecializedSkill< AronT >, SimpleSpecializedSkill< ::armarx::control::collision_avoidance::arondto::CollisionAvoidanceParams >, SimpleSpecializedSkill< ::armarx::control::collision_avoidance::arondto::CollisionAvoidanceParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseWithFaceRecognitionParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseWithFaceRecognitionParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanProfileParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanProfileParams >, SimpleSpecializedSkill< armarx::control::skills::params::ZeroTorque >, SimpleSpecializedSkill< armarx::skills::Example::SleepAcceptedType >, SimpleSpecializedSkill< arondto::BringObjectToLandmarkAcceptedType >, SimpleSpecializedSkill< arondto::ExecuteTrajectoryParams >, SimpleSpecializedSkill< arondto::FollowerParams >, SimpleSpecializedSkill< arondto::GuideHumanToRoomParams >, SimpleSpecializedSkill< arondto::GuidingWithCollAvoidanceParams >, SimpleSpecializedSkill< arondto::LookAtArticulatedObjectFrameParams >, SimpleSpecializedSkill< arondto::LookAtHumanFaceParams >, SimpleSpecializedSkill< arondto::LookAtHumanHandParams >, SimpleSpecializedSkill< arondto::LookAtObjectParams >, SimpleSpecializedSkill< arondto::LookAtParams >, SimpleSpecializedSkill< arondto::LookDirectionParams >, SimpleSpecializedSkill< arondto::LookForObjectsParams >, SimpleSpecializedSkill< arondto::MoveJointsToNamedConfigurationParams >, SimpleSpecializedSkill< arondto::MoveJointsToPositionParams >, SimpleSpecializedSkill< arondto::MoveJointsWithVelocityParams >, SimpleSpecializedSkill< arondto::NamedConfigurationParams >, SimpleSpecializedSkill< arondto::NavigateToAlternativesParams >, SimpleSpecializedSkill< arondto::NavigateToChargingStationParams >, SimpleSpecializedSkill< arondto::NavigateToLocationParams >, SimpleSpecializedSkill< arondto::NavigateToNamedLocationParams >, SimpleSpecializedSkill< arondto::NavigateToParams >, SimpleSpecializedSkill< arondto::PointAtParams >, SimpleSpecializedSkill< arondto::PointAtParams >, SimpleSpecializedSkill< arondto::RelaxHandParams >, SimpleSpecializedSkill< arondto::ResetGazeTargetsParams >, SimpleSpecializedSkill< arondto::RotateTowardsLocationParams >, SimpleSpecializedSkill< arondto::ScanLocationParams >, SimpleSpecializedSkill< arondto::ScanLocationsForObjectParams >, SimpleSpecializedSkill< arondto::SetCustomGazeTargetParams >, SimpleSpecializedSkill< arondto::SwitchCoordinationModeParams >, SimpleSpecializedSkill< grasp_object::arondto::CloseHandAndAttachAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::ExecuteGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::ExecutePutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::GraspObjectAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformAfterGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformAfterPutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformForGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformForPutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::OpenHandAndDetachAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::PutdownObjectAcceptedType >, SimpleSpecializedSkill< hand_control::arondto::CloseHandAcceptedType >, SimpleSpecializedSkill< hand_control::arondto::OpenHandAcceptedType >, SimpleSpecializedSkill< joint_control::arondto::MoveJointsToPositionAcceptedType >, SimpleSpecializedSkill< joint_control::arondto::MoveJointsWithVelocityAcceptedType >, SimpleSpecializedSkill< Params >, SimpleSpecializedSkill< Params >, SimpleSpecializedSkill< platform_control::arondto::MovePlatformToLandmarkAcceptedType >, SimpleSpecializedSkill< platform_control::arondto::MovePlatformToPoseAcceptedType >, SimpleSpecializedSkill< RetrieveHandParams >, SimpleSpecializedSkill< RetrieveHandParams >, SimpleSpecializedSkill< skills::Example::ChainingAsyncSkillParams >, SimpleSpecializedSkill< skills::Example::ChainingSkillParams >, SimpleSpecializedSkill< skills::Example::DataPassingParams >, SimpleSpecializedSkill< skills::Example::HelloWorldAcceptedType >, SimpleSpecializedSkill< skills::Example::RecursiveSkillParams >, SimpleSpecializedSkill< tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >, SimpleSpecializedSkill< visual_search::arondto::WhatCanYouSeeNowAcceptedType >, and SimpleSpecializedSkill< visual_servo_tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >.

◆ initSkill()

Skill::InitResult initSkill ( )

Initialization of a skill.

Called directly after construction. If this method does not return SUCCEEDED the skill execution is failed.

◆ installConditionWithCallback()

void installConditionWithCallback ( std::function< bool()> && f,
std::function< void()> && cb )

install a condition which is frequently checked from the conditionCheckingThread

◆ main()

Skill::MainResult main ( )
protectedvirtual

Override this method with the actual implementation.

The callback is for status updates to the calling instance

Reimplemented in PointAt, RetrieveHand, PeriodicSkill, PeriodicSpecializedSkill< AronT >, SimpleSkill, SimpleSpecializedSkill< AronT >, SimpleSpecializedSkill< ::armarx::control::collision_avoidance::arondto::CollisionAvoidanceParams >, SimpleSpecializedSkill< ::armarx::control::collision_avoidance::arondto::CollisionAvoidanceParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseWithFaceRecognitionParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanPoseWithFaceRecognitionParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanProfileParams >, SimpleSpecializedSkill< ::VisionX::person_simulator::skills::arondto::CreateHumanProfileParams >, SimpleSpecializedSkill< armarx::control::skills::params::ZeroTorque >, SimpleSpecializedSkill< armarx::skills::Example::SleepAcceptedType >, SimpleSpecializedSkill< arondto::BringObjectToLandmarkAcceptedType >, SimpleSpecializedSkill< arondto::ExecuteTrajectoryParams >, SimpleSpecializedSkill< arondto::FollowerParams >, SimpleSpecializedSkill< arondto::GuideHumanToRoomParams >, SimpleSpecializedSkill< arondto::GuidingWithCollAvoidanceParams >, SimpleSpecializedSkill< arondto::LookAtArticulatedObjectFrameParams >, SimpleSpecializedSkill< arondto::LookAtHumanFaceParams >, SimpleSpecializedSkill< arondto::LookAtHumanHandParams >, SimpleSpecializedSkill< arondto::LookAtObjectParams >, SimpleSpecializedSkill< arondto::LookAtParams >, SimpleSpecializedSkill< arondto::LookDirectionParams >, SimpleSpecializedSkill< arondto::LookForObjectsParams >, SimpleSpecializedSkill< arondto::MoveJointsToNamedConfigurationParams >, SimpleSpecializedSkill< arondto::MoveJointsToPositionParams >, SimpleSpecializedSkill< arondto::MoveJointsWithVelocityParams >, SimpleSpecializedSkill< arondto::NamedConfigurationParams >, SimpleSpecializedSkill< arondto::NavigateToAlternativesParams >, SimpleSpecializedSkill< arondto::NavigateToChargingStationParams >, SimpleSpecializedSkill< arondto::NavigateToLocationParams >, SimpleSpecializedSkill< arondto::NavigateToNamedLocationParams >, SimpleSpecializedSkill< arondto::NavigateToParams >, SimpleSpecializedSkill< arondto::PointAtParams >, SimpleSpecializedSkill< arondto::PointAtParams >, SimpleSpecializedSkill< arondto::RelaxHandParams >, SimpleSpecializedSkill< arondto::ResetGazeTargetsParams >, SimpleSpecializedSkill< arondto::RotateTowardsLocationParams >, SimpleSpecializedSkill< arondto::ScanLocationParams >, SimpleSpecializedSkill< arondto::ScanLocationsForObjectParams >, SimpleSpecializedSkill< arondto::SetCustomGazeTargetParams >, SimpleSpecializedSkill< arondto::SwitchCoordinationModeParams >, SimpleSpecializedSkill< grasp_object::arondto::CloseHandAndAttachAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::ExecuteGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::ExecutePutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::GraspObjectAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformAfterGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformAfterPutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformForGraspAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::MovePlatformForPutdownAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::OpenHandAndDetachAcceptedType >, SimpleSpecializedSkill< grasp_object::arondto::PutdownObjectAcceptedType >, SimpleSpecializedSkill< hand_control::arondto::CloseHandAcceptedType >, SimpleSpecializedSkill< hand_control::arondto::OpenHandAcceptedType >, SimpleSpecializedSkill< joint_control::arondto::MoveJointsToPositionAcceptedType >, SimpleSpecializedSkill< joint_control::arondto::MoveJointsWithVelocityAcceptedType >, SimpleSpecializedSkill< Params >, SimpleSpecializedSkill< Params >, SimpleSpecializedSkill< platform_control::arondto::MovePlatformToLandmarkAcceptedType >, SimpleSpecializedSkill< platform_control::arondto::MovePlatformToPoseAcceptedType >, SimpleSpecializedSkill< RetrieveHandParams >, SimpleSpecializedSkill< RetrieveHandParams >, SimpleSpecializedSkill< skills::Example::ChainingAsyncSkillParams >, SimpleSpecializedSkill< skills::Example::ChainingSkillParams >, SimpleSpecializedSkill< skills::Example::DataPassingParams >, SimpleSpecializedSkill< skills::Example::HelloWorldAcceptedType >, SimpleSpecializedSkill< skills::Example::RecursiveSkillParams >, SimpleSpecializedSkill< tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >, SimpleSpecializedSkill< visual_search::arondto::WhatCanYouSeeNowAcceptedType >, and SimpleSpecializedSkill< visual_servo_tcp_control::arondto::MoveTCPToTargetPoseAcceptedType >.

◆ mainOfSkill()

Skill::MainResult mainOfSkill ( )

Main method of a skill.

◆ MakeAbortedResult()

Skill::MainResult MakeAbortedResult ( aron::data::DictPtr data = nullptr)
staticprotected

◆ MakeFailedResult()

Skill::MainResult MakeFailedResult ( aron::data::DictPtr data = nullptr)
staticprotected

◆ MakeSucceededResult()

Skill::MainResult MakeSucceededResult ( aron::data::DictPtr data = nullptr)
staticprotected

◆ notifySkillToStop()

void notifySkillToStop ( )

Notify the skill from extern to stop.

◆ notifyTimeoutReached()

void notifyTimeoutReached ( )
protected

◆ onStopRequested()

void onStopRequested ( )
protectedvirtual

Reimplemented in PointAt, RetrieveHand, and Sleep.

◆ onTimeoutReached()

void onTimeoutReached ( )
protectedvirtual

Override these methods if you want to do something special when notification comes.

Reimplemented in PointAt.

◆ prepare()

Skill::PrepareResult prepare ( )
protectedvirtual

Override this method with the actual implementation.

◆ prepareSkill()

Skill::PrepareResult prepareSkill ( )

Prepare a skill once.

This method is called in a loop as long as it returns RUNNING If the loop does not terminate with SUCCEDED the skill execution is failed.

◆ setCallback()

void setCallback ( const CallbackT & callback)

◆ setExecutorName()

void setExecutorName ( const std::string & executorName)

◆ setManager()

void setManager ( const manager::dti::SkillManagerInterfacePrx & manager)

◆ setParameters()

void setParameters ( const aron::data::DictPtr & d)

Hard set the parameters, ignoring everything that has been set or merged before.

◆ setProviderId()

void setProviderId ( const skills::ProviderID & pid)

Set the provider id of the description of the skill.

This method is called when creating a skill in a skill provider

◆ shouldSkillTerminate()

bool shouldSkillTerminate ( ) const
overridevirtual

Returns whether the skill should terminate as soon as possible.

Implements SkillExecutorInterface.

◆ throwIfSkillShouldTerminate() [1/2]

void throwIfSkillShouldTerminate ( const std::function< void()> & do_before,
const std::string & abortedMessage = "" ) const
protected

◆ throwIfSkillShouldTerminate() [2/2]

void throwIfSkillShouldTerminate ( const std::string & abortedMessage = "") const
protected

◆ updateParameters()

void updateParameters ( const aron::data::DictPtr & d)

Merge parameters to the local parameters of the skill.

◆ updateSubSkillStatus()

void updateSubSkillStatus ( const skills::SkillStatusUpdate & statusUpdate)

◆ waitFor()

void waitFor ( const armarx::Duration & duration,
const armarx::Duration & interval = armarx::Duration::MilliSeconds(200) ) const
overridevirtual

Member Data Documentation

◆ callback

CallbackT callback = CallbackT()
protected

◆ constructing

std::atomic_bool constructing = true
protected

◆ description

SkillDescription description
protected

◆ executorName

std::string executorName = ""
protected

◆ exited

◆ exiting

std::atomic_bool exiting = false
protected

◆ finished

std::atomic_bool finished = false
protected

◆ initializing

std::atomic_bool initializing = false
protected

◆ manager

manager::dti::SkillManagerInterfacePrx manager = nullptr
protected

◆ parameters

armarx::aron::data::DictPtr parameters = nullptr
protected

◆ parametersMutex

std::mutex parametersMutex
mutableprotected

◆ preparing

std::atomic_bool preparing = false
protected

◆ running

std::atomic_bool running = false
protected

◆ started

◆ stopped

std::atomic_bool stopped = false
protected

◆ taskOutcome_

armem::task_outcome::TaskOutcome taskOutcome_
protected

◆ timeoutReached

std::atomic_bool timeoutReached = false
protected

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