SICK

From CajunBot Wiki

Jump to: navigation, search
SICK LIDAR

SICK LIDARs are one of two primary sensors used on RaginBot (aka CajunBot-II) for obstacle detection.

Contents

[edit] Manuals

[edit] Product and vendor info

SICK product technical specs document for LMS family of products: http://www.sick.com/saqqara/IM0012759.PDF

Equipment used for 2004 Challenge:

J&J Electronics (949) 455 4460

  • 2020925 Fine adjustment mounting set; 2 axis
  • 2020926 3rd axis for fine adjustment
  • 1016761 LMI 200 w/MST software
  • 1018022 LMS 221-30206
  • 4034559 Dust shield for LMS 221
  • 2018303 Mounting set LMS, alignment bracket
  • 2019561 Cable
  • 6022515 LMS PCI interface

Equipment used by Gray Team for finding SICK Scan:

Adcon Engineering - 440-238-3915

Sick Scanfinder LS70B Part Number 6020756 - $810.00.

LMS 211/S14 has a dust prevention shield. That appears to be the laser used by Grays. It appears that the 211/221 and 291/S-14 (NOT the S-05) can output the reflectivity data he was interested in. That is from page 41 of the LMS telegram listing PDF. I think it may be possible to get a sub-set of that data from the 291/S-05 but I've not had time to look into it in detail.

As per SICK site..

Outdoor:

  • LMS 211-S14/201206/30106/30206
  • LMS 221-30106/30206

Indoor:

  • LMS 200-30106
  • LMS 291-S05
  • LMS 400

Other products mentioned in technical spec document (A list is at the end of the document)

  • LMS 220,
  • LMS 211-S12
  • LMS 211-S07
  • LMS 221-S07

On RaginBot (aka CajunBot-II) we most likely have LMS 200-30106

The S07 versions have 'heating', 'fog correction', and 'relay'.

Looks like we should get the S07 variant with sunshade.

However, if 'Relat' is not important then the 30206 variant is needed. We should try 211-30206.

The following also have high range and fog correction

  • LMS 291-S05
  • 211-S12/S13/S14

The heater is used for low temperature operation, under 10 degree C. LMS 211/221 have heater. Not sure if 291 has heater.

SICK Technical document lists some spare parts that may be relevant.

  • LMS 291 - Front Window - 2016408
  • LMS 211/221 -
  • Dyeing Agent Cartridge - 5306179
  • Device Plug Housing - 2018301
  • 16-pin plug insert - 6004379

LMS 211/S14 - Field of view stated as 90 degrees; angular resolution is 1/2 degree (not 1/4 degree) http://ecatalog.sick.com/Products/ProductFinder/product.aspx?finder=Produktfinder&pid=9169&lang=en

LMS 211/30106 - the field of view is 100 degrees, with 1/4 degrees

The only difference in the technical data of LMS 221-30206 and 221-30106 is that in 30206 the "Switch output is listed as 2x relay/1xPNP, 3xPNP." Whereas, for 30106 it is listed as only "3xPNP"

The same difference appears to be in the LMS 211 versions.

[edit] SICK Baud Rate

The following commands try to set the baud_rate to 9600.

  • Change the baud rate of the sick

	sick_config -s 9600 
  • Change the baud rate of computer's port

	setserial /dev/ttyS15 baud_base 921600 divisor 101 spd_cust  

where '/dev/ttyS15' is the port to which sick is connected, and divisor '101' is for 9600 baud_rate.

  • Run the sick driver and check if you are able to talk to the sick, if you are able to talk then make in permanent by following step
  • Make changes on sick permanent

	while true ; do sick_config -k -p SICK_LMS > /dev/ttyS15 ;  done 

Reset the power the run the sick driver to make sure the baud rate changes are permanent

To set the sick at other baud_rates you should change the

  • baud_rate you specified in first sick_config command and
  • change the divisor value in 'setserial' command (from 101 to the appropriate values)

[edit] SICK Telegrams

I talked to Don Alexander of SICK. Here is a summary.

  • The most significant difference in our use of SICKs on CB and RB is that the ones on RB do not have sunshield. According to Don its a "big, big, big" difference.
  • We should monitor the status code in software. They are described on Page #103 (and 21) in the telegram document. One of the bits in the status code is something about 'glare' or similar word. It tells whether data is corrupted by sun light.
  • Setting the system to ignore error will not degrade its performance, so long as we move the status monitoring to software. Basically, then we ignore the packets that are tainted. In the context of our usage, when the vehicle is moving, it is expected that the sunlight situation will constantly change, so it may not be meaningful to have the unit lock itself in an error state.
  • All models with the suffix "S14" return reflectivity data. That is the meaning of S14. There is a module 291-S14. The reflectivity data comes at a price. You lose resolution (number of scans per second are

less). Page 18, last para (in the telegram document) appears to address this.

  • SICK has special pricing for 291-S14 too. So the S15 and S14 have the same price (it seems).
  • Some teams are mounting the 291's upside down. This reduces the surface where dust can settle.

