diff --git a/bno055_imu/CMakeLists.txt b/bno055_imu/CMakeLists.txt
index e1e039a8534f25fe45b6ad2d91b5324042316cbd..0857c32d3bbf05e1cb24596679f31589cb912507 100644
--- a/bno055_imu/CMakeLists.txt
+++ b/bno055_imu/CMakeLists.txt
@@ -101,6 +101,8 @@ target_link_libraries(${PROJECT_NAME} ${bno055_imu_driver_LIBRARY})
 # ******************************************************************** 
 # add_dependencies(${PROJECT_NAME} <msg_package_name>_generate_messages_cpp)
 add_dependencies(${PROJECT_NAME} sensor_msgs_generate_messages_cpp)
+add_dependencies(${PROJECT_NAME} iri_base_driver_generate_messages_cpp)
+add_dependencies(${PROJECT_NAME}_gencfg iri_base_driver_generate_messages_cpp)
 # ******************************************************************** 
 #               Add dynamic reconfigure dependencies 
 # ******************************************************************** 
diff --git a/bno055_imu/cfg/Bno055Imu.cfg b/bno055_imu/cfg/Bno055Imu.cfg
index 5a4c162257aafa1cec0870d650848b066996cb16..8b76ff319ba15d2c15bf7c358960c0a65891d2c3 100755
--- a/bno055_imu/cfg/Bno055Imu.cfg
+++ b/bno055_imu/cfg/Bno055Imu.cfg
@@ -33,7 +33,7 @@
 
 PACKAGE='bno055_imu'
 
-from driver_base.msg import SensorLevels
+from iri_base_driver.msg import SensorLevels
 from dynamic_reconfigure.parameter_generator_catkin import *
 
 gen = ParameterGenerator()
diff --git a/bno055_imu/src/bno055_imu_ros_driver.cpp b/bno055_imu/src/bno055_imu_ros_driver.cpp
index 07d0a50f7fcfafd4a27555b6b162653124c15aec..65a9a76bff891d035254755a5eef2fd706a02e6e 100644
--- a/bno055_imu/src/bno055_imu_ros_driver.cpp
+++ b/bno055_imu/src/bno055_imu_ros_driver.cpp
@@ -84,14 +84,14 @@ void Bno055ImuDriver::config_update(Config& new_cfg, uint32_t level)
   // update driver with new_cfg data
   switch(this->getState())
   {
-    case Bno055ImuDriver::CLOSED:
+    case iri_base_driver::CLOSED:
       this->frame_id=new_cfg.tf_prefix+"/"+new_cfg.frame_id;
       break;
 
-    case Bno055ImuDriver::OPENED:
+    case iri_base_driver::OPENED:
       break;
 
-    case Bno055ImuDriver::RUNNING:
+    case iri_base_driver::RUNNING:
       break;
   }
 
diff --git a/bno055_imu/src/bno055_imu_ros_driver_node.cpp b/bno055_imu/src/bno055_imu_ros_driver_node.cpp
index de25be4a5d380077dc33fd3d73ca4f0bbfa5bd82..4db52652480daa8eb517a41f104fd434789934a8 100644
--- a/bno055_imu/src/bno055_imu_ros_driver_node.cpp
+++ b/bno055_imu/src/bno055_imu_ros_driver_node.cpp
@@ -7,7 +7,7 @@ Bno055ImuDriverNode::Bno055ImuDriverNode(ros::NodeHandle &nh) :
   unsigned int i;
 
   //init class attributes if necessary
-  this->loop_rate_ = 500;//in [Hz]
+  this->setRate(500);//in [Hz]
 
   // [init publishers]
   this->imu_publisher_ = this->public_node_handle_.advertise<sensor_msgs::Imu>("imu", 1);
@@ -117,5 +117,5 @@ Bno055ImuDriverNode::~Bno055ImuDriverNode(void)
 /* main function */
 int main(int argc,char *argv[])
 {
-  return driver_base::main<Bno055ImuDriverNode>(argc, argv, "bno055_imu_driver_node");
+  return iri_base_driver::main<Bno055ImuDriverNode>(argc, argv, "bno055_imu_driver_node");
 }
diff --git a/humanoid_common/package.xml b/humanoid_common/package.xml
index 1061ee352ad92a87a65af4c9108c652b1c61d4bd..2df862ab69bf46dee8f2ab6e9acb36e66f820a15 100755
--- a/humanoid_common/package.xml
+++ b/humanoid_common/package.xml
@@ -56,6 +56,8 @@
   <run_depend>automatic_charge</run_depend>
   <run_depend>stairs_client</run_depend>
   <run_depend>ir_foot_sensor</run_depend>
+  <run_depend>bno055_imu</run_depend>
+  <run_depend>gazebo_image_to_video_dev</run_depend>
 
   <!-- The export tag contains other, unspecified, tags -->
   <export>
