This class implements a TaskContext to use with the PerformerMK2 robot in the RoboticLab, PMA, dept. More...
#include <PerformernAxesVelocityController.hpp>
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 |
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.
PerformerMK2nAxesVelocityController | ( | std::string | name, | |
std::string | propertyfilename = "cpf/PerformerMK2nAxesVelocityController.cpf" | |||
) |
The contructor of the class.
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.
bool configureHook | ( | ) | [virtual] |
Initializing servoloop
Initializing PID velocity controllers
Definition at line 279 of file PerformernAxesVelocityController.cpp.
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.
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.
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.
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.
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
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.
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.
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().