visp
Task.hpp
Go to the documentation of this file.
1 /* Generated from orogen/lib/orogen/templates/tasks/Task.hpp */
2 
3 
4 #ifndef VISP_TASK_TASK_HPP
5 #define VISP_TASK_TASK_HPP
6 
7 #include "visp/TaskBase.hpp"
8 #include <visp/vpCameraParameters.h>
9 #include <visp/vpServo.h>
10 #include <visp/vpPoint.h>
11 #include <visp/vpPose.h>
12 #include <visp/vpFeaturePoint.h>
13 #include <visp/vpFeatureDepth.h>
14 #include <visp/vpFeatureThetaU.h>
15 #include <visp/vpFeatureTranslation.h>
16 #include <apriltags/apriltagsTypes.hpp>
17 
18 
19 namespace visp{
20 
35  typedef apriltags::VisualFeaturePoint Points;
36  typedef std::vector<apriltags::VisualFeaturePoint> PointsVector;
37 
38  class Task : public TaskBase
39  {
40  friend class TaskBase;
41  protected:
42 
45  base::LinearAngular6DCommand setpoint;
46 
47  vpCameraParameters cam_cal;
48  vpServo task;
49  vpPoint point[4];
50  vpPoint P;
51 
52  vpHomogeneousMatrix cMb; //body pose in the camera frame
53 
54  //features
55  vpFeatureDepth depth;
56  vpFeaturePoint p;
57  vpFeaturePoint pd;
58  vpFeatureThetaU tu;
59  vpFeatureTranslation t;
60  double Zd;
61 
62  //target parameters
63  std::string desired_target;
65  std::vector<visp::targetObjectParameters> target_list;
66 
67  vpMatrix eJe;
68  vpVelocityTwistMatrix cVb; //transform the velocities of the camera to the body frame
69 
70 
75  void updateFeaturesHVS(Points const &corners, vpHomogeneousMatrix const &cdMo);
76 
82  vpHomogeneousMatrix updateDesiredPose(base::LinearAngular6DCommand setpoint);
83 
89  void setGain(double gain, visp::adaptiveGains const &adaptive_gains, bool use_adaptive);
90 
94  void writeVelocities(vpColVector const &v);
95 
100  base::samples::RigidBodyState convertToRbs(vpHomogeneousMatrix pose) const;
101 
106  vpMatrix jacobianFromExpectedInputs(const visp::expectedInputs &expected_inputs) const;
107 
108 
114  bool readSetpoint(base::LinearAngular6DCommand& setpoint);
115 
124  bool readCorners(Points& corners, std::string const &desired_target);
125 
130  void updateTargetParameters(std::string const &desired_target);
131 
136  void setObjectSize(double object_width, double object_height);
137 
141  virtual bool setDesired_target(std::string const &value);
142 
143  public:
148  Task(std::string const& name = "visp::Task");
149 
155  Task(std::string const& name, RTT::ExecutionEngine* engine);
156 
159  ~Task();
160 
175  bool configureHook();
176 
182  bool startHook();
183 
198  void updateHook();
199 
206  void errorHook();
207 
211  void stopHook();
212 
217  void cleanupHook();
218  };
219 }
220 
221 #endif
222 
vpMatrix eJe
Definition: Task.hpp:67
Definition: vispTypes.hpp:61
Definition: Task.hpp:19
bool readCorners(Points &corners, std::string const &desired_target)
Definition: Task.cpp:375
vpFeaturePoint pd
Definition: Task.hpp:57
void updateFeaturesHVS(Points const &corners, vpHomogeneousMatrix const &cdMo)
Definition: Task.cpp:178
base::LinearAngular6DCommand setpoint
Definition: Task.hpp:45
bool startHook()
Definition: Task.cpp:99
std::vector< visp::targetObjectParameters > target_list
Definition: Task.hpp:65
apriltags::VisualFeaturePoint Points
Definition: Task.hpp:35
The task context provides and requires services. It uses an ExecutionEngine to perform its functions...
Definition: Task.hpp:38
void updateHook()
Definition: Task.cpp:106
visp::expectedInputs expected_inputs
Definition: Task.hpp:43
void setGain(double gain, visp::adaptiveGains const &adaptive_gains, bool use_adaptive)
Definition: Task.cpp:294
~Task()
Definition: Task.cpp:20
bool readSetpoint(base::LinearAngular6DCommand &setpoint)
Definition: Task.cpp:367
base::samples::RigidBodyState convertToRbs(vpHomogeneousMatrix pose) const
Definition: Task.cpp:334
bool configureHook()
The following lines are template definitions for the various state machine.
Definition: Task.cpp:28
vpFeaturePoint p
Definition: Task.hpp:56
vpPoint P
Definition: Task.hpp:50
visp::controllerState ctrl_state
Definition: Task.hpp:44
void stopHook()
Definition: Task.cpp:166
std::string desired_target
Definition: Task.hpp:63
vpHomogeneousMatrix updateDesiredPose(base::LinearAngular6DCommand setpoint)
Definition: Task.cpp:257
Definition: vispTypes.hpp:26
vpMatrix jacobianFromExpectedInputs(const visp::expectedInputs &expected_inputs) const
Definition: Task.cpp:350
Task(std::string const &name="visp::Task")
Definition: Task.cpp:10
double Zd
Definition: Task.hpp:60
vpVelocityTwistMatrix cVb
Definition: Task.hpp:68
Definition: vispTypes.hpp:36
void cleanupHook()
Definition: Task.cpp:171
vpFeatureThetaU tu
Definition: Task.hpp:58
void errorHook()
Definition: Task.cpp:161
vpFeatureTranslation t
Definition: Task.hpp:59
vpCameraParameters cam_cal
Definition: Task.hpp:47
void updateTargetParameters(std::string const &desired_target)
Definition: Task.cpp:402
vpServo task
Definition: Task.hpp:48
std::vector< apriltags::VisualFeaturePoint > PointsVector
Definition: Task.hpp:36
void setObjectSize(double object_width, double object_height)
Definition: Task.cpp:419
virtual bool setDesired_target(std::string const &value)
Definition: Task.cpp:430
vpHomogeneousMatrix cMb
Definition: Task.hpp:52
friend class TaskBase
Definition: Task.hpp:40
double rotation_around_z
Definition: Task.hpp:64
void writeVelocities(vpColVector const &v)
Definition: Task.cpp:310
Definition: vispTypes.hpp:52
vpFeatureDepth depth
Definition: Task.hpp:55
vpPoint point[4]
Definition: Task.hpp:49