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:// |