Biorbd
ActuatorGauss6p.h
1 #ifndef BIORBD_ACTUATORS_ACTUATOR_GAUSS_6P_H
2 #define BIORBD_ACTUATORS_ACTUATOR_GAUSS_6P_H
3 
4 #include "biorbdConfig.h"
5 #include "Actuators/Actuator.h"
6 
7 namespace biorbd {
8 namespace rigidbody {
9 class GeneralizedCoordinates;
10 class GeneralizedVelocity;
11 }
12 
13 namespace actuator {
17 class BIORBD_API ActuatorGauss6p : public Actuator
18 {
19 public:
20 
25 
32 
51  int direction,
52  const biorbd::utils::Scalar& Tmax,
53  const biorbd::utils::Scalar& T0,
54  const biorbd::utils::Scalar& wmax,
55  const biorbd::utils::Scalar& wc,
56  const biorbd::utils::Scalar& amin,
57  const biorbd::utils::Scalar& wr,
58  const biorbd::utils::Scalar& w1,
59  const biorbd::utils::Scalar& r,
60  const biorbd::utils::Scalar& qopt,
61  const biorbd::utils::Scalar& facteur,
62  const biorbd::utils::Scalar& r2,
63  const biorbd::utils::Scalar& qopt2,
64  unsigned int dofIdx);
65 
85  int direction,
86  const biorbd::utils::Scalar& Tmax,
87  const biorbd::utils::Scalar& T0,
88  const biorbd::utils::Scalar& wmax,
89  const biorbd::utils::Scalar& wc,
90  const biorbd::utils::Scalar& amin,
91  const biorbd::utils::Scalar& wr,
92  const biorbd::utils::Scalar& w1,
93  const biorbd::utils::Scalar& r,
94  const biorbd::utils::Scalar& qopt,
95  const biorbd::utils::Scalar& facteur,
96  const biorbd::utils::Scalar& r2,
97  const biorbd::utils::Scalar& qopt2,
98  unsigned int dofIdx,
99  const biorbd::utils::String &jointName);
100 
104  virtual ~ActuatorGauss6p();
105 
110  biorbd::actuator::ActuatorGauss6p DeepCopy() const;
111 
116  void DeepCopy(
117  const biorbd::actuator::ActuatorGauss6p& other);
118 
124  virtual biorbd::utils::Scalar torqueMax();
125 
132  virtual biorbd::utils::Scalar torqueMax(
135 
136 protected:
140  virtual void setType();
141 
142  // For informations on these parameters, see Monique Iris Jackson's these from page 54
143  // Angular/velocity relationship
144  std::shared_ptr<biorbd::utils::Scalar> m_k;
145  std::shared_ptr<biorbd::utils::Scalar> m_Tmax;
146  std::shared_ptr<biorbd::utils::Scalar> m_T0;
147  std::shared_ptr<biorbd::utils::Scalar> m_wmax;
148  std::shared_ptr<biorbd::utils::Scalar> m_wc;
149 
150  // Activation/velocity relationship
151  std::shared_ptr<biorbd::utils::Scalar> m_amax;
152  std::shared_ptr<biorbd::utils::Scalar> m_amin;
153  std::shared_ptr<biorbd::utils::Scalar> m_wr;
154  std::shared_ptr<biorbd::utils::Scalar> m_w1;
155 
156  // Torque/angle relationship
157  std::shared_ptr<biorbd::utils::Scalar> m_r;
158  std::shared_ptr<biorbd::utils::Scalar> m_qopt;
159  std::shared_ptr<biorbd::utils::Scalar> m_facteur;
160  std::shared_ptr<biorbd::utils::Scalar> m_r2;
161  std::shared_ptr<biorbd::utils::Scalar> m_qopt2;
162 
163 };
164 
165 }}
166 
167 #endif // BIORBD_ACTUATORS_ACTUATOR_GAUSS_6P_H
biorbd::actuator::ActuatorGauss6p::m_qopt
std::shared_ptr< biorbd::utils::Scalar > m_qopt
1st Optimal position
Definition: ActuatorGauss6p.h:158
biorbd::actuator::ActuatorGauss6p::m_wr
std::shared_ptr< biorbd::utils::Scalar > m_wr
1/10 of the distance amax/amin
Definition: ActuatorGauss6p.h:153
biorbd::actuator::ActuatorGauss6p::m_k
std::shared_ptr< biorbd::utils::Scalar > m_k
Ratio of slope of the eccentric and concentric phases.
Definition: ActuatorGauss6p.h:144
biorbd::actuator::ActuatorGauss6p::m_w1
std::shared_ptr< biorbd::utils::Scalar > m_w1
Mid point plateau.
Definition: ActuatorGauss6p.h:154
biorbd::actuator::Actuator
Class Actuator.
Definition: Actuator.h:20
biorbd::actuator::ActuatorGauss6p::m_wc
std::shared_ptr< biorbd::utils::Scalar > m_wc
Angular velocity of the vertical asymptote of the concentric hyperbola.
Definition: ActuatorGauss6p.h:148
biorbd::actuator::ActuatorGauss6p::m_amax
std::shared_ptr< biorbd::utils::Scalar > m_amax
Maximum activation level (set to 1)
Definition: ActuatorGauss6p.h:151
biorbd::rigidbody::GeneralizedCoordinates
Class GeneralizedCoordinates.
Definition: GeneralizedCoordinates.h:15
biorbd::actuator::ActuatorGauss6p::m_Tmax
std::shared_ptr< biorbd::utils::Scalar > m_Tmax
Maximum torque in the eccentric phase.
Definition: ActuatorGauss6p.h:145
biorbd::actuator::ActuatorGauss6p::m_facteur
std::shared_ptr< biorbd::utils::Scalar > m_facteur
Factor of the 6p.
Definition: ActuatorGauss6p.h:159
biorbd::actuator::ActuatorGauss6p::m_r
std::shared_ptr< biorbd::utils::Scalar > m_r
width of the 1st gaussian curve
Definition: ActuatorGauss6p.h:157
biorbd::actuator::ActuatorGauss6p::m_amin
std::shared_ptr< biorbd::utils::Scalar > m_amin
Low plateau level.
Definition: ActuatorGauss6p.h:152
biorbd::actuator::ActuatorGauss6p::m_r2
std::shared_ptr< biorbd::utils::Scalar > m_r2
width of the 2nd gaussian curve
Definition: ActuatorGauss6p.h:160
biorbd::actuator::ActuatorGauss6p
Class ActuatorGauss6p is a joint actuator type which maximum is bimodal 6 parameter gaussian (Gauss6p...
Definition: ActuatorGauss6p.h:18
biorbd::utils::String
Wrapper around the std::string class with augmented functionality.
Definition: String.h:17
biorbd::actuator::ActuatorGauss6p::m_qopt2
std::shared_ptr< biorbd::utils::Scalar > m_qopt2
2nd Optimal position
Definition: ActuatorGauss6p.h:161
biorbd::actuator::ActuatorGauss6p::m_T0
std::shared_ptr< biorbd::utils::Scalar > m_T0
Maximum torque isometric.
Definition: ActuatorGauss6p.h:146
biorbd::actuator::ActuatorGauss6p::m_wmax
std::shared_ptr< biorbd::utils::Scalar > m_wmax
Maximum angular velocity above which torque cannot be produced.
Definition: ActuatorGauss6p.h:147
biorbd::rigidbody::GeneralizedVelocity
Class GeneralizedVelocity.
Definition: GeneralizedVelocity.h:15