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:
-
Turn on the SICK.
-
Unplug and replug
the USB cable to the laptop.
-
Start up the
laser's player server.
-
Wait for the SICK
to show the green light.
-
Start a player
client that uses the SICK, such as playerv
.
-
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.