ARPA targets tracking implementation - nohal/OpenCPN GitHub Wiki

NMEA produced by radars

OpenCPN, implementation of RADAR related NMEA

Author: Pavel Kalian

Version: 1.1 - 2013-05-19

The following is a compilation of the information contained in IEC 61162-1 , NMEA documentation put together by Klaus Betke, May 2000, Revised August 2001 and user supplied information.

Radar related NMEA sentences

Prefix: RA

Sentences:

TLB - Target label

Common target labels for tracked targets. This sentence is used to specify labels for tracked targets to a device that provides tracked target data (e.g. via the TTM – Tracked target message). This will allow all devices displaying tracked target data to use a common set of labels (e.g. targets reported by two radars and displayed on an ECDIS).

       1   2    3   4       n   m    5
       |   |    |   |       |   |    |
$--TLB,x.x,c--c,x.x,c--c,...x.x,c--c*hh<CR><LF> 

1) Target number ‘n’ reported by the device. 
2) Label assigned to target ‘n’ (see note 2) 
3,4-n,m) Additional label pairs (see note 1) 
5) Checksum

NOTE 1 This message allows several target number/label pairs to be sent in a single message, the maximum sentence length limits the number of labels allowed in a message.

NOTE 2 Null fields indicate that no common label is specified, not that a null label should be used. The intent is to use a null field as a place holder. A device that provides tracked target data should use its ”local” label (usually the target number) unless it has received a TLB message specifying a common label.

TLL - Target latitude and longitude

Target number, name, position and time tag for use in systems tracking targets.

       1  2       3 4        5 6    7         8 9 10
       |  |       | |        | |    |         | | |
$--TLL,xx,llll.ll,a,yyyyy.yy,a,c--c,hhmmss.ss,a,a*hh<CR><LF> 

1) Target number 00 – 99 
2) Target latitude
3) N/S 
4) Target longitude
5) E/W 
6) Target name 
7) UTC of data 
8) Target status (see note 1) 
9) Reference target (see note 2) = R, null otherwise 
10) Checksum

NOTE 1 Target status: L = Lost, tracked target has been lost Q = Query, target in the process of acquisition T = tracking

NOTE 2 Reference target: set to “R” if target is a reference used to determine own ship position or velocity, null otherwise.

TTM - Tracked Target Message

Version 1

                                        11     13
       1  2   3   4 5   6   7 8   9   10|    12| 14
       |  |   |   | |   |   | |   |   | |    | | |
$--TTM,xx,x.x,x.x,a,x.x,x.x,a,x.x,x.x,a,c--c,a,a*hh <CR><LF> 
1) Target Number 
2) Target Distance 
3) Bearing from own ship 
4) Bearing Units 
5) Target speed 
6) Target Course 
7) Course Units 
8) Distance of closest-point-of-approach 
9) Time until closest-point-of-approach "-" means increasing 
10) Speed/distance units, K/N/S
11) Target name 
12) Target Status 
13) Reference Target
14) Checksum 

Version 2

IMO Resolution A.820:1995 and MSC 64(67) Annex 4: Data associated with a tracked target relative to own ship's position.

                                        11     13            16
       1  2   3   4 5   6   7 8   9   10|    12| 14        15|
       |  |   |   | |   |   | |   |   | |    | | |         | |
$--TTM,xx,x.x,x.x,a,x.x,x.x,a,x.x,x.x,a,c--c,a,a,hhmmss.ss,a*hh<CR><LF>
1) Target number, 00 to 99 
2) Target distance from own ship 
3) Bearing from own ship,
4) degrees true/relative (T/R)
5) Target speed 
6) Target course,
7) degrees true/relative (T/R)
8) Distance of closest-point-of-approach 
9) Time to CPA, min., "-" increasing 
10) Speed/distance units, K/N/S 
11) Target name 
12) Target status (see note 1) 
13) Reference target (see note 2) = R, null otherwise 
14) Time of data (UTC) 
15) Type of acquisition 
	A = Automatic 
	M = manual 
	R = reported 
16) Checksum

NOTE 1 Target status: L = Lost, tracked target has been lost Q = Query, target in the process of acquisition T = tracking

NOTE 2 Reference target: set to “R” if target is a reference used to determine own-ship position or velocity, null otherwise

OSD - Own Ship Data

       1   2 3   4 5   6 7   8   9 10
       |   | |   | |   | |   |   | |
$--OSD,x.x,A,x.x,a,x.x,a,x.x,x.x,a*hh <CR><LF>
1) Heading, degrees true 
2) Heading status A = data valid, V = data invalid 
3) Vessel Course, degrees True 
4) Course Reference, B/M/W/R/P (see note) 
5) Vessel Speed 
6) Speed Reference, B/M/W/R/P (see note) 
7) Vessel Set, degrees True - Manually entered
8) Vessel drift (speed) - Manually entered
9) Speed Units K = km/h; N = Knots; S = statute miles/h 
10) Checksum 

IMO Resolution A.477 and MSC 64(67), Annex 1 and Annex 3. Heading, course, speed, set and drift summary. Useful for, but not limited to radar/ARPA applications. OSD gives the movement vector of the ship based on the sensors and parameters in use.

NOTE Reference systems on which the calculation of vessel course and speed is based. The values of course and speed are derived directly from the referenced system and do not additionally include the effects of data in the set and drift fields. B = bottom tracking log M = manually entered W = water referenced R = radar tracking (of fixed target) P = positioning system ground reference.

