ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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