RobWorkProject  23.9.11-
Public Types | Public Member Functions | List of all members
SyncPDController Class Reference

a JointController that use a PD loop on each joint to control the velocity such that the position target is reached at the same time. The PD controls the joint position and velocity from a generated synchronous ramp profile. More...

#include <SyncPDController.hpp>

Inherits JointController, and SimulatedController.

Public Types

typedef rw::core::Ptr< SyncPDControllerPtr
 
- Public Types inherited from JointController
enum  ControlMode {
  POSITION = 1 , CNT_POSITION = 2 , VELOCITY = 4 , FORCE = 8 ,
  CURRENT = 16
}
 control mode
 
typedef rw::core::Ptr< JointControllerPtr
 smart pointer of this class
 
- Public Types inherited from Controller
typedef rw::core::Ptr< ControllerPtr
 smart poiner definition for controller
 
- Public Types inherited from SimulatedController
typedef rw::core::Ptr< SimulatedControllerPtr
 smart pointer type of this class
 
- Public Types inherited from Stateless
typedef rw::core::Ptr< StatelessPtr
 Smart pointer type for Stateless.
 

Public Member Functions

 SyncPDController (const std::string &name, dynamics::RigidDevice *rdev, const rw::kinematics::State &state)
 constrictor More...
 
virtual ~SyncPDController ()
 destructor
 
std::vector< PDParamgetParameters ()
 the PD parameters More...
 
void setParameters (const std::vector< PDParam > &params)
 set the PD parameters More...
 
double getSampleTime ()
 the time between samples More...
 
void setSampleTime (double stime)
 set the time between samples in seconds More...
 
void update (const rwlibs::simulation::Simulator::UpdateInfo &info, rw::kinematics::State &state)
 updates/steps the controller with time step dt. It will update the state state accordingly More...
 
void reset (const rw::kinematics::State &state)
 reset the controller to the applied state More...
 
ControllergetController ()
 get the name of this controller More...
 
std::string getControllerName ()
 get the name of this controller More...
 
unsigned int getControlModes ()
 gets the control mode mask. Defines which types of control the JointController supports More...
 
void setControlMode (ControlMode mode)
 sets the control mode of this JointController. If the mode is unsupported an exception is thrown More...
 
void setTargetPos (const rw::math::Q &target)
 sets the target joint value for the current control mode. More...
 
void setTargetVel (const rw::math::Q &vals)
 sets the target velocity More...
 
void setTargetAcc (const rw::math::Q &vals)
 sets the target acceleration More...
 
rw::math::Q getQ ()
 return the current position of the controlled robot More...
 
rw::math::Q getQd ()
 return the current velocity More...
 
void setEnabled (bool enabled)
 disable or enable this controller More...
 
bool isEnabled () const
 true if this controller is enabled More...
 
rwlibs::control::Controller::Ptr getControllerHandle (rwlibs::simulation::Simulator::Ptr sim)
 
- Public Member Functions inherited from JointController
virtual ~JointController ()
 destructor
 
virtual rw::models::DevicegetModel ()
 get kinematic model of device that is controlled
 
- Public Member Functions inherited from Controller
virtual ~Controller ()
 destructor
 
const std::string & getName () const
 get the unique name of this controller More...
 
void setName (const std::string &name)
 set the name of the controller More...
 
- Public Member Functions inherited from SimulatedController
virtual rw::core::Ptr< rwlibs::control::ControllergetControllerHandle (rw::core::Ptr< rwlibs::simulation::Simulator > sim)=0
 get the controller handle eg. statefull handle, associated with this simulated controller More...
 
rw::core::Ptr< rw::models::ControllerModelgetControllerModel ()
 get the controllermodel of this simulated controller More...
 
- Public Member Functions inherited from Stateless
virtual ~Stateless ()
 destructor
 
virtual void registerIn (State &state)
 initialize this stateless data to a specific state More...
 
virtual void registerIn (StateStructure::Ptr state)
 register this stateless object in a statestructure.
 
virtual void unregister ()
 unregisters all state data of this stateless object
 
StateStructure::Ptr getStateStructure ()
 Get the state structure. More...
 
