Skip to content

Commit 6392db2

Browse files
text markers added
1 parent 048c366 commit 6392db2

File tree

4 files changed

+46
-12
lines changed

4 files changed

+46
-12
lines changed

config/eod_example.rviz

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ Visualization Manager:
5555
Frame Timeout: 15
5656
Frames:
5757
All Enabled: true
58-
map:
59-
Value: true
6058
oak-d-base-frame:
6159
Value: true
6260
oak-d_frame:
@@ -84,9 +82,6 @@ Visualization Manager:
8482
Show Axes: true
8583
Show Names: true
8684
Tree:
87-
map:
88-
oak_rgb_camera_optical_frame:
89-
{}
9085
oak-d-base-frame:
9186
oak-d_frame:
9287
oak_imu_frame:
@@ -97,7 +92,8 @@ Visualization Manager:
9792
oak_model_origin:
9893
{}
9994
oak_rgb_camera_frame:
100-
{}
95+
oak_rgb_camera_optical_frame:
96+
{}
10197
oak_right_camera_frame:
10298
oak_right_camera_optical_frame:
10399
{}
@@ -227,7 +223,7 @@ Visualization Manager:
227223
Views:
228224
Current:
229225
Class: rviz/Orbit
230-
Distance: 8.260529518127441
226+
Distance: 5.629319667816162
231227
Enable Stereo Rendering:
232228
Stereo Eye Separation: 0.05999999865889549
233229
Stereo Focal Distance: 1
@@ -243,9 +239,9 @@ Visualization Manager:
243239
Invert Z Axis: false
244240
Name: Current View
245241
Near Clip Distance: 0.009999999776482582
246-
Pitch: 0.44979575276374817
242+
Pitch: 0.7097955346107483
247243
Target Frame: <Fixed Frame>
248-
Yaw: 2.40043306350708
244+
Yaw: 2.1604249477386475
249245
Saved: ~
250246
Window Geometry:
251247
DepthImage:

src/extended_object_detection_node/eod_node.cpp

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,11 +265,27 @@ void EOD_ROS::detect(const eod::InfoImage& rgb, const eod::InfoImage& depth, std
265265
for(auto& bo : simples_msg.objects){
266266
mrk_array_msg.markers.push_back(base_object_to_marker_arrow(bo, rgb.K(), header, cv::Scalar(0, 255, 0),id_cnt));
267267
mrk_array_msg.markers.push_back(base_object_to_marker_frame(bo, rgb.K(), header, cv::Scalar(0, 255, 0),id_cnt));
268+
mrk_array_msg.markers.push_back(base_object_to_marker_text(bo, rgb.K(), header, cv::Scalar(0, 255, 0),id_cnt));
268269
id_cnt++;
269270
}
270271
simple_objects_markers_pub_.publish(mrk_array_msg);
271-
}
272-
272+
#ifdef USE_IGRAPH
273+
visualization_msgs::MarkerArray cmplx_mrk_array_msg;
274+
id_cnt = 0;
275+
for(auto& co : complex_msg.objects){
276+
cmplx_mrk_array_msg.markers.push_back(base_object_to_marker_arrow(co.complex_object, rgb.K(), header, cv::Scalar(0, 255, 255),id_cnt));
277+
cmplx_mrk_array_msg.markers.push_back(base_object_to_marker_frame(co.complex_object, rgb.K(), header, cv::Scalar(0, 255, 255),id_cnt));
278+
cmplx_mrk_array_msg.markers.push_back(base_object_to_marker_text(co.complex_object, rgb.K(), header, cv::Scalar(0, 255, 255),id_cnt));
279+
id_cnt++;
280+
for( auto& so : co.simple_objects){
281+
cmplx_mrk_array_msg.markers.push_back(base_object_to_marker_frame(so, rgb.K(), header, cv::Scalar(0, 255, 255),id_cnt));
282+
id_cnt++;
283+
}
284+
}
285+
286+
complex_objects_markers_pub_.publish(cmplx_mrk_array_msg);
287+
#endif
288+
}
273289
if(publish_image_output){
274290
sensor_msgs::ImagePtr detected_image_msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", image_to_draw).toImageMsg();
275291
output_image_pub_.publish(detected_image_msg);
@@ -372,6 +388,27 @@ visualization_msgs::Marker EOD_ROS::base_object_to_marker_frame(extended_object_
372388
}
373389

374390

391+
visualization_msgs::Marker EOD_ROS::base_object_to_marker_text(extended_object_detection::BaseObject& base_object, const cv::Mat& K, std_msgs::Header header, cv::Scalar color, int id){
392+
visualization_msgs::Marker mrk;
393+
mrk.header = header;
394+
mrk.ns = base_object.type_name +"_text";
395+
mrk.id = id;
396+
mrk.type = visualization_msgs::Marker::TEXT_VIEW_FACING;
397+
mrk.pose.position = fromVector(base_object.transform.translation);
398+
mrk.pose.position.y = base_object.rect.cornerTranslates[0].y - 0.14; // place text upper top frame part
399+
mrk.text = std::to_string(base_object.type_id)+":"+base_object.type_name+"["+std::to_string(base_object.score).substr(0,4)+"]";
400+
mrk.scale.x = 0.02;
401+
mrk.scale.y = 0.02;
402+
mrk.scale.z = 0.1;
403+
mrk.pose.orientation.w = 1;
404+
mrk.color.r = color[0]/255;
405+
mrk.color.g = color[1]/255;
406+
mrk.color.b = color[2]/255;
407+
mrk.color.a = 1;
408+
return mrk;
409+
}
410+
411+
375412
int EOD_ROS::find_simple_obj_index_by_id(int id){
376413
for( int i = 0 ; i < selected_simple_objects.size() ; i++ ){
377414
if( selected_simple_objects[i]->ID == id )

src/extended_object_detection_node/eod_node.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ class EOD_ROS{
9696

9797
visualization_msgs::Marker base_object_to_marker_arrow(extended_object_detection::BaseObject& base_object, const cv::Mat& K, std_msgs::Header header, cv::Scalar color, int id);
9898
visualization_msgs::Marker base_object_to_marker_frame(extended_object_detection::BaseObject& base_object, const cv::Mat& K, std_msgs::Header header, cv::Scalar color, int id);
99+
visualization_msgs::Marker base_object_to_marker_text(extended_object_detection::BaseObject& base_object, const cv::Mat& K, std_msgs::Header header, cv::Scalar color, int id);
99100

100101
int find_simple_obj_index_by_id(int id);
101102
#ifdef USE_IGRAPH

src/lib

0 commit comments

Comments
 (0)