ORCA: Optimization-based framework for Robotic Control Applications
Public Member Functions | Protected Member Functions | List of all members
orca::common::CartesianAccelerationPID Class Reference

#include <CartesianAccelerationPID.h>

+ Inheritance diagram for orca::common::CartesianAccelerationPID:
+ Collaboration diagram for orca::common::CartesianAccelerationPID:

Public Member Functions

 CartesianAccelerationPID (const std::string &name)
 The cartesian acceleration PID helps any cartesian task servo around a desired cartesian pose, velocity and acceleration.

\[ \begin{split} CartPID & = \ddot{X}_{des} + PID(X,\dot{X}) \\ & = \ddot{X}_{des} + K_P (X_{curr} - X_{des}) + K_I (X_{curr} - X_{des}) + K_D (\dot{X}_{curr} - \dot{X}_{des}) \end{split} \]

. More...

 
void setDesired (const Eigen::Matrix4d &cartesian_position_traj, const Vector6d &cartesian_velocity_traj, const Vector6d &cartesian_acceleration_traj)
 Set the control frame desired cartesian pose w.r.t the base frame. This is usually something to get from a trajectory generator. More...
 
const Vector6d & getCommand () const
 Returns the computed command. More...
 
const Eigen::Matrix4d & getCurrentCartesianPose () const
 Returns the current pose of the control frame (w.r.t the base frame) More...
 
const Eigen::Vector3d & getCurrentCartesianPosition () const
 Returns the current position of the control frame (w.r.t the base frame) More...
 
const Eigen::Matrix3d & getCurrentCartesianRotation () const
 Returns the current rotation of the control frame (w.r.t the base frame) More...
 
const Vector6d & getCurrentCartesianVelocity () const
 Returns the current cartesian velocity in mixed representation. More...
 
const Eigen::Matrix4d & getDesiredCartesianPose () const
 Returns desired pose (set with setDesired) More...
 
const Vector6d & getDesiredCartesianVelocity () const
 Returns the desired cartesian acceleration (mixed representation) More...
 
const Vector6d & getDesiredCartesianAcceleration () const
 Return the desired cartesian acceleration. More...
 
const Vector6d & getCartesianPoseError () const
 Returns the computed pose error as a 6D Vector [dx,dy,dz,drx,dry,drz]. More...
 
const Vector6d & getCartesianVelocityError () const
 Returns the computed cartesian velocity. More...
 
void print () const
 Outputs info on std::cout. More...
 
PIDController::Ptr pid ()
 The dimension 6 pid controller. More...
 
- Public Member Functions inherited from orca::common::CartesianServoController
 CartesianServoController (const std::string &name)
 
void setBaseFrame (const std::string &base_ref_frame)
 
void setControlFrame (const std::string &control_frame)
 
const std::string & getBaseFrame () const
 
const std::string & getControlFrame () const
 
- Public Member Functions inherited from orca::common::TaskBase
 TaskBase (const std::string &name, optim::ControlVariable control_var)
 
virtual ~TaskBase ()
 
bool isActivated () const
 
bool isComputing () const
 
bool setRobotModel (robot::RobotModel::Ptr robot)
 
optim::ControlVariable getControlVariable () const
 
virtual bool activate ()
 
virtual void update (double current_time, double dt)
 
virtual bool deactivate ()
 
virtual bool setProblem (std::shared_ptr< const orca::optim::Problem > problem)
 
bool hasProblem () const
 
bool hasRobot () const
 
bool dependsOnProblem () const
 
bool dependsOnWrench () const
 
bool dependsOnRobotJoints () const
 
bool dependsOnFloatingBase () const
 
bool hasWrench () const
 
bool isRobotInitialized () const
 
State getState () const
 
void setRampDuration (double ramp_time)
 
double getRampDuration () const
 
double getCurrentRampValue () const
 
double getStartTime () const
 
double getStopTime () const
 
std::shared_ptr< const optim::ProblemgetProblem () const
 
std::shared_ptr< const common::WrenchgetWrench () const
 
std::shared_ptr< const robot::RobotModelgetRobot () const
 
void addChild (TaskBase::Ptr e)
 Add a child/slave task that will be updated BEFORE the parent task. More...
 
bool hasParent () const
 Returns true if the task owned by a parent task. More...
 
bool hasChildren () const
 Returns true if the task has children. More...
 
const std::string & getParentName () const
 Returns the parent name if it exists, empty otherwise. More...
 
const std::string & getPrintableName () const
 Returns the name that include parent name if present. More...
 
void onResizedCallback (std::function< void(void)> cb)
 
void onActivationCallback (std::function< void(void)> cb)
 
void onActivatedCallback (std::function< void(void)> cb)
 
void onComputeBeginCallback (std::function< void(double, double)> cb)
 
void onComputeEndCallback (std::function< void(double, double)> cb)
 
void onDeactivationCallback (std::function< void(void)> cb)
 
void onDeactivatedCallback (std::function< void(void)> cb)
 
- Public Member Functions inherited from orca::common::ConfigurableOrcaObject
 ConfigurableOrcaObject (const std::string &config_name)
 
virtual ~ConfigurableOrcaObject ()
 
template<class T >
void addParameter (const std::string &param_name, Parameter< T > *param, ParamPolicy policy=ParamPolicy::Required, std::function< void()> on_loading_success=0)
 Returns true if all params added with have been set. More...
 
template<class T >
void addParameter (const std::string &param_name, T &param, ParamPolicy policy=ParamPolicy::Required, std::function< void()> on_loading_success=0)
 
ParameterBasegetParameter (const std::string &param_name)
 Returns a param via its name. More...
 
void printParameters () const
 Print all parameters to std::cout. More...
 