const StateStructure::Ptr getStateStructure () const
 Get the state structure. More...
 
bool isRegistered ()
 Check if object has registered its state. More...
 

Additional Inherited Members

- Protected Member Functions inherited from JointController
 JointController (const std::string &name, rw::models::Device *dev)
 constructor More...
 
- Protected Member Functions inherited from Controller
 Controller (const std::string &name)
 constructor More...
 
- Protected Member Functions inherited from SimulatedController
 SimulatedController (rw::models::ControllerModel::Ptr model)
 Constructor. More...
 
- Protected Member Functions inherited from Stateless
 Stateless ()
 constructor
 
template<class T >
void add (StatelessData< T > &data)
 implementations of sensor should add all their stateless data on initialization
 
void add (StateData *data)
 Add data. More...
 
void add (rw::core::Ptr< StateData > data)
 implementations of sensor should add all their state data on initialization
 
- Protected Attributes inherited from Stateless
bool _registered
 True if object has registered its state.
 
std::vector< rw::core::Ptr< StateData > > _datas
 Data.
 
StateStructure::Ptr _stateStruct
 The state structure.
 

Detailed Description

a JointController that use a PD loop on each joint to control the velocity such that the position target is reached at the same time. The PD controls the joint position and velocity from a generated synchronous ramp profile.

Constructor & Destructor Documentation

◆ SyncPDController()

SyncPDController ( const std::string &  name,
dynamics::RigidDevice rdev,
const rw::kinematics::State state 
)

constrictor

Parameters
name
rdev
state

Member Function Documentation

◆ getController()

Controller* getController ( )
inline

get the name of this controller

Returns
name of this controller

◆ getControllerName()

std::string getControllerName ( )
inlinevirtual

get the name of this controller

Returns
name of this controller

Implements SimulatedController.

◆ getControlModes()

unsigned int getControlModes ( )
inlinevirtual

gets the control mode mask. Defines which types of control the JointController supports

This controller supports both position and velocity control.

Implements JointController.

◆ getParameters()

std::vector<PDParam> getParameters ( )

the PD parameters

Returns
list of PD parameters

◆ getQ()

rw::math::Q getQ ( )
inlinevirtual

return the current position of the controlled robot

Implements JointController.

◆ getQd()

rw::math::Q getQd ( )
inlinevirtual

return the current velocity

Implements JointController.

◆ getSampleTime()

double getSampleTime ( )

the time between samples

Returns
the sample time in seconds

◆ isEnabled()

bool isEnabled ( ) const
inlinevirtual

true if this controller is enabled

Returns

Implements SimulatedController.

◆ reset()

void reset ( const rw::kinematics::State state)
virtual

reset the controller to the applied state

Parameters
state[in] the state to reset to

Implements SimulatedController.

◆ setControlMode()

void setControlMode ( ControlMode  mode)
virtual

sets the control mode of this JointController. If the mode is unsupported an exception is thrown

Implements JointController.

◆ setEnabled()

void setEnabled ( bool  enabled)
inlinevirtual

disable or enable this controller

Parameters
enabled

Implements SimulatedController.

◆ setParameters()

void setParameters ( const std::vector< PDParam > &  params)

set the PD parameters

Parameters
params[in] list of parameters. must be same length as DOF of controlling device

◆ setSampleTime()

void setSampleTime ( double  stime)

set the time between samples in seconds

Parameters
stime[in] sample time

◆ setTargetAcc()

void setTargetAcc ( const rw::math::Q vals)
virtual

sets the target acceleration

Parameters
vals[in] in m/s^2

Implements JointController.

◆ setTargetPos()

void setTargetPos ( const rw::math::Q target)
virtual

sets the target joint value for the current control mode.

Implements JointController.

◆ setTargetVel()

void setTargetVel ( const rw::math::Q vals)
virtual

sets the target velocity

Parameters
vals[in] in m/s

Implements JointController.

◆ update()

void update ( const rwlibs::simulation::Simulator::UpdateInfo info,
rw::kinematics::State state 
)
virtual

updates/steps the controller with time step dt. It will update the state state accordingly

Parameters
info[in] update information related to the time step.
state[in/out] the current state

Implements SimulatedController.


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