SICK LD-MRS 400001S01, LD-MRS 400102S01, LD-MRS 800001S01 User Manual

8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 1 of 26
CAN data protocol
LD-MRS 400001S01 LD-MRS 400102S01 LD-MRS 800001S01
8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 2 of 26
1 Introduction 3 2 General information 3
2.1 CAN frame format 3
2.2 Identifiers 3
2.3 Message format 4
3 Object Data 5
3.1 List header: CAN Base ID (e.g. 0x500) 5
3.2 Timestamp: CAN Base ID + 0x1 (e.g. 0x501) 6
3.3 Tracking1: CAN Base ID + 0x2 (e.g. 0x502) 6
3.4 Tracking2: CAN Base ID + 0x3 (e.g. 0x503) 7
3.5 Class and box1: CAN Base ID + 0x4 (e.g. 0x504) 7
3.6 Box2: CAN Base ID + 0x5 (e.g. 0x505) 7
3.7 Contour header: CAN Base ID + 0x6 (e.g. 0x506) 8
3.8 Contour points: CAN Base ID + 0x7 (e.g. 0x507) 8
4 Command Interface 10
4.1 LD-MRS commands and command replies 10
4.1.1 Reset sensor 10
4.1.2 SaveConfig 11
4.1.3 Set Parameter 11
4.1.4 Get Parameter 11
4.1.5 Load Factory Defaults 12
4.1.6 Start Measure 12
4.1.7 Stop Measure 13
4.1.8 SetNTPTimestampSec 13
4.1.9 SetNTPTimestampFracSec 14
4.2 LD-MRS parameter list 15
4.3 Examples 22
5 LD-MRS error/warning 23
1.1 Error register 1 23
1.2 Error register 2 24
1.3 Warning register 1 25
1.4 Warning register 2 25
6 Ego motion information 26
8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 3 of 26
1 Introduction
This document describes how data is received and transmitted via CAN. Addressed systems are LD-MRS400001S0, LD-MRS400102S01 and LD-MRS800000S01. This document is based on firmware version 3.02.
Note: The standard LD-MRSXXX (without “S01”) also has a CAN interface. This interface is used to control the external I/O-extender of the sensor and uses other commands. This document does not apply to this sensor type!
2 General information
2.1 CAN frame format
The LD-MRS uses CAN 2.0A with 11-bit identifiers. The baudrate is 500 kBit/s.
2.2 Identifiers
Each CAN messages has an identifier (ID). For the LD-MRS, a base ID can be set as a parameter (default is 0x500). This base ID defines a range of 16 subsequent IDs, starting with the base ID itself. E.g., with the base ID set to 0x500, the used CAN messages will have the IDs 0x500 through 0x50F.
As the message ID defines the message and its contents, each ID may only be used by one device (or for one purpose) on the CAN bus. If multiple sensors should be used on one CAN bus, each sensor must have a base ID that separates its ID range from the other devices.
Table 1: CAN ID overview
CAN ID
Default ID
Description
0x303 – 0x306
(fixed)
Vehicle motion data base ID
0x500
Object list header (start of object data)
base ID+1
0x501
Object timestamp
base ID+2
0x502
Tracking1: First set of information for an object
base ID+3
0x503
Tracking2: Second set of information for an object
base ID+4
0x504
Class and box1: Bounding box information for an object
base ID+5
0x505
Box2: Bounding box information for an object
base ID+6
0x506
Contour header: Start of contour information for an object
base ID+7
0x507
Contour points: Additional contour points.
base ID+8
0x508
Object list trailer
base ID+9
0x509
(unused)
base ID+10
0x50A
Command to the sensor.
base ID+11
0x50B
Reply from the sensor (for each received
8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 4 of 26
command).
base ID+12
0x50C
(unused)
base ID+13
0x50D
(unused)
base ID+14
0x50E
(unused)
base ID+15
0x50F
Error messages
2.3 Message format
Message length is always 8 bytes, unless declared differently in the description. Message byte and bit numbering is zero based. E.g., the first data byte of a message ist byte 0, the last one byte 7. Data encoding is big endian (Motorola) for all messages except command, command reply and errors and warnings, which use little endian (Intel).
8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 5 of 26
3 Object Data
Object data can be transmitted via CAN if the corresponding output flag is enabled in the sensor.
The ID range is CAN base ID … CAN base ID + 0x7, first and last ID included. For a base ID 0x500 the range is [0x500, 0x507].
One set of object data consist of:
A list header message A timestamp message For each object:
o A Tracking1 message o A Tracking2 message o A Class and box1 message o A Box2 message o A contour header message o For each next 1-3 contour points:
A Contour point message
Note: Data encoding is Big Endian format.
3.1 List header: CAN Base ID (e.g. 0x500)
Content
Data area
Data type
Description
Version
byte 0
UINT8
Version of the object data format. This document describes version 1.
Number of objects
byte 1
UINT8
Number of objects transmitted in this cycle.
View range estimation
byte 2
UINT8
Estimated maximum sensor view range on typical vehicles in percent [0,100]. 100: full view range 0: low view range 0xFF: invalid (no estimation possible)
Sensor temperature
byte 3
INT8
Current sensor temperature in °C. 0x80 indicates an invalid value.
Object data info flags
byte 4
bit field 8 bits
bit 0: Velocity type 0 = absolute velocities, 1 = relative velocities. bit 1: Bounding boxes 0 = boxes are object boxes (aligned to object), 1 = boxes are bounding boxes (aligned to axes of coordinate system). bits 2…7: reserved
8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 6 of 26
Counter
byte 5
UINT8
Counter for header and trailer message (to be able to match header and trailer)
Blindness
byte 6
UINT8
0: sensor not covered; other: sensor covered = blind
Unused
byte 7
-
-
3.2 Timestamp: CAN Base ID + 0x1 (e.g. 0x501)
Content
Data area
Data type
Description
NTP seconds
bytes 0…3
UINT32
Start time of the scan these objects are based on.
NTP fractional seconds
byte 4…7
UINT32
Fractional seconds the scan start time.
3.3 Tracking1: CAN Base ID + 0x2 (e.g. 0x502)
Content
Data area
Data type
Description
Object ID
byte 0
UINT8
ID of this object from the tracking. Use this ID to refer messages to an object.
Position x
bytes 1…2
INT16
Position of the object (reference point, e.g. center of gravity) in the reference coordinate system in cm.
Position y
bytes 3…4
INT16
Velocity x
byte 5 bits 0…7, byte 6 bits 4…7
INT12
Object velocity in 0.1 m/s in the reference coordinate system. See list header for absolute or relative velocities. 0x800 indicates an invalid velocity.
Velocity y
byte 6 bits 0…3, byte 7 bits 0…7
INT12
Please refer to this image for clarification of the bits and bytes used for each information:
Byte 7 6 5 4 3 2 1 0
0 1 2 3 4 5 Velocity X 6 7 Velocity Y
Bit
Object ID
Position X
Position Y
8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 7 of 26
3.4 Tracking2: CAN Base ID + 0x3 (e.g. 0x503)
Content
Data area
Data type
Description
Object ID
byte 0
UINT8
ID of this object from the tracking. Use this ID to refer messages to an object.
Object age
byte 1
UINT8
Number of scans this object has been tracked for. Saturates at 0xFF.
Object prediction age
byte 2
UINT8
Number of scans this object has only be predicted without measurement update. Saturates at 0xFF. Is reset to 0 after measurement update.
Object time offset
byte 3
UINT8
Detection time of this object as offset to the reference time stamp in ms.
Position x sigma
byte 4
UINT8
Standard deviation of the position estimation in cm.
Position y sigma
byte 5
UINT8
Velocity x sigma
byte 6
UINT8
Standard deviation of the velocity estimation in cm.
Velocity y sigma
byte 7
UINT8
3.5 Class and box1: CAN Base ID + 0x4 (e.g. 0x504)
Content
Data area
Data type
Description
Object ID
byte 0
UINT8
ID of this object from the tracking. Use this ID to refer messages to an object.
reserved
byte 1
UINT8
reserved
reserved
byte 2
UINT8
reserved
reserved
byte 3
UINT8
reserved
Box center x
bytes 4…5
INT16
Center position of the box in cm. See list header for object box / bounding box.
Box center y
bytes 6…7
INT16
3.6 Box2: CAN Base ID + 0x5 (e.g. 0x505)
Content
Data area
Data type
Description
Object ID
byte 0
UINT8
ID of this object from the tracking. Use this ID to refer messages to an object.
Box size x
bytes 1…2
UINT16
Size of the box in cm in the object coordinate system. The box orientation is only available for an object box. A bounding box is an unrotated rectangle in the reference coordinate system. In this case the box size is always given in the reference coordinate system. 0x8000 indicates an invalid orientation.
Box size x
bytes 3…4
UINT16
8014493/ YDB5/2014-11-25 © SICK AG · Germany · All rights reserved · Subject to change without notice Page 8 of 26
Box orientation
byte 5…6
INT16
Object box orientation in the reference coordinate system in 1/100°. 0x8000 indicates an invalid orientation.
Reserved
byte 7
-
-
3.7 Contour header: CAN Base ID + 0x6 (e.g. 0x506)
Content
Data area
Data type
Description
Object ID
byte 0
UINT8
ID of this object from the tracking. Use this ID to refer messages to an object.
Number of contour points
byte 1
UINT8
Number of contour points including start point transmitted for this object. The number of following ObjectDataContour messages can be calculated by (NumOfContourPoints+1) Div 3. If this value is set to 0xFF (invalid), the contour of this object was not calculated correctly (e.g. too many contour points). In this case, the ContourStartpoint contains the closest distance to the object. No more contour point messages are sent for this object.
Closest contour point number
byte 2
UINT8
The closest object distance can be found in the contour point with this number. The numbering starts with 0 (start point).
Reserved
byte 3
-
-
Start point x
bytes 4…5
INT16
Position of the first contour point in cm in the reference coordinate system. This is the first point of the contour (or the closest distance, see above). The following contour points are only given by offsets to the previous points.
Start point y
bytes 6…7
INT16
3.8 Contour points: CAN Base ID + 0x7 (e.g. 0x507)
Content
Data area
Data type
Description
Object ID
byte 0
UINT8
ID of this object from the tracking. Use this ID to refer messages to an object.
Contour message number
byte 1
UINT8
Number of this contour message. Zero based.
x offset (e.g. point 1)
byte 2
INT8
Add these offsets to the position of the previous point. Calculate the position for
Loading...
+ 18 hidden pages