RSD - RADAR System Data

IMO Resolution A.820:1995 and MSC 64(67), Annex 4: Radar display setting data.

                                                     13
       1   2   3   4   5   6   7   8   9   10  11  12| 14
       |   |   |   |   |   |   |   |   |   |   |   | | |
$--RSD,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,a,a*hh <CR><LF> 
1) Origin 1 range (see note 2), from own ship 
2) Origin 1 bearing (see note 2) degrees from 0° 
3) Variable range marker 1 (VRM1), range 
4) Bearing line 1 (EBL1), degrees from 0° 
5) Origin 2 range (see note 2) 
6) Origin 2 bearing (see note 2) 
7) VRM 2, range 
8) EBL 2, degrees 
9) Cursor Range From Own Ship 
10) Cursor Bearing Degrees Clockwise From Zero 
11) Range Scale in use
12) Range Units K = km , N = nautical miles , S = statute miles 
13) Display rotation (see note 1) 
14) Checksum

NOTE 1 Display rotation: C = course-up, course-over-ground up, degrees true H = head-up, ship's heading (centre-line) 0° up N = north-up, true north is 0° up

NOTE 2 Origin 1 and origin 2 are located at the stated range and bearing from own ship and provide for two independent sets of variable range markers (VRM) and electronic bearing lines (EBL) originating away from own ship position.

Implementation

Case 1:

A TLL sentence is produced when a button is pressed on the radar, the device does no do target tracking The sentence does not contain target ID Observed with: Furuno 1623

How to implement: One of: Show AIS like target with appropriate symbol/drop WPT/Ignore

Example data:

$RATLL,,3647.422,N,01432.592,E,,,,*58

Case 2: Device produces TTM, OSD and RSD sentences. The sentences come in bursts – an OSD/RSD pair is followed by TTM sentences for all the tracked targets. Newly acquired target produces: Lost target produces:

Observed with: BridgeMaster E Radar (Uses the older, shorter, TTM format), Raymarine E80 (Uses the newer TTM format, does not provide OSD, target acquisition/deactivation is not 100% clear)

Needing special attention

New target acquisition A message similar to $RATTM,01,1.86,309.4,T,,,,,,,,Q,*XX is received

Lost/deactivated target A message similar to $RATTM,03,,,,,,,,,,,,*71 is received

How to implement:

TTM: Calculate the target position based on it's distance and bearing, draw AIS like target with appropriate symbol. In case the bearing is relative, we have to have OSD previously received to be able to do the calculation.

OSD: needed in case relative bearings are given in TTM

RSD: Radar system settings, if at all should be handled by a plugin.

Example data:

$RAOSD,024.1,A,061.4,P,0.0,P,,,N*42 
$RARSD,0.00,,2.50,005.0,0.00,,4.50,355.0,,,3.0,N,H*51 
$RATTM,01,1.86,309.4,T,0.7,220.2,T,1.9,-0.0,N,,T,*78 
$RATTM,02,1.68,000.6,T,6.7,052.2,T,1.3,-9.4,N,,L,*6D 
$RATTM,03,1.99,041.5,T,0.6,132.2,T,2.0,-0.0,N,,L,*69 
$RATTM,01,,,,,,,,,,,,*73 
$RATTM,03,,,,,,,,,,,,*71 

TODO

  • We now use just reference heading from the OSD sentence
  • We ignore RSD and TLB completely

Raymarine E80 info

Recently somebody mentioned that you needed more information about nmea radar sentences. I extracted this from my Raymarine E80 which I hope you find useful. It might be a great enhancement to overlay radar data on the chart.

The first sequence is the Radar System Data which covers:

  • Radar Range Setting
  • Radar Cursor Position (relative to centre/ship)
  • EBL/VRM 1
  • EBL/VRM 2

The "N" is nautical miles scale (I believe others are K and S but the E80 doesnt do them)

$RARSD,,,,,,,,,0.000,000.2,0.125,N,N*50

Cursor at vessel pos Range 1/8 mile

$RARSD,,,,,,,,,0.145,244.5,0.125,N,N*55

Cursor moved now 0.145 NM relative bearing 244.5 degrees

$RARSD,0.883,099.3,0.200,047.6,,,,,0.145,245.2,0.1 25,N,N*54

EBL1 = 47.6 Stbd VRM1 = 0.2000 NM

$RARSD,0.150,233.5,0.177,086.4,,,,,0.150,233.5,0.1 25,N,N*59

Origin of EBL1, VRM1 moved 0.15 nm bearing 233.5 from ship EBL1 is 86.4 degrees (relative) and VRM is 0.177 NM

$RARSD,0.251,243.9,0.177,087.5,0.376,131.3,0.167,0 11.5,0.376,131.3,0.25 ,N,N5,N,N5

VRM2 offset 0.376 nm 131.3 degrees relative VRM2 range 0.167 nm EBL2 10.6 degrees stb

VRM1 offset 0.251 nm 243.9 relative

$RATTM,01,0.438,018.6,T,0.00,180.0,T,0.438,0.0,N,T GT 01,Q,,180540.43,M*50

Target 01, range 0.438 nm direct 018.6 TRUE

$RATTM,01,0.438,018.9,T,0.99,103.5,T,0.438,0.0,N,T GT 01,T,,180600.47,M*57

Spd target 0.99 kts Heading target 103.5T

Distance to CPA 0.438

I hope this helps, let me know if you need any more.

⚠️ **GitHub.com Fallback** ⚠️