Control Libraries 7.4.0
Loading...
Searching...
No Matches
JointAccelerations.hpp
1#pragma once
2
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/JointTorques.hpp"
7
8namespace state_representation {
9
10class JointPositions;
11class JointVelocities;
12class JointTorques;
13
19public:
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& accelerations) = delete;
31 void set_velocities(const std::vector<double>& accelerations) = 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_torques() const = delete;
35 double get_torque(unsigned int joint_index) const = delete;
36 double get_torque(const std::string& joint_name) const = delete;
37 void set_torques(const Eigen::VectorXd& torques) = delete;
38 void set_torques(const std::vector<double>& torques) = delete;
39 void set_torque(double torque, unsigned int joint_index) const = delete;
40 void set_torque(double torque, const std::string& joint_name) const = delete;
41 JointState& operator+=(const JointPositions& positions) = delete;
42 JointState& operator+=(const JointVelocities& velocities) = delete;
43 JointState& operator+=(const JointTorques& torques) = delete;
44 JointState operator+(const JointPositions& positions) const = delete;
45 JointState operator+(const JointVelocities& velocities) const = delete;
46 JointState operator+(const JointTorques& torques) const = delete;
47 JointState& operator-=(const JointPositions& positions) = delete;
48 JointState& operator-=(const JointVelocities& velocities) = delete;
49 JointState& operator-=(const JointTorques& torques) = delete;
50 JointState operator-(const JointPositions& positions) const = delete;
51 JointState operator-(const JointVelocities& velocities) const = delete;
52 JointState operator-(const JointTorques& torques) const = delete;
53
57 explicit JointAccelerations();
58
64 explicit JointAccelerations(const std::string& robot_name, unsigned int nb_joints = 0);
65
71 explicit JointAccelerations(const std::string& robot_name, const std::vector<std::string>& joint_names);
72
78 explicit JointAccelerations(const std::string& robot_name, const Eigen::VectorXd& accelerations);
79
86 explicit JointAccelerations(
87 const std::string& robot_name, const std::vector<std::string>& joint_names, const Eigen::VectorXd& accelerations
88 );
89
93 JointAccelerations(const JointAccelerations& accelerations);
94
98 JointAccelerations(const JointState& state);
99
104 JointAccelerations(const JointVelocities& velocities);
105
112 static JointAccelerations Zero(const std::string& robot_name, unsigned int nb_joints);
113
120 static JointAccelerations Zero(const std::string& robot_name, const std::vector<std::string>& joint_names);
121
128 static JointAccelerations Random(const std::string& robot_name, unsigned int nb_joints);
129
136 static JointAccelerations Random(const std::string& robot_name, const std::vector<std::string>& joint_names);
137
143 JointAccelerations& operator=(const JointAccelerations& accelerations) = default;
144
149 Eigen::VectorXd data() const override;
150
155 virtual void set_data(const Eigen::VectorXd& data) override;
156
161 virtual void set_data(const std::vector<double>& data) override;
162
169 void clamp(double max_absolute_value, double noise_ratio = 0.);
170
177 void clamp(const Eigen::ArrayXd& max_absolute_value_array, const Eigen::ArrayXd& noise_ratio_array);
178
186 JointAccelerations clamped(double max_absolute_value, double noise_ratio = 0.) const;
187
196 const Eigen::ArrayXd& max_absolute_value_array, const Eigen::ArrayXd& noise_ratio_array
197 ) const;
198
202 JointAccelerations copy() const;
203
210 JointAccelerations& operator*=(double lambda);
211
218 JointAccelerations operator*(double lambda) const;
219
227 friend JointAccelerations operator*(double lambda, const JointAccelerations& accelerations);
228
235 friend JointAccelerations operator*(const Eigen::MatrixXd& lambda, const JointAccelerations& accelerations);
236
242 JointVelocities operator*(const std::chrono::nanoseconds& dt) const;
243
250 friend JointVelocities operator*(const std::chrono::nanoseconds& dt, const JointAccelerations& accelerations);
251
258 JointAccelerations& operator/=(double lambda);
259
266 JointAccelerations operator/(double lambda) const;
267
273 JointAccelerations& operator+=(const JointAccelerations& accelerations);
274
280 JointAccelerations& operator+=(const JointState& state);
281
287 JointAccelerations operator+(const JointAccelerations& accelerations) const;
288
294 JointState operator+(const JointState& state) const;
295
301
307 JointAccelerations& operator-=(const JointAccelerations& accelerations);
308
314 JointAccelerations& operator-=(const JointState& state);
315
321 JointAccelerations operator-(const JointAccelerations& accelerations) const;
322
328 JointState operator-(const JointState& state) const;
329
336 friend std::ostream& operator<<(std::ostream& os, const JointAccelerations& accelerations);
337
338private:
340};
341}// namespace state_representation
Class to define accelerations of the joints.
JointAccelerations copy() const
Return a copy of the joint accelerations.
Eigen::VectorXd data() const override
Returns the accelerations data as an Eigen vector.
JointAccelerations clamped(double max_absolute_value, double noise_ratio=0.) const
Return the acceleration clamped to the values in argument.
JointAccelerations & operator/=(double lambda)
Scale inplace by a scalar.
friend JointAccelerations operator*(double lambda, const JointAccelerations &accelerations)
Scale joint accelerations by a scalar.
virtual void set_data(const Eigen::VectorXd &data) override
Set the accelerations data from an Eigen vector.
static JointAccelerations Zero(const std::string &robot_name, unsigned int nb_joints)
Constructor for zero joint accelerations.
void clamp(double max_absolute_value, double noise_ratio=0.)
Clamp inplace the magnitude of the acceleration to the values in argument.
JointAccelerations operator-() const
Negate joint accelerations.
JointAccelerations operator/(double lambda) const
Scale joint accelerations by a scalar.
JointAccelerations & operator*=(double lambda)
Scale inplace by a scalar.
JointAccelerations & operator=(const JointAccelerations &accelerations)=default
Copy assignment operator that has to be defined to the custom assignment operator.
friend std::ostream & operator<<(std::ostream &os, const JointAccelerations &accelerations)
Overload the ostream operator for printing.
static JointAccelerations Random(const std::string &robot_name, unsigned int nb_joints)
Constructor for random joint accelerations.
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.
Class to define velocities of the joints.
Core state variables and objects.