Control Libraries 7.4.0
|
Class to define velocities of the joints. More...
#include <JointVelocities.hpp>
Public Member Functions | |
const Eigen::VectorXd & | get_positions () const =delete |
double | get_position (unsigned int joint_index) const =delete |
double | get_position (const std::string &joint_name) const =delete |
void | set_positions (const Eigen::VectorXd &positions)=delete |
void | set_positions (const std::vector< double > &positions)=delete |
void | set_position (double position, unsigned int joint_index) const =delete |
void | set_position (double position, const std::string &joint_name) const =delete |
const Eigen::VectorXd & | get_accelerations () const =delete |
double | get_acceleration (unsigned int joint_index) const =delete |
double | get_acceleration (const std::string &joint_name) const =delete |
void | set_accelerations (const Eigen::VectorXd &accelerations)=delete |
void | set_accelerations (const std::vector< double > &accelerations)=delete |
void | set_acceleration (double acceleration, unsigned int joint_index) const =delete |
void | set_acceleration (double acceleration, const std::string &joint_name) const =delete |
const Eigen::VectorXd & | get_torques () const =delete |
double | get_torque (unsigned int joint_index) const =delete |
double | get_torque (const std::string &joint_name) const =delete |
void | set_torques (const Eigen::VectorXd &torques)=delete |
void | set_torques (const std::vector< double > &torques)=delete |
void | set_torque (double torque, unsigned int joint_index) const =delete |
void | set_torque (double torque, const std::string &joint_name) const =delete |
JointState & | operator+= (const JointPositions &positions)=delete |
JointState & | operator+= (const JointAccelerations &accelerations)=delete |
JointState & | operator+= (const JointTorques &torques)=delete |
JointState | operator+ (const JointPositions &positions) const =delete |
JointState | operator+ (const JointAccelerations &accelerations) const =delete |
JointState | operator+ (const JointTorques &torques) const =delete |
JointState & | operator-= (const JointPositions &positions)=delete |
JointState & | operator-= (const JointAccelerations &accelerations)=delete |
JointState & | operator-= (const JointTorques &torques)=delete |
JointState | operator- (const JointPositions &positions) const =delete |
JointState | operator- (const JointAccelerations &accelerations) const =delete |
JointState | operator- (const JointTorques &torques) const =delete |
JointVelocities () | |
Empty constructor. | |
JointVelocities (const std::string &robot_name, unsigned int nb_joints=0) | |
Constructor with name and number of joints provided. | |
JointVelocities (const std::string &robot_name, const std::vector< std::string > &joint_names) | |
Constructor with name and list of joint names provided. | |
JointVelocities (const std::string &robot_name, const Eigen::VectorXd &velocities) | |
Constructor with name and velocity values provided. | |
JointVelocities (const std::string &robot_name, const std::vector< std::string > &joint_names, const Eigen::VectorXd &velocities) | |
Constructor with name, a list of joint names and velocity values provided. | |
JointVelocities (const JointVelocities &velocities) | |
Copy constructor. | |
JointVelocities (const JointState &state) | |
Copy constructor from a joint state. | |
JointVelocities (const JointAccelerations &accelerations) | |
Integration constructor from joint accelerations by considering that it is equivalent to multiplying the accelerations by 1 second. | |
JointVelocities (const JointPositions &positions) | |
Differentiation constructor from joint positions by considering that it is equivalent to dividing the positions by 1 second. | |
JointVelocities & | operator= (const JointVelocities &velocities)=default |
Copy assignment operator that has to be defined to the custom assignment operator. | |
Eigen::VectorXd | data () const override |
Returns the velocities data as an Eigen vector. | |
virtual void | set_data (const Eigen::VectorXd &data) override |
Set the velocities data from an Eigen vector. | |
virtual void | set_data (const std::vector< double > &data) override |
Set the velocities data from a std vector. | |
void | clamp (double max_absolute_value, double noise_ratio=0.) |
Clamp inplace the magnitude of the velocity to the values in argument. | |
void | clamp (const Eigen::ArrayXd &max_absolute_value_array, const Eigen::ArrayXd &noise_ratio_array) |
Clamp inplace the magnitude of the velocity to the values in argument. | |
JointVelocities | clamped (double max_absolute_value, double noise_ratio=0.) const |
Return the velocity clamped to the values in argument. | |
JointVelocities | clamped (const Eigen::ArrayXd &max_absolute_value_array, const Eigen::ArrayXd &noise_ratio_array) const |
Return the velocity clamped to the values in argument. | |
JointVelocities | copy () const |
Return a copy of the joint velocities. | |
JointVelocities & | operator*= (double lambda) |
Scale inplace by a scalar. | |
JointVelocities | operator* (double lambda) const |
Scale joint velocities by a scalar. | |
JointPositions | operator* (const std::chrono::nanoseconds &dt) const |
Integrate joint velocities over a time period. | |
JointVelocities & | operator/= (double lambda) |
Scale inplace by a scalar. | |
JointVelocities | operator/ (double lambda) const |
Scale joint velocities by a scalar. | |
JointAccelerations | operator/ (const std::chrono::nanoseconds &dt) const |
Differentiate joint velocities pose over a time period. | |
JointVelocities & | operator+= (const JointVelocities &velocities) |
Add inplace other joint velocities. | |
JointVelocities & | operator+= (const JointState &state) |
Add inplace other joint velocities from a joint state. | |
JointVelocities | operator+ (const JointVelocities &velocities) const |
Add other joint velocities. | |
JointState | operator+ (const JointState &state) const |
Add another joint sate. | |
JointVelocities | operator- () const |
Negate joint velocities. | |
JointVelocities & | operator-= (const JointVelocities &velocities) |
Compute inplace the difference with other joint velocities. | |
JointVelocities & | operator-= (const JointState &state) |
Compute inplace the difference with a joint state. | |
JointVelocities | operator- (const JointVelocities &velocities) const |
Compute the difference with other joint velocities. | |
JointState | operator- (const JointState &state) const |
Compute the difference with a joint state. | |
Public Member Functions inherited from state_representation::JointState | |
JointState () | |
Empty constructor for a joint state. | |
JointState (const std::string &robot_name, unsigned int nb_joints=0) | |
Constructor with name and number of joints provided. | |
JointState (const std::string &robot_name, const std::vector< std::string > &joint_names) | |
Constructor with name and list of joint names provided. | |
JointState (const JointState &state) | |
Copy constructor of a joint state. | |
JointState & | operator= (const JointState &state) |
Copy assignment operator that has to be defined to the custom assignment operator. | |
unsigned int | get_size () const |
Getter of the size from the attributes. | |
const std::vector< std::string > & | get_names () const |
Getter of the names attribute. | |
unsigned int | get_joint_index (const std::string &joint_name) const |
Get joint index by the name of the joint, if it exists. | |
const Eigen::VectorXd & | get_positions () const |
Getter of the positions attribute. | |
double | get_position (const std::string &joint_name) const |
Get the position of a joint by its name, if it exists. | |
double | get_position (unsigned int joint_index) const |
Get the position of a joint by its index, if it exists. | |
const Eigen::VectorXd & | get_velocities () const |
Getter of the velocities attribute. | |
double | get_velocity (const std::string &joint_name) const |
Get the velocity of a joint by its name, if it exists. | |
double | get_velocity (unsigned int joint_index) const |
Get the velocity of a joint by its index, if it exists. | |
const Eigen::VectorXd & | get_accelerations () const |
Getter of the accelerations attribute. | |
double | get_acceleration (const std::string &joint_name) const |
Get the acceleration of a joint by its name, if it exists. | |
double | get_acceleration (unsigned int joint_index) const |
Get the acceleration of a joint by its index, if it exists. | |
const Eigen::VectorXd & | get_torques () const |
Getter of the torques attribute. | |
double | get_torque (const std::string &joint_name) const |
Get the torque of a joint by its name, if it exists. | |
double | get_torque (unsigned int joint_index) const |
Get the torque of a joint by its index, if it exists. | |
Eigen::ArrayXd | array () const |
Returns the data vector as an Eigen array. | |
void | set_names (unsigned int nb_joints) |
Setter of the names attribute from the number of joints. | |
void | set_names (const std::vector< std::string > &names) |
Setter of the names attribute. | |
void | set_positions (const Eigen::VectorXd &positions) |
Setter of the positions attribute. | |
void | set_positions (const std::vector< double > &positions) |
Setter of the positions from std vector. | |
void | set_position (double position, const std::string &joint_name) |
Set the position of a joint by its name. | |
void | set_position (double position, unsigned int joint_index) |
Set the position of a joint by its index. | |
void | set_velocities (const Eigen::VectorXd &velocities) |
Setter of the velocities attribute. | |
void | set_velocities (const std::vector< double > &velocities) |
Setter of the velocities from std vector. | |
void | set_velocity (double velocity, const std::string &joint_name) |
Set the velocity of a joint by its name. | |
void | set_velocity (double velocity, unsigned int joint_index) |
Set the velocity of a joint by its index. | |
void | set_accelerations (const Eigen::VectorXd &accelerations) |
Setter of the accelerations attribute. | |
void | set_accelerations (const std::vector< double > &accelerations) |
Setter of the accelerations from std vector. | |
void | set_acceleration (double acceleration, const std::string &joint_name) |
Set the acceleration of a joint by its name. | |
void | set_acceleration (double acceleration, unsigned int joint_index) |
Set the acceleration of a joint by its index. | |
void | set_torques (const Eigen::VectorXd &torques) |
Setter of the torques attribute. | |
void | set_torques (const std::vector< double > &torques) |
Setter of the torques attributes. | |
void | set_torque (double torque, const std::string &joint_name) |
Set the torque of a joint by its name. | |
void | set_torque (double torque, unsigned int joint_index) |
Set the torque of a joint by its index. | |
void | clamp_state_variable (double max_absolute_value, const JointStateVariable &state_variable_type, double noise_ratio=0) |
Clamp inplace the magnitude of the a specific joint state variable. | |
void | clamp_state_variable (const Eigen::ArrayXd &max_absolute_value_array, const JointStateVariable &state_variable_type, const Eigen::ArrayXd &noise_ratio_array) |
Clamp inplace the magnitude of the a specific joint state variable for each individual joint. | |
JointState | copy () const |
Return a copy of the joint state. | |
double | dist (const JointState &state, const JointStateVariable &state_variable_type=JointStateVariable::ALL) const |
Compute the distance to another state as the sum of distances between each attribute. | |
void | reset () override |
Reset the object to a post-construction state. | |
bool | is_incompatible (const State &state) const override |
Check if the joint state is incompatible for operations with the state given as argument. | |
void | set_zero () |
Set the joint state to a zero value. | |
std::vector< double > | to_std_vector () const |
Return the joint state as a std vector. | |
JointState & | operator*= (double lambda) |
Scale inplace by a scalar. | |
JointState | operator* (double lambda) const |
Scale a joint state by a scalar. | |
JointState & | operator/= (double lambda) |
Scale inplace by a scalar. | |
JointState | operator/ (double lambda) const |
Scale a joint state by a scalar. | |
JointState & | operator+= (const JointState &state) |
Add inplace another joint state. | |
JointState | operator+ (const JointState &state) const |
Add another joint sate. | |
JointState | operator- () const |
Negate a joint state. | |
JointState & | operator-= (const JointState &state) |
Compute inplace the difference with another joint state. | |
JointState | operator- (const JointState &state) const |
Compute the difference with another joint state. | |
Public Member Functions inherited from state_representation::State | |
State () | |
Empty constructor. | |
State (const std::string &name) | |
Constructor with name specification. | |
State (const State &state) | |
Copy constructor from another state. | |
virtual | ~State ()=default |
Virtual destructor. | |
State & | operator= (const State &state) |
Copy assignment operator that has to be defined to the custom assignment operator. | |
const StateType & | get_type () const |
Getter of the type attribute. | |
const std::string & | get_name () const |
Getter of the name attribute. | |
bool | is_empty () const |
Getter of the empty attribute. | |
const std::chrono::time_point< std::chrono::steady_clock > & | get_timestamp () const |
Getter of the timestamp attribute. | |
virtual void | set_name (const std::string &name) |
Setter of the name attribute. | |
void | reset_timestamp () |
Reset the timestamp attribute to now. | |
virtual void | set_data (const Eigen::MatrixXd &data) |
Set the data of the state from an Eigen matrix. | |
double | get_age () const |
Get the age of the state, i.e. the time since the last modification. | |
bool | is_deprecated (double time_delay) const |
Check if the state is deprecated given a certain time delay. | |
template<typename DurationT > | |
bool | is_deprecated (const std::chrono::duration< int64_t, DurationT > &time_delay) const |
Check if the state is deprecated given a certain time delay. | |
operator bool () const noexcept | |
Boolean operator for the truthiness of a state. | |
Static Public Member Functions | |
static JointVelocities | Zero (const std::string &robot_name, unsigned int nb_joints) |
Constructor for zero joint velocities. | |
static JointVelocities | Zero (const std::string &robot_name, const std::vector< std::string > &joint_names) |
Constructor for zero joint velocities. | |
static JointVelocities | Random (const std::string &robot_name, unsigned int nb_joints) |
Constructor for random joint velocities. | |
static JointVelocities | Random (const std::string &robot_name, const std::vector< std::string > &joint_names) |
Constructor for random joint velocities. | |
Static Public Member Functions inherited from state_representation::JointState | |
static JointState | Zero (const std::string &robot_name, unsigned int nb_joints) |
Constructor for a zero joint state. | |
static JointState | Zero (const std::string &robot_name, const std::vector< std::string > &joint_names) |
Constructor for a zero joint state. | |
static JointState | Random (const std::string &robot_name, unsigned int nb_joints) |
Constructor for a random joint state. | |
static JointState | Random (const std::string &robot_name, const std::vector< std::string > &joint_names) |
Constructor for a random joint state. | |
Friends | |
JointVelocities | operator* (double lambda, const JointVelocities &velocities) |
Scale joint velocities by a scalar. | |
JointVelocities | operator* (const Eigen::MatrixXd &lambda, const JointVelocities &velocities) |
Scale joint velocities by a matrix. | |
JointPositions | operator* (const std::chrono::nanoseconds &dt, const JointVelocities &velocities) |
Integrate joint velocities over a time period. | |
std::ostream & | operator<< (std::ostream &os, const JointVelocities &velocities) |
Overload the ostream operator for printing. | |
Additional Inherited Members | |
Protected Member Functions inherited from state_representation::JointState | |
void | multiply_state_variable (const Eigen::MatrixXd &lambda, const JointStateVariable &state_variable_type) |
Proxy function that scale the specified state variable by a matrix. | |
Eigen::VectorXd | get_state_variable (const JointStateVariable &state_variable_type) const |
Getter of the variable value corresponding to the input. | |
void | set_state_variable (const Eigen::VectorXd &new_value, const JointStateVariable &state_variable_type) |
Setter of the variable value corresponding to the input. | |
void | set_state_variable (const std::vector< double > &new_value, const JointStateVariable &state_variable_type) |
Setter of the variable value corresponding to the input. | |
void | set_state_variable (double new_value, unsigned int joint_index, const JointStateVariable &state_variable_type) |
Setter of the variable value corresponding to the input. | |
std::string | to_string () const override |
Convert the state to its string representation. | |
Protected Member Functions inherited from state_representation::State | |
void | set_type (const StateType &type) |
Setter of the state type attribute. | |
void | set_empty (bool empty=true) |
Setter of the empty attribute. | |
void | assert_not_empty () const |
Throw an exception if the state is empty. | |
Class to define velocities of the joints.
Definition at line 18 of file JointVelocities.hpp.
|
explicit |
Empty constructor.
Definition at line 8 of file JointVelocities.cpp.
|
explicit |
Constructor with name and number of joints provided.
name The name of the state
nb_joints The number of joints for initialization
Definition at line 12 of file JointVelocities.cpp.
|
explicit |
Constructor with name and list of joint names provided.
name The name of the state
joint_names List of joint names
Definition at line 23 of file JointVelocities.cpp.
|
explicit |
Constructor with name and velocity values provided.
name The name of the state
velocities The vector of velocities
Definition at line 17 of file JointVelocities.cpp.
|
explicit |
Constructor with name, a list of joint names and velocity values provided.
name The name of the state
joint_names List of joint names
velocities The vector of velocities
Definition at line 28 of file JointVelocities.cpp.
state_representation::JointVelocities::JointVelocities | ( | const JointVelocities & | velocities | ) |
Copy constructor.
Definition at line 43 of file JointVelocities.cpp.
state_representation::JointVelocities::JointVelocities | ( | const JointState & | state | ) |
Copy constructor from a joint state.
Definition at line 35 of file JointVelocities.cpp.
state_representation::JointVelocities::JointVelocities | ( | const JointAccelerations & | accelerations | ) |
Integration constructor from joint accelerations by considering that it is equivalent to multiplying the accelerations by 1 second.
Definition at line 46 of file JointVelocities.cpp.
state_representation::JointVelocities::JointVelocities | ( | const JointPositions & | positions | ) |
Differentiation constructor from joint positions by considering that it is equivalent to dividing the positions by 1 second.
Definition at line 49 of file JointVelocities.cpp.
void state_representation::JointVelocities::clamp | ( | const Eigen::ArrayXd & | max_absolute_value_array, |
const Eigen::ArrayXd & | noise_ratio_array | ||
) |
Clamp inplace the magnitude of the velocity to the values in argument.
max_absolute_value_array | The maximum magnitude of velocity for each joint |
noise_ratio_array | If provided, this value will be used to apply a dead zone under which the velocity will be set to 0 |
Definition at line 84 of file JointVelocities.cpp.
void state_representation::JointVelocities::clamp | ( | double | max_absolute_value, |
double | noise_ratio = 0. |
||
) |
Clamp inplace the magnitude of the velocity to the values in argument.
max_absolute_value | The maximum magnitude of velocity for all the joints |
noise_ratio | If provided, this value will be used to apply a dead zone under which the velocity will be set to 0 |
Definition at line 80 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::clamped | ( | const Eigen::ArrayXd & | max_absolute_value_array, |
const Eigen::ArrayXd & | noise_ratio_array | ||
) | const |
Return the velocity clamped to the values in argument.
max_absolute_value_array | The maximum magnitude of velocity for each joint |
noise_ratio_array | If provided, this value will be used to apply a dead zone under which the velocity will be set to 0 |
Definition at line 94 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::clamped | ( | double | max_absolute_value, |
double | noise_ratio = 0. |
||
) | const |
Return the velocity clamped to the values in argument.
max_absolute_value | The maximum magnitude of velocity for all the joints |
noise_ratio | If provided, this value will be used to apply a dead zone under which the velocity will be set to 0 |
Definition at line 88 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::copy | ( | ) | const |
Return a copy of the joint velocities.
Definition at line 102 of file JointVelocities.cpp.
|
overridevirtual |
Returns the velocities data as an Eigen vector.
Reimplemented from state_representation::JointState.
Definition at line 68 of file JointVelocities.cpp.
JointPositions state_representation::JointVelocities::operator* | ( | const std::chrono::nanoseconds & | dt | ) | const |
Integrate joint velocities over a time period.
dt | The time period used for integration |
Definition at line 128 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::operator* | ( | double | lambda | ) | const |
Scale joint velocities by a scalar.
All joints in all the state variables are scaled by the same factor.
lambda | The scaling factor |
lambda | The scaling factor |
Definition at line 112 of file JointVelocities.cpp.
JointVelocities & state_representation::JointVelocities::operator*= | ( | double | lambda | ) |
Scale inplace by a scalar.
All joints in all the state variables are scaled by the same factor.
lambda | The scaling factor |
lambda | The scaling factor |
Definition at line 107 of file JointVelocities.cpp.
JointState state_representation::JointVelocities::operator+ | ( | const JointState & | state | ) | const |
Add another joint sate.
state | A joint state with same name and same joint names |
Definition at line 177 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::operator+ | ( | const JointVelocities & | velocities | ) | const |
Add other joint velocities.
accelerations | Joint velocities with same name and same joint names |
Definition at line 173 of file JointVelocities.cpp.
JointVelocities & state_representation::JointVelocities::operator+= | ( | const JointState & | state | ) |
Add inplace other joint velocities from a joint state.
state | A joint state with same name and same joint names |
Definition at line 168 of file JointVelocities.cpp.
JointVelocities & state_representation::JointVelocities::operator+= | ( | const JointVelocities & | velocities | ) |
Add inplace other joint velocities.
velocities | Joint velocities with same name and same joint names |
Definition at line 163 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::operator- | ( | ) | const |
Negate joint velocities.
Definition at line 181 of file JointVelocities.cpp.
JointState state_representation::JointVelocities::operator- | ( | const JointState & | state | ) | const |
Compute the difference with a joint state.
state | A joint state with same name and same joint names |
Definition at line 199 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::operator- | ( | const JointVelocities & | velocities | ) | const |
Compute the difference with other joint velocities.
velocities | Joint velocities with same name and same joint names |
Definition at line 195 of file JointVelocities.cpp.
JointVelocities & state_representation::JointVelocities::operator-= | ( | const JointState & | state | ) |
Compute inplace the difference with a joint state.
state | A joint state with same name and same joint names |
Definition at line 190 of file JointVelocities.cpp.
JointVelocities & state_representation::JointVelocities::operator-= | ( | const JointVelocities & | velocities | ) |
Compute inplace the difference with other joint velocities.
velocities | Joint velocities with same name and same joint names |
Definition at line 185 of file JointVelocities.cpp.
JointAccelerations state_representation::JointVelocities::operator/ | ( | const std::chrono::nanoseconds & | dt | ) | const |
Differentiate joint velocities pose over a time period.
dt | The time period used for derivation |
Definition at line 152 of file JointVelocities.cpp.
JointVelocities state_representation::JointVelocities::operator/ | ( | double | lambda | ) | const |
Scale joint velocities by a scalar.
All joints in all the state variables are scaled by the same factor.
lambda | The scaling factor |
lambda | The scaling factor |
Definition at line 148 of file JointVelocities.cpp.
JointVelocities & state_representation::JointVelocities::operator/= | ( | double | lambda | ) |
Scale inplace by a scalar.
All joints in all the state variables are scaled by the same factor.
lambda | The scaling factor |
lambda | The scaling factor |
Definition at line 143 of file JointVelocities.cpp.
|
default |
Copy assignment operator that has to be defined to the custom assignment operator.
velocities | The state with value to assign |
|
static |
Constructor for random joint velocities.
robot_name | The name of the associated robot |
joint_names | List of joint names |
Definition at line 64 of file JointVelocities.cpp.
|
static |
Constructor for random joint velocities.
robot_name | The name of the associated robot |
nb_joints | The number of joints for initialization |
Definition at line 60 of file JointVelocities.cpp.
|
overridevirtual |
Set the velocities data from an Eigen vector.
data | The velocities data vector |
Reimplemented from state_representation::JointState.
Definition at line 72 of file JointVelocities.cpp.
|
overridevirtual |
Set the velocities data from a std vector.
data | The velocities data vector |
Reimplemented from state_representation::JointState.
Definition at line 76 of file JointVelocities.cpp.
|
static |
Constructor for zero joint velocities.
robot_name | The name of the associated robot |
joint_names | List of joint names |
Definition at line 56 of file JointVelocities.cpp.
|
static |
Constructor for zero joint velocities.
robot_name | The name of the associated robot |
nb_joints | The number of joints for initialization |
Definition at line 52 of file JointVelocities.cpp.
|
friend |
Scale joint velocities by a matrix.
lambda | The scaling matrix |
velocities | The joint velocities to be scaled |
Definition at line 122 of file JointVelocities.cpp.
|
friend |
Integrate joint velocities over a time period.
dt | The time period used for integration |
velocities | The joint velocities to be integrated |
Definition at line 139 of file JointVelocities.cpp.
|
friend |
Scale joint velocities by a scalar.
All joints in all the state variables are scaled by the same factor.
lambda | The scaling factor |
lambda | The scaling factor |
velocities | The joint velocities to be scaled |
Definition at line 116 of file JointVelocities.cpp.
|
friend |
Overload the ostream operator for printing.
os | The ostream to append the string representing the state |
state | The state to print |
Definition at line 203 of file JointVelocities.cpp.