The Markers display allows programmatic addition of various primitive shapes to the 3D view by sending a visualization_msgs/Marker or visualization_msgs/MarkerArray message.
The Markers: Basic Shapes tutorial begins a series of tutorials on sending markers.
Properties
Name
Description
Valid Values
Default
Topic
The topic to subscribe to. Will automatically also subscribe to _array, assuming it is a visualization_msgs/MarkerArray topic
visualization_marker
The Marker Message
Example Usage (C++/roscpp)
First, advertise on the visualization_marker topic:
ros::Publisher vis_pub = node_handle.advertise<:marker>( "visualization_marker", 0 );
After that it's as simple as filling out a visualization_msgs/Marker message and publishing it:
visualization_msgs::Marker marker;
marker.header.frame_id = "base_link";
marker.header.stamp = ros::Time();
marker.ns = "my_namespace";
marker.id = 0;
marker.type = visualization_msgs::Marker::SPHERE;
marker.action = visualization_msgs::Marker::ADD;
marker.pose.position.x = 1;
marker.pose.position.y = 1;
marker.pose.position.z = 1;
marker.pose.orientation.x = 0.0;
marker.pose.orientation.y = 0.0;
marker.pose.orientation.z = 0.0;
marker.pose.orientation.w = 1.0;
marker.scale.x = 1;
marker.scale.y = 0.1;
marker.scale.z = 0.1;
marker.color.a = 1.0; // Don't forget to set the alpha!
marker.color.r = 0.0;
marker.color.g = 1.0;
marker.color.b = 0.0;
//only if using a MESH_RESOURCE marker type:
marker.mesh_resource = "package://pr2_description/meshes/base_v0/base.dae";
vis_pub.publish( marker );
There is also a visualization_msgs/MarkerArray message, which lets you publish many markers at once. In this case you want to publish in the visualization_marker_array topic.
Note that the timest