navigation.hpp
1 #ifndef NOOS_CLOUD_NAVIGATION
2 #define NOOS_CLOUD_NAVIGATION
3 /*
4  * LICENSE HERE
5  */
6 #include "includes.ihh"
7 #include <noos/objects.hpp>
8 #include <noos/cloud/asio/http_request.hpp>
9 #include <noos/cloud/cloud_base.hpp>
10 
11 namespace noos {
12 namespace cloud {
13 
20 enum class slam_type
21 {
22  not_selected = 0,
23  icp,
24  rbpf
25 };
26 
34 struct icp_slam
35 : public http_request,
36  public cloud_base<noos::object::pose<float>>
37 {
38  using callback = std::function<void(data_type)>;
39  static const std::string uri;
40 
50  icp_slam(const std::string map_name,
51  const std::string config_file_name,
52  const noos::object::laser laser_data);
53 
55 };
56 
64 struct rbpf_slam
65 : public http_request,
66  public cloud_base<noos::object::pose<float>>
67 {
68  using callback = std::function<void(data_type)>;
69  static const std::string uri;
70 
80  rbpf_slam(const std::string map_name,
81  const std::string config_file_name,
82  const noos::object::laser laser_data,
83  const noos::object::odometry & odometry);
84 
86 };
87 
95 struct delete_map
96 : public http_request,
97  public cloud_base<bool>
98 {
99  using callback = std::function<void(data_type)>;
100  static const std::string uri;
101 
104  delete_map(const std::string name);
105 };
106 
114 struct upload_map
115 : public http_request,
116  public cloud_base<bool>
117 {
118  using callback = std::function<void(data_type)>;
119  static const std::string uri;
120 
123  upload_map(const std::string name,
124  const noos::object::picture & image);
125 };
126 
135 : public http_request,
136  public cloud_base<bool>
137 {
138  using callback = std::function<void(data_type)>;
139  static const std::string uri;
140  static std::map<slam_type, std::string> config_type;
141 
142 
150  std::string name,
151  slam_type type);
152 };
153 
161 struct get_map
162 : public http_request,
163  public cloud_base<bool>
164 {
165  using callback = std::function<void(data_type)>;
166  static const std::string uri;
167  static std::map<slam_type, std::string> config_type;
168 
170  get_map(std::string map_name);
171 };
172 
181 : public http_request,
182  public cloud_base<std::deque<noos::object::point2d<float>>>
183 {
184  using callback = std::function<void(data_type)>;
185  static const std::string uri;
186 
193  const noos::object::pose2d<float> goal,
194  const float robot_radius,
195  const float resolution,
196  const std::string map_name);
197 };
198 }
199 }
200 #endif
nooser for the classes http_header &http_post used for cloud requests
Definition: http_request.hpp:20
send laser/pointcloud data to create a map
Definition: navigation.hpp:34
calculate a path between two points given
Definition: navigation.hpp:180
describes a laser scan data
Definition: laser.hpp:17
Definition: asio_handler.hpp:14
class which wraps around raw bytes of a picture
Definition: picture.hpp:17
cloud service base class
Definition: cloud_base.hpp:15
encapsulate point of 2 dimensions (x, y) with an angle
Definition: point.hpp:82
slam_type
class to clasify types of slam (icp or rbpf)
Definition: navigation.hpp:20
upload a config file with slam parameters to the platform
Definition: navigation.hpp:134
class which convert a file into a std::string
Definition: config_file.hpp:15
send laser/pointcloud data to create a map
Definition: navigation.hpp:64
delete a map saved in the platform
Definition: navigation.hpp:95
upload a map to the platform
Definition: navigation.hpp:114
describes the increment of the odometry
Definition: odometry.hpp:16
get the image of the map name asked for
Definition: navigation.hpp:161