mars
Joints.hpp
Go to the documentation of this file.
1 /* Generated from orogen/lib/orogen/templates/tasks/Task.hpp */
2 
3 #ifndef SIMULATION_JOINTS_TASK_HPP
4 #define SIMULATION_JOINTS_TASK_HPP
5 
6 #include "mars/JointsBase.hpp"
7 #include <base/commands/Joints.hpp>
8 
9 namespace mars {
10 
25  class Joints : public JointsBase
26  {
27  friend class JointsBase;
28  protected:
30  {
32  : mars_id(-1), scaling(1.0), offset(0.0), absolutePosition(0), lastPosition(0), gotPosition(false) {}
33 
34  double fromMars( double v )
35  {
36  return v * scaling + offset;
37  }
38  double toMars( double v )
39  {
40  return (v - offset) / scaling;
41  }
42 
43  double updateAbsolutePosition( double v )
44  {
45  if(!gotPosition)
46  {
47  gotPosition = true;
48  absolutePosition = v;
49  lastPosition = v;
50  }
51 
52  double diff = v- lastPosition;
53 
54  if(diff > M_PI)
55  {
56  diff -= 2* M_PI;
57  }
58  if(diff < -M_PI)
59  {
60  diff += 2* M_PI;
61  }
62 
63  absolutePosition += diff;
64 
65  lastPosition = v;
66 
67  return absolutePosition;
68  }
70  {
71  return absolutePosition;
72  }
73 
74  int mars_id;
75  std::string marsName;
76  std::string externalName;
78  double scaling;
79  double offset;
81  double lastPosition;
83  };
84  std::vector<JointConversion> mars_ids;
86  std::vector<JointTypes> joint_types;
87 
88  base::samples::Joints status;
90  base::commands::Joints cmd;
91 
92  std::vector< mars::ParallelKinematic > parallel_kinematics;
94 
95  public:
96  virtual void init();
97  virtual void update(double delta_t);
98 
103  Joints(std::string const& name = "mars::Joints");
104 
110  Joints(std::string const& name, RTT::ExecutionEngine* engine);
111 
114  ~Joints();
115 
130  bool configureHook();
131 
137  bool startHook();
138 
153  void updateHook();
154 
161  void errorHook();
162 
166  void stopHook();
167 
172  void cleanupHook();
173  };
174 }
175 
176 #endif
177 
std::string marsName
Definition: Joints.hpp:75
JointTypes
Definition: Joints.hpp:85
std::string externalName
Definition: Joints.hpp:76
double fromMars(double v)
Definition: Joints.hpp:34
JointConversion()
Definition: Joints.hpp:31
int mars_id
Definition: Joints.hpp:74
double getAbsolutePosition()
Definition: Joints.hpp:69
bool configureHook()
The following lines are template definitions for the various state machine.
Definition: Joints.cpp:173
virtual void update(double delta_t)
Definition: Joints.cpp:52
Definition: Joints.hpp:85
double absolutePosition
Definition: Joints.hpp:80
double updateAbsolutePosition(double v)
Definition: Joints.hpp:43
Definition: Joints.hpp:85
base::commands::Joints cmd
Definition: Joints.hpp:90
Definition: jointTypes.hpp:20
void errorHook()
Definition: Joints.cpp:293
void stopHook()
Definition: Joints.cpp:297
double scaling
Scale factor from Mars to Module.
Definition: Joints.hpp:78
mars::JointPositionAndSpeedControlMode controlMode
Definition: Joints.hpp:93
Joints(std::string const &name="mars::Joints")
Definition: Joints.cpp:14
double offset
Definition: Joints.hpp:79
std::vector< mars::ParallelKinematic > parallel_kinematics
Definition: Joints.hpp:92
std::vector< JointConversion > mars_ids
Definition: Joints.hpp:84
Definition: jointTypes.hpp:9
~Joints()
Definition: Joints.cpp:25
double toMars(double v)
Definition: Joints.hpp:38
Definition: Joints.hpp:29
bool startHook()
Definition: Joints.cpp:283
void updateHook()
Definition: Joints.cpp:289
mars::JointCurrents currents
Definition: Joints.hpp:89
bool gotPosition
Definition: Joints.hpp:82
JointPositionAndSpeedControlMode
Definition: jointTypes.hpp:12
The task context provides and requires services. It uses an ExecutionEngine to perform its functions...
Definition: Joints.hpp:25
double lastPosition
Definition: Joints.hpp:81
std::vector< JointTypes > joint_types
Definition: Joints.hpp:86
void cleanupHook()
Definition: Joints.cpp:301
friend class JointsBase
Definition: Joints.hpp:27
virtual void init()
Definition: Joints.cpp:29
base::samples::Joints status
Definition: Joints.hpp:88