7#ifndef YARP_DEV_CARTESIANCONTROL_H
8#define YARP_DEV_CARTESIANCONTROL_H
20struct CartesianEventParameters;
21struct CartesianEventVariables;
23class ICartesianControl;
240 const double t = 0.0) = 0;
254 const double t = 0.0) = 0;
272 const double t = 0.0) = 0;
287 const double t = 0.0) = 0;
507 virtual bool getLimits(
const int axis,
double *min,
double *max) = 0;
518 virtual bool setLimits(
const int axis,
const double min,
const double max) = 0;
641 const double timeout = 0.0) = 0;
contains the definition of a Vector type
Interface for a event notified by the cartesian controller.
yarp::dev::CartesianEventVariables cartesianEventVariables
The event handler fills this structure with useful information at run-time.
yarp::dev::CartesianEventParameters cartesianEventParameters
The user fills this structure to establish the event parameters.
virtual ~CartesianEvent()
Destructor.
virtual void cartesianEventCallback()=0
Event callback to be overridden by the user.
Interface for a cartesian controller.
virtual bool setRestWeights(const yarp::sig::Vector &newRestWeights, yarp::sig::Vector &curRestWeights)=0
Set a new joints rest position.
virtual bool goToPose(const yarp::sig::Vector &xd, const yarp::sig::Vector &od, const double t=0.0)=0
Move the end-effector to a specified pose (position and orientation) in cartesian space.
virtual bool tweakSet(const yarp::os::Bottle &options)=0
Tweak low-level controller's parameters.
virtual bool getRestWeights(yarp::sig::Vector &curRestWeights)=0
Get the current joints rest weights.
virtual bool setTrackingMode(const bool f)=0
Set the controller in tracking or non-tracking mode.
virtual bool stopControl()=0
Ask for an immediate stop motion.
virtual bool getTipFrame(yarp::sig::Vector &x, yarp::sig::Vector &o)=0
Retrieve the tip frame currently attached to the end-effector.
virtual bool getInTargetTol(double *tol)=0
Return tolerance for in-target check.
virtual bool getReferenceMode(bool *f)=0
Get the current controller reference mode.
virtual bool setDOF(const yarp::sig::Vector &newDof, yarp::sig::Vector &curDof)=0
Set a new DOF configuration for the limb.
virtual bool storeContext(int *id)=0
Store the controller context.
virtual bool getRestPos(yarp::sig::Vector &curRestPos)=0
Get the current joints rest position.
virtual bool askForPose(const yarp::sig::Vector &xd, const yarp::sig::Vector &od, yarp::sig::Vector &xdhat, yarp::sig::Vector &odhat, yarp::sig::Vector &qdhat)=0
Ask for inverting a given pose without actually moving there.
virtual bool setTaskVelocities(const yarp::sig::Vector &xdot, const yarp::sig::Vector &odot)=0
Set the reference velocities of the end-effector in the task space.
virtual bool goToPoseSync(const yarp::sig::Vector &xd, const yarp::sig::Vector &od, const double t=0.0)=0
Move the end-effector to a specified pose (position and orientation) in cartesian space.
virtual bool setLimits(const int axis, const double min, const double max)=0
Set new range for the axis.
virtual bool getDOF(yarp::sig::Vector &curDof)=0
Get the current DOF configuration of the limb.
virtual bool setTrajTime(const double t)=0
Set the duration of the trajectory.
virtual bool askForPose(const yarp::sig::Vector &q0, const yarp::sig::Vector &xd, const yarp::sig::Vector &od, yarp::sig::Vector &xdhat, yarp::sig::Vector &odhat, yarp::sig::Vector &qdhat)=0
Ask for inverting a given pose without actually moving there.
virtual bool getTrackingMode(bool *f)=0
Get the current controller mode.
virtual bool askForPosition(const yarp::sig::Vector &q0, const yarp::sig::Vector &xd, yarp::sig::Vector &xdhat, yarp::sig::Vector &odhat, yarp::sig::Vector &qdhat)=0
Ask for inverting a given position without actually moving there.
virtual bool setReferenceMode(const bool f)=0
Ask the controller to close the loop with the low-level joints set-points in place of the actual enco...
virtual bool getTrajTime(double *t)=0
Get the current trajectory duration.
virtual bool setInTargetTol(const double tol)=0
Set tolerance for in-target check.
virtual bool registerEvent(yarp::dev::CartesianEvent &event)=0
Register an event.
virtual bool goToPositionSync(const yarp::sig::Vector &xd, const double t=0.0)=0
Move the end-effector to a specified position in cartesian space, ignore the orientation.
virtual bool setRestPos(const yarp::sig::Vector &newRestPos, yarp::sig::Vector &curRestPos)=0
Set a new joints rest position.
virtual bool getPose(const int axis, yarp::sig::Vector &x, yarp::sig::Vector &o, yarp::os::Stamp *stamp=NULL)=0
Get the current pose of the specified link belonging to the kinematic chain.
virtual bool attachTipFrame(const yarp::sig::Vector &x, const yarp::sig::Vector &o)=0
Attach a tip frame to the end-effector.
virtual bool getTaskVelocities(yarp::sig::Vector &xdot, yarp::sig::Vector &odot)=0
Return velocities of the end-effector in the task space.
virtual bool getInfo(yarp::os::Bottle &info)=0
Return useful info on the operating state of the controller.
virtual ~ICartesianControl()
Destructor.
virtual bool checkMotionDone(bool *f)=0
Check once if the current trajectory is terminated.
virtual bool getJointsVelocities(yarp::sig::Vector &qdot)=0
Return joints velocities.
virtual bool removeTipFrame()=0
Remove the tip frame currently attached to the end-effector.
virtual bool deleteContext(const int id)=0
Delete a specified controller context.
virtual bool getLimits(const int axis, double *min, double *max)=0
Get the current range for the axis.
virtual bool setPosePriority(const std::string &p)=0
Ask the controller to weigh more either the position or the orientation while reaching in full pose.
virtual bool restoreContext(const int id)=0
Restore the controller context previously stored.
virtual bool getPose(yarp::sig::Vector &x, yarp::sig::Vector &o, yarp::os::Stamp *stamp=NULL)=0
Get the current pose of the end-effector.
virtual bool goToPosition(const yarp::sig::Vector &xd, const double t=0.0)=0
Move the end-effector to a specified position in cartesian space, ignore the orientation.
virtual bool getPosePriority(std::string &p)=0
Get the current pose priority.
virtual bool unregisterEvent(yarp::dev::CartesianEvent &event)=0
Unregister an event.
virtual bool tweakGet(yarp::os::Bottle &options)=0
Return low-level controller's parameters.
virtual bool getDesired(yarp::sig::Vector &xdhat, yarp::sig::Vector &odhat, yarp::sig::Vector &qdhat)=0
Get the actual desired pose and joints configuration as result of kinematic inversion.
virtual bool askForPosition(const yarp::sig::Vector &xd, yarp::sig::Vector &xdhat, yarp::sig::Vector &odhat, yarp::sig::Vector &qdhat)=0
Ask for inverting a given position without actually moving there.
virtual bool waitMotionDone(const double period=0.1, const double timeout=0.0)=0
Wait until the current trajectory is terminated.
A simple collection of objects that can be described and transmitted in a portable way.
An abstraction for a time stamp and/or sequence number.
For streams capable of holding different kinds of content, check what they actually have.
The main, catch-all namespace for YARP.
Structure for configuring a cartesian event.
double motionOngoingCheckPoint
The user specifies the motion check-point that raises a "motion-ongoing" event through this parameter...
std::string type
The signature of the event as specified by the user.
Structure for configuring a cartesian event.
double motionOngoingCheckPoint
Contain the motion check-point that raised a "motion-ongoing" event.
std::string type
The signature of the received event as filled by the event handler.
double time
Contain the time instant of the source when the event took place, as filled by the event handler.