YARP
Yet Another Robot Platform
Navigation2D_nwc_yarp_iMap2D.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: LGPL-2.1-or-later
4 */
5
8#include <yarp/os/Log.h>
10#include <yarp/os/LogStream.h>
11#include <mutex>
12#include <cmath>
13
16using namespace yarp::dev;
17using namespace yarp::dev::Nav2D;
18using namespace yarp::os;
19using namespace yarp::sig;
20
21namespace {
22YARP_LOG_COMPONENT(NAVIGATION2D_NWC, "yarp.device.navigation2D_nwc_yarp")
23}
24
25//------------------------------------------------------------------------------------------------------------------------------
26
28{
29 std::lock_guard <std::mutex> lg(m_mutex);
30 return m_map_RPC.store_map_RPC(map);
31}
32
33bool Navigation2D_nwc_yarp::get_map(std::string map_name, MapGrid2D& map)
34{
35 std::lock_guard <std::mutex> lg(m_mutex);
36 auto ret = m_map_RPC.get_map_RPC(map_name);
37 if (!ret.retval)
38 {
39 yCError(NAVIGATION2D_NWC, "Unable to get_map");
40 return false;
41 }
42 map = ret.themap;
43 return true;
44}
45
47{
48 std::lock_guard <std::mutex> lg(m_mutex);
50}
51
52bool Navigation2D_nwc_yarp::get_map_names(std::vector<std::string>& map_names)
53{
54 std::lock_guard <std::mutex> lg(m_mutex);
56 if (!ret.retval)
57 {
58 yCError(NAVIGATION2D_NWC, "Unable to get_map_names");
59 return false;
60 }
61 map_names = ret.map_names;
62 return true;
63}
64
65bool Navigation2D_nwc_yarp::remove_map(std::string map_name)
66{
67 std::lock_guard <std::mutex> lg(m_mutex);
68 return m_map_RPC.remove_map_RPC(map_name);
69}
70
71bool Navigation2D_nwc_yarp::storeLocation(std::string location_name, Map2DLocation loc)
72{
73 std::lock_guard <std::mutex> lg(m_mutex);
74 return m_map_RPC.store_location_RPC(location_name, loc);
75}
76
77bool Navigation2D_nwc_yarp::storeArea(std::string area_name, Map2DArea area)
78{
79 std::lock_guard <std::mutex> lg(m_mutex);
80 return m_map_RPC.store_area_RPC(area_name, area);
81}
82
83bool Navigation2D_nwc_yarp::storePath(std::string path_name, Map2DPath path)
84{
85 std::lock_guard <std::mutex> lg(m_mutex);
86 return m_map_RPC.store_path_RPC(path_name, path);
87}
88
89bool Navigation2D_nwc_yarp::getLocationsList(std::vector<std::string>& locations)
90{
91 std::lock_guard <std::mutex> lg(m_mutex);
93 if (!ret.retval)
94 {
95 yCError(NAVIGATION2D_NWC, "Unable to getLocationsList");
96 return false;
97 }
98 locations = ret.locations;
99 return true;
100}
101
102bool Navigation2D_nwc_yarp::getAreasList(std::vector<std::string>& areas)
103{
104 std::lock_guard <std::mutex> lg(m_mutex);
106 if (!ret.retval)
107 {
108 yCError(NAVIGATION2D_NWC, "Unable to getAreasList");
109 return false;
110 }
111 areas = ret.areas;
112 return true;
113}
114
115bool Navigation2D_nwc_yarp::getPathsList(std::vector<std::string>& paths)
116{
117 std::lock_guard <std::mutex> lg(m_mutex);
119 if (!ret.retval)
120 {
121 yCError(NAVIGATION2D_NWC, "Unable to getPathsList");
122 return false;
123 }
124 paths = ret.paths;
125 return true;
126}
127
128bool Navigation2D_nwc_yarp::getAllLocations(std::vector<yarp::dev::Nav2D::Map2DLocation>& locations)
129{
130 std::lock_guard <std::mutex> lg(m_mutex);
132 if (!ret.retval)
133 {
134 yCError(NAVIGATION2D_NWC, "Unable to getAllLocations");
135 return false;
136 }
137 locations = ret.locations;
138 return true;
139}
140
141bool Navigation2D_nwc_yarp::getAllAreas(std::vector<yarp::dev::Nav2D::Map2DArea>& areas)
142{
143 std::lock_guard <std::mutex> lg(m_mutex);
145 if (!ret.retval)
146 {
147 yCError(NAVIGATION2D_NWC, "Unable to getAllAreas");
148 return false;
149 }
150 areas = ret.areas;
151 return true;
152}
153
154bool Navigation2D_nwc_yarp::getAllPaths(std::vector<yarp::dev::Nav2D::Map2DPath>& paths)
155{
156 std::lock_guard <std::mutex> lg(m_mutex);
158 if (!ret.retval)
159 {
160 yCError(NAVIGATION2D_NWC, "Unable to getAllPaths");
161 return false;
162 }
163 paths = ret.paths;
164 return true;
165}
166
167bool Navigation2D_nwc_yarp::getLocation(std::string location_name, Map2DLocation& loc)
168{
169 std::lock_guard <std::mutex> lg(m_mutex);
170 auto ret = m_map_RPC.get_location_RPC(location_name);
171 if (!ret.retval)
172 {
173 yCError(NAVIGATION2D_NWC, "Unable to getLocation");
174 return false;
175 }
176 loc = ret.loc;
177 return true;
178}
179
180bool Navigation2D_nwc_yarp::getArea(std::string area_name, Map2DArea& area)
181{
182 std::lock_guard <std::mutex> lg(m_mutex);
183 auto ret = m_map_RPC.get_area_RPC(area_name);
184 if (!ret.retval)
185 {
186 yCError(NAVIGATION2D_NWC, "Unable to getArea");
187 return false;
188 }
189 area = ret.area;
190 return true;
191}
192
193bool Navigation2D_nwc_yarp::getPath(std::string path_name, Map2DPath& path)
194{
195 std::lock_guard <std::mutex> lg(m_mutex);
196 auto ret = m_map_RPC.get_path_RPC(path_name);
197 if (!ret.retval)
198 {
199 yCError(NAVIGATION2D_NWC, "Unable to getPath");
200 return false;
201 }
202 path = ret.path;
203 return true;
204}
205
206bool Navigation2D_nwc_yarp::deleteLocation(std::string location_name)
207{
208 std::lock_guard <std::mutex> lg(m_mutex);
209 return m_map_RPC.delete_location_RPC(location_name);
210}
211
212bool Navigation2D_nwc_yarp::renameLocation(std::string original_name, std::string new_name)
213{
214 std::lock_guard <std::mutex> lg(m_mutex);
215 return m_map_RPC.rename_location_RPC(original_name, new_name);
216}
217
218bool Navigation2D_nwc_yarp::deleteArea(std::string location_name)
219{
220 std::lock_guard <std::mutex> lg(m_mutex);
221 return m_map_RPC.delete_area_RPC(location_name);
222}
223
224bool Navigation2D_nwc_yarp::deletePath(std::string path_name)
225{
226 std::lock_guard <std::mutex> lg(m_mutex);
227 return m_map_RPC.delete_path_RPC(path_name);
228}
229
230bool Navigation2D_nwc_yarp::renameArea(std::string original_name, std::string new_name)
231{
232 std::lock_guard <std::mutex> lg(m_mutex);
233 return m_map_RPC.rename_area_RPC(original_name, new_name);
234}
235
236bool Navigation2D_nwc_yarp::renamePath(std::string original_name, std::string new_name)
237{
238 std::lock_guard <std::mutex> lg(m_mutex);
239 return m_map_RPC.rename_path_RPC(original_name, new_name);
240}
241
243{
244 std::lock_guard <std::mutex> lg(m_mutex);
246}
247
249{
250 std::lock_guard <std::mutex> lg(m_mutex);
252}
253
255{
256 std::lock_guard <std::mutex> lg(m_mutex);
258}
259
261{
262 std::lock_guard <std::mutex> lg(m_mutex);
264}
265
267{
268 std::lock_guard <std::mutex> lg(m_mutex);
270}
271
272bool Navigation2D_nwc_yarp::saveMapsCollection(std::string maps_collection)
273{
274 std::lock_guard <std::mutex> lg(m_mutex);
275 return m_map_RPC.save_maps_collection_RPC(maps_collection);
276}
277
278bool Navigation2D_nwc_yarp::loadMapsCollection(std::string maps_collection)
279{
280 std::lock_guard <std::mutex> lg(m_mutex);
281 return m_map_RPC.load_maps_collection_RPC(maps_collection);
282}
283
284bool Navigation2D_nwc_yarp::saveLocationsAndExtras(std::string locations_collection)
285{
286 std::lock_guard <std::mutex> lg(m_mutex);
287 return m_map_RPC.save_locations_and_extras_RPC(locations_collection);
288}
289
290bool Navigation2D_nwc_yarp::loadLocationsAndExtras(std::string locations_collection)
291{
292 std::lock_guard <std::mutex> lg(m_mutex);
293 return m_map_RPC.load_locations_and_extras_RPC(locations_collection);
294}
295
296bool Navigation2D_nwc_yarp::saveMapToDisk(std::string map_name, std::string file_name)
297{
298 std::lock_guard <std::mutex> lg(m_mutex);
299 return m_map_RPC.save_map_to_disk_RPC(map_name, file_name);
300}
301
302bool Navigation2D_nwc_yarp::loadMapFromDisk(std::string file_name)
303{
304 std::lock_guard <std::mutex> lg(m_mutex);
305 return m_map_RPC.load_map_from_disk_RPC(file_name);
306}
307
309{
310 std::lock_guard <std::mutex> lg(m_mutex);
312}
bool ret
virtual return_get_map_names get_map_names_RPC()
virtual bool rename_path_RPC(const std::string &original_name, const std::string &new_name)
virtual bool store_path_RPC(const std::string &path_name, const yarp::dev::Nav2D::Map2DPath &path)
virtual bool clear_all_areas_RPC()
virtual bool clear_all_paths_RPC()
virtual bool save_map_to_disk_RPC(const std::string &map_name, const std::string &file_name)
virtual bool store_map_RPC(const yarp::dev::Nav2D::MapGrid2D &themap)
virtual bool load_map_from_disk_RPC(const std::string &file_name)
virtual bool delete_location_RPC(const std::string &location_name)
virtual bool clear_all_maps_temporary_flags_RPC()
virtual return_get_all_areas get_all_areas_RPC()
virtual bool load_locations_and_extras_RPC(const std::string &locations_collection_file)
virtual bool clear_map_temporary_flags_RPC(const std::string &map_name)
virtual return_get_location get_location_RPC(const std::string &location_name)
virtual bool load_maps_collection_RPC(const std::string &maps_collection_file)
virtual bool delete_path_RPC(const std::string &path_name)
virtual return_get_areas_list get_areas_list_RPC()
virtual return_get_path get_path_RPC(const std::string &path_name)
virtual bool store_location_RPC(const std::string &location_name, const yarp::dev::Nav2D::Map2DLocation &loc)
virtual bool clear_all_maps_RPC()
virtual return_get_area get_area_RPC(const std::string &area_name)
virtual return_get_all_paths get_all_paths_RPC()
virtual return_get_map get_map_RPC(const std::string &map_name)
virtual return_get_paths_list get_paths_list_RPC()
virtual bool remove_map_RPC(const std::string &map_name)
virtual return_get_locations_list get_locations_list_RPC()
virtual bool rename_location_RPC(const std::string &original_name, const std::string &new_name)
virtual bool save_locations_and_extras_RPC(const std::string &locations_collection_file)
virtual return_get_all_locations get_all_locations_RPC()
virtual bool save_maps_collection_RPC(const std::string &maps_collection_file)
virtual bool rename_area_RPC(const std::string &original_name, const std::string &new_name)
virtual bool store_area_RPC(const std::string &area_name, const yarp::dev::Nav2D::Map2DArea &area)
virtual bool clear_all_locations_RPC()
virtual bool enable_maps_compression_RPC(const bool enable_compression)
virtual bool delete_area_RPC(const std::string &area_name)
bool getLocation(std::string location_name, yarp::dev::Nav2D::Map2DLocation &loc) override
Retrieves a location specified by the user in the world reference frame.
bool getPathsList(std::vector< std::string > &paths) override
Get a list of the names of all stored paths.
bool store_map(const yarp::dev::Nav2D::MapGrid2D &map) override
Stores a map into the map server.
bool storePath(std::string path_name, yarp::dev::Nav2D::Map2DPath path) override
Store a path.
bool loadLocationsAndExtras(std::string locations_collection_file) override
Load a collection of locations/areas/paths etc from disk.
bool renameLocation(std::string original_name, std::string new_name) override
Searches for a location and renames it.
bool loadMapsCollection(std::string maps_collection_file) override
Load a collection of maps from disk.
bool enableMapsCompression(bool enable) override
99999999999
bool getPath(std::string path_name, yarp::dev::Nav2D::Map2DPath &path) override
Retrieves a path.
bool remove_map(std::string map_name) override
Removes a map from the map server.
bool getAllLocations(std::vector< yarp::dev::Nav2D::Map2DLocation > &locations) override
Get a list of all stored locations.
bool getLocationsList(std::vector< std::string > &locations) override
Get a list of the names of all stored locations.
bool getAreasList(std::vector< std::string > &locations) override
Get a list of the names of all stored areas.
bool renameArea(std::string original_name, std::string new_name) override
Searches for an area and renames it.
bool storeLocation(std::string location_name, yarp::dev::Nav2D::Map2DLocation loc) override
Store a location specified by the user in the world reference frame.
bool get_map_names(std::vector< std::string > &map_names) override
Gets a list containing the names of all registered maps.
bool clearAllPaths() override
Delete all stored paths.
bool deletePath(std::string path_name) override
Delete a path.
bool getAllAreas(std::vector< yarp::dev::Nav2D::Map2DArea > &areas) override
Get a list of all stored areas.
bool renamePath(std::string original_name, std::string new_name) override
Searches for a path and renames it.
bool saveLocationsAndExtras(std::string locations_collection_file) override
Save a collection of locations/area/paths etc to disk.
bool clearMapTemporaryFlags(std::string map_name) override
Clear all temporary flags from a specific map.
bool getAllPaths(std::vector< yarp::dev::Nav2D::Map2DPath > &paths) override
Get a list of all stored paths.
bool deleteLocation(std::string location_name) override
Delete a location.
bool saveMapsCollection(std::string maps_collection_file) override
Save a collection of maps to disk.
bool loadMapFromDisk(std::string file_name) override
Load a map from disk.
bool deleteArea(std::string location_name) override
Delete an area.
bool saveMapToDisk(std::string map_name, std::string file_name) override
Save a map to disk.
bool storeArea(std::string location_name, yarp::dev::Nav2D::Map2DArea area) override
Store an area.
bool clearAllAreas() override
Delete all stored areas.
bool clearAllLocations() override
Delete all stored locations.
bool clearAllMapsTemporaryFlags() override
Clear all temporary flags from all stored maps.
bool get_map(std::string map_name, yarp::dev::Nav2D::MapGrid2D &map) override
Gets a map from the map server.
bool getArea(std::string location_name, yarp::dev::Nav2D::Map2DArea &area) override
Retrieves an area.
bool clearAllMaps() override
Removes all the registered maps from the server.
#define yCError(component,...)
Definition: LogComponent.h:213
#define YARP_LOG_COMPONENT(name,...)
Definition: LogComponent.h:76
For streams capable of holding different kinds of content, check what they actually have.
An interface to the operating system, including Port based communication.