products:kronos:rtkronos:rtkronos_communication_protocol

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:kronos:rtkronos:rtkronos_communication_protocol [2021/04/03 17:52] manuproducts: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 port série et port SPI module XLBee 2 =====
  
 La carte renvoie toutes les secondes la position et l'orientation de déplacement données par le GPS. La carte renvoie toutes les secondes la position et l'orientation de déplacement données par le GPS.
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]** : //(uint16)// packet_id   * **[0:1]** : //(uint16)// packet_id
Line 17: Line 18:
   * **[4:packet_length]** : payload   * **[4:packet_length]** : payload
  
-==== - Payload format for every packet ID/type ====+=== - Payload format for every packet ID/type ===
  
-=== - Id 0x0001: Complete position information ===+== - Id 0x0001: Complete position information ==
 {| class="contenttable sortable" style="width: 864px;text-align:center;" border="1" {| class="contenttable sortable" style="width: 864px;text-align:center;" border="1"
 |- style="background-color: lightgrey; height: 22px;" |- style="background-color: lightgrey; height: 22px;"
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="width: 166px;"|9 | style="width: 166px;"|9
 |} |}
 +
 +===== - 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'UB4B0).\\
 +Cela permet d'avoir une fréquence des messages garantie par le module GPS RTK (sans délai de traitement).\\
 +Pour le moment seuls les messages de type GNGGA sont disponibles sous format ASCII.
 +
 +
 +{{:products:kronos:rtkronos:rtkronos_com3_for_direct_rtk_positioning_data.png?500|}}
 +==== - Description du format GNGGA ====
 +
 +^ ID  ^ Champs                                                   ^ Description                                                                                                                                                                                                                                             ^ Nombre et type des symboles                  ^ Example                                          ^
 +| 1   | <WRAP>            %%$GNGGA%%            </WRAP>          | Préambule permettant d'identifiant le type du message                                                                                                                                                                                                   | 6 caractères fixes                           | <WRAP>            %%$GNGGA%%            </WRAP>  |
 +| 2   | utc                                                      | Temps UTC de la position calculée \\ (heures/minutes/secondes/dixièmes de\\ secondes). \\ Précision 10ms                                                                                                                                                | hhmmss.ss (8 digits et un point de virgule)  | 132530.60                                        |
 +| 3   | lat                                                      | Latitude(DDmm.mmmmmmmm) \\ en degrés, minutes et décimales de minutes                                                                                                                                                                                   | LLLL.LL                                      | 4834.65851118                                    |
 +| 4   | lat dir                                                  | Latitude direction(N = North, S = South)                                                                                                                                                                                                                | a                                            | N                                                |
 +| 5   | lon                                                      | Longitude(DDDmm.mmmmmmmm) \\ en degrés, minutes et décimales de minutes                                                                                                                                                                                 | LLLLL.LL                                     | 00744.99485270                                   |
 +| 6   | lon dir                                                  | Longitude direction(E = East, W = West)                                                                                                                                                                                                                 | a                                            | E                                                |
 +| 7   | Qualité de la solution                                   | <WRAP>          Position Solution Quality indicator\\ 0 = fix not available or invalid\\ 1 = point fix\\ 2 = pseudo-range difference\\ 4 = RTK fixed solution\\ 5 = RTK floating solution\\ 7 = Position set by user(Fixed Position)\\         </WRAP>  | x                                            | 1                                                |
 +| 8   | Nombre de satellites utilisés pour calculer la solution  | Nombre de satellites utilisés, \\ pas équivalent au nombre de satellites vus.                                                                                                                                                                           | xx                                           | 11                                               |
 +| 9   | hdop                                                     | Horizontal dilution of precision                                                                                                                                                                                                                        | x.x                                          | 1.5                                              |
 +| 10  | alt                                                      | Altitude par rapport au niveau de la mer\\ peut être négatif.                                                                                                                                                                                           | x.xxxx                                       | 151.4783                                         |
 +| 11  | Unité pour l'altitude                                    | M=mètres                                                                                                                                                                                                                                                | M                                            | M                                                |
 +| 12  | ondulation                                               | Ondulation du géoïde: la distance entre le géoïde \\ et le modèle terrestre éllipsoïde WGS84\\ peut être négatif                                                                                                                                        | x.xxxx                                       | 48.4225                                          |
 +| 13  | Unité pour l'ondulation                                  | M=mètres                                                                                                                                                                                                                                                | M                                            | M                                                |
 +| 14  | Âge des données différentielles                          | Âge des données de correction différentielles en secondes (<99s) \\ utilisées pour corriger la solution et provenant d'une base RTK.\\ Vide lorsqu'aucune correction différentielle de moins de 99 secondes \\ n'est disponible.                        | xx                                           | 13                                               |
 +| 15  | ID de la base RTK de correction                          | Id de la station de base d'où proviennent les corrections \\ différentielles utilisées.\\ Vide lorsqu'aucune correction différentielle de moins de 99 secondes \\ n'est disponible.                                                                     | xxxx-xxxx                                    | 0000-0002                                        |
 +| 16  | *CS                                                      | Checksum                                                                                                                                                                                                                                                | *hh                                          | *71                                              |
 +| 17  | [CR][LF]                                                 | Sentence terminator (carriage return, new line)                                                                                                                                                                                                         | \r\n                                         | \r\n                                             |
 +
 +=== - 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 ===
 +
 +<code>
 +$GNGGA,132530.60,4834.65851118,N,00744.99485270,E,1,11,1.5,151.4783,M,48.4225,M,,*71
 +</code>
 +
 +Cela correspond en degrés décimaux à : 
 +  * latitude: (48+34.65851118/60) soit: 48.577641853 degrés
 +  * longitude: (007+44.99485270/60) soit 7.749914211666667 degrés
 +
 +À 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                             ^ Trame COM3                               ^
 +| 0: pas de solution                       | 0: pas de solution                       |
 +| 16: Single point position                | 1: point fix                             |
 +| 17: Pseudo-range difference decomposing  | 2: pseudo-range difference               |
 +| 48 ou 49 ou 50: XXXX_INT                 | 4: RTK fixed solution                    |
 +| 32 ou 33 ou 34: XXXX_FLOAT               | 5: RTK floating solution                 |
 +| 1: Position has been fixed manually      | 7: Position set by user(Fixed Position)  |
 +
 +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://www.arduino.cc/reference/en/libraries/micronmea/
 +  * https://github.com/stevemarple/MicroNMEA
  • products/kronos/rtkronos/rtkronos_communication_protocol.1617472343.txt.gz
  • Last modified: 2021/04/03 17:52
  • by manu