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

The beamjoint controller controls a joint device composed of coupled beam joints. The coupling of beamjoints is somewhat special since its not an configuration space coupling (position) but rather a coupling of the forces acting on the joints. More...

#include <BeamJointController.hpp>

Inherits JointController, and SimulatedController.

Public Member Functions

 BeamJointController (const std::string &name, dynamics::RigidDevice *rdev, ControlMode cmode, double dt)
 constructor More...
 
virtual ~BeamJointController ()
 destructor
 
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

- 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.
 
- 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

The beamjoint controller controls a joint device composed of coupled beam joints. The coupling of beamjoints is somewhat special since its not an configuration space coupling (position) but rather a coupling of the forces acting on the joints.

This controller continuesly updates the torques acting on the joints by considering the current deflection of the joint.

Constructor & Destructor Documentation

◆ BeamJointController()

BeamJointController ( const std::string &  name,
dynamics::RigidDevice rdev,
ControlMode  cmode,
double  dt 
)

constructor

Parameters
name
rdev[in] device that is to be controlled
cmode[in] the control mode used
dt[in] the sampletime (time between samples in seconds) used in the control loop, this should be larger than the expected update sample time.

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.

◆ 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.

◆ 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: