1 #ifndef PMPL_ACTUATOR_H_
2 #define PMPL_ACTUATOR_H_
84 void SetLimits(
const std::vector<double>& _min,
85 const std::vector<double>& _max);
126 void ComputeControlSpace();
133 friend std::ostream& operator<<(std::ostream&, const
Actuator&);
139 Robot* const m_robot;
143 std::vector<
bool> m_mask;
144 std::vector<
Range<
double>> m_limits;
Definition: Actuator.h:35
DynamicsType
Definition: Actuator.h:44
DynamicsType GetDynamicsType() const
Get the type of output this actuator produces.
Definition: Actuator.cpp:123
Robot * GetRobot() const
Get the robot that the actuator is on.
Definition: Actuator.cpp:109
Control GetRandomControl() const noexcept
Get a random control in this actuator's control space.
Definition: Actuator.cpp:228
void SetLimits(const std::vector< double > &_min, const std::vector< double > &_max)
Definition: Actuator.cpp:130
void SetMaxForce(const double _total)
Definition: Actuator.cpp:150
Actuator(Robot *const _r, const std::string &_label, const DynamicsType _t=DynamicsType::Force)
Definition: Actuator.cpp:19
std::vector< double > ComputeOutput(const Control::Signal &_s) const
Definition: Actuator.cpp:165
std::string GetLabel() const
Get the label for this actuator.
Definition: Actuator.cpp:116
std::vector< bool > ControlMask() const
Definition: Actuator.cpp:158
Control::Signal ComputeNearestSignal(const std::vector< double > &_force) const
Definition: Actuator.cpp:194
An axis-aligned rectangular prism in n dimensions.
Definition: NBox.h:14
std::vector< double > Signal
Definition: Control.h:28
A range of numeric values.
Definition: Range.h:17