Summary: The 291's we have ordered should be good enough. We should build sunshields for them (that's a high priority).

We should consider getting S14 instead of S05 (may be at least two of the models can be changed). I will need someone to give input on the impact of lost resolution or how we can have both, the high resolution, and reflectivity (by using multiple SICKs).

[edit] Error lights

The following is Joshua's email and the corresponding reply from the LIDAR people.

Joshua:

The LMS-291's error lights routinely show an error, and the LMS must be powered off and then back on to regain operation of the device. During the error, the green light is off, the red light is constant on, and the yellow light blinks on and off about 3-4 times a second.

Reply:

In its operation we cannot afford to have the LMS halt operation under ANY CIRCUMSTANCES. What does this error mean, and is there any way to ignore or disable this error so that the LMS continues to function without having to cycle power to the device. YOUR ARE GETTING FATAL ERRORS. SET THE SCANNER TO AVAILABILITY LEVEL 3 TO CAUSE THE SCANNER TO OPERATE WHEN THIS CONDITION HAPPENS. SEE PAGE 95 OF 128 OF THE TELEGRAM LISTING FOR THE COMMAND STRUCTURE. SET THE BIT FROM 0 TO 1.

[edit] SICK Configuration

See also: Configuration of Comtrol

Check the the SICK documentation for commands 77h and 7Ch. These two packets are for configuring many of the options available. Currently there is a partial implementation of packet 77h in cbsystem. The program to change these is sick_config. Currently there are two options available to user that use packet 77h. These are measuring units(mm,cm) and measuring mode(8m,16m,32m,80m). Basically if you choose mm accuracy you can use modes 8m, 16m, 32m, which are the maximum distance returning from the SICK. If you choose 8m mode and cm units, then you get the full 80m range, which is what is currently standard for RaginBot (aka CajunBot-II). It has been observed on at least one LMS291-S14 sick, that it was shipped in 8m accuracy, and so was necessary to use sick_config to change to 80m mode.

Due to the fact that we have never had to change SICK configuration before, these packets have just been, partially, implemented (Oct 08). Should you desire to change one of the other parameters, you will probably have to implement the function in msg_0x77_builder.[CH] to do so.

[edit] LMS-291

The sick LMS sensors come from the factory set to rs-232 at 9600bps. In practice we communicate to the sensor using rs-422 at 500kbps. Therefore we must change both the protocol and baud rate of the sensor for proper operation.

  • In order to change the sensor's protocol from rs-232 to rs-422 a jumper needs to be placed inside the sick serial connector connecting pins 7 and 8 together.
  • To change the baud rate we have a special utility in cvs called sick_config. Since we use the Comtrol Devicemaster UP to communicate to the SICKs now, I will use this method in my instructions. It is also possible to configure the sick using a PCI card from Quatech, but we don't use that card anymore. You can find the old instructions here. The following steps assume the Comtrol Devicemaster UP is on the same subnet as your PC and that you have netcat installed.
    • Make sure both the SICK and Comtrol box are powered up, and that you know the TCP port the sick is connected to and the IP address of the Comtrol box. Also make sure the desired port on the Comtrol box is set to rs-422 and 9600bps
    • Type the following on the command line. This will set the baud rate of the Sick LMS to 500kbps:

Code:

sick_config -p SICK_LMS -s 500000 -k | nc <comtrol IP> <comtrol port> 
  • This command should set the baud rate of the sick to 500kbps and make it permanent so it will remain through power cycles.
    • Next configure the desired port on the comtrol box to run at 300 baud. 500kbps is a non-standard baud rate, so the chip inside the Comtrol box has had its 300bps baud rate replaced by 500kbps. That is why you chose 300bps to enable the 500kbps baud rate.
    • After this, running the sick_driver to communicate to this port should produce data on the local machine.

[edit] SICK Sensor Calibration

See SICK calibration

[edit] SICK Configuration with Quatech Card (RS422) Mode

See SICK Configuration with Quatech Card (RS422) Mode

[edit] SICK port numbers on RaginBot (aka CajunBot-II)

SICK port numbers


[edit] Handling transformations

See SICK and INS transformations

[edit] Raginbot (aka CajunBot-II) hardware links

RT3K antennaRT3K antennaC-NAV antennaSICK LIDARSICK LIDAREaton Vorad RadarsIbeo Alasca LIDARIbeo Alasca LIDARIbeo Alasca LIDARRT3K wheel speed sensorIteris LDWCamera for detecting lanes
RaginBot (aka CajunBot-II) in California at the 2007 Urban Challenge.


[edit] See also

Personal tools