diff --git a/ir_foot_sensor/CMakeLists.txt b/ir_foot_sensor/CMakeLists.txt
index ca5fdd2b28c9fa5819df9bb179ec94d90aee7e57..92efceb111cd61da5d62d2fdad2db546ff339200 100644
--- a/ir_foot_sensor/CMakeLists.txt
+++ b/ir_foot_sensor/CMakeLists.txt
@@ -114,6 +114,8 @@ target_link_libraries(${PROJECT_NAME}_nodelet ${ir_feet_LIBRARY})
 # ******************************************************************** 
 # add_dependencies(${PROJECT_NAME} <msg_package_name>_generate_messages_cpp)
 add_dependencies(${PROJECT_NAME} humanoid_common_msgs_generate_messages_cpp)
+add_dependencies(${PROJECT_NAME} iri_base_driver_generate_messages_cpp)
+add_dependencies(${PROJECT_NAME}_gencfg iri_base_driver_generate_messages_cpp)
 # ******************************************************************** 
 #               Add dynamic reconfigure dependencies 
 # ******************************************************************** 
diff --git a/ir_foot_sensor/cfg/IrFootSensor.cfg b/ir_foot_sensor/cfg/IrFootSensor.cfg
index 6de3d38401909ee6fd251a73e56549e8a10cc8f3..b7e16e61c9b2cd9c5839cb2b726e0167ad8df72a 100755
--- a/ir_foot_sensor/cfg/IrFootSensor.cfg
+++ b/ir_foot_sensor/cfg/IrFootSensor.cfg
@@ -33,7 +33,7 @@
 
 PACKAGE='ir_foot_sensor'
 
-from driver_base.msg import SensorLevels
+from iri_base_driver.msg import SensorLevels
 from dynamic_reconfigure.parameter_generator_catkin import *
 
 gen = ParameterGenerator()
diff --git a/ir_foot_sensor/src/ir_foot_sensor_driver.cpp b/ir_foot_sensor/src/ir_foot_sensor_driver.cpp
index 18fdc9b55317bea13d497e3a66c6189eb5724dfe..5aca919d9416c72203bf9a4e12984766dbee8a58 100644
--- a/ir_foot_sensor/src/ir_foot_sensor_driver.cpp
+++ b/ir_foot_sensor/src/ir_foot_sensor_driver.cpp
@@ -65,13 +65,13 @@ void IrFootSensorDriver::config_update(Config& new_cfg, uint32_t level)
   // update driver with new_cfg data
   switch(this->getState())
   {
-    case IrFootSensorDriver::CLOSED:
+    case iri_base_driver::CLOSED:
       break;
 
-    case IrFootSensorDriver::OPENED:
+    case iri_base_driver::OPENED:
       break;
 
-    case IrFootSensorDriver::RUNNING:
+    case iri_base_driver::RUNNING:
       break;
   }
 
diff --git a/ir_foot_sensor/src/ir_foot_sensor_driver_node.cpp b/ir_foot_sensor/src/ir_foot_sensor_driver_node.cpp
index 1ff6a06e93ce152233f9523cbc529c33da55059b..0d55028cfd6e122b94e6bc4311f3c10234c6321b 100644
--- a/ir_foot_sensor/src/ir_foot_sensor_driver_node.cpp
+++ b/ir_foot_sensor/src/ir_foot_sensor_driver_node.cpp
@@ -6,7 +6,7 @@ IrFootSensorDriverNode::IrFootSensorDriverNode(ros::NodeHandle &nh) :
   std::string dyn_serial="";
   int dyn_baudrate=-1,dev_id=-1;
   //init class attributes if necessary
-  this->loop_rate_ = 10;//in [Hz]
+  this->setRate(10);//in [Hz]
 
   // [init publishers]
   
@@ -31,15 +31,15 @@ IrFootSensorDriverNode::IrFootSensorDriverNode(ros::NodeHandle &nh) :
   this->sensor_data_ir_foot_data_msg_.names[8]="front_right";
   this->sensor_data_ir_foot_data_msg_.names[9]="front_analog";
 
-  this->node_handle_.getParam("dyn_serial",dyn_serial);
+  this->public_node_handle_.getParam("dyn_serial",dyn_serial);
   this->driver_.set_dynamixel_device(dyn_serial);
-  this->node_handle_.getParam("dyn_baudrate",dyn_baudrate);
+  this->public_node_handle_.getParam("dyn_baudrate",dyn_baudrate);
   this->driver_.set_dynamixel_baudrate(dyn_baudrate);
-  this->node_handle_.getParam("ir_foot_id",dev_id);
+  this->public_node_handle_.getParam("ir_foot_id",dev_id);
   this->driver_.set_device_id(dev_id);
 
   if(dyn_serial!="" && dyn_baudrate!=-1 && dev_id!=-1)
-    this->sensor_data_publisher_ = this->node_handle_.advertise<humanoid_common_msgs::ir_foot_data>("sensor_data", 1);
+    this->sensor_data_publisher_ = this->public_node_handle_.advertise<humanoid_common_msgs::ir_foot_data>("sensor_data", 1);
   else
     this->sensor_data_publisher_ = this->public_node_handle_.advertise<humanoid_common_msgs::ir_foot_data>("sensor_data", 1);
 }
