#include <sr_controller.hpp>
Public Member Functions | |
virtual void | getGains (double &p, double &i, double &d, double &i_max, double &i_min) |
std::string | getJointName () |
virtual bool | init (ros_ethercat_model::RobotState *robot, ros::NodeHandle &n)=0 |
virtual bool | resetGains (std_srvs::Empty::Request &req, std_srvs::Empty::Response &resp) |
SrController () | |
virtual void | starting (const ros::Time &time) |
virtual void | update (const ros::Time &time, const ros::Duration &period)=0 |
Issues commands to the joint. Should be called at regular intervals. | |
virtual | ~SrController () |
Public Attributes | |
double | command_ |
bool | has_j2 |
ros_ethercat_model::JointState * | joint_state_ |
ros_ethercat_model::JointState * | joint_state_2 |
Protected Member Functions | |
void | after_init () |
call this function at the end of the init function in the inheriting classes. | |
virtual double | clamp_command (double cmd) |
void | get_joints_states_1_2 () |
void | get_min_max (urdf::Model model, std::string joint_name) |
bool | is_joint_0 () |
void | maxForceFactorCB (const std_msgs::Float64ConstPtr &msg) |
virtual void | setCommandCB (const std_msgs::Float64ConstPtr &msg) |
set the command from a topic | |
Protected Attributes | |
boost::scoped_ptr < realtime_tools::RealtimePublisher < control_msgs::JointControllerState > > | controller_state_publisher_ |
boost::scoped_ptr < sr_friction_compensation::SrFrictionCompensator > | friction_compensator |
int | friction_deadband |
the deadband for the friction compensation algorithm | |
sr_deadband::HysteresisDeadband < double > | hysteresis_deadband |
We're using an hysteresis deadband. | |
bool | initialized_ |
std::string | joint_name_ |
int | loop_count_ |
double | max_ |
double | max_force_demand |
clamps the force demand to this value | |
double | max_force_factor_ |
double | min_ |
Min and max range of the joint, used to clamp the command. | |
ros::NodeHandle | n_tilde_ |
ros::NodeHandle | node_ |
ros_ethercat_model::RobotState * | robot_ |
ros::ServiceServer | serve_reset_gains_ |
ros::ServiceServer | serve_set_gains_ |
ros::Subscriber | sub_command_ |
ros::Subscriber | sub_max_force_factor_ |
Definition at line 54 of file sr_controller.hpp.
Definition at line 39 of file sr_controller.cpp.
controller::SrController::~SrController | ( | ) | [virtual] |
Definition at line 56 of file sr_controller.cpp.
void controller::SrController::after_init | ( | ) | [protected] |
call this function at the end of the init function in the inheriting classes.
Definition at line 82 of file sr_controller.cpp.
double controller::SrController::clamp_command | ( | double | cmd | ) | [protected, virtual] |
Clamps the command to the correct range (between min and max).
cmd | the command we want to clamp |
Definition at line 117 of file sr_controller.cpp.
void controller::SrController::get_joints_states_1_2 | ( | ) | [protected] |
Definition at line 70 of file sr_controller.cpp.
void controller::SrController::get_min_max | ( | urdf::Model | model, |
std::string | joint_name | ||
) | [protected] |
Reads the min and max from the robot model for the current joint.
model | the urdf description of the robot |
joint_name | the name of the joint |
Definition at line 93 of file sr_controller.cpp.
virtual void controller::SrController::getGains | ( | double & | p, |
double & | i, | ||
double & | d, | ||
double & | i_max, | ||
double & | i_min | ||
) | [inline, virtual] |
Reimplemented in controller::SrhMixedPositionVelocityJointController, controller::SrhJointMuscleValveController, controller::SrhJointVelocityController, controller::SrhEffortJointController, controller::SrhJointPositionController, and controller::SrhMuscleJointPositionController.
Definition at line 72 of file sr_controller.hpp.
Definition at line 88 of file sr_controller.cpp.
virtual bool controller::SrController::init | ( | ros_ethercat_model::RobotState * | robot, |
ros::NodeHandle & | n | ||
) | [pure virtual] |
Reimplemented from controller_interface::Controller< ros_ethercat_model::RobotState >.
Implemented in controller::SrhExampleController, controller::SrhMixedPositionVelocityJointController, controller::SrhSyntouchController, controller::SrhJointMuscleValveController, controller::SrhJointVelocityController, controller::SrhEffortJointController, controller::SrhJointPositionController, and controller::SrhMuscleJointPositionController.
bool controller::SrController::is_joint_0 | ( | ) | [protected] |
Definition at line 61 of file sr_controller.cpp.
void controller::SrController::maxForceFactorCB | ( | const std_msgs::Float64ConstPtr & | msg | ) | [protected] |
Callback function for the max force factor topic
msg | the message receiver over the topic |
Definition at line 128 of file sr_controller.cpp.
virtual bool controller::SrController::resetGains | ( | std_srvs::Empty::Request & | req, |
std_srvs::Empty::Response & | resp | ||
) | [inline, virtual] |
Reimplemented in controller::SrhMixedPositionVelocityJointController, controller::SrhJointMuscleValveController, controller::SrhJointVelocityController, controller::SrhEffortJointController, controller::SrhJointPositionController, and controller::SrhMuscleJointPositionController.
Definition at line 70 of file sr_controller.hpp.
virtual void controller::SrController::setCommandCB | ( | const std_msgs::Float64ConstPtr & | msg | ) | [inline, protected, virtual] |
set the command from a topic
Reimplemented in controller::SrhMixedPositionVelocityJointController, controller::SrhMuscleJointPositionController, controller::SrhJointVelocityController, controller::SrhJointPositionController, and controller::SrhEffortJointController.
Definition at line 124 of file sr_controller.hpp.
virtual void controller::SrController::starting | ( | const ros::Time & | time | ) | [inline, virtual] |
Reimplemented from controller_interface::ControllerBase.
Reimplemented in controller::SrhExampleController, controller::SrhMixedPositionVelocityJointController, controller::SrhSyntouchController, controller::SrhJointMuscleValveController, controller::SrhJointVelocityController, controller::SrhEffortJointController, controller::SrhJointPositionController, and controller::SrhMuscleJointPositionController.
Definition at line 63 of file sr_controller.hpp.
virtual void controller::SrController::update | ( | const ros::Time & | time, |
const ros::Duration & | period | ||
) | [pure virtual] |
Issues commands to the joint. Should be called at regular intervals.
Implements controller_interface::ControllerBase.
Implemented in controller::SrhExampleController, controller::SrhMixedPositionVelocityJointController, controller::SrhSyntouchController, controller::SrhJointMuscleValveController, controller::SrhJointVelocityController, controller::SrhEffortJointController, controller::SrhJointPositionController, and controller::SrhMuscleJointPositionController.
Last commanded position.
Definition at line 78 of file sr_controller.hpp.
boost::scoped_ptr<realtime_tools::RealtimePublisher<control_msgs::JointControllerState> > controller::SrController::controller_state_publisher_ [protected] |
Reimplemented in controller::SrhJointMuscleValveController, controller::SrhMixedPositionVelocityJointController, controller::SrhMuscleJointPositionController, and controller::SrhSyntouchController.
Definition at line 119 of file sr_controller.hpp.
boost::scoped_ptr<sr_friction_compensation::SrFrictionCompensator> controller::SrController::friction_compensator [protected] |
Definition at line 121 of file sr_controller.hpp.
int controller::SrController::friction_deadband [protected] |
the deadband for the friction compensation algorithm
Definition at line 132 of file sr_controller.hpp.
true if this is a joint 0.
Definition at line 77 of file sr_controller.hpp.
sr_deadband::HysteresisDeadband<double> controller::SrController::hysteresis_deadband [protected] |
We're using an hysteresis deadband.
Reimplemented in controller::SrhMixedPositionVelocityJointController, controller::SrhMuscleJointPositionController, controller::SrhJointVelocityController, and controller::SrhJointPositionController.
Definition at line 135 of file sr_controller.hpp.
bool controller::SrController::initialized_ [protected] |
Definition at line 113 of file sr_controller.hpp.
std::string controller::SrController::joint_name_ [protected] |
Definition at line 117 of file sr_controller.hpp.
Joint we're controlling.
Definition at line 75 of file sr_controller.hpp.
2ndJoint we're controlling if joint 0.
Definition at line 76 of file sr_controller.hpp.
int controller::SrController::loop_count_ [protected] |
Definition at line 112 of file sr_controller.hpp.
double controller::SrController::max_ [protected] |
Definition at line 110 of file sr_controller.hpp.
double controller::SrController::max_force_demand [protected] |
clamps the force demand to this value
Definition at line 130 of file sr_controller.hpp.
double controller::SrController::max_force_factor_ [protected] |
Definition at line 140 of file sr_controller.hpp.
double controller::SrController::min_ [protected] |
Min and max range of the joint, used to clamp the command.
Definition at line 110 of file sr_controller.hpp.
ros::NodeHandle controller::SrController::n_tilde_ [protected] |
Definition at line 116 of file sr_controller.hpp.
ros::NodeHandle controller::SrController::node_ [protected] |
Definition at line 116 of file sr_controller.hpp.
Pointer to robot structure.
Definition at line 114 of file sr_controller.hpp.
Definition at line 127 of file sr_controller.hpp.
Reimplemented in controller::SrhMixedPositionVelocityJointController.
Definition at line 126 of file sr_controller.hpp.
Reimplemented in controller::SrhJointMuscleValveController.
Definition at line 125 of file sr_controller.hpp.
Definition at line 141 of file sr_controller.hpp.