KCF Smart tether integration Introduction: The KCF smart tether calculates a geo-referenced position of the ROV. This position is calculated by using an active GPS fix or hand entered coordinates as a starting point. The tether is then modeled based on the the orientation of the nodes which are “in the water”. The estimated ROV position is calculated to be at the end of the modeled tether. The Geo-referenced postion of the ROV (lat/lon) can be output by the SmartTether software as a NMEA-0183 string (GPGGA). Geo-referenced positions of the individual nodes are also calculated, but are currently only displayed on the SmartTether software. Please see the manuals available on http://www.smarttether.com/ for more information regarding SmartTether operation. How the KCF SmartTether is integrated: The SmartTether is driven by a stand alone application. This software is provied by KCF Technologies. In a PRO4 system the SmartTether nodes are on the same physical RS-485 as the ROV. All communication management is handled by the VideoRay software (SDK or Cockpit). 1)The stand alone Smart Tether software queries a node by sending a command to the serial port. In the integrated system this serial port is virtual and is connected to the VideoRay software. 2)The VideoRay Software multiplexes the SmartTether command onto the tether bus and waits for the reply from the queried node 3)The Smart tether node responds with a packet on the serial bus, which the VideoRay software receives. 4)The reply from the node is forwarded to the KCF Smart Tether software through the virtual serial port 5)The depth and heading of the ROV are calculated from the ROV internal navigation sensors and injected into the proper reply to the SmartTether software. So, essentially this is all transparent to the stand alone SmartTether application. VideoRay has standardized on comm ports 15, and 16 for use as the virtual ports between the Smart Tether application and the VideoRay software. Using the SmartTether Data in custom applications The position of the ROV as determined by the SmartTether is currently only available via the NMEA-0183 serial output from the SmartTether software. Note that this an an emulated sentence and not all fields are populated. However, the most critical lat/lon fields are. Here is a sample of the smart tether output: $GPGGA,213909,2746.5523,N,08237.7305,W,1,08,,0.00,M,0.00,M,,*4F $GPGGA,213910,2746.5521,N,08237.7309,W,1,08,,0.00,M,0.00,M,,*49 $GPGGA,213910,2746.5516,N,08237.7326,W,1,08,,0.00,M,0.00,M,,*40 $GPGGA,213911,2746.5520,N,08237.7326,W,1,08,,0.00,M,0.00,M,,*44 $GPGGA,213911,2746.5524,N,08237.7326,W,1,08,,0.00,M,0.00,M,,*40 $GPGGA,213911,2746.5537,N,08237.7326,W,1,08,,0.00,M,0.00,M,,*42 $GPGGA,213912,2746.5537,N,08237.7326,W,1,08,,0.00,M,0.00,M,,*41 $GPGGA,213912,2746.5536,N,08237.7334,W,1,08,,0.00,M,0.00,M,,*43 $GPGGA,213912,2746.5535,N,08237.7340,W,1,08,,0.00,M,0.00,M,,*43 The format of the GPGGA sentence is as follows: The sentence contains the following fields: * Current time (if available; UTC) * Latitude (in DDMM.MMM format) * Latitude compass direction * Longitude (in DDDMM.MMM format) * Longitude compass direction * Fix type (0 for no fix, 1 for GPS, 2 for DGPS) * Number of satellites used for fix * Horizontal dilution of precision * Altitude above mean sea level * Altitude units (M for meters) * Height of mean sea level above WGS-84 earth ellipsoid * Units of the above geoid seperation (M for meters) * Time since last differential correction (ignored if inactive) * Differential station ID (ignored if inactive) * The checksum validation value (in hexadecimal) The checksum field consists of a '*' and two hex digits representing an 8 bit exclusive OR of all characters between, but not including, the '$' and '*' Note that HDOP is sent as a null, and depth is NOT sent in the altitude field. The SmartTether serial output only provides Lat/Lon data. It does not include ROV attitude (depth, heading, pitch, roll, etc.) When developing a custom application using the VideoRay SDK, the ROV attitude can be obtained via the proper API calls. Currently the ROV geo-referenced position (lat/lon) must be parsed from the NMEA-0183 data stream. Future versions of the SDK will include this functionallity and provide a consistant API for full position/attitude information.