38 #include <mrpt/version.h> 39 #if MRPT_VERSION >= 0x199 40 #include <mrpt/config/CConfigFile.h> 41 using namespace mrpt::config;
47 #include <mrpt/maps/COccupancyGridMap2D.h> 48 #include <mrpt/maps/CMultiMetricMap.h> 60 ROS_INFO(
"debug: %s", (debug_ ?
"true" :
"false"));
62 ROS_INFO(
"ini_file: %s", ini_file.c_str());
63 n_param_.
param<std::string>(
"map_file", map_file,
"map.simplemap");
64 ROS_INFO(
"map_file: %s", map_file.c_str());
66 "frame_id",
resp_ros_.map.header.frame_id,
"map");
67 ROS_INFO(
"frame_id: %s",
resp_ros_.map.header.frame_id.c_str());
69 ROS_INFO(
"frequency: %f", frequency_);
73 n_.
advertise<nav_msgs::MapMetaData>(
"map_metadata", 1,
true);
79 ROS_ERROR(
"ini_file: %s does not exit", ini_file.c_str());
83 ROS_ERROR(
"map_file: %s does not exit", map_file.c_str());
90 *
metric_map_, config_file, map_file,
"metricMap", debug_);
92 #if MRPT_VERSION >= 0x199 101 "gridMap[0]: %i x %i @ %4.3fm/p, %4.3f, %4.3f, %4.3f, %4.3f\n",
102 grid.getSizeX(), grid.getSizeY(), grid.getResolution(),
103 grid.getXMin(), grid.getYMin(), grid.getXMax(), grid.getYMax());
108 "msg: %i x %i @ %4.3fm/p, %4.3f, %4.3f, %4.3f, %4.3f\n",
119 nav_msgs::GetMap::Request& req, nav_msgs::GetMap::Response&
res)
121 ROS_INFO(
"mapCallback: service requested!\n");
159 int main(
int argc,
char** argv)
162 ros::init(argc, argv,
"mrpt_map_server");
void publish(const boost::shared_ptr< M > &message) const
void setFileName(const std::string &fil_path)
bool BASE_IMPEXP fileExists(const std::string &fileName)
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
nav_msgs::GetMap::Response resp_ros_
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
ROSCPP_DECL void spin(Spinner &spinner)
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val) const
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
boost::shared_ptr< CMultiMetricMap > metric_map_
void convert(const ros::Time &src, mrpt::system::TTimeStamp &des)
MapServer(ros::NodeHandle &n)
static const bool loadMap(CMultiMetricMap &_metric_map, const CConfigFile &_config_file, const std::string &_map_file="map.simplemap", const std::string &_section_name="metricMap", bool _debug=false)
ros::ServiceServer service_map_
uint32_t getNumSubscribers() const
ros::Publisher pub_map_ros_
int main(int argc, char **argv)
#define ASSERT_FILE_EXISTS_(FIL)
ROSCPP_DECL void spinOnce()
bool mapCallback(nav_msgs::GetMap::Request &req, nav_msgs::GetMap::Response &res)
unsigned long loop_count_
ros::Publisher pub_metadata_