@@ -119,7 +119,7 @@ IrFootSensorDriverNode::~IrFootSensorDriverNode(void)
 /* main function */
 int main(int argc,char *argv[])
 {
-  return driver_base::main<IrFootSensorDriverNode>(argc, argv, "ir_foot_sensor_driver_node");
+  return iri_base_driver::main<IrFootSensorDriverNode>(argc, argv, "ir_foot_sensor_driver_node");
 }
 
 #include <pluginlib/class_list_macros.h>
diff --git a/qr_detector/CMakeLists.txt b/qr_detector/CMakeLists.txt
index 61e8fea4b8b51cafd6609eccd6de3e96f439ccd1..56416ecfe937265d0de17a059f24a85219218c23 100644
--- a/qr_detector/CMakeLists.txt
+++ b/qr_detector/CMakeLists.txt
@@ -15,7 +15,7 @@ find_package(catkin REQUIRED COMPONENTS iri_base_driver humanoid_common_msgs geo
 #           Add system and labrobotica dependencies here
 # ******************************************************************** 
 find_package(detectqrcode REQUIRED)
-#find_package(OpenCV 2.4 REQUIRED)
+find_package(OpenCV REQUIRED)
 
 # ******************************************************************** 
 #           Add topic, service and action definition here
@@ -78,7 +78,7 @@ catkin_package(
 include_directories(include)
 include_directories(${catkin_INCLUDE_DIRS})
 include_directories(${detectqrcode_INCLUDE_DIR})
-#include_directories(${OpenCV_INCLUDE_DIRS})
+include_directories(${OpenCV_INCLUDE_DIRS})
 
 ## Declare a cpp library
 # add_library(${PROJECT_NAME} <list of source files>)
@@ -91,7 +91,7 @@ add_executable(${PROJECT_NAME} src/qr_detector_driver.cpp src/qr_detector_driver
 # ******************************************************************** 
 target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
 target_link_libraries(${PROJECT_NAME} ${detectqrcode_LIBRARY})
-#target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})
+target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})
 
 # ******************************************************************** 
 #               Add message headers dependencies 
@@ -100,6 +100,8 @@ target_link_libraries(${PROJECT_NAME} ${detectqrcode_LIBRARY})
 add_dependencies(${PROJECT_NAME} humanoid_common_msgs_generate_messages_cpp)
 add_dependencies(${PROJECT_NAME} geometry_msgs_generate_messages_cpp)
 add_dependencies(${PROJECT_NAME} sensor_msgs_generate_messages_cpp)
+add_dependencies(${PROJECT_NAME} iri_base_driver_generate_messages_cpp)
+add_dependencies(${PROJECT_NAME}_gencfg iri_base_driver_generate_messages_cpp)
 # ******************************************************************** 
 #               Add dynamic reconfigure dependencies 
 # ******************************************************************** 
diff --git a/qr_detector/cfg/QrDetector.cfg b/qr_detector/cfg/QrDetector.cfg
index 78d9702602baea7284e1d24886903db497ca813f..1d2039b7932e04e1a680a4ad235c329c53001db5 100755
--- a/qr_detector/cfg/QrDetector.cfg
+++ b/qr_detector/cfg/QrDetector.cfg
@@ -33,7 +33,7 @@
 
 PACKAGE='qr_detector'
 
-from driver_base.msg import SensorLevels
+from iri_base_driver.msg import SensorLevels
 from dynamic_reconfigure.parameter_generator_catkin import *
 
 gen = ParameterGenerator()
diff --git a/qr_detector/src/qr_detector_driver.cpp b/qr_detector/src/qr_detector_driver.cpp
index 93f8d5ee806faa20dcdd4a4f9d22d70202007a49..18882d17f35212e45c667a8372ac4590d2b12d1a 100644
--- a/qr_detector/src/qr_detector_driver.cpp
+++ b/qr_detector/src/qr_detector_driver.cpp
@@ -57,13 +57,13 @@ void QrDetectorDriver::config_update(Config& new_cfg, uint32_t level)
   // update driver with new_cfg data
   switch(this->getState())
   {
-    case QrDetectorDriver::CLOSED:
+    case iri_base_driver::CLOSED:
       break;
 
-    case QrDetectorDriver::OPENED:
+    case iri_base_driver::OPENED:
       break;
 
-    case QrDetectorDriver::RUNNING:
+    case iri_base_driver::RUNNING:
       break;
   }
 
diff --git a/qr_detector/src/qr_detector_driver_node.cpp b/qr_detector/src/qr_detector_driver_node.cpp
index abfcb7f0d4e66fa079f86c160e19ca2dcd8a73b6..70e681055eb56fb02470a449dd348da412ea4ebb 100644
--- a/qr_detector/src/qr_detector_driver_node.cpp
+++ b/qr_detector/src/qr_detector_driver_node.cpp
@@ -199,5 +199,5 @@ QrDetectorDriverNode::~QrDetectorDriverNode(void)
 /* main function */
 int main(int argc,char *argv[])
 {
-  return driver_base::main<QrDetectorDriverNode>(argc, argv, "qr_detector_driver_node");
+  return iri_base_driver::main<QrDetectorDriverNode>(argc, argv, "qr_detector_driver_node");
 }