Loading...
Searching...
No Matches
inverted-pendulum.hh
Go to the documentation of this file.
1/*
2 * Copyright 2010,
3 * Florent Lamiraux
4 *
5 * CNRS
6 *
7 */
8
9#ifndef DG_TUTORIAL_INVERTED_PENDULUM_HH
10#define DG_TUTORIAL_INVERTED_PENDULUM_HH
11
12#include <dynamic-graph/entity.h>
13#include <dynamic-graph/linear-algebra.h>
14#include <dynamic-graph/signal-ptr.h>
15
16namespace dynamicgraph {
17namespace tutorial {
18
72class InvertedPendulum : public Entity {
73 public:
77 InvertedPendulum(const std::string& inName);
78
80
82 virtual const std::string& getClassName(void) const { return CLASS_NAME; }
83
85 virtual std::string getDocString() const {
86 return "Classical inverted pendulum dynamic model\n";
87 }
88
90 void incr(double inTimeStep);
91
99 void setCartMass(const double& inMass) { cartMass_ = inMass; }
100
104 double getCartMass() const { return cartMass_; }
105
109 void setPendulumMass(const double& inMass) { pendulumMass_ = inMass; }
110
114 double getPendulumMass() const { return pendulumMass_; }
115
119 void setPendulumLength(const double& inLength) { pendulumLength_ = inLength; }
120
124 double getPendulumLength() const { return pendulumLength_; }
125
130 public:
131 /*
132 \brief Class name
133 */
134 static const std::string CLASS_NAME;
135
136 private:
140 SignalPtr<double, int> forceSIN;
144 Signal< ::dynamicgraph::Vector, int> stateSOUT;
145
147 double cartMass_;
149 double pendulumMass_;
151 double pendulumLength_;
153 double viscosity_;
154
158 ::dynamicgraph::Vector computeDynamics(const ::dynamicgraph::Vector& inState,
159 const double& inControl,
160 double inTimeStep);
161};
162} // namespace tutorial
163} // namespace dynamicgraph
164#endif
Inverted Pendulum on a cart.
Definition inverted-pendulum.hh:72
void setCartMass(const double &inMass)
Set the mass of the cart.
Definition inverted-pendulum.hh:99
double getCartMass() const
Get the mass of the cart.
Definition inverted-pendulum.hh:104
static const std::string CLASS_NAME
Definition inverted-pendulum.hh:134
void setPendulumLength(const double &inLength)
Set the length of the cart.
Definition inverted-pendulum.hh:119
double getPendulumMass() const
Get the mass of the pendulum.
Definition inverted-pendulum.hh:114
void incr(double inTimeStep)
Integrate equation of motion over time step given as input.
double getPendulumLength() const
Get the length of the pendulum.
Definition inverted-pendulum.hh:124
virtual std::string getDocString() const
Header documentation of the python class.
Definition inverted-pendulum.hh:85
InvertedPendulum(const std::string &inName)
Constructor by name.
virtual const std::string & getClassName(void) const
Each entity should provide the name of the class it belongs to.
Definition inverted-pendulum.hh:82
void setPendulumMass(const double &inMass)
Set the mass of the cart.
Definition inverted-pendulum.hh:109
Definition feedback-controller.hh:15