2 #include <multipoint_navigation_receiver/obstacle_srv.h> 3 #include <nav_msgs/OccupancyGrid.h> 4 #include <boost/thread/thread.hpp> 8 multipoint_navigation_receiver::obstacle_srv::Response &res)
10 if (
mapdata.data.size() - 0 < 0.001)
16 std::vector<signed char> arr =
mapdata.data;
17 float x = req.positionx;
18 float y = req.positiony;
19 printf(
"positionx is %f and positiony is %f \n",x,y);
20 int pos = (int)((req.positiony -
mapdata.info.origin.position.y) * width * (1.00/
mapdata.info.resolution) + (req.positionx -
mapdata.info.origin.position.x) * (1.00/
mapdata.info.resolution));
21 int obstacle = (int)arr.at(pos);
22 printf(
"pos is %d and obstacle is %d\n",pos,obstacle);
23 res.obstacle_probability = obstacle;
31 batEdge = ros::topic::waitForMessage<nav_msgs::OccupancyGrid>(
"/move_base/global_costmap/costmap",
ros::Duration(3));
35 printf(
"update mapdate \n");
48 int main(
int argc,
char *argv[])
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
TFSIMD_FORCE_INLINE const tfScalar & y() const
bool obstacleCallback(multipoint_navigation_receiver::obstacle_srv::Request &req, multipoint_navigation_receiver::obstacle_srv::Response &res)
ROSCPP_DECL void spin(Spinner &spinner)
int main(int argc, char *argv[])
TFSIMD_FORCE_INLINE const tfScalar & x() const
nav_msgs::OccupancyGrid mapdata