ugv_random_walk.h
Go to the documentation of this file.
1 #ifndef UGV_RANDOM_WALK_H
2 #define UGV_RANDOM_WALK_H
3 
4 #include <random_numbers/random_numbers.h>
5 #include "cpswarm_msgs/ClosestBound.h"
6 #include "cpswarm_msgs/GetSector.h"
7 #include "position.h"
8 
9 using namespace std;
10 using namespace ros;
11 
15 typedef enum {
20 
25 {
26 public:
30  ugv_random_walk ();
31 
35  ~ugv_random_walk ();
36 
41  behavior_state_t step();
42 
43 private:
48  bool new_direction ();
49 
54  bool reflect ();
55 
60  geometry_msgs::Pose select_goal ();
61 
65  ServiceClient bound_client;
66 
70  ServiceClient clear_sector_client;
71 
75  position pos;
76 
80  double step_size;
81 
85  double direction;
86 
90  random_numbers::RandomNumberGenerator* rng;
91 };
92 
93 #endif // UGV_RANDOM_WALK_H
94 
behavior_state_t
An enumeration for the state of the behavior algorithm.
random_numbers::RandomNumberGenerator * rng
The random number generator used for selecting a random direction.
An implementation of the coverage class that allows to cover a given area with the random walk algori...
ServiceClient bound_client
Service client for determining closest mission area boundary to the current UGV position.
double step_size
The distance that the UGV travels in one step.
position pos
A helper object for position related tasks.
ServiceClient clear_sector_client
Service client for determining the sector clear of obstacles.
double direction
The direction in which the UGV is traveling. It is measured in radian, clockwise starting from north...


ugv_random_walk
Author(s): Micha Sende
autogenerated on Sun Dec 29 2019 10:26:23