Using the SICK LMS-200 at 500 Kbps

The SICK LMS-200 is a laser range finder that can provide real-time output over RS422 at a baud rate of 500 Kbps. It can also transmit over RS232, but for high speeds, RS422 is recommended. On our platform, we use the EasySync USB-COMi USB/RS422 converter. This device uses the FTDI FT232BM USB/RS422 converter chip, which is supported in Linux 2.4. The converter also uses a RS422 line level converter that can handle the 500 Kbps rate.

We have modified the Player/Stage SICK LMS-200 driver to work at the higher transmit rate using the FTDI converter chip. This modified driver is available via anonymous CVS from SourceForge (here), and will most likely be incorporated into future releases of Player/Stage.

We have noticed that the LMS-200 can have communication problems when operated at the highest speed. The effect of these problems are that sometimes it is necessary to power cycle the laser a few times before a connection can be made to the player server. The laser also seems to hang when it is given configuration commands after it has started returning data at 500 Kbps.

In order to alleviate these issues when using the laser on the RMP, we use two player server instances: one which serves the laser exclusively, and the other which serves the position, power, and other devices that can be used with the RMP. At the beginning of our experiments, we connect to the laser server using playerv, which subscribes to the laser. Then, after successfully connecting to the laser at 500 Kbps, we keep playerv running throughout the experiments. This will keep the laser transmitting data, without having to reestablish a connection to the laser (a potentially time consuming task) each time our path planning client is restarted. By keeping the position drivers on a separate player server, we can restart those drivers without having to worry about reconnecting to the laser.

 

 

Steps for getting the SICK working at 500 Kbps:

  1. Turn on the SICK.

  2. Unplug and replug the USB cable to the laptop.

  3. Start up the laser's player server.

  4. Wait for the SICK to show the green light.

  5. Start a player client that uses the SICK, such as playerv.

  6. If after a long time (over a minute), the SICK is not showing the green LED, then the process has failed. Turn off the SICK, kill the player server (and client) and go to step 1.

Instead of physically unplugging the USB port from the laptop, you may instead run the command

setserial /dev/ttyUSB0 spd_normal divisor 0

This will reset the port settings to normal, so that you can reconnect to the SICK at a lower speed. It is unclear whether reseating the USB cable (and reloading the converter driver) will speed up the laser connection process.

 

John Sweeney  
University of Massachusetts Amherst
Last Updated August 11, 2003