mars
Sonar.hpp
Go to the documentation of this file.
1 /* Generated from orogen/lib/orogen/templates/tasks/Task.hpp */
2 
3 #ifndef SIMULATION_SONAR_TASK_HPP
4 #define SIMULATION_SONAR_TASK_HPP
5 
6 #include "mars/SonarBase.hpp"
7 
8 namespace mars
9 {
10  //sonar configuration should be implemented in mars
11  struct SonarConfig
12  {
14  {
15  motor_speed = 1;
16  speed_of_sound = 1500;
17  distance_resolution = 0.1;
18  min_distance = 1.0;
19  max_distance = 50;
20  beamwidth_vertical = 35.0/180*M_PI;
21  beamwidth_horizontal = 6.0/180*M_PI;
22  start_angle = M_PI;
23  end_angle = -M_PI;
24 
26  default_value = 0;
27 
28  ping_pong_mode = false;
29  };
30 
31  float motor_speed;
34  float min_distance;
35  float max_distance;
38 
39  float start_angle;
40  float end_angle;
41 
43 
44  unsigned char default_response_value;
45  unsigned char default_value;
46  };
47 
48  class Sonar : public SonarBase
49  {
50  friend class SonarBase;
51  protected:
52  base::samples::SonarBeam sonar_beam;
53  unsigned long node_id;
56  pthread_mutex_t* sonar_update_mutex;
57 
58  void update( double time );
59 
60 
61  public:
62  Sonar(std::string const& name = "mars::Sonar");
63  Sonar(std::string const& name, RTT::ExecutionEngine* engine);
64 
65  double getSonarBeamBearing(unsigned long sonar_mounting_id);
66  void updateTopSonarPosition();
67 
68  bool getSonarData(base::samples::SonarBeam &sonar_beam);
69 
70 
71  /* Dynamic Property setter of left_limit
72  */
73  virtual bool setLeft_limit(double value);
74 
75  /* Dynamic Property setter of maximum_distance
76  */
77  virtual bool setMaximum_distance(double value);
78 
79  /* Dynamic Property setter of ping_pong_mode
80  */
81  virtual bool setPing_pong_mode(bool value);
82 
83  /* Dynamic Property setter of resolution
84  */
85  virtual bool setResolution(double value);
86 
87  /* Dynamic Property setter of right_limit
88  */
89  virtual bool setRight_limit(double value);
90  ~Sonar();
91 
105  // bool configureHook();
106 
112  bool startHook();
113 
128  void updateHook();
129 
136  // void errorHook();
137 
141  // void stopHook();
142 
147  // void cleanupHook();
148  };
149 }
150 
151 #endif
152 
bool ping_pong_mode
Definition: Sonar.hpp:42
float beamwidth_vertical
Definition: Sonar.hpp:36
SonarConfig()
Definition: Sonar.hpp:13
unsigned long node_id
Definition: Sonar.hpp:53
float end_angle
Definition: Sonar.hpp:40
float min_distance
Definition: Sonar.hpp:34
float beamwidth_horizontal
Definition: Sonar.hpp:37
base::samples::SonarBeam sonar_beam
Definition: Sonar.hpp:52
unsigned char default_response_value
Definition: Sonar.hpp:44
Definition: Sonar.hpp:48
float start_angle
Definition: Sonar.hpp:39
float max_distance
Definition: Sonar.hpp:35
mars::SonarConfig * sonar_config
Definition: Sonar.hpp:54
pthread_mutex_t * sonar_update_mutex
Definition: Sonar.hpp:56
Definition: jointTypes.hpp:9
float motor_speed
Definition: Sonar.hpp:29
unsigned char default_value
Definition: Sonar.hpp:45
float speed_of_sound
Definition: Sonar.hpp:32
Definition: Sonar.hpp:11
int sonar_motor_direction
Definition: Sonar.hpp:55
float distance_resolution
Definition: Sonar.hpp:33