Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| products:kronos:rtkronos:rtkronos_communication_protocol [2021/04/03 17:52] – manu | products:kronos:rtkronos:rtkronos_communication_protocol [2022/05/02 14:04] (current) – manu | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| tags: RTK, Kronos, RTKronos, communication | tags: RTK, Kronos, RTKronos, communication | ||
| - | ===== - Utilisation ===== | + | ===== - Utilisation |
| La carte renvoie toutes les secondes la position et l' | La carte renvoie toutes les secondes la position et l' | ||
| Line 11: | Line 11: | ||
| Ces informations sont disponibles sur le port série et le port SPI du module XLBee 2 (SOCKET 2 sur la carte). | Ces informations sont disponibles sur le port série et le port SPI du module XLBee 2 (SOCKET 2 sur la carte). | ||
| - | ===== - Protocole | + | |
| + | ==== - Protocole ==== | ||
| * **[0:1]** : // | * **[0:1]** : // | ||
| Line 17: | Line 18: | ||
| * **[4: | * **[4: | ||
| - | ==== - Payload format for every packet ID/ | + | === - Payload format for every packet ID/type === |
| - | === - Id 0x0001: Complete position information | + | == - Id 0x0001: Complete position information == |
| {| class=" | {| class=" | ||
| |- style=" | |- style=" | ||
| Line 233: | Line 234: | ||
| - | === - Id 0x0002: Heading data === | + | == - Id 0x0002: Heading data == |
| Line 249: | Line 250: | ||
| |} | |} | ||
| - | === - Id 0x0003: Satellite count === | + | == - Id 0x0003: Satellite count == |
| Line 309: | Line 310: | ||
| | style=" | | style=" | ||
| |} | |} | ||
| + | |||
| + | ===== - Utilisation sortie directe GPS RTK ===== | ||
| + | En Mars 2022, nous avons ajouté la sortie en direct sur le port dédié du GPS (port COM3 de l' | ||
| + | Cela permet d' | ||
| + | Pour le moment seuls les messages de type GNGGA sont disponibles sous format ASCII. | ||
| + | |||
| + | |||
| + | {{: | ||
| + | ==== - Description du format GNGGA ==== | ||
| + | |||
| + | ^ ID ^ Champs | ||
| + | | 1 | < | ||
| + | | 2 | utc | Temps UTC de la position calculée \\ (heures/ | ||
| + | | 3 | lat | Latitude(DDmm.mmmmmmmm) \\ en degrés, minutes et décimales de minutes | ||
| + | | 4 | lat dir | Latitude direction(N = North, S = South) | ||
| + | | 5 | lon | Longitude(DDDmm.mmmmmmmm) \\ en degrés, minutes et décimales de minutes | ||
| + | | 6 | lon dir | Longitude direction(E = East, W = West) | a | E | | ||
| + | | 7 | Qualité de la solution | ||
| + | | 8 | Nombre de satellites utilisés pour calculer la solution | ||
| + | | 9 | hdop | Horizontal dilution of precision | ||
| + | | 10 | alt | Altitude par rapport au niveau de la mer\\ peut être négatif. | ||
| + | | 11 | Unité pour l' | ||
| + | | 12 | ondulation | ||
| + | | 13 | Unité pour l' | ||
| + | | 14 | Âge des données différentielles | ||
| + | | 15 | ID de la base RTK de correction | ||
| + | | 16 | *CS | Checksum | ||
| + | | 17 | [CR][LF] | ||
| + | |||
| + | === - Passage de degrés, minutes, décimales de minutes à degrés décimaux === | ||
| + | - séparer les degrés des minutes (minutes décimales) vous avez donc: | ||
| + | - un entier pour les degrés | ||
| + | - un flottant pour les minutes | ||
| + | - diviser les minutes décimales par 60 (mm.mmmmmmmmm / 60) | ||
| + | - ajouter le résultat aux degrés précédent | ||
| + | - Pour la latitude, si la lettre est S, multiplier par -1. | ||
| + | - Pour la longitude, si la lettre est W, multiplier par -1. | ||
| + | |||
| + | === - Example de trame complète === | ||
| + | |||
| + | < | ||
| + | $GNGGA, | ||
| + | </ | ||
| + | |||
| + | Cela correspond en degrés décimaux à : | ||
| + | * latitude: (48+34.65851118/ | ||
| + | * longitude: (007+44.99485270/ | ||
| + | |||
| + | À chaque fois, on est du côté positif, si on était en latitude S, ou en longitude W, il faudrait multiplier le résultat par -1. | ||
| + | |||
| + | === - Comparaison avec les trames sur XLBEE2 === | ||
| + | Notez bien que les valeurs données pour la précision de la solution sont très différentes entre les 2 types de trames.\\ | ||
| + | On peut néanmoins faire une équivalence: | ||
| + | ^ Trame XLBEE2 | ||
| + | | 0: pas de solution | ||
| + | | 16: Single point position | ||
| + | | 17: Pseudo-range difference decomposing | ||
| + | | 48 ou 49 ou 50: XXXX_INT | ||
| + | | 32 ou 33 ou 34: XXXX_FLOAT | ||
| + | | 1: Position has been fixed manually | ||
| + | |||
| + | Donc la meilleure solution a pour valeur 4 dans la trame GNGGA et pour valeur 50 dans la trame sur le XLBEE.\\ | ||
| + | Elles ne sont pas exactement équivalentes car on ne sait pas s'il s'agit de la valeur 48, 49 ou 50 sachant qu'en terme de précision: | ||
| + | 50 > 49 > 48. | ||
| + | |||
| + | ==== - Librairie arduino recommandée pour parser les messages GNGGA ==== | ||
| + | MicroNMEA de Steve MARPLE: | ||
| + | * https:// | ||
| + | * https:// | ||