25 for (visualization_msgs::Marker &marker:
marker_array_.markers) {
26 marker.action = visualization_msgs::Marker::DELETE;
35 visualization_msgs::Marker marker;
36 marker.header = pbd_object.header;
38 if (pbd_object.type ==
"CompactObject")
40 marker.type = visualization_msgs::Marker::SPHERE;
41 marker.scale.x = marker.scale.y = marker.scale.z = 0.01;
45 marker.type = visualization_msgs::Marker::MESH_RESOURCE;
46 if (pbd_object.colorName ==
"textured")
47 marker.mesh_use_embedded_materials =
true;
48 typedef boost::filesystem::path fs_path;
49 fs_path mesh_resource = fs_path(pbd_object.meshResourcePath).replace_extension(
".dae");
50 marker.mesh_resource = mesh_resource.string();
51 marker.scale.x = marker.scale.y = marker.scale.z = 0.001;
53 marker.color = pbd_object.color;
54 marker.action = visualization_msgs::Marker::ADD;
57 marker.ns = pbd_object.providedBy +
"_detected";
59 if(!pbd_object.sampledPoses.size()){
60 std::cerr <<
"Got a AsrObject without poses." << std::endl;
64 marker.pose = pbd_object.sampledPoses.front().pose;
68 marker.ns = pbd_object.providedBy +
"_sampled";
69 if (visualizeSampledPoses) {
70 bool isNotFirst =
false;
71 for (
const geometry_msgs::PoseWithCovariance ¤t_pose : pbd_object.sampledPoses)
75 marker.pose = current_pose.pose;
86 visualization_msgs::Marker axisMarker;
87 axisMarker.header = pbd_object.header;
89 axisMarker.type = visualization_msgs::Marker::ARROW;
90 axisMarker.scale.y = axisMarker.scale.z = 0.01;
91 axisMarker.scale.x = 0.1;
92 Eigen::Quaterniond orientation;
93 tf::quaternionMsgToEigen(pbd_object.sampledPoses.front().pose.orientation, orientation);
94 Eigen::Quaterniond transformed_X_Axis = Eigen::AngleAxisd(0.0, Eigen::Vector3d::UnitX()) * orientation;
95 tf::quaternionEigenToMsg(transformed_X_Axis, axisMarker.pose.orientation);
96 axisMarker.pose.position = pbd_object.sampledPoses.front().pose.position;
97 axisMarker.color.a = 1.0;
98 axisMarker.color.r = 0.0;
99 axisMarker.color.g = 0.0;
100 axisMarker.color.b = 1.0;
101 axisMarker.action = visualization_msgs::Marker::ADD;
102 axisMarker.ns =
"ObjectOrientation_XAxis";
visualization_msgs::MarkerArray marker_array_
void publish(const boost::shared_ptr< M > &message) const
void clearLastPublication()
void addMarker(visualization_msgs::Marker &marker)
void addFoundObjectVisualization(const asr_msgs::AsrObject &pbd_object, const bool &visualizeSampledPoses)
ros::Publisher publisher_