cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
osaODEManipulator.h
Go to the documentation of this file.
1 /*
2 
3  Author(s): Simon Leonard
4  Created on: Nov 11 2009
5 
6  (C) Copyright 2008 Johns Hopkins University (JHU), All Rights
7  Reserved.
8 
9 --- begin cisst license - do not edit ---
10 
11 This software is provided "as is" under an open source license, with
12 no warranty. The complete license can be found in license.txt and
13 http://www.cisst.org/cisst/license.txt.
14 
15 --- end cisst license ---
16 */
17 
18 #ifndef _osaODEManipulator_h
19 #define _osaODEManipulator_h
20 
21 #include <vector>
22 
24 
29 
31 
33 
34  private:
35 
37  osaODEWorld* odeworld;
38 
40  std::vector< osg::ref_ptr<osaODEBody> > odebodies;
41 
43  std::vector<osaODEJoint*> odejoints;
44 
46  std::vector<osaODEServoMotor*> odeservos;
47 
50 
51  void CreateManipulator( const std::vector<std::string>& models,
52  const std::string& basemodel );
53 
54  void CreateManipulator( const std::vector<std::string>& models );
55 
56  protected:
57 
59  osaODEWorld* GetWorld() const{ return odeworld; }
60  dWorldID GetWorldID() const { return odeworld->GetWorldID(); }
61 
63  void Insert( osaODEBody* body );
64 
66  void Insert( osaODEJoint* joint );
67 
69  void Insert( osaODEServoMotor* servo );
70 
71  public:
72  /*
73  osaODEManipulator( const std::string& devname,
74  double period,
75  devManipulator::State state,
76  osaCPUMask mask,
77  osaODEWorld* world,
78  devManipulator::Mode mode );
79  */
81 
92  osaODEManipulator( const std::vector<std::string>& models,
93  osaODEWorld* world,
94  const vctFrame4x4<double>& Rtw0,
95  const std::string& robotfilename,
96  const std::string& basemodel,
97  const vctDynamicVector<double>& qinit );
98 
100 
111  osaODEManipulator( const std::vector<std::string>& models,
112  osaODEWorld* world,
113  const vctFrm3& Rtw0,
114  const std::string& robotfilename,
115  const std::string& basemodel,
116  const vctDynamicVector<double>& qinit );
117 
119 
130  osaODEManipulator( const std::vector<std::string>& models,
131  osaODEWorld* world,
132  const vctFrame4x4<double>& Rtw0,
133  const std::string& robotfilename,
134  osaODEBody* base,
135  const vctDynamicVector<double>& qinit );
137 
148  osaODEManipulator( const std::vector<std::string>& models,
149  osaODEWorld* world,
150  const vctFrm3& Rtw0,
151  const std::string& robotfilename,
152  osaODEBody* base,
153  const vctDynamicVector<double>& qinit );
154 
156 
158 
163  virtual
166 
168 
173  virtual
175  GetVelocities( vctDynamicVector<double>& qd ) const ;
176 
178 
185  virtual
188 
190 
197  virtual
199  SetVelocities( const vctDynamicVector<double>& qds );
200 
202 
208  virtual
210  SetForcesTorques( const vctDynamicVector<double>& ft);
211 
212 #ifndef SWIG
213 
215  typedef std::vector< osaODEBody::State > State;
216 
218 
227  virtual osaODEManipulator::State GetState( ) const;
228 
230 
238  virtual void SetState( const osaODEManipulator::State& state );
239 
240 #endif
241 
243 
247  dBodyID GetBaseID() const;
248 
249  virtual
251  ForwardKinematics( const vctDynamicVector<double>& q, int N=-1 ) const;
252 
253  void
255  vctFrm3& Rt, int N=-1 ) const;
256 
258 
264  virtual void Attach( osaOSGManipulator* osgtool );
265 
267  void Disable();
268 
270  void Enable();
271 
272 };
273 
274 #endif
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
Definition: osaODEManipulator.h:32
std::vector< osaODEBody::State > State
The ODE state of the manipulator.
Definition: osaODEManipulator.h:215
Errno
Definition: robManipulator.h:43
Definition: osaODEJoint.h:27
virtual vctFrame4x4< double > ForwardKinematics(const vctDynamicVector< double > &q, int N=-1) const
Evaluate the forward kinematics.
Definition: osaOSGManipulator.h:26
virtual void Attach(osaOSGManipulator *CMN_UNUSED(tool))
Definition: osaOSGManipulator.h:120
virtual osaOSGManipulator::Errno GetPositions(vctDynamicVector< double > &q) const
Return the joints positions.
Definition: osaODEWorld.h:58
osaODEWorld * GetWorld() const
Return the world ID.
Definition: osaODEManipulator.h:59
Definition: osaODEBody.h:34
~osaODEManipulator()
Definition: osaODEManipulator.h:155
dWorldID GetWorldID() const
Definition: osaODEManipulator.h:60
virtual osaOSGManipulator::Errno SetPositions(const vctDynamicVector< double > &q)
Set the joint position.
Definition: osaODEServoMotor.h:10