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

Using multiple RPlidar on a single system

asked 2019-04-05 01:30:56 -0500

Vladith gravatar image

updated 2019-04-05 01:38:20 -0500

Hello,

i would like to use two (or more) rplidars at the same time. When i start the second RPLIDARnode, the first one closes. I tried to find a connection to rosserial, but it seems rplidarnode doesnt use it at all. Is there a way to run both rplidar with two rplidarnodes? What changes do i need to do? Right now im trying to use an Arduino Microcontroller to read out the rplidar and publish its informations by using rosserial_python. At the moment this wont work out pretty well cause it needs a lot of Parameters and really big Arrays (Timing Problems)...

My goal is to use multiple rplidar for sensor Fusion :)

Regards Dave

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2019-04-05 04:54:45 -0500

Reamees gravatar image

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
edit flag offensive delete link more

Question Tools

Stats

Asked: 2019-04-05 01:30:56 -0500

Seen: 1,173 times

Last updated: Apr 05 '19