diff --git a/launch/include/camera_nodelets.launch b/launch/include/camera_nodelets.launch
new file mode 100644
index 0000000000000000000000000000000000000000..caeff32b57ddf3a8b3d04a74ba51833d7bb345b8
--- /dev/null
+++ b/launch/include/camera_nodelets.launch
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+
+<launch>
+
+  <arg name="ns" default="ana"/>
+
+  <arg name="obstacle_nodelet_manager" default="obstacle_nodelet_manager" />
+  <arg name="hole_nodelet_manager" default="hole_nodelet_manager" />
+  <arg name="camera_cloud_in" default="sensors/nav_cam/depth_registered/points"/>
+
+  <arg name="average_node_name" default="average_point_cloud"/>
+  <arg name="average_config_file" default="$(find iri_average_point_cloud)/config/default_config.yaml"/>
+
+  <arg name="normals_node_name" default="obstacle_detection_normals"/>
+  <arg name="normals_config_file" default="$(find iri_nav_obstacle_detection_normals)/config/default_config.yaml"/>
+
+  <arg name="near_hole_detection_node_name" default="near_hole_detection"/>
+  <arg name="near_hole_detection_config_file" default="$(find iri_point_cloud_hole_detection)/config/near_config.yaml"/>
+  <arg name="hole_detection_cloud_in" default="radius_outlier_removal/output"/>
+
+  <arg name="far_hole_detection_node_name" default="far_hole_detection"/>
+  <arg name="far_hole_detection_config_file" default="$(find iri_point_cloud_hole_detection)/config/far_config.yaml"/>
+
+  <arg name="output" default="screen"/>
+  <arg name="launch_prefix" default=""/>
+
+<!-- *******************  OBSTACLE DETECTION  **********************************  -->
+  <group ns="$(arg ns)">
+
+    <!-- Obstacle nodelets manager -->
+    <node name="$(arg obstacle_nodelet_manager)"
+      pkg="nodelet"
+      type="nodelet"
+      args="manager"
+      output="$(arg output)"/> 
+
+    <node pkg="nodelet" 
+          type="nodelet"
+          name="pc_throttle" args="load iri_average_point_cloud/NodeletThrottlePC $(arg obstacle_nodelet_manager)" output="$(arg output)">
+        <remap from="topic_in"  to="$(arg camera_cloud_in)"/>
+        <remap from="topic_out" to="$(arg camera_cloud_in)_throttle"/>
+        <param name="update_rate" value="15"/>
+    </node>
+  </group>
+
+  <include file="$(find iri_average_point_cloud)/launch/nodelet.launch">
+    <arg name="ns" value="$(arg ns)"/>
+    <arg name="node_name" value="$(arg average_node_name)"/>
+    <arg name="camera_nodelet_manager" value="$(arg obstacle_nodelet_manager)"/>
+    <arg name="config_file" value="$(arg average_config_file)"/>
+    <arg name="output" value="$(arg output)"/>
+    <arg name="launch_prefix" value="$(arg launch_prefix)"/>
+    <arg name="cloud_in" value="$(arg camera_cloud_in)_throttle"/>
+  </include>
+
+  <group ns="$(arg ns)">
+    <!-- Downsampling points  -->
+    <node name="voxel_grid_obs"
+      pkg="nodelet"
+      type="nodelet"
+      args="load pcl/VoxelGrid $(arg obstacle_nodelet_manager)"
+      output="$(arg output)">
+      <remap from="~input" to="average_point_cloud/output" />
+      <rosparam>  
+        input_frame: 'ana/base_footprint'
+        output_frame: 'ana/base_footprint'
+        leaf_size: 0.03
+        filter_field_name: z
+        filter_limit_min: -0.5
+        filter_limit_max: 5.0
+        filter_limit_negative: False
+      </rosparam>
+    </node>
+
+    <!-- Run a passthrough filter  -->
+    <node name="passthrough"
+      pkg="nodelet" 
+      type="nodelet"  
+      args="load pcl/PassThrough $(arg obstacle_nodelet_manager)" 
+      output="$(arg output)">
+      <remap from="~input" to="voxel_grid_obs/output" />
+      <rosparam>
+        filter_field_name: x
+        filter_limit_min: 0.01
+        filter_limit_max: 1.5
+        filter_limit_negative: False
+      </rosparam>
+    </node>
+
+    <!-- Statistical outlier removal  -->
+    <node name="outlier_removal" 
+      pkg="nodelet"
+      type="nodelet"
+      args="load pcl/StatisticalOutlierRemoval $(arg obstacle_nodelet_manager)"
+      output="$(arg output)" >
+      <remap from="~input" to="passthrough/output" />
+      <rosparam>
+        mean_k: 20
+        stddev: 2.0
+        negative: False 
+      </rosparam>
+    </node> 
+
+    <!-- Radius outlier removal  -->
+    <node name="radius_outlier_removal" 
+      pkg="nodelet"
+      type="nodelet"
+      args="load pcl/RadiusOutlierRemoval $(arg obstacle_nodelet_manager)"
+      output="$(arg output)" >
+      <remap from="~input" to="outlier_removal/output" />
+      <rosparam>
+        radius_search: 0.1
+        min_neighbors: 15
+      </rosparam>
+    </node> 
+  </group>
+
+  <include file="$(find iri_nav_obstacle_detection_normals)/launch/nodelet.launch">
+    <arg name="ns" value="$(arg ns)"/>
+    <arg name="node_name" value="$(arg normals_node_name)"/>
+    <arg name="camera_nodelet_manager" value="$(arg obstacle_nodelet_manager)"/>
+    <arg name="config_file" value="$(arg normals_config_file)"/>
+    <arg name="output" value="$(arg output)"/>
+    <arg name="launch_prefix" value="$(arg launch_prefix)"/>
+    <arg name="cloud_in" value="radius_outlier_removal/output"/>
+  </include>
+
+<!-- **************************** HOLE DETECTION ******************************* -->
+
+  <group ns="$(arg ns)">
+    <node name="$(arg hole_nodelet_manager)"
+      pkg="nodelet"
+      type="nodelet"
+      args="manager"
+      output="$(arg output)"/>
+  </group>
+
+  <include file="$(find iri_point_cloud_hole_detection)/launch/nodelet.launch">
+         <arg name="ns" value="$(arg ns)"/>
+         <arg name="node_name" value="$(arg near_hole_detection_node_name)"/>
+         <arg name="camera_nodelet_manager" value="$(arg hole_nodelet_manager)"/>
+         <arg name="config_file" value="$(arg near_hole_detection_config_file)"/>
+         <arg name="output" value="$(arg output)"/>
+         <arg name="launch_prefix" default="$(arg launch_prefix)"/>
+         <arg name="cloud_in" default="$(arg hole_detection_cloud_in)"/>
+  </include>
+
+  <include file="$(find iri_point_cloud_hole_detection)/launch/nodelet.launch">
+         <arg name="ns" value="$(arg ns)"/>
+         <arg name="node_name" value="$(arg far_hole_detection_node_name)"/>
+         <arg name="camera_nodelet_manager" value="$(arg hole_nodelet_manager)"/>
+         <arg name="config_file" value="$(arg far_hole_detection_config_file)"/>
+         <arg name="output" value="$(arg output)"/>
+         <arg name="launch_prefix" default="$(arg launch_prefix)"/>
+         <arg name="cloud_in" default="$(arg hole_detection_cloud_in)"/>
+  </include>
+
+</launch>
+
diff --git a/launch/include/camera_nodes.launch b/launch/include/camera_nodes.launch
new file mode 100644
index 0000000000000000000000000000000000000000..339f92fbf97b36036ccc249e30e5aca6b35b855c
--- /dev/null
+++ b/launch/include/camera_nodes.launch
@@ -0,0 +1,146 @@
+<?xml version="1.0"?>
+
+<launch>
+
+  <arg name="ns" default="ana"/>
+
+  <arg name="obstacle_nodelet_manager" default="obstacle_nodelet_manager" />
+
+  <arg name="camera_cloud_in" default="sensors/nav_cam/depth_registered/points"/>
+
+  <arg name="average_node_name" default="average_point_cloud"/>
+  <arg name="average_config_file" default="$(find iri_average_point_cloud)/config/default_config.yaml"/>
+  <arg name="average_cloud_in" default="sensors/nav_cam/depth_registered/points_throttle"/>
+
+  <arg name="normals_node_name" default="obstacle_detection_normals"/>
+  <arg name="normals_config_file" default="$(find iri_nav_obstacle_detection_normals)/config/default_config.yaml"/>
+  <arg name="normals_cloud_in" default="radius_outlier_removal/output"/>
+
+  <arg name="near_hole_detection_node_name" default="near_hole_detection"/>
+  <arg name="near_hole_detection_config_file" default="$(find iri_point_cloud_hole_detection)/config/near_config.yaml"/>
+  <arg name="hole_detection_cloud_in" default="radius_outlier_removal/output"/>
+
+  <arg name="far_hole_detection_node_name" default="far_hole_detection"/>
+  <arg name="far_hole_detection_config_file" default="$(find iri_point_cloud_hole_detection)/config/far_config.yaml"/>
+
+  <arg name="output" default="screen"/>
+  <arg name="launch_prefix" default=""/>
+
+<!-- *******************  OBSTACLE DETECTION  **********************************  -->
+
+  <group ns="$(arg ns)">
+    <node name="pc_throttler" 
+          type="throttle" 
+          pkg="topic_tools" 
+          args="messages $(arg camera_cloud_in) 15 $(arg camera_cloud_in)_throttle" />
+  </group>
+
+  <include file="$(find iri_average_point_cloud)/launch/node.launch">
+	 <arg name="ns" value="$(arg ns)"/>
+         <arg name="node_name" value="$(arg average_node_name)"/>
+         <arg name="config_file" value="$(arg average_config_file)"/>
+         <arg name="output" value="$(arg output)"/>
+         <arg name="launch_prefix" default="$(arg launch_prefix)"/>
+         <arg name="cloud_in" default="$(arg average_cloud_in)"/>
+  </include>
+
+  <group ns="$(arg ns)">
+
+    <node name="$(arg obstacle_nodelet_manager)"
+      pkg="nodelet"
+      type="nodelet"
+      args="manager"
+      output="screen"/>
+
+    <!-- Downsampling points  -->
+    <node name="voxel_grid_obs"
+      pkg="nodelet"
+      type="nodelet"
+      args="load pcl/VoxelGrid $(arg obstacle_nodelet_manager)"
+      output="$(arg output)">
+      <remap from="~input" to="average_point_cloud/output" />
+      <rosparam>  
+        input_frame: 'ana/base_footprint'
+        output_frame: 'ana/base_footprint'
+        leaf_size: 0.03
+        filter_field_name: z
+        filter_limit_min: -0.5
+        filter_limit_max: 5.0
+        filter_limit_negative: False
+      </rosparam>
+    </node>
+
+    <!-- Run a passthrough filter  -->
+    <node name="passthrough"
+      pkg="nodelet" 
+      type="nodelet"  
+      args="load pcl/PassThrough $(arg obstacle_nodelet_manager)" 
+      output="$(arg output)">
+      <remap from="~input" to="voxel_grid_obs/output" />
+      <rosparam>
+        filter_field_name: x
+        filter_limit_min: 0.01
+        filter_limit_max: 1.5
+        filter_limit_negative: False
+      </rosparam>
+    </node>
+
+    <!-- Statistical outlier removal  -->
+    <node name="outlier_removal" 
+      pkg="nodelet"
+      type="nodelet"
+      args="load pcl/StatisticalOutlierRemoval $(arg obstacle_nodelet_manager)"
+      output="$(arg output)" >
+      <remap from="~input" to="passthrough/output" />
+      <rosparam>
+        mean_k: 20
+        stddev: 2.0
+        negative: False 
+      </rosparam>
+    </node> 
+
+    <!-- Radius outlier removal  -->
+    <node name="radius_outlier_removal" 
+      pkg="nodelet"
+      type="nodelet"
+      args="load pcl/RadiusOutlierRemoval $(arg obstacle_nodelet_manager)"
+      output="$(arg output)" >
+      <remap from="~input" to="outlier_removal/output" />
+      <rosparam>
+        radius_search: 0.1
+        min_neighbors: 15
+      </rosparam>
+    </node> 
+  </group>
+
+  <include file="$(find iri_nav_obstacle_detection_normals)/launch/node.launch">
+	 <arg name="ns" value="$(arg ns)"/>
+         <arg name="node_name" value="$(arg normals_node_name)"/>
+         <arg name="config_file" value="$(arg normals_config_file)"/>
+         <arg name="output" value="$(arg output)"/>
+         <arg name="launch_prefix" default="$(arg launch_prefix)"/>
+         <arg name="cloud_in" default="$(arg normals_cloud_in)"/>
+  </include>
+
+<!-- **************************** HOLE DETECTION ******************************* -->
+
+  <include file="$(find iri_point_cloud_hole_detection)/launch/node.launch">
+	 <arg name="ns" value="$(arg ns)"/>
+         <arg name="node_name" value="$(arg near_hole_detection_node_name)"/>
+         <arg name="config_file" value="$(arg near_hole_detection_config_file)"/>
+         <arg name="output" value="$(arg output)"/>
+         <arg name="launch_prefix" default="$(arg launch_prefix)"/>
+         <arg name="cloud_in" default="$(arg hole_detection_cloud_in)"/>
+  </include>
+
+  <include file="$(find iri_point_cloud_hole_detection)/launch/node.launch">
+	 <arg name="ns" value="$(arg ns)"/>
+         <arg name="node_name" value="$(arg far_hole_detection_node_name)"/>
+         <arg name="config_file" value="$(arg far_hole_detection_config_file)"/>
+         <arg name="output" value="$(arg output)"/>
+         <arg name="launch_prefix" default="$(arg launch_prefix)"/>
+         <arg name="cloud_in" default="$(arg hole_detection_cloud_in)"/>
+  </include>
+
+</launch>
+
diff --git a/launch/include/lidar_nodelets.launch b/launch/include/lidar_nodelets.launch
new file mode 100644
index 0000000000000000000000000000000000000000..49fa71a59f4ebd8264a38d0030241d1b0e06d87c
--- /dev/null
+++ b/launch/include/lidar_nodelets.launch
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!-- -->
+<launch>
+
+  <arg name="ns" default="ana" />
+  <arg name="output" default="log"/>
+  <arg name="launch_prefix" default=""/>
+
+  <arg name="lidar_nodelet_manager" default="lidar_nodelet_manager"/>
+
+  <arg name="lidar_filter_node_name" default="lidar_filter"/>
+  <arg name="lidar_filter_config_file" default="$(find iri_point_cloud_angle_filter)/config/default_config.yaml"/>
+  <arg name="lidar_filter_cloud_in" default="/pointcloud_in" />
+
+  <arg name="lidar_detector_node_name" default="lidar_detector"/>
+  <arg name="lidar_detector_config_file" default="$(find iri_lidar_obstacle_detector)/config/default_config.yaml"/>
+
+  <!-- Obstacle nodelets manager -->
+  <group ns="$(arg ns)">
+    <node name="$(arg lidar_nodelet_manager)"
+          pkg="nodelet"
+          type="nodelet"
+          args="manager"
+          output="screen"/>
+  </group>
+
+  <include file="$(find iri_point_cloud_angle_filter)/launch/nodelet.launch">
+    <arg name="ns" value="$(arg ns)"/>
+    <arg name="node_name" value="$(arg lidar_filter_node_name)"/>
+    <arg name="lidar_nodelet_manager" value="$(arg lidar_nodelet_manager)"/>
+    <arg name="config_file" value="$(arg lidar_filter_config_file)"/>
+    <arg name="output" value="$(arg output)"/>
+    <arg name="launch_prefix" value="$(arg launch_prefix)"/>
+    <arg name="cloud_in" value="$(arg lidar_filter_cloud_in)" />
+  </include>
+
+  <include file="$(find iri_lidar_obstacle_detector)/launch/nodelet.launch">
+    <arg name="ns" value="$(arg ns)"/>
+    <arg name="node_name" value="$(arg lidar_detector_node_name)"/>
+    <arg name="lidar_nodelet_manager" value="$(arg lidar_nodelet_manager)"/>
+    <arg name="config_file" value="$(arg lidar_detector_config_file)"/>
+    <arg name="output" value="$(arg output)"/>
+    <arg name="launch_prefix" value="$(arg launch_prefix)"/>
+    <arg name="cloud_in" value="/$(arg ns)/$(arg lidar_filter_node_name)/cloud_out"/>
+  </include>
+  
+</launch>
+
diff --git a/launch/include/lidar_nodes.launch b/launch/include/lidar_nodes.launch
new file mode 100644
index 0000000000000000000000000000000000000000..f1673f4648d53e4a95c097fd54698c921ac1e8b1
--- /dev/null
+++ b/launch/include/lidar_nodes.launch
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!-- -->
+<launch>
+
+  <arg name="ns" default="ana" />
+  <arg name="output" default="log"/>
+  <arg name="launch_prefix" default=""/>
+
+  <arg name="lidar_filter_node_name" default="lidar_filter"/>
+  <arg name="lidar_filter_config_file" default="$(find iri_point_cloud_angle_filter)/config/default_config.yaml"/>
+  <arg name="lidar_filter_cloud_in" default="/pointcloud_in" />
+
+  <arg name="lidar_detector_node_name" default="lidar_detector"/>
+  <arg name="lidar_detector_config_file" default="$(find iri_lidar_obstacle_detector)/config/default_config.yaml"/>
+
+  <include file="$(find iri_point_cloud_angle_filter)/launch/node.launch">
+    <arg name="ns" value="$(arg ns)"/>
+    <arg name="node_name" value="$(arg lidar_filter_node_name)"/>
+    <arg name="config_file" value="$(arg lidar_filter_config_file)"/>
+    <arg name="output" value="$(arg output)"/>
+    <arg name="launch_prefix" value="$(arg launch_prefix)"/>
+    <arg name="cloud_in" value="$(arg lidar_filter_cloud_in)" />
+  </include>
+
+  <include file="$(find iri_lidar_obstacle_detector)/launch/node.launch">
+    <arg name="ns" value="$(arg ns)"/>
+    <arg name="node_name" value="$(arg lidar_detector_node_name)"/>
+    <arg name="config_file" value="$(arg lidar_detector_config_file)"/>
+    <arg name="output" value="$(arg output)"/>
+    <arg name="launch_prefix" value="$(arg launch_prefix)"/>
+    <arg name="cloud_in" value="/$(arg ns)/$(arg lidar_filter_node_name)/cloud_out"/>
+  </include>
+  
+</launch>
+