From 67b8283f342cff46cb2a942e129774a347299722 Mon Sep 17 00:00:00 2001 From: Fernando Herrero Cotarelo <fherrero@iri.upc.edu> Date: Mon, 16 Mar 2015 11:17:56 +0000 Subject: [PATCH] iri_image_local_binarization: - updated test launch usb_cam_tag. - added test cal.yaml - Decreased subs/publishers buffers from 10 to 1 --- calibration/cal.yaml | 20 ++ launch/usb_cam_tag.launch | 214 ++++++++++++++++++- src/image_local_binarization_alg_node.cpp | 4 +- src/image_local_binarization_alg_nodelet.cpp | 4 +- 4 files changed, 227 insertions(+), 15 deletions(-) create mode 100644 calibration/cal.yaml diff --git a/calibration/cal.yaml b/calibration/cal.yaml new file mode 100644 index 0000000..5c091b5 --- /dev/null +++ b/calibration/cal.yaml @@ -0,0 +1,20 @@ +image_width: 1920 +image_height: 1080 +camera_name: narrow_stereo +camera_matrix: + rows: 3 + cols: 3 + data: [1443.836053, 0, 700.72761, 0, 1462.939972, 473.741164, 0, 0, 1] +distortion_model: plumb_bob +distortion_coefficients: + rows: 1 + cols: 5 + data: [0.153747, -0.347937, -0.01007, 0.029807, 0] +rectification_matrix: + rows: 3 + cols: 3 + data: [1, 0, 0, 0, 1, 0, 0, 0, 1] +projection_matrix: + rows: 3 + cols: 4 + data: [1460.615234, 0, 728.385954, 0, 0, 1515.619141, 465.957632, 0, 0, 0, 1, 0] diff --git a/launch/usb_cam_tag.launch b/launch/usb_cam_tag.launch index 0393844..80f9af3 100644 --- a/launch/usb_cam_tag.launch +++ b/launch/usb_cam_tag.launch @@ -11,6 +11,7 @@ <param name="io_method" type="string" value="mmap"/> <param name="image_width" type="int" value="1920"/> <param name="image_height" type="int" value="1080"/> + <param name="framerate" type="int" value="5"/> <param name="pixel_format" type="string" value="yuyv"/> <param name="framerate" type="int" value="3"/> <param name="camera_info_url" type="string" value="file://$(find iri_image_local_binarization)/calibration/usb_cam.yaml" /> @@ -48,13 +49,18 @@ to="/camera_out/image_raw"/> </node> - <node name="image_th" - pkg="image_view" - type="image_view" - output="screen"> - <remap from="/image" - to="/local_th/image_out/image_raw"/> - </node> + + <group ns="cam1"> + <node name="local_th" + pkg="iri_image_local_binarization" + type="iri_image_local_binarization" + output="screen"> + <param name="window_size" value="15"/> + <remap from="/cam1/local_th/image_in/camera_info" + to="/camera_out/camera_info"/> + <remap from="/cam1/local_th/image_in/image_raw" + to="/camera_out/image_raw"/> + </node> <!-- <node name="ar_pose" pkg ="ar_pose" @@ -70,15 +76,201 @@ to="/local_th/image_out/camera_info"/> </node>--> + <node name="ar_pose" + pkg ="ar_pose" + type="ar_multi" + respawn="false" + output="screen"> + <param name="marker_pattern_list" type="string" value="$(find ar_pose)/data/object_4x4"/> + <param name="threshold" type="int" value="100"/> + <param name="use_history" type="bool" value="true"/> + <remap from="/cam1/camera/image_raw" + to="/cam1/local_th/image_out/image_raw"/> + <remap from="/cam1/camera/camera_info" + to="/cam1/local_th/image_out/camera_info"/> + </node> + </group> + + <group ns="cam2"> + <node name="local_th" + pkg="iri_image_local_binarization" + type="iri_image_local_binarization" + output="screen"> + <param name="window_size" value="15"/> + <remap from="/cam2/local_th/image_in/camera_info" + to="/camera_out/camera_info"/> + <remap from="/cam2/local_th/image_in/image_raw" + to="/camera_out/image_raw"/> + </node> + +<!-- <node name="image_th" + pkg="image_view" + type="image_view" + output="screen"> + <remap from="/cam2/image" + to="/cam2/local_th/image_out/image_raw"/> + </node>--> + + <node name="ar_pose" + pkg ="ar_pose" + type="ar_multi" + respawn="false" + output="screen"> + <param name="marker_pattern_list" type="string" value="$(find ar_pose)/data/object_4x4"/> + <param name="threshold" type="int" value="100"/> + <param name="use_history" type="bool" value="true"/> + <remap from="/cam2/camera/image_raw" + to="/cam2/local_th/image_out/image_raw"/> + <remap from="/cam2/camera/camera_info" + to="/cam2/local_th/image_out/camera_info"/> + </node> + </group> + + <group ns="cam3"> + <node name="local_th" + pkg="iri_image_local_binarization" + type="iri_image_local_binarization" + output="screen"> + <param name="window_size" value="15"/> + <remap from="/cam3/local_th/image_in/camera_info" + to="/camera_out/camera_info"/> + <remap from="/cam3/local_th/image_in/image_raw" + to="/camera_out/image_raw"/> + </node> + +<!-- <node name="image_th" + pkg="image_view" + type="image_view" + output="screen"> + <remap from="/cam3/image" + to="/cam3/local_th/image_out/image_raw"/> + </node>--> + + <node name="ar_pose" + pkg ="ar_pose" + type="ar_multi" + respawn="false" + output="screen"> + <param name="marker_pattern_list" type="string" value="$(find ar_pose)/data/object_4x4"/> + <param name="threshold" type="int" value="100"/> + <param name="use_history" type="bool" value="true"/> + <remap from="/cam3/camera/image_raw" + to="/cam3/local_th/image_out/image_raw"/> + <remap from="/cam3/camera/camera_info" + to="/cam3/local_th/image_out/camera_info"/> + </node> + </group> + + <group ns="cam4"> + <node name="local_th" + pkg="iri_image_local_binarization" + type="iri_image_local_binarization" + output="screen"> + <param name="window_size" value="15"/> + <remap from="/cam4/local_th/image_in/camera_info" + to="/camera_out/camera_info"/> + <remap from="/cam4/local_th/image_in/image_raw" + to="/camera_out/image_raw"/> + </node> + +<!-- <node name="image_th" + pkg="image_view" + type="image_view" + output="screen"> + <remap from="/cam4/image" + to="/cam4/local_th/image_out/image_raw"/> + </node>--> + + <node name="ar_pose" + pkg ="ar_pose" + type="ar_multi" + respawn="false" + output="screen"> + <param name="marker_pattern_list" type="string" value="$(find ar_pose)/data/object_4x4"/> + <param name="threshold" type="int" value="100"/> + <param name="use_history" type="bool" value="true"/> + <remap from="/cam4/camera/image_raw" + to="/cam4/local_th/image_out/image_raw"/> + <remap from="/cam4/camera/camera_info" + to="/cam4/local_th/image_out/camera_info"/> + </node> + </group> + + <group ns="cam5"> + <node name="local_th" + pkg="iri_image_local_binarization" + type="iri_image_local_binarization" + output="screen"> + <param name="window_size" value="15"/> + <remap from="/cam5/local_th/image_in/camera_info" + to="/camera_out/camera_info"/> + <remap from="/cam5/local_th/image_in/image_raw" + to="/camera_out/image_raw"/> + </node> + +<!-- <node name="image_th" + pkg="image_view" + type="image_view" + output="screen"> + <remap from="/cam5/image" + to="/cam5/local_th/image_out/image_raw"/> + </node>--> + + <node name="ar_pose" + pkg ="ar_pose" + type="ar_multi" + respawn="false" + output="screen"> + <param name="marker_pattern_list" type="string" value="$(find ar_pose)/data/object_4x4"/> + <param name="threshold" type="int" value="100"/> + <param name="use_history" type="bool" value="true"/> + <remap from="/cam5/camera/image_raw" + to="/cam5/local_th/image_out/image_raw"/> + <remap from="/cam5/camera/camera_info" + to="/cam5/local_th/image_out/camera_info"/> + </node> + </group> + + <group ns="cam6"> + <node name="local_th" + pkg="iri_image_local_binarization" + type="iri_image_local_binarization" + output="screen"> + <param name="window_size" value="15"/> + <remap from="/cam6/local_th/image_in/camera_info" + to="/camera_out/camera_info"/> + <remap from="/cam6/local_th/image_in/image_raw" + to="/camera_out/image_raw"/> + </node> + +<!-- <node name="image_th" + pkg="image_view" + type="image_view" + output="screen"> + <remap from="/cam6/image" + to="/cam6/local_th/image_out/image_raw"/> + </node>--> + + <node name="ar_pose" + pkg ="ar_pose" + type="ar_multi" + respawn="false" + output="screen"> + <param name="marker_pattern_list" type="string" value="$(find ar_pose)/data/object_4x4"/> + <param name="threshold" type="int" value="100"/> + <param name="use_history" type="bool" value="true"/> + <remap from="/cam6/camera/image_raw" + to="/cam6/local_th/image_out/image_raw"/> + <remap from="/cam6/camera/camera_info" + to="/cam6/local_th/image_out/camera_info"/> + </node> + </group> + <!-- <node name="world2camera" pkg ="tf" type="static_transform_publisher" args="0 0 0.0 -1.57 0 -1.57 world camera 1" />--> - <node name="dynamic_reconfigure" - pkg ="dynamic_reconfigure" - type="reconfigure_gui"/> - <!-- <node name="rviz" pkg="rviz" type="rviz" diff --git a/src/image_local_binarization_alg_node.cpp b/src/image_local_binarization_alg_node.cpp index 7de2044..e7dd339 100644 --- a/src/image_local_binarization_alg_node.cpp +++ b/src/image_local_binarization_alg_node.cpp @@ -7,11 +7,11 @@ ImageLocalBinarizationAlgNode::ImageLocalBinarizationAlgNode(void) : this->loop_rate_ = 1;//in [Hz] // [init publishers] - this->image_out_publisher_ = this->it.advertiseCamera("image_out/image_raw", 10); + this->image_out_publisher_ = this->it.advertiseCamera("image_out/image_raw", 1); this->histogram_publisher_ = this->it.advertise("hystogram", 1); // [init subscribers] - this->image_in_subscriber_ = this->it.subscribeCamera("image_in/image_raw", 10, &ImageLocalBinarizationAlgNode::image_in_callback,this); + this->image_in_subscriber_ = this->it.subscribeCamera("image_in/image_raw", 1, &ImageLocalBinarizationAlgNode::image_in_callback,this); pthread_mutex_init(&this->image_in_mutex_,NULL); diff --git a/src/image_local_binarization_alg_nodelet.cpp b/src/image_local_binarization_alg_nodelet.cpp index a1e193c..165e9e1 100644 --- a/src/image_local_binarization_alg_nodelet.cpp +++ b/src/image_local_binarization_alg_nodelet.cpp @@ -7,11 +7,11 @@ ImageLocalBinarizationAlgNodelet::ImageLocalBinarizationAlgNodelet(ros::NodeHand this->loop_rate_ = 1;//in [Hz] // [init publishers] - this->image_out_publisher_ = this->it.advertiseCamera("image_out/image_raw", 10); + this->image_out_publisher_ = this->it.advertiseCamera("image_out/image_raw", 1); this->histogram_publisher_ = this->it.advertise("hystogram", 1); // [init subscribers] - this->image_in_subscriber_ = this->it.subscribeCamera("image_in/image_raw", 10, &ImageLocalBinarizationAlgNodelet::image_in_callback,this); + this->image_in_subscriber_ = this->it.subscribeCamera("image_in/image_raw", 1, &ImageLocalBinarizationAlgNodelet::image_in_callback,this); pthread_mutex_init(&this->image_in_mutex_,NULL); this->image_out_=cv_bridge::CvImagePtr(new cv_bridge::CvImage); -- GitLab