cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
robModifiedHayati.h
Go to the documentation of this file.
1 /*
2 
3  Author(s): Simon Leonard, Min Yang Jung
4  Created on: April 29 2013
5 
6  (C) Copyright 2013 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 _robModifiedHayati_h
19 #define _robModifiedHayati_h
20 
21 #include <iostream>
22 
24 #include <cisstRobot/robExport.h>
25 
27 
35 
36  private:
37 
39  double beta; // rotation y
40  double alpha; // rotation x
41  double a; // translation x
42  double d; // translation z
43  double theta; // rotation z
44 
45  protected:
46 
48 
53  void ReadParameters( std::istream& is );
54 #if CISST_HAS_JSON
55  void ReadParameters(const Json::Value &config);
56 #endif
57 
59 
64  void WriteParameters( std::ostream& os ) const;
65 
66  public:
67 
69  robModifiedHayati(void);
70 
72 
80  robModifiedHayati(double beta,
81  double alpha,
82  double a,
83  double d,
84  double theta,
85  const robJoint& joint);
86 
89 
91 
96  vctFrame4x4<double> ForwardKinematics( double q ) const;
97 
99 
105  vctMatrixRotation3<double> Orientation( double q ) const;
106 
108 
116 
118  robKinematics* Clone(void) const;
119 
120  double GetRotationX(void) const { return alpha; }
121  double GetRotationY(void) const { return beta; }
122  double GetRotationZ(void) const { return theta; }
123  double GetTranslationX(void) const { return a; }
124  double GetTranslationZ(void) const { return d; }
125 
126  void SetRotationX( double x ) { alpha = x; }
127  void SetRotationY( double x ) { beta = x; }
128  void SetRotationZ( double x ) { theta = x; }
129  void SetTranslationX( double x ) { a = x; }
130  void SetTranslationZ( double x ) { d = x; }
131 
132  void PrintParams(void) const;
133 };
134 
135 #endif
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
void SetTranslationX(double x)
Definition: robModifiedHayati.h:129
double GetRotationZ(void) const
Definition: robModifiedHayati.h:122
virtual vctMatrixRotation3< double > Orientation(double q) const =0
Get the orientation of the link.
virtual vctFixedSizeVector< double, 3 > PStar() const =0
Return the position of the next (distal) link coordinate frame.
void SetTranslationZ(double x)
Definition: robModifiedHayati.h:130
double GetTranslationX(void) const
Definition: robModifiedHayati.h:123
virtual void ReadParameters(std::istream &is)=0
Read the parameters of the kinematics convention.
virtual vctFrame4x4< double > ForwardKinematics(double q) const =0
Get the position and orientation of the link.
double GetTranslationZ(void) const
Definition: robModifiedHayati.h:124
Hayati parameters of a coordinate frame.
Definition: robModifiedHayati.h:34
virtual robKinematics * Clone() const =0
Kinematics objects must be able to clone themselves.
double GetRotationX(void) const
Definition: robModifiedHayati.h:120
Definition: robKinematics.h:18
void SetRotationX(double x)
Definition: robModifiedHayati.h:126
void SetRotationY(double x)
Definition: robModifiedHayati.h:127
void SetRotationZ(double x)
Definition: robModifiedHayati.h:128
Joint types.
Definition: robJoint.h:35
double GetRotationY(void) const
Definition: robModifiedHayati.h:121
virtual void WriteParameters(std::ostream &os) const =0
Write the parameters of the kinematics convention.