====== Pointeuse globale ======
Est un outil de pointage physique qui permet en posant l'index de pointage d'enregistrer une coordonnée venant du GPSRTK (centimetrique).
**Pourquoi?**
L'antenne permet un calcul d'un point en son centre, mais comme il est impossible de poser ce centre sur des surfaces verticales ou seulement non plane/horizontale, il faut ajouter un index X/Y/Z qui correspond au décalage du point qu'on veut mesurer.
Les arpenteurs règlent ce problème en utilisant des appareils optiques et des perches à visée laser. Ce matériel est trop chère et ne correspond pas tout à fait à notre problématique.
Nous voulons nous réellement pointer du doigts les points à enregistrer. Notre doigt sera en bois avec un bouton au bout, et sa position sera constamment calculée par rapport au nord ou à l'inclinaison de l'antenne. Le tout est relié à un tout petit ordinateur portable qui s'occupera du GPS, du réseau de communication et des enregistrements.
La pointeuse est constituée
* d'une antenne GPS
* d'un compas CMP10 http://www.robot-electronics.co.uk/htm/cmps10doc.htm qui donne les valeurs
* Bearing / angle au nord
* Pitch et Roll pour les angles de tangage et de roulis
* arduino pro micro pour une liaison USB au compas
* https://github.com/kragniz/CMPS10
* une led qui en vert indique la stabilité du GPS
* un bouton poussoir qui valide le contacte pour le calcul
- L'appui en un point du bouton ou l'enregistrement d'une position valide la prise d'un cycle de données GPS
- si les données GPS sont stables la led passe au vert ?
- on applique à la position (moyenne) des coefficients (angle au nord/ tangage/roulis) pour situer cette position exactement sur le bouton poussoir plutot qu'au centre de l'antenne.
- on enregistre la position dans un fichiers
- le fichier peut etre séparé par objet et annoté pour facilité son importation sur un logiciel d'architecture ou autre
===== Code arduino CMPS10 =====
installer pour arduino leonardo (micro pro) bibliothèque https://github.com/kragniz/CMPS10
#include
#include
CMPS10 compass;
void setup(){
Serial.begin(9600);
}
void loop() {
Serial.print(" ");
Serial.print(compass.bearing());
Serial.print(" ");
Serial.print(compass.pitch());
Serial.print(" ");
Serial.println(compass.roll());
delay(500);
}
===== scripte ajout positionnement =====
Ce script fonctionne sur l'interface RTKLIB_Touchscreen_GUI/RTKBASE
#!/bin/bash
cd ~/RTKLIB_Touchscreen_GUI/RTKBASE
while inotifywait -q -e modify saveWGS84coordbuffer.txt >/dev/null;
do
cat < /dev/ttyACM1 > /tmp/compass.log &
RET=$!
cat saveWGS84coordbuffer.txt | awk '{ printf("%s %s %s",$1,$2,$3)}' >> pointcorrige.txt
sleep 1
tail /tmp/compass.log | sed '/^$/d' | tail -n1 >> pointcorrige.txt
kill -9 $RET
done
exit 0
? faire la correction sur une valeur en m (sortie XYZ plutot que LLH) ?