Rosserial nodes in launch file are not running
Below is my ros launch file, when i try to launch the file two rosserial nodes ACM0 & ACM1 are starting but they are not setting up subscribers & publishers in the node. When i reboot the system the launch file starts and works perfectly. I use raspberry Pi & arduino UNO. How to fix this and is there anything wrong with my launch file?
<launch>
<arg name="model" />
<arg name="gui" default="False" />
<param name="robot_description" textfile="$(find testbot_description)/urdf/testbot.urdf" />
<param name="use_gui" value="$(arg gui)"/>
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node>
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
<node name="teleop_twist_keyboard" pkg="teleop_twist_keyboard" type="teleop_twist_keyboard.py" output="screen">
</node>
<node name="lpid_velocity" pkg="testbot_bringup" type="lpid_velocity.py" output="screen">
</node>
<node name="rpid_velocity" pkg="testbot_bringup" type="rpid_velocity.py" output="screen">
</node>
<node name="twist_to_motors" pkg="testbot_bringup" type="twist_to_motors.py" output="screen">
</node>
<node name="diff_tf" pkg="testbot_bringup" type="diff_tf.py" output="screen">
</node>
<node name="serial_node1" pkg="rosserial_python" type="serial_node.py" output="screen">
<param name="port" value="/dev/ttyACM0" />
<param name="baud" value="57600" />
</node>
<node name="serial_node2" pkg="rosserial_python" type="serial_node.py" output="screen">
<param name="port" value="/dev/ttyACM1" />
<param name="baud" value="57600" />
</node>
<node name="rplidarNode" pkg="rplidar_ros" type="rplidarNode" output="screen">
<param name="serial_port" type="string" value="/dev/ttyUSB0"/>
<param name="serial_baudrate" type="int" value="115200"/>
<param name="frame_id" type="string" value="laser"/>
<param name="inverted" type="bool" value="false"/>
<param name="angle_compensate" type="bool" value="true"/>
</node>
</launch>