SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
#include <SControllerGc.hpp>
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 SRobotParsed * | robot_ |
SRobotIO * | io_data_ |
SGcModel * | gc_model_ |
std::string | name_ |
sBool | has_been_init_ |
Protected Attributes | |
std::string | type_ |
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.
scl::SControllerGc::SControllerGc | ( | ) |
Constructor. Does nothing
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
|
virtualinherited |
Initializes the data structure
Reimplemented in scl::SControllerMultiTask.
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.)
|
inherited |
Pointer to the JSpace model DS.
|
inherited |
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);
|
inherited |
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
|
inherited |
The object's name
|
inherited |
Pointer to the static robot data (parsed from a file)
|
inherited |
Name of the robot
|
protectedinherited |
The object's type. Should only be set by the constructor