PerformerMK2nAxesVelocityController Class Reference

This class implements a TaskContext to use with the PerformerMK2 robot in the RoboticLab, PMA, dept. More...

#include <PerformernAxesVelocityController.hpp>

List of all members.

Public Member Functions

 PerformerMK2nAxesVelocityController (std::string name, std::string propertyfilename="cpf/PerformerMK2nAxesVelocityController.cpf")
 The contructor of the class.
virtual bool configureHook ()
virtual bool startHook ()
virtual void updateHook ()
virtual void stopHook ()
virtual void cleanupHook ()
KDL::Chain getKinematics ()

Protected Attributes

Method< bool(int)> resetController_mtd
Method< bool(void)> startAllAxes_mtd
 method to reset the velocity Controller.
Method< bool(void)> stopAllAxes_mtd
 Method to stop all axes .
Method< bool(void)> unlockAllAxes_mtd
 Method to unlock all axes .
Method< bool(void)> lockAllAxes_mtd
 Method to lock all axes.
Command< bool(void)> prepareForUse_cmd
 Method to prepare robot for use.
Command< bool(void)> prepareForShutdown_cmd
 Command to Shutdown the hardware controller of the robot.
Method< bool(std::vector
< double >)> 
addDriveOffset_mtd
 Method to add drive offsets to the axes.
Method< bool(int)> _initPosition
 Method to set the position of an axis to its initial position.
DataPort< std::vector< double > > driveValues_port
 DataPort which contain the output velocities of the axes.
DataPort< std::vector< double > > servoValues_port
DataPort< std::vector< double > > positionValues_port
 DataPort which contain the values of the position sensors.
DataPort< std::vector< double > > velocityValues_port
DataPort< std::vector< double > > jValues_port
DataPort< std::vector< double > > homingSwitchValues_port
DataPort< double > deltaTime_port
Property< std::vector< double > > driveLimits_prop
 The absolute value of the velocity will be limited to this property.
Property< std::vector< double > > lowerPositionLimits_prop
 Lower limit for the positions.
Property< std::vector< double > > upperPositionLimits_prop
 upper limit for the positions.
Property< std::vector< double > > velocityLimits_prop
 limits for the velocities.
Property< std::vector< double > > initialPosition_prop
 Start position in rad for simulation.
Property< std::vector< double > > driveOffset_prop
 Offset to the drive value volt = (setpoint + offset)/scale.
Property< bool > simulation_prop
 True if simulationAxes should be used in stead of hardware axes.
bool simulation
Property< std::vector< double > > servoIntegrationFactor_prop
Property< std::vector< double > > servoGain_prop
Property< std::vector< double > > servoFFScale_prop
Property< std::vector< double > > PIDkp_prop
Property< std::vector< double > > PIDTi_prop
Property< std::vector< double > > PIDTd_prop
Constant< unsigned int > num_axes_attr
 Constant Attribute: number of axes.
Attribute< KDL::Chain > chain_attr
 KDL-chain for the PerformerMK2.
KDL::Chain kinematics
Event< void(std::string) > driveOutOfRange_evt
 parameters to this event are the axis and the velocity that is out of range.
Event< void(std::string) > positionOutOfRange_evt
 parameters to this event are the axis and the position that is out of range.
Event< void(std::string) > velocityOutOfRange_evt

Detailed Description

This class implements a TaskContext to use with the PerformerMK2 robot in the RoboticLab, PMA, dept.

Mechanical Engineering, KULEUVEN. Since the hardware part is very specific for our setup, other people can only use the simulation version. But it can be a good starting point to create your own Robot Software Interface.

Definition at line 51 of file PerformernAxesVelocityController.hpp.


Constructor & Destructor Documentation

PerformerMK2nAxesVelocityController ( std::string  name,
std::string  propertyfilename = "cpf/PerformerMK2nAxesVelocityController.cpf" 
)

The contructor of the class.

Parameters:
name Name of the TaskContext
propertyfilename name of the propertyfile to configure the component with, default: cpf/PerformerMK2nAxesVelocityController.cpf

Dataflow Interface

Configuration Interface

Definition at line 61 of file PerformernAxesVelocityController.cpp.

