21 template<
bool StrictlyPositive>
24 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
56 inline void vec(
const Eigen::Vector3d & a,
const Eigen::Vector3d & l) noexcept
62 inline void vec(
double a,
double l) noexcept
70 inline void angular(
const Eigen::Vector3d & v) noexcept { vec_.
angular() = v.cwiseMax(limit); }
74 inline const Eigen::Vector3d &
angular() const noexcept {
return vec_.
angular(); }
76 inline void linear(
const Eigen::Vector3d & v) noexcept { vec_.
linear() = v.cwiseMax(limit); }
80 inline const Eigen::Vector3d &
linear() const noexcept {
return vec_.
linear(); }
83 static constexpr
double limit = StrictlyPositive ? 1e-6 : 0.0;
97 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
166 if(config.
has(
"mass"))
171 if(config.
has(
"damper"))
176 if(config.
has(
"spring"))
181 if(config.
has(
"wrench"))
192 out.
add(
"damper", ig.
D().
vec());
193 out.
add(
"spring", ig.
K().
vec());
const vector3_t & angular() const
const vector3_t & linear() const
#define MC_TASKS_DLLAPI
Definition: api.h:50
Vector6< double > Vector6d
Definition: StabilizerStandingState.h:12
ImpedanceVec< double > ImpedanceVecd
static mc_tasks::force::ImpedanceGains load(const mc_rtc::Configuration &config)
Definition: ImpedanceGains.h:163
static mc_rtc::Configuration save(const mc_tasks::force::ImpedanceGains &ig)
Definition: ImpedanceGains.h:188
Definition: Configuration.h:56
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166
bool has(const std::string &key) const
Check if the key is part of the conf.
void add(const std::string &key, bool value)
Add a bool element to the Configuration.
Represent impedance gains for an ImpedanceTask.
Definition: ImpedanceGains.h:96
const details::ImpedanceVecd< false > & D() const noexcept
Definition: ImpedanceGains.h:109
const details::ImpedanceVecd< false > & K() const noexcept
Definition: ImpedanceGains.h:118
details::ImpedanceVecd< true > & mass() noexcept
Definition: ImpedanceGains.h:106
details::ImpedanceVecd< false > & spring() noexcept
Definition: ImpedanceGains.h:124
const details::ImpedanceVecd< false > & wrench() const noexcept
Definition: ImpedanceGains.h:127
EIGEN_MAKE_ALIGNED_OPERATOR_NEW const details::ImpedanceVecd< true > & M() const noexcept
Definition: ImpedanceGains.h:100
details::ImpedanceVecd< false > & damper() noexcept
Definition: ImpedanceGains.h:115
details::ImpedanceVecd< false > & D() noexcept
Definition: ImpedanceGains.h:111
details::ImpedanceVecd< false > wrench_
Definition: ImpedanceGains.h:150
details::ImpedanceVecd< false > K_
Definition: ImpedanceGains.h:148
details::ImpedanceVecd< true > & M() noexcept
Definition: ImpedanceGains.h:102
details::ImpedanceVecd< false > & wrench() noexcept
Definition: ImpedanceGains.h:129
const details::ImpedanceVecd< false > & damper() const noexcept
Definition: ImpedanceGains.h:113
details::ImpedanceVecd< true > M_
Definition: ImpedanceGains.h:144
const details::ImpedanceVecd< false > & spring() const noexcept
Definition: ImpedanceGains.h:122
static ImpedanceGains Default()
Definition: ImpedanceGains.h:132
details::ImpedanceVecd< false > & K() noexcept
Definition: ImpedanceGains.h:120
const details::ImpedanceVecd< true > & mass() const noexcept
Definition: ImpedanceGains.h:104
details::ImpedanceVecd< false > D_
Definition: ImpedanceGains.h:146
Definition: ImpedanceGains.h:23
ImpedanceVecd(const sva::ImpedanceVecd &v)
Definition: ImpedanceGains.h:28
void vec(const Eigen::Vector3d &a, const Eigen::Vector3d &l) noexcept
Definition: ImpedanceGains.h:56
void linear(double linear) noexcept
Definition: ImpedanceGains.h:78
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ImpedanceVecd()
Definition: ImpedanceGains.h:26
void angular(double angular) noexcept
Definition: ImpedanceGains.h:72
void angular(const Eigen::Vector3d &v) noexcept
Definition: ImpedanceGains.h:70
const Eigen::Vector3d & linear() const noexcept
Definition: ImpedanceGains.h:80
const Eigen::Vector3d & angular() const noexcept
Definition: ImpedanceGains.h:74
ImpedanceVecd & operator=(const sva::ImpedanceVecd &v)
Definition: ImpedanceGains.h:36
void vec(double a, double l) noexcept
Definition: ImpedanceGains.h:62
void vec(const sva::ImpedanceVecd &v) noexcept
Definition: ImpedanceGains.h:44
const sva::ImpedanceVecd & vec() const noexcept
Definition: ImpedanceGains.h:68
void vec(const Eigen::Vector6d &v) noexcept
Definition: ImpedanceGains.h:50
ImpedanceVecd(double angular_, double linear_)
Definition: ImpedanceGains.h:30
Eigen::Vector6d vector() const noexcept
Definition: ImpedanceGains.h:42
void linear(const Eigen::Vector3d &v) noexcept
Definition: ImpedanceGains.h:76