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