References PerformerMK2nAxesVelocityController::_initPosition, PerformerMK2nAxesVelocityController::addDriveOffset_mtd, PerformerMK2nAxesVelocityController::chain_attr, PerformerMK2nAxesVelocityController::driveLimits_prop, PerformerMK2nAxesVelocityController::driveOffset_prop, PerformerMK2nAxesVelocityController::driveOutOfRange_evt, PerformerMK2nAxesVelocityController::driveValues_port, PerformerMK2nAxesVelocityController::initialPosition_prop, PerformerMK2nAxesVelocityController::lockAllAxes_mtd, PerformerMK2nAxesVelocityController::lowerPositionLimits_prop, PerformerMK2nAxesVelocityController::num_axes_attr, PerformerMK2nAxesVelocityController::positionOutOfRange_evt, PerformerMK2nAxesVelocityController::positionValues_port, PerformerMK2nAxesVelocityController::prepareForShutdown_cmd, PerformerMK2nAxesVelocityController::prepareForUse_cmd, PerformerMK2nAxesVelocityController::simulation_prop, PerformerMK2nAxesVelocityController::startAllAxes_mtd, PerformerMK2nAxesVelocityController::stopAllAxes_mtd, PerformerMK2nAxesVelocityController::unlockAllAxes_mtd, PerformerMK2nAxesVelocityController::upperPositionLimits_prop, and PerformerMK2nAxesVelocityController::velocityLimits_prop.


Member Function Documentation

bool configureHook (  )  [virtual]

Initializing servoloop

Initializing PID velocity controllers

Definition at line 279 of file PerformernAxesVelocityController.cpp.


Member Data Documentation

Method<bool(int)> _initPosition [protected]

Method to set the position of an axis to its initial position.

Sets the PerformernAxesVelocityController::_positionValue to the PerformernAxesVelocityController::_initialPosition from the property-file. This is needed because the Performer needs to be homed.

Parameters:
axis nr of axis

Definition at line 155 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Method<bool(std::vector<double>)> addDriveOffset_mtd [protected]

Method to add drive offsets to the axes.

Adds an offset to the drivevalues of the axes and updates the driveOffset values.

Parameters:
offset offset value in geometrics units [rad/s]

Definition at line 143 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Property<std::vector <double> > driveLimits_prop [protected]

The absolute value of the velocity will be limited to this property.

Used to fire an event if necessary and to saturate the velocities. It is a good idea to set this property to a low value when using experimental code.

Definition at line 182 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Event< void(std::string) > driveOutOfRange_evt [protected]

parameters to this event are the axis and the velocity that is out of range.

Each axis that is out of range throws a seperate event. The component will continue with the previous value.

Definition at line 240 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Property<std::vector <double> > initialPosition_prop [protected]

Start position in rad for simulation.

If the encoders are relative ( like for this component ) also the starting value for the relative encoders.

Definition at line 203 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Method<bool(void)> lockAllAxes_mtd [protected]

Method to lock all axes.

Releases the brake of the axis. Only possible in the LOCKED state.

Returns:
false if in wrong state or already locked.

Definition at line 114 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Property<std::vector <double> > lowerPositionLimits_prop [protected]

Lower limit for the positions.

Used to fire an event if necessary.

Definition at line 187 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Event< void(std::string) > positionOutOfRange_evt [protected]

parameters to this event are the axis and the position that is out of range.

Each axis that is out of range throws a seperate event. The component will continue. The hardware limit switches can be reached when this event is not handled.

Definition at line 248 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

DataPort<std::vector<double> > positionValues_port [protected]

DataPort which contain the values of the position sensors.

It is used by other components who need this value for control ;)

Definition at line 171 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Command<bool(void)> prepareForUse_cmd [protected]

Method to prepare robot for use.

It is needed to activate the hardware controller of the robot.

Returns:
Will only be true if the hardware controller is ready and the emergency stops are released.

Definition at line 126 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Method<bool(void)> startAllAxes_mtd [protected]

method to reset the velocity Controller.

method to start all axes .

sets the axis in the driven state. only possible if the axis is int the stopped state. if succesfull the drive value of the axis is setted to zero and will be updated periodically

Returns:
can only succeed if all axis are in the driven state

Definition at line 83 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Method<bool(void)> stopAllAxes_mtd [protected]

Method to stop all axes .

Sets the drive value to zero and changes to the STOP state. Only possible if axis is in the DRIVEN state. In the stop state, the axis does not listen and write to its ReadDataPort _driveValue.

Returns:
false if in wrong state or already stopped.

Definition at line 95 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Method<bool(void)> unlockAllAxes_mtd [protected]

Method to unlock all axes .

Activates the brake of the axis. Only possible in the STOPPED state.

Returns:
false if in wrong state or already locked.

Definition at line 104 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Property<std::vector <double> > upperPositionLimits_prop [protected]

upper limit for the positions.

Used to fire an event if necessary.

Definition at line 192 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().

Property<std::vector <double> > velocityLimits_prop [protected]

limits for the velocities.

Used to fire an event if necessary.

Definition at line 197 of file PerformernAxesVelocityController.hpp.

Referenced by PerformerMK2nAxesVelocityController::PerformerMK2nAxesVelocityController().


The documentation for this class was generated from the following files:
Generated on Thu Dec 23 15:05:28 2010 for OrocosComponentLibrary by  doxygen 1.6.3