SICKLaserServer

Maintained by: David Austin

1.0 Introduction
The SICKLaserServer provides a client-server interface to the SICK laser scanner. This allows a number of processes to access the data. Quite a bit of effort has gone into optimising the data transfer from the SICKLaserServer to its clients. The configuration and transformations describing the position of the scanner are transferred separately to the scan data, and only if they have changed.

2.0 Invocation

SICKLaserServer accepts the following command-line arguments.

-0 | -1 | -2 | -3
Specify the serial port to use for serial communications with the SICK laser scanner. Corresponds to /dev/ttyS[0-3].
-b <baud>
Specify the baud rate to use for serial communications with the SICK laser scanner.
-C <config>
Use configuration name config. See here for more information about namespaces.
-d <level>
Specify the debug level. See here for more information on debugging.
-D <device>
Specify the serial port to use for serial communications with the SICK laser scanner.
-f <datafile>
Read saved laser scan data from the file datafile and replay it.
-I
Use intensity mode. This provides 3 bits of intensity information as well as range information. Anything with a positive intensity reading is likely to be a reflector.
-l
Instead of reading data from the laser scanner, get the data from another SICKLaserServer. Allows efficient transfer of the laser data over the wireless network.
-L
Use pull communications with the laser scanner. Periodically request a new scan from the SICK laser scanner, instead of asking the SICK to send data continuously.
-n
Use the Nomad XR4000 robot server to get the data, instead of reading from the SICK directly. Not tested recently.
-N <range_noise>
In simulation mode (see -s and -q arguments), this specifies the amount of noise to be added or subtracted from range readings, in metres.
-p <port>
Tell the server to use a particular TCP port number. This is to allow use of the SICKLaserServer without the NameServer, if so desired.
-P
Tell the server that the SICK is mounted on top of a pan-tilt unit. Additional transformations are used. Not tested.
-q <map_file>
Simulate a laser scanner. The file map_file contains a line map of the environment to be simulated. SICKLaserServer connects to a server named MobileRobotSimulator to get the position of the robot for simulation.
-r
Use "Special Robotics Mode" when communicating with the SICK laser scanner. This uses the three field bits for each reading for extra range information. Allows maximum range of 32m, instead of 8m.
-R <robot>
Use robot name robot. See here for more information about namespaces.
-s
Simulate a laser scanner. The default "line.map" file is used for the line map of the environment to be simulated. SICKLaserServer connects to a server named MobileRobotSimulator to get the position of the robot for simulation. See the -q option to specify your own map file name.
-S <server_name>
Set the name for this server to register with the NameServer under. Default "LaserServer".
-t <type>
If type is 'l' or 'L', a SICK LMS scanner is assumed (the default). If type is 'p' or 'P', a SICK PLS scanner is assumed.
-T <min_period>
Specify the minimum period between client data requests. Default 0.3 seconds.
3.0 Design
This section documents some of the semantics of the operation of the SICKLaserServer and the overall design ideas.

To be completed.

Copyright 2003 David Austin