diff --git a/launch/realsense.launch b/launch/realsense.launch
index 9fb636b05e942357b58df56f7dd5bf6c9f8d1629..69bab25b48fb0047e7974820231ff198cbe7b12a 100644
--- a/launch/realsense.launch
+++ b/launch/realsense.launch
@@ -6,26 +6,28 @@
   <arg name="tf_prefix" default=""/>
   <arg name="output" default="log"/>
   <arg name="launch_prefix" default=""/>
+  <arg name="serial_no" default=""/>
   <arg name="manager" default="$(arg camera_name)_manager"/>
 
   <group ns="$(arg camera_name)">
     <node pkg="nodelet" type="nodelet" name="$(arg manager)" args="manager" output="$(arg output)" launch-prefix="$(arg launch_prefix)"/>
     <node pkg="nodelet" type="nodelet" name="realsense2_camera" args="load realsense2_camera/RealSenseNodeFactory $(arg manager)">
       <rosparam file="$(arg config_file)" command="load" />
-      <param name="base_frame_id"            type="str"  value="$(arg tf_prefix)/camera_link"/>
-      <param name="depth_frame_id"           type="str"  value="$(arg tf_prefix)/camera_depth_frame"/>
-      <param name="infra1_frame_id"          type="str"  value="$(arg tf_prefix)/camera_infra1_frame"/>
-      <param name="infra2_frame_id"          type="str"  value="$(arg tf_prefix)/camera_infra2_frame"/>
-      <param name="color_frame_id"           type="str"  value="$(arg tf_prefix)/camera_color_frame"/>
-
-      <param name="depth_optical_frame_id"   type="str"  value="$(arg tf_prefix)/camera_depth_optical_frame"/>
-      <param name="infra1_optical_frame_id"  type="str"  value="$(arg tf_prefix)/camera_infra1_optical_frame"/>
-      <param name="infra2_optical_frame_id"  type="str"  value="$(arg tf_prefix)/camera_infra2_optical_frame"/>
-      <param name="color_optical_frame_id"   type="str"  value="$(arg tf_prefix)/camera_color_optical_frame"/>
-
-      <param name="aligned_depth_to_color_frame_id"   type="str"  value="$(arg tf_prefix)/camera_aligned_depth_to_color_frame"/>
-      <param name="aligned_depth_to_infra1_frame_id"  type="str"  value="$(arg tf_prefix)/camera_aligned_depth_to_infra1_frame"/>
-      <param name="aligned_depth_to_infra2_frame_id"  type="str"  value="$(arg tf_prefix)/camera_aligned_depth_to_infra2_frame"/>
+      <param name="serial_no"                type="str"  value="$(arg serial_no)"/>
+      <param name="base_frame_id"            type="str"  value="$(arg tf_prefix)/$(arg camera_name)_link"/>
+      <param name="depth_frame_id"           type="str"  value="$(arg tf_prefix)/$(arg camera_name)_depth_frame"/>
+      <param name="infra1_frame_id"          type="str"  value="$(arg tf_prefix)/$(arg camera_name)_infra1_frame"/>
+      <param name="infra2_frame_id"          type="str"  value="$(arg tf_prefix)/$(arg camera_name)_infra2_frame"/>
+      <param name="color_frame_id"           type="str"  value="$(arg tf_prefix)/$(arg camera_name)_color_frame"/>
+
+      <param name="depth_optical_frame_id"   type="str"  value="$(arg tf_prefix)/$(arg camera_name)_depth_optical_frame"/>
+      <param name="infra1_optical_frame_id"  type="str"  value="$(arg tf_prefix)/$(arg camera_name)_infra1_optical_frame"/>
+      <param name="infra2_optical_frame_id"  type="str"  value="$(arg tf_prefix)/$(arg camera_name)_infra2_optical_frame"/>
+      <param name="color_optical_frame_id"   type="str"  value="$(arg tf_prefix)/$(arg camera_name)_color_optical_frame"/>
+
+      <param name="aligned_depth_to_color_frame_id"   type="str"  value="$(arg tf_prefix)/$(arg camera_name)_aligned_depth_to_color_frame"/>
+      <param name="aligned_depth_to_infra1_frame_id"  type="str"  value="$(arg tf_prefix)/$(arg camera_name)_aligned_depth_to_infra1_frame"/>
+      <param name="aligned_depth_to_infra2_frame_id"  type="str"  value="$(arg tf_prefix)/$(arg camera_name)_aligned_depth_to_infra2_frame"/>
     </node>
 
     <node pkg="nodelet" type="nodelet" name="color_rectify_color"