19 from interactive_markers.interactive_marker_server
import InteractiveMarker, InteractiveMarkerFeedback
20 from visualization_msgs.msg
import Marker, InteractiveMarkerControl
24 def __init__(self, object_names, callback_fct, interactive_server):
41 int_marker = InteractiveMarker()
42 int_marker.header.frame_id =
"/"+object_name
43 int_marker.name = object_name
44 int_marker.description =
"Select this object" 45 int_marker.pose.position.z = -0.3
50 object_marker = Marker()
51 object_marker.type = Marker.SPHERE
52 object_marker.pose.position.z = 0.6
54 object_marker.scale.x = 0.1
55 object_marker.scale.y = 0.1
56 object_marker.scale.z = 0.1
57 object_marker.color.r = 0.6
58 object_marker.color.g = 0.02
59 object_marker.color.b = 1.0
60 object_marker.color.a = 1.0
64 object_control = InteractiveMarkerControl()
65 object_control.interaction_mode = InteractiveMarkerControl.BUTTON
66 object_control.always_visible =
True 67 object_control.markers.append(object_marker)
72 self.
int_markers[object_name].controls.append(object_control)
83 if feedback.event_type != InteractiveMarkerFeedback.BUTTON_CLICK:
90 selected_name = feedback.marker_name
96 if name == selected_name:
124 self.
server.applyChanges()
129 if __name__ ==
"__main__":
130 rospy.init_node(
"simple_marker")
def create_marker(self, object_name)
def processFeedback(self, feedback)
def __init__(self, object_names, callback_fct, interactive_server)