transformable_server_sample¶
transformable
provides interactive marker to control some object models.
Parameters¶
~server_name
Name of interactive server.
~use_parent_and_child
(default:false
)Flag for using
ParentAndChildInteractiveServer
.If true, you can use associate markers like below:
rosservice call /simple_marker/set_parent_marker "parent_topic_name: ''
parent_marker_name: 'drill'
child_marker_name: 'hand'"
If parent_topic_name==empty
, it uses self server,
and only 1 hierarchy is supported.
~display_interactive_manipulator
(Bool, default:true
)Flat to show the 6dof interactive manipulator for all objects.
~display_interactive_manipulator_only_selected
(Bool, default:false
)Flag to show the 6dof interactive manipulator only for the selected object. This flag does nothing if
~display_interactive_manipulator
isfalse
.~display_description_only_selected
(Bool, default:false
)Flag to show the description only for the selected object.
Usage¶
roslaunch jsk_interactive_marker urdf_model_marker.launch
then, in different terminal You can insert box marker by this command
rosservice call /simple_marker/request_marker_operate "operate: {type: 0, action: 0, frame_id: '', name: '', description: '', mesh_resource: '',
mesh_use_embedded_materials: false}"
You can insert model by this command
rosservice call /simple_marker/request_marker_operate "operate: {type: 3, action: 0, frame_id: 'map', name: 'hand', description: '', mesh_resource: 'package://hrpsys_ros_bridge_tutorials/models/HRP3HAND_R_meshes/RARM_LINK6_mesh.dae',
mesh_use_embedded_materials: true}"
Topics¶
You can control markers through topics below (Please Read msg Structure by rosmsg show or some other) (The default topic name is /simple_marker, server name is the same)
/simple_marker/set_color
/simple_marker/feedback [visualization_msgs/InteractiveMarkerFeedback]
/simple_marker/set_radius
/simple_marker/set_control_relative_pose
/simple_marker/add_pose_relative [geometry_msgs::Pose]
/simple_marker/set_z
/simple_marker/set_x
/simple_marker/set_y
/simple_marker/add_pose [geometry_msgs::Pose]
/simple_marker/set_control_pose [geometry_msgs::PoseStamped]
/simple_marker/set_pose [geometry_msgs::PoseStamped]
You can get marker info by topics below
/simple_marker/marker_dimensions [jsk_interactive_marker/MarkerDimensions]
/simple_marker/pose [geometry_msgs/PoseStamped]
/simple_marker/focus_object_marker_name [std_msgs/String]
/simple_marker/pose_with_name [jsk_interactive_marker/PoseStampedWithName]
/simple_marker/focus_marker_name_text [jsk_rviz_plugins/OverlayText]
/tf [tf2_msgs/TFMessage] (with marker name, tf is published)
/simple_marker/focus_marker_pose_text [jsk_rviz_plugins/OverlayText]
Services¶
You can control markers through topics below
/simple_marker/request_marker_operate -> for inserting marker
/simple_marker/set_focus
/simple_marker/set_color
/simple_marker/set_control_pose
/simple_marker/set_parameters
/simple_marker/set_pose
/simple_marker/set_dimensions
/simple_marker/set_parent_marker
/simple_marker/hide
You can get marker info through topics below
/simple_marker/get_control_pose
/simple_marker/get_color
/simple_marker/get_focus
/simple_marker/get_dimensions
/simple_marker/get_type
/simple_marker/get_pose
/simple_marker/get_existence