19 #ifndef SLAM_TOOLBOX_VISUALIZATION_UTILS_H_ 20 #define SLAM_TOOLBOX_VISUALIZATION_UTILS_H_ 26 const std::string& frame,
27 const std::string& ns,
30 visualization_msgs::Marker marker;
32 marker.header.frame_id = frame;
35 marker.type = visualization_msgs::Marker::SPHERE;
36 marker.pose.position.z = 0.0;
37 marker.pose.orientation.w = 1.;
38 marker.scale.x = scale;
39 marker.scale.y = scale;
40 marker.scale.z = scale;
45 marker.action = visualization_msgs::Marker::ADD;
52 visualization_msgs::Marker& marker,
56 visualization_msgs::InteractiveMarker int_marker;
57 int_marker.header.frame_id = marker.header.frame_id;
59 int_marker.name = std::to_string(marker.id);
60 int_marker.pose.orientation.w = 1.;
61 int_marker.pose.position.x = marker.pose.position.x;
62 int_marker.pose.position.y = marker.pose.position.y;
63 int_marker.scale = scale;
66 visualization_msgs::InteractiveMarkerControl control;
67 control.orientation_mode =
68 visualization_msgs::InteractiveMarkerControl::FIXED;
69 control.always_visible =
true;
70 control.orientation.w = 0;
71 control.orientation.x = 0.7071;
72 control.orientation.y = 0;
73 control.orientation.z = 0.7071;
74 control.interaction_mode =
75 visualization_msgs::InteractiveMarkerControl::MOVE_PLANE;
76 control.markers.push_back( marker );
77 int_marker.controls.push_back( control );
80 visualization_msgs::InteractiveMarkerControl control_rot;
81 control_rot.orientation_mode =
82 visualization_msgs::InteractiveMarkerControl::FIXED;
83 control_rot.always_visible =
true;
84 control_rot.orientation.w = 0;
85 control_rot.orientation.x = 0.7071;
86 control_rot.orientation.y = 0;
87 control_rot.orientation.z = 0.7071;
88 control_rot.interaction_mode =
89 visualization_msgs::InteractiveMarkerControl::ROTATE_AXIS;
90 int_marker.controls.push_back( control_rot );
97 nav_msgs::OccupancyGrid& map)
105 if(map.info.width != (
unsigned int) width ||
106 map.info.height != (
unsigned int) height ||
107 map.info.origin.position.x != offset.
GetX() ||
108 map.info.origin.position.y != offset.
GetY())
110 map.info.origin.position.x = offset.
GetX();
111 map.info.origin.position.y = offset.
GetY();
112 map.info.width = width;
113 map.info.height = height;
114 map.data.resize(map.info.width * map.info.height);
125 map.data[
MAP_IDX(map.info.width, x, y)] = -1;
128 map.data[
MAP_IDX(map.info.width, x, y)] = 100;
131 map.data[
MAP_IDX(map.info.width, x, y)] = 0;
134 ROS_WARN(
"Encountered unknown cell value at %d, %d", x, y);
144 #endif //SLAM_TOOLBOX_VISUALIZATION_UTILS_H_
const Vector2< kt_double > & GetOffset() const
kt_int32s GetWidth() const
void toNavMap(const karto::OccupancyGrid *occ_grid, nav_msgs::OccupancyGrid &map)
kt_int32s GetHeight() const
CoordinateConverter * GetCoordinateConverter() const
T GetValue(const Vector2< kt_int32s > &rGrid) const
visualization_msgs::Marker toMarker(const std::string &frame, const std::string &ns, const double &scale)
visualization_msgs::InteractiveMarker toInteractiveMarker(visualization_msgs::Marker &marker, const double &scale)