42 visualization_msgs::Marker marker;
43 geometry_msgs::Point p;
44 static ros::Time trigger_blink=ros::Time::now();
45 static bool flip=
false;
48 marker.header.frame_id =
"/atc/vehicle/ground";
49 marker.header.stamp = ros::Time();
50 marker.ns =
"trigger_zone";
52 marker.type = visualization_msgs::Marker::CYLINDER;
53 marker.action = visualization_msgs::Marker::ADD;
54 marker.pose.position.x = search_area.x;
55 marker.pose.position.y = search_area.y;
56 marker.pose.position.z = 0;
57 marker.pose.orientation.x = 0.0;
58 marker.pose.orientation.y = 0.0;
59 marker.pose.orientation.z = 0.0;
60 marker.pose.orientation.w = 1.0;
66 if ((ros::Time::now()-trigger_blink).toSec() > 1)
69 trigger_blink = ros::Time::now();
84 marker_vec->push_back(marker);
87 marker.header.frame_id =
"/atc/vehicle/ground";
88 marker.header.stamp = ros::Time();
89 marker.ns =
"trigger_text";
91 marker.type = visualization_msgs::Marker::TEXT_VIEW_FACING;
92 marker.action = visualization_msgs::Marker::ADD;
93 marker.pose.position.x = search_area.x;
94 marker.pose.position.y = search_area.y;
95 marker.pose.position.z = 0.3;
96 marker.pose.orientation.x = 0.0;
97 marker.pose.orientation.y = 0.0;
98 marker.pose.orientation.z = 0.0;
99 marker.pose.orientation.w = 1.0;
100 marker.scale.x = search_area.radius;
101 marker.scale.y = search_area.radius;
102 marker.scale.z = 0.3;
103 marker.color.a = 1.0;
104 marker.color.r = 0.0;
105 marker.color.g = 0.0;
106 marker.color.b = 0.0;
107 if (status.state==SEARCHING)
108 marker.text =
"SEARCHING: Waiting for someone";
109 else if (status.state==TRACKING)
112 sprintf(str,
"TRACKING: Following target id %d",status.target_id);
115 else if (status.state==TRACKING_NOT_SAFE)
118 sprintf(str,
"TRACKING_NOT_SAFE: Waiting for clearance to follow target id %d",status.target_id);
122 marker_vec->push_back(marker);
125 marker.header.frame_id =
"/atc/vehicle/ground";
126 marker.header.stamp = ros::Time();
127 marker.ns =
"safety_zone";
129 marker.type = visualization_msgs::Marker::LINE_STRIP;
130 marker.action = visualization_msgs::Marker::ADD;
131 marker.pose.position.x = 0;
132 marker.pose.position.y = 0;
133 marker.pose.position.z = 0;
134 marker.pose.orientation.x = 0.0;
135 marker.pose.orientation.y = 0.0;
136 marker.pose.orientation.z = 0.0;
137 marker.pose.orientation.w = 1.0;
138 marker.scale.x = 0.2;
140 marker.scale.z = 0.2;
141 marker.color.a = 1.0;
143 if (!is_safe_using_lasers())
156 p.x = safety_zone.xmin; p.y = safety_zone.ymin; p.z = 0;
157 marker.points.push_back(p);
159 p.x = safety_zone.xmin; p.y = safety_zone.ymax; p.z = 0;
160 marker.points.push_back(p);
161 marker.points.push_back(p);
163 p.x = safety_zone.xmax; p.y = safety_zone.ymax; p.z = 0;
164 marker.points.push_back(p);
165 marker.points.push_back(p);
167 p.x = safety_zone.xmax; p.y = safety_zone.ymin; p.z = 0;
168 marker.points.push_back(p);
169 marker.points.push_back(p);
171 p.x = safety_zone.xmin; p.y = safety_zone.ymin; p.z = 0;
172 marker.points.push_back(p);
174 marker_vec->push_back(marker);
178 marker.header.stamp = ros::Time::now();
179 marker.type = visualization_msgs::Marker::MESH_RESOURCE;
180 marker.action = visualization_msgs::Marker::ADD;
181 marker.ns =
"pedestrian";
182 marker.mesh_use_embedded_materials = 1;
183 marker.header.frame_id =
"/atc/vehicle/ground";
187 marker.color.r = 0.2;
188 marker.color.g = 0.3;
189 marker.color.b = 0.4;
191 marker.mesh_resource =
"package://wrapper_collada/models/decisive_woman.obj";
192 marker.header.stamp = ros::Time::now();
194 if (status.state==TRACKING || status.state == TRACKING_NOT_SAFE)
196 marker.pose.position.x = status.current_x;
197 marker.pose.position.y = status.current_y;
198 marker.pose.position.z = status.current_z;
199 marker.pose.orientation = status.current_q;
203 marker.pose.position.x = 0;
204 marker.pose.position.y = 0;
205 marker.pose.position.z = 3000;
208 marker_vec->push_back(marker);
void add_to_viz_markers_vec(std::vector< visualization_msgs::Marker > *marker_vec)