bool configureFromFile (const std::string &yaml_url)
 Configure the task from YAML/JSON file. It must contain all the required parameters. More...
 
bool configureFromString (const std::string &yaml_str)
 Configure the task from YAML/JSON string. It must contain all the required parameters. More...
 
bool isConfigured () const
 
const ParamMapgetParameters () const
 
void onConfigureSuccess (std::function< void()> f)
 
- Public Member Functions inherited from orca::common::OrcaObject
 OrcaObject (const std::string &name)
 
virtual ~OrcaObject ()
 
const std::string & getName () const
 
void setName (const std::string &name)
 

Protected Member Functions

void onResize ()
 
void onActivation ()
 
void onCompute (double current_time, double dt)
 
- Protected Member Functions inherited from orca::common::TaskBase
virtual void resize ()
 
robot::RobotModel::Ptr robot ()
 
std::shared_ptr< Wrenchwrench ()
 
virtual void onResized ()
 
virtual void onActivated ()
 
virtual bool rampUp (double time_since_start)
 
void setRampValue (double new_val)
 
virtual bool rampDown (double time_since_stop)
 
virtual void onDeactivation ()
 
virtual void onDeactivated ()
 

Additional Inherited Members

- Public Types inherited from orca::common::CartesianServoController
using Ptr = std::shared_ptr< CartesianServoController >
 
- Public Types inherited from orca::common::TaskBase
enum  State {
  Init = 0, Resized, Activating, Activated,
  Deactivating, Deactivated, Error
}
 Represents the internal state of the task. More...
 
using Ptr = std::shared_ptr< TaskBase >
 
- Public Types inherited from orca::common::ConfigurableOrcaObject
using Ptr = std::shared_ptr< ConfigurableOrcaObject >
 
using ParamMap = std::map< std::string, ParameterBase * >
 
- Public Attributes inherited from orca::common::TaskBase
orca::common::MutexRecursive mutex
 The recursive mutex that is locked during the update function. It is up to the external user to lock this mutex to protect the task attributes. More...
 

Constructor & Destructor Documentation

CartesianAccelerationPID::CartesianAccelerationPID ( const std::string &  name)

The cartesian acceleration PID helps any cartesian task servo around a desired cartesian pose, velocity and acceleration.

\[ \begin{split} CartPID & = \ddot{X}_{des} + PID(X,\dot{X}) \\ & = \ddot{X}_{des} + K_P (X_{curr} - X_{des}) + K_I (X_{curr} - X_{des}) + K_D (\dot{X}_{curr} - \dot{X}_{des}) \end{split} \]

.

Parameters
nameThe name of the component

Member Function Documentation

const Vector6d & CartesianAccelerationPID::getCartesianPoseError ( ) const

Returns the computed pose error as a 6D Vector [dx,dy,dz,drx,dry,drz].

Returns
const orca::math::Vector6d&
const Vector6d & CartesianAccelerationPID::getCartesianVelocityError ( ) const

Returns the computed cartesian velocity.

Returns
const orca::math::Vector6d&
const Vector6d & CartesianAccelerationPID::getCommand ( ) const
virtual

Returns the computed command.

Returns
const orca::math::Vector6d&

Implements orca::common::CartesianServoController.

const Eigen::Matrix4d & CartesianAccelerationPID::getCurrentCartesianPose ( ) const

Returns the current pose of the control frame (w.r.t the base frame)

Returns
const Eigen::Matrix4d&
const Eigen::Vector3d & CartesianAccelerationPID::getCurrentCartesianPosition ( ) const

Returns the current position of the control frame (w.r.t the base frame)

Returns
const Eigen::Vector3d&
const Eigen::Matrix3d & CartesianAccelerationPID::getCurrentCartesianRotation ( ) const

Returns the current rotation of the control frame (w.r.t the base frame)

Returns
const Eigen::Matrix3d&
const Vector6d & CartesianAccelerationPID::getCurrentCartesianVelocity ( ) const

Returns the current cartesian velocity in mixed representation.

Returns
const orca::math::Vector6d&
const Vector6d & CartesianAccelerationPID::getDesiredCartesianAcceleration ( ) const

Return the desired cartesian acceleration.

Returns
const orca::math::Vector6d&
const Eigen::Matrix4d & CartesianAccelerationPID::getDesiredCartesianPose ( ) const

Returns desired pose (set with setDesired)

Returns
const Eigen::Matrix4d&
const Vector6d & CartesianAccelerationPID::getDesiredCartesianVelocity ( ) const

Returns the desired cartesian acceleration (mixed representation)

Returns
const orca::math::Vector6d&
void CartesianAccelerationPID::onActivation ( )
protectedvirtual

Reimplemented from orca::common::TaskBase.

void CartesianAccelerationPID::onCompute ( double  current_time,
double  dt 
)
protectedvirtual
void CartesianAccelerationPID::onResize ( )
protectedvirtual
PIDController::Ptr CartesianAccelerationPID::pid ( )

The dimension 6 pid controller.

Returns
std::shared_ptr< orca::common::PIDController >
void CartesianAccelerationPID::print ( ) const
virtual

Outputs info on std::cout.

Reimplemented from orca::common::TaskBase.

void CartesianAccelerationPID::setDesired ( const Eigen::Matrix4d &  cartesian_position_traj,
const Vector6d &  cartesian_velocity_traj,
const Vector6d &  cartesian_acceleration_traj 
)

Set the control frame desired cartesian pose w.r.t the base frame. This is usually something to get from a trajectory generator.

Parameters
cartesian_position_trajThe desired pose w.r.t the base frame
cartesian_velocity_trajThe desired cartesian velocity in mixed representation
cartesian_acceleration_trajThe desired cartesian acceleration in mixed representation

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