ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You need to launch them in namespaces or use a different name attribute for each node and remap the topics to be different. With the namspaces you could use something like the following.

rplidar_arg.launch

<launch>
  <arg name="serial_port" default="/dev/ttyUSB0"/>
  <node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen">
  <param name="serial_port"         type="string" value="$(arg serial_port)"/>
  <param name="serial_baudrate"     type="int"    value="115200"/><!--A1/A2 -->
  <!--param name="serial_baudrate"     type="int"    value="256000"--><!--A3 -->
  <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>

two_lidars.launch

<launch>
    <include ns="lidar0" file="$(find your_ros_package)/launch/rplidar_arg.launch">
        <arg name="serial_port" value="/dev/ttyUSB0"/>
    </include>
    <include ns="lidar1" file="$(find your_ros_package)/launch/rplidar_arg.launch">
        <arg name="serial_port" value="/dev/ttyUSB1"/>
    </include>
</launch>

the resulting topics would look something like, so in whatever nodes you use the scan topics in need to be listening to the correct topics:

/lidar0/scan
/lidar1/scan