3#include "state_representation/space/joint/JointState.hpp"
4#include "state_representation/space/joint/JointPositions.hpp"
5#include "state_representation/space/joint/JointVelocities.hpp"
6#include "state_representation/space/joint/JointAccelerations.hpp"
12class JointAccelerations;
20 const Eigen::VectorXd& get_positions()
const =
delete;
21 double get_position(
unsigned int joint_index)
const =
delete;
22 double get_position(
const std::string& joint_name)
const =
delete;
23 void set_positions(
const Eigen::VectorXd& positions) =
delete;
24 void set_positions(
const std::vector<double>& positions) =
delete;
25 void set_position(
double position,
unsigned int joint_index)
const =
delete;
26 void set_position(
double position,
const std::string& joint_name)
const =
delete;
27 const Eigen::VectorXd& get_velocities()
const =
delete;
28 double get_velocity(
unsigned int joint_index)
const =
delete;
29 double get_velocity(
const std::string& joint_name)
const =
delete;
30 void set_velocities(
const Eigen::VectorXd& velocities) =
delete;
31 void set_velocities(
const std::vector<double>& velocities) =
delete;
32 void set_velocity(
double velocity,
unsigned int joint_index)
const =
delete;
33 void set_velocity(
double velocity,
const std::string& joint_name)
const =
delete;
34 const Eigen::VectorXd& get_accelerations()
const =
delete;
35 double get_acceleration(
unsigned int joint_index)
const =
delete;
36 double get_acceleration(
const std::string& joint_name)
const =
delete;
37 void set_accelerations(
const Eigen::VectorXd& accelerations) =
delete;
38 void set_accelerations(
const std::vector<double>& accelerations) =
delete;
39 void set_acceleration(
double acceleration,
unsigned int joint_index)
const =
delete;
40 void set_acceleration(
double acceleration,
const std::string& joint_name)
const =
delete;
64 explicit JointTorques(
const std::string& robot_name,
unsigned int nb_joints = 0);
71 explicit JointTorques(
const std::string& robot_name,
const std::vector<std::string>& joint_names);
78 explicit JointTorques(
const std::string& robot_name,
const Eigen::VectorXd& torques);
86 explicit JointTorques(
const std::string& robot_name,
const std::vector<std::string>& joint_names,
87 const Eigen::VectorXd& torques);
105 static JointTorques Zero(
const std::string& robot_name,
unsigned int nb_joints);
113 static JointTorques Zero(
const std::string& robot_name,
const std::vector<std::string>& joint_names);
129 static JointTorques Random(
const std::string& robot_name,
const std::vector<std::string>& joint_names);
142 Eigen::VectorXd
data()
const override;
148 virtual void set_data(
const Eigen::VectorXd&
data)
override;
154 virtual void set_data(
const std::vector<double>&
data)
override;
163 void clamp(
double max_absolute_value,
double noise_ratio = 0.);
171 void clamp(
const Eigen::ArrayXd& max_absolute_value_array,
const Eigen::ArrayXd& noise_ratio_array);
189 JointTorques clamped(
const Eigen::ArrayXd& max_absolute_value_array,
const Eigen::ArrayXd& noise_ratio_array)
const;
Class to define accelerations of the joints.
Class to define positions of the joints.
Class to define a state in joint space.
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.
Class to define torques of the joints.
friend std::ostream & operator<<(std::ostream &os, const JointTorques &torques)
Overload the ostream operator for printing.
void clamp(double max_absolute_value, double noise_ratio=0.)
Clamp inplace the magnitude of the torque to the values in argument.
JointTorques copy() const
Return a copy of the joint torques.
JointTorques clamped(double max_absolute_value, double noise_ratio=0.) const
Return the torque clamped to the values in argument.
JointTorques()
Empty constructor.
JointTorques & operator=(const JointTorques &torques)=default
Copy assignment operator that has to be defined to the custom assignment operator.
virtual void set_data(const Eigen::VectorXd &data) override
Set the torques data from an Eigen vector.
JointTorques operator-() const
Negate joint torques.
static JointTorques Random(const std::string &robot_name, unsigned int nb_joints)
Constructor for random joint torques.
static JointTorques Zero(const std::string &robot_name, unsigned int nb_joints)
Constructor for zero joint torques.
JointTorques & operator/=(double lambda)
Scale inplace by a scalar.
JointTorques operator/(double lambda) const
Scale joint torques by a scalar.
JointTorques & operator*=(double lambda)
Scale inplace by a scalar.
Eigen::VectorXd data() const override
Returns the torques data as an Eigen vector.
friend JointTorques operator*(double lambda, const JointTorques &torques)
Scale joint torques by a scalar.
Class to define velocities of the joints.
Core state variables and objects.