Robotics Library  0.6.2
Dynamic.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2009, Markus Rickert
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are met:
7 //
8 // * Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright notice,
11 // this list of conditions and the following disclaimer in the documentation
12 // and/or other materials provided with the distribution.
13 //
14 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 // POSSIBILITY OF SUCH DAMAGE.
25 //
26 
27 #ifndef _RL_MDL_DYNAMIC_H_
28 #define _RL_MDL_DYNAMIC_H_
29 
30 #include "Kinematic.h"
31 
32 namespace rl
33 {
34  namespace mdl
35  {
36  class Dynamic : public Kinematic
37  {
38  public:
39  Dynamic();
40 
41  virtual ~Dynamic();
42 
44 
57 
58  void calculateGravity();
59 
72 
73  void calculateMassMatrix();
74 
87 
89 
102 
104 
109 
110  Model* clone() const;
111 
122 
129  void forwardDynamics();
130 
132 
134 
136 
138 
140 
141  void getWorldGravity(::rl::math::Real& x, ::rl::math::Real& y, ::rl::math::Real& z) const;
142 
143  void getWorldGravity(::rl::math::Vector& xyz) const;
144 
151  void inverseDynamics();
152 
153  void inverseForce();
154 
165 
167 
169 
170  virtual void update();
171 
172  protected:
174 
176 
178 
180 
182 
183  private:
184 
185  };
186  }
187 }
188 
189 #endif // _RL_MDL_DYNAMIC_H_
rl::mdl::Dynamic::M
::rl::math::Matrix M
Definition: Dynamic.h:179
rl::mdl::Dynamic::forwardDynamics
void forwardDynamics()
Definition: Dynamic.cpp:215
rl::mdl::Dynamic::update
virtual void update()
Definition: Dynamic.cpp:379
rl::mdl::Dynamic::getOperationalMassMatrixInverse
const ::rl::math::Matrix & getOperationalMassMatrixInverse() const
Definition: Dynamic.cpp:258
rl::mdl::Dynamic::Dynamic
Dynamic()
Definition: Dynamic.cpp:45
rl::mdl::Dynamic::setWorldGravity
void setWorldGravity(const ::rl::math::Real &x, const ::rl::math::Real &y, const ::rl::math::Real &z)
Definition: Dynamic.cpp:367
rl::mdl::Dynamic::getGravity
const ::rl::math::Vector & getGravity() const
Definition: Dynamic.cpp:240
rl::mdl::Kinematic
Definition: Kinematic.h:39
rl::mdl::Dynamic::calculateCentrifugalCoriolis
void calculateCentrifugalCoriolis()
Definition: Dynamic.cpp:60
rl::mdl::Dynamic::calculateOperationalMassMatrixInverse
void calculateOperationalMassMatrixInverse()
Definition: Dynamic.cpp:173
rl::mdl::Kinematic::J
::rl::math::Matrix J
Definition: Kinematic.h:155
rl::mdl::Dynamic::getCentrifugalCoriolis
const ::rl::math::Vector & getCentrifugalCoriolis() const
Definition: Dynamic.cpp:234
rl::mdl::Dynamic::getMassMatrix
const ::rl::math::Matrix & getMassMatrix() const
Definition: Dynamic.cpp:252
rl::math::Matrix
::Eigen::Matrix< Real, ::Eigen::Dynamic, ::Eigen::Dynamic > Matrix
Definition: Matrix.h:41
rl::mdl::Dynamic::V
::rl::math::Vector V
Definition: Dynamic.h:181
rl::mdl::Dynamic::getMassMatrixInverse
const ::rl::math::Matrix & getMassMatrixInverse() const
Definition: Dynamic.cpp:246
rl::mdl::Model
Definition: Model.h:50
rl::mdl::Dynamic::calculateMassMatrix
void calculateMassMatrix()
Definition: Dynamic.cpp:103
rl::mdl::Dynamic::inverseDynamics
void inverseDynamics()
Definition: Dynamic.cpp:276
rl::mdl::Dynamic::getWorldGravity
void getWorldGravity(::rl::math::Real &x, ::rl::math::Real &y, ::rl::math::Real &z) const
Definition: Dynamic.cpp:264
rl::mdl::Dynamic::G
::rl::math::Vector G
Definition: Dynamic.h:173
rl::mdl::Dynamic
Definition: Dynamic.h:37
rl::mdl::Dynamic::clone
Model * clone() const
Definition: Dynamic.cpp:185
rl::mdl::Dynamic::eulerCauchy
void eulerCauchy(const ::rl::math::Real &dt)
Integrate with Euler-Cauchy.
Definition: Dynamic.cpp:191
rl::mdl::Dynamic::calculateGravity
void calculateGravity()
Definition: Dynamic.cpp:84
rl::math::Vector
::Eigen::Matrix< Real, ::Eigen::Dynamic, 1 > Vector
Definition: Vector.h:41
rl::mdl::Dynamic::~Dynamic
virtual ~Dynamic()
Definition: Dynamic.cpp:55
rl::mdl::Dynamic::rungeKuttaNystrom
void rungeKuttaNystrom(const ::rl::math::Real &dt)
Integrate with Runge-Kutta-Nystrom.
Definition: Dynamic.cpp:299
rl::math::Real
double Real
Definition: Real.h:34
rl::mdl::Dynamic::calculateMassMatrixInverse
void calculateMassMatrixInverse()
Definition: Dynamic.cpp:138
rl::mdl::Dynamic::invM
::rl::math::Matrix invM
Definition: Dynamic.h:175
rl::mdl::Dynamic::invMx
::rl::math::Matrix invMx
Definition: Dynamic.h:177
rl::mdl::Dynamic::inverseForce
void inverseForce()
Definition: Dynamic.cpp:290
Kinematic.h
rl
Definition: Ati.cpp:35