Control Libraries 6.3.4
|
A concrete controller class specifically for controlling 6 degree of freedom Cartesian twist with a combination of impedance controllers. The linear velocity is controlled with the Dissipative controller class, while the angular velocity is controlled with the VelocityImpedance class. More...
#include <CompliantTwist.hpp>
Public Member Functions | |
CompliantTwist (const std::list< std::shared_ptr< state_representation::ParameterInterface > > ¶meters) | |
Constructor from an initial parameter list. More... | |
CompliantTwist (double linear_principle_damping, double linear_orthogonal_damping, double angular_stiffness, double angular_damping) | |
Constructor taking gain parameters as arguments. More... | |
state_representation::CartesianState | compute_command (const state_representation::CartesianState &desired_state, const state_representation::CartesianState &feedback_state) override |
Compute the force (task space) or torque (joint space) command based on the input state of the system as the error between the desired state and the real state. More... | |
![]() | |
IController ()=default | |
Empty constructor. | |
virtual | ~IController ()=default |
Empty destructor. | |
virtual state_representation::CartesianState | compute_command (const state_representation::CartesianState &command_state, const state_representation::CartesianState &feedback_state)=0 |
Compute the command output based on the commanded state and a feedback state To be redefined based on the actual controller implementation. More... | |
state_representation::JointState | compute_command (const state_representation::CartesianState &command_state, const state_representation::CartesianState &feedback_state, const state_representation::Jacobian &jacobian) |
Compute the command output in joint space. More... | |
state_representation::JointState | compute_command (const state_representation::CartesianState &command_state, const state_representation::CartesianState &feedback_state, const state_representation::JointPositions &joint_positions, const std::string &frame="") |
Compute the command output in joint space from command and feedback states in task space. More... | |
const robot_model::Model & | get_robot_model () |
Get the robot model associated with the controller. More... | |
void | set_robot_model (const robot_model::Model &robot_model) |
Set the robot model associated with the controller. More... | |
![]() | |
ParameterMap ()=default | |
Empty constructor. | |
ParameterMap (const ParameterInterfaceList ¶meters) | |
Construct the parameter map with an initial list of parameters. More... | |
ParameterMap (const ParameterInterfaceMap ¶meters) | |
Construct the parameter map with an initial map of parameters. More... | |
std::shared_ptr< ParameterInterface > | get_parameter (const std::string &name) const |
Get a parameter by its name. More... | |
ParameterInterfaceMap | get_parameters () const |
Get a map of all the <name, parameter> pairs. More... | |
template<typename T > | |
T | get_parameter_value (const std::string &name) const |
Get a parameter value by its name. More... | |
ParameterInterfaceList | get_parameter_list () const |
Get a list of all the parameters. More... | |
void | set_parameter (const std::shared_ptr< ParameterInterface > ¶meter) |
Set a parameter. More... | |
void | set_parameters (const ParameterInterfaceList ¶meters) |
Set parameters from a list of parameters. More... | |
void | set_parameters (const ParameterInterfaceMap ¶meters) |
Set parameters from a map with <name, parameter> pairs. More... | |
template<typename T > | |
void | set_parameter_value (const std::string &name, const T &value) |
Set a parameter value by its name. More... | |
void | remove_parameter (const std::string &name) |
Remove a parameter from the parameter map. More... | |
Protected Member Functions | |
void | validate_and_set_parameter (const std::shared_ptr< state_representation::ParameterInterface > ¶meter) override |
Validate and set parameters for controller gains. More... | |
void | set_linear_principle_damping (double linear_principle_damping) |
Setter of the linear principle damping. More... | |
void | set_linear_orthogonal_damping (double linear_orthogonal_damping) |
Setter of the linear orthogonal damping. More... | |
void | set_linear_gains (double linear_principle_damping, double linear_orthogonal_damping) |
Setter of the linear damping values. More... | |
void | set_angular_stiffness (double angular_stiffness) |
Setter of the angular stiffness. More... | |
void | set_angular_damping (double angular_damping) |
Setter of the angular damping. More... | |
void | set_angular_gains (double angular_stiffness, double angular_damping) |
Setter of the angular damping. More... | |
![]() | |
virtual void | validate_and_set_parameter (const std::shared_ptr< ParameterInterface > ¶meter) |
Validate and set a parameter in the map. More... | |
void | assert_parameter_valid (const std::shared_ptr< ParameterInterface > ¶meter) |
Check if a parameter has the expected type, throw an exception otherwise. More... | |
Protected Attributes | |
std::shared_ptr< state_representation::Parameter< double > > | linear_principle_damping_ |
damping along principle eigenvector of linear velocity error More... | |
std::shared_ptr< state_representation::Parameter< double > > | linear_orthogonal_damping_ |
damping along secondary eigenvectors of linear velocity error More... | |
std::shared_ptr< state_representation::Parameter< double > > | angular_stiffness_ |
stiffness of angular displacement More... | |
std::shared_ptr< state_representation::Parameter< double > > | angular_damping_ |
damping of angular velocity error More... | |
Dissipative< state_representation::CartesianState > | dissipative_ctrl_ |
controller for linear space More... | |
VelocityImpedance< state_representation::CartesianState > | velocity_impedance_ctrl_ |
controller for angular space More... | |
![]() | |
std::shared_ptr< robot_model::Model > | robot_model_ |
The robot model associated with the controller. More... | |
![]() | |
ParameterInterfaceMap | parameters_ |
map of parameters by name More... | |
A concrete controller class specifically for controlling 6 degree of freedom Cartesian twist with a combination of impedance controllers. The linear velocity is controlled with the Dissipative controller class, while the angular velocity is controlled with the VelocityImpedance class.
Definition at line 17 of file CompliantTwist.hpp.
|
explicit |
Constructor from an initial parameter list.
parameters | A parameter list containing initial gain values |
Definition at line 28 of file CompliantTwist.cpp.
controllers::impedance::CompliantTwist::CompliantTwist | ( | double | linear_principle_damping, |
double | linear_orthogonal_damping, | ||
double | angular_stiffness, | ||
double | angular_damping | ||
) |
Constructor taking gain parameters as arguments.
linear_principle_damping | damping along principle eigenvector of linear velocity error |
linear_orthogonal_damping | damping along secondary eigenvectors of linear velocity error |
angular_stiffness | stiffness of angular displacement |
angular_damping | damping of angular velocity error |
Definition at line 9 of file CompliantTwist.cpp.
|
overridevirtual |
Compute the force (task space) or torque (joint space) command based on the input state of the system as the error between the desired state and the real state.
desired_state | the desired state to reach |
feedback_state | the real state of the system as read from feedback loop |
Implements controllers::IController< state_representation::CartesianState >.
Definition at line 70 of file CompliantTwist.cpp.
|
protected |
Setter of the angular damping.
the | new damping value |
Definition at line 55 of file CompliantTwist.cpp.
|
protected |
Setter of the angular damping.
angular_stiffness | the new angular stiffness value |
angular_damping | the new angular damping value |
Definition at line 59 of file CompliantTwist.cpp.
|
protected |
Setter of the angular stiffness.
the | new stiffness value |
Definition at line 51 of file CompliantTwist.cpp.
|
protected |
Setter of the linear damping values.
linear_principle_damping | the new principle damping value |
linear_orthogonal_damping | the new orthogonal damping value |
Definition at line 42 of file CompliantTwist.cpp.
|
protected |
Setter of the linear orthogonal damping.
the | new orthogonal damping value |
Definition at line 38 of file CompliantTwist.cpp.
|
protected |
Setter of the linear principle damping.
the | new principle damping value |
Definition at line 34 of file CompliantTwist.cpp.
|
overrideprotected |
Validate and set parameters for controller gains.
parameter | A parameter interface pointer |
Definition at line 79 of file CompliantTwist.cpp.
|
protected |
damping of angular velocity error
Definition at line 104 of file CompliantTwist.hpp.
|
protected |
stiffness of angular displacement
Definition at line 103 of file CompliantTwist.hpp.
|
protected |
controller for linear space
Definition at line 106 of file CompliantTwist.hpp.
|
protected |
damping along secondary eigenvectors of linear velocity error
Definition at line 102 of file CompliantTwist.hpp.
|
protected |
damping along principle eigenvector of linear velocity error
Definition at line 100 of file CompliantTwist.hpp.
|
protected |
controller for angular space
Definition at line 107 of file CompliantTwist.hpp.