SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
Public Member Functions | Public Attributes | Protected Attributes | List of all members
scl::SControllerGc Class Reference

#include <SControllerGc.hpp>

Inheritance diagram for scl::SControllerGc:
Inheritance graph
Collaboration diagram for scl::SControllerGc:
Collaboration graph

Public Member Functions

 SControllerGc ()
sBool init (const std::string &arg_controller_name, SRobotParsed *arg_robot_ds, SRobotIO *arg_robot_io_ds, const Eigen::VectorXd &arg_kp, const Eigen::VectorXd &arg_kv, const Eigen::VectorXd &arg_ka, const Eigen::VectorXd &arg_ki, const Eigen::VectorXd &arg_fgc_max, const Eigen::VectorXd &arg_fgc_min)
virtual sBool init (const std::string &arg_controller_name, const SRobotParsed *arg_robot_ds, SRobotIO *arg_io_data, SGcModel *arg_gc_model=S_NULL)
virtual const std::string & getType () const
virtual const std::string & getName () const
virtual bool hasBeenInit () const

Public Attributes

Eigen::VectorXd des_force_gc_
Eigen::VectorXd des_q_
Eigen::VectorXd des_dq_
Eigen::VectorXd des_ddq_
Eigen::VectorXd force_gc_max_
Eigen::VectorXd force_gc_min_
Eigen::VectorXd kp_
Eigen::VectorXd kv_
Eigen::VectorXd ka_
Eigen::VectorXd ki_
sFloat integral_gain_time_pre_
sFloat integral_gain_time_curr_
Eigen::VectorXd integral_force_
std::string robot_name_
const SRobotParsedrobot_
std::string name_
sBool has_been_init_

Protected Attributes

std::string type_

Detailed Description

Generalized coordinate force controller (joint-space controller) data structure.

Works with an arbitrary actuated articulated body, with direct force control at the generalized coordinates.

Supports dynamically decoupled control, which is equivalent to controlling a unit mass in the generalized coordinates.

Constructor & Destructor Documentation

scl::SControllerGc::SControllerGc ( )

Constructor. Does nothing

Member Function Documentation

virtual const std::string& scl::SObject::getName ( ) const

Get the object's type

virtual const std::string& scl::SObject::getType ( ) const

Get the object's type

virtual bool scl::SObject::hasBeenInit ( ) const

Get the object's type

sBool scl::SControllerBase::init ( const std::string &  arg_controller_name,
const SRobotParsed arg_robot_ds,
SRobotIO arg_io_data,
SGcModel arg_gc_model = S_NULL 

Initializes the data structure

Reimplemented in scl::SControllerMultiTask.

Member Data Documentation

Eigen::VectorXd scl::SControllerGc::des_ddq_

Desired generalized accelerations

Eigen::VectorXd scl::SControllerGc::des_dq_

Desired generalized velocities

Eigen::VectorXd scl::SControllerGc::des_force_gc_

Desired generalized coordinate forces (usually joint torques)

Eigen::VectorXd scl::SControllerGc::des_q_

Desired generalized positions

Eigen::VectorXd scl::SControllerGc::force_gc_max_

Upper and lower applied force limits (Why separate max and min? Muscles can only pull, not push.)

SGcModel* scl::SControllerBase::gc_model_

Pointer to the JSpace model DS.

sBool scl::SObject::has_been_init_

Whether the object is ready for use

Eigen::VectorXd scl::SControllerGc::integral_force_

The integral force term. Required because integral control is not time invariant.

sFloat scl::SControllerGc::integral_gain_time_pre_

Set the integral gain decay rate. Ie. Degrade last timestep's influence by x%

Typical use in a PID controller Force = Force + ki * pos_err * (t_curr - t_pre);

SRobotIO* scl::SControllerBase::io_data_

Robot sensor and actuator data

Eigen::VectorXd scl::SControllerGc::kp_

Gains (scalar if same for different dimensions; vector if different for different dimensions)

Computed by : None. These are constants. Used by : The GcController to calculate gc forces

std::string scl::SObject::name_

The object's name

const SRobotParsed* scl::SControllerBase::robot_

Pointer to the static robot data (parsed from a file)

std::string scl::SControllerBase::robot_name_

Name of the robot

std::string scl::SObject::type_

The object's type. Should only be set by the constructor

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