Difference between revisions of "DGPS"

From PaparazziUAV
Jump to navigation Jump to search
 
(40 intermediate revisions by the same user not shown)
Line 5: Line 5:
* NEO-M8P-2: acting as the rover (mobile) or as the ground station
* NEO-M8P-2: acting as the rover (mobile) or as the ground station


The NEO-M8P-2 acting as the ground station must know its position. This can be done by locating the ground antenna to a know position and initializing the ublox to this position, or programming the ublox to send its estimated position after a given converging time and precision.
The NEO-M8P-2 acting as the ground station must know its position. This can be done by locating the ground antenna to a know position and set the Ublox to this position, or setting the Ublox to send its estimated position after a given converging time and precision.
Furthermore the ublox acquire observation data and output them with its position to the NEO-M8P rover (mobile).  
 
When running the Ublox ground station acquire observation data and output them with its position to the NEO-M8P rover (mobile).  


The ground station output three messages types of the RTCM3 standard to the rover (mobile):
The ground station output three messages types of the RTCM3 standard to the rover (mobile):
* RTCM3.2 1005 : Ground station position
* RTCM3.2 1005 : Ground station position
* RTCM3.2 1077 : GPS observation data
* RTCM3.2 1077 : GPS observation data
* RTCM3.2 1087 : Beidou observation data  
* RTCM3.2 1087 : Glonass observation data  
 
The NEO-M8P acting as a rover (mobile) computes the station position with the data received from the ground. By comparing the computed position with the position received, the rover deduce the error to take into account to estimate its position from its own observation data.
 
 
'''Implementation'''
 
Ublox systems integration: we use gps boards from DROTEK. The boards are very small, and equiped with USB and UART. The antenna are active ones from Tallisman.
 
Datalink: to not duplicate radio links the ground and board Ublox use the paparazzi telemetry.
 
* on the ground side, the NEO-M8OP-2 is connected to the laptop using the USB connector (should be /dev/ttyAVCMX). The "rtcm2ivy" ground application (sw/ground_segment/misc/rtcm2ivy) broadcast the RTCM data from the ground ublox to the IVY bus. The paparazzi server (sw/ground_segment/tmtc/server) gets the data from the IVY bus and send it to the rover (mobiles) using the telemetry (sw/ground_segment/tmtc/link  -d /dev/paparazzi/xbee -transport xbee -s 57600). All rovers (mobile) linked to the same ground station receive the RTCM  data.
 
* on the rover (mobile) side, the NEO-M8P is connected to the autopilot using the UART. The ublox input RTCM3 message coming from the ground, and output UBX (position) messages to the autopilot. The u-Blox can have three status: 3D, DGPS, RTK
 
If the rover (mobile) stop receiving ground data, the NEO-M8P acts as a regular GPS, switching from DGPS/RTK to 3D.
 
 
 
'''Ublox Configuration'''
 
Ublox provides a Windows application (U-CENTER) to upgrade and configure the Ublox chips. The NEO-M8P requires at least the U-CENTER V8.24. In a linux environment this version needs to be run in a Windows virtual machine. Previous version (ex.V8.16) that could be run with Linux/Wine are not compatible for the NEO-M8P.
It is recommended to configure also the on board Ublox with U-CENTER tools, as the modules/gps/gps_ubx_ucenter is not working for the moment.
 
 
Ground station ublox
* Check firmware "view / Messages View / UBX / MON (Monitor) / VER (version)"
* Set default settings view / Configuration View / ..."
* Set output messages "view / Configuration View / Msg (Messages)": USB <br />F5-05 RTCM3.2 1005 (send), F5-4D RTCM3.2 1077 (send), F5-4D RTCM3.2 1087 (send), 01-3B NAV_SVIN (send), (CFG send)
* Set model type "view / Configuration View / NAV5 (Navigation 5)": <br />Dynamic Model : 2-Stationnary (send) (CFG send)
* Set interface "view / Configuration View / PORT": <br />Target: USB, Protocol in: none, Protocol out: 0+1+5 - UBX+NMEA+RTCM3 (send) (CFG send)
* Set acquisition rate "view / Configuration View / RATE (Rates)"<br />Target: Measurement period :1000 (ms) (send) (CFG send)
* Set position type "view / Configuration View / TMODE3 (Time Mode 3)"
* Check converging estimated position "view / Messages View / UBX / NAV (Navigation) / SVIN (survey)"
* Check sending messages "view / Messages View / RTCM3"
 
 
Mobile (rover) ublox
* Check firmware "view / Messages View / UBX / MON (Monitor) / VER (version)"
* Set default settings view / Configuration View / ..."
* Set output messages "view / Configuration View / Msg (Messages)": UART1 <br />01-05 NAV-PVT (send), 01-06 NAV-SOL (send), 01-30 NAV-SVINFO (send)<br />
* Set model type "view / Configuration View / NAV5 (Navigation 5)": <br />Dynamic Model : 7-Airborne < 2g (send) (CFG send)
* Set interface "view / Configuration View / PORT": <br />Target: UART1, Protocol in: 5-RTCM3, Protocol out: 0-UBX (send), Baudrate: 115200 (send) (CFG send)
* Set acquisition rate "view / Configuration View / RATE (Rates)"<br />Target: Measurement period :200 (ms) (send) (CFG send)
 
 
'''Paparazzi Configuration'''
 
Airframe XML configuration file:
    <module name="gps" type="ublox">
      <configure name="GPS_BAUD" value="B115200"/>
      <define name="USE_GPS_UBX_RTCM" value="TRUE"/>
    </module>
 
Telemetry XML configuration file (optional):
    <mode name="RTCM3" >
      <message name="GPS_RXMRTCM" period="1"/>
      <message name="GPS_INT"    period=".25"/>
      <message name="GPS_RTK"    period="1"/>
    </mode>
 


The NEO-M8P acting as a rover (mobile) computes the station position with the data received from the ground. By comparing the computed position with the position sent, the rover integrate this error while computing its owns position from its own observation data.
== External RTK Ground Station ==
(Working Draft)<br />With this implementation, the RTK ground application runs in a separate machine (ex."Raspberry Pi"), providing a wireless "hotspot" access to the ground station laptop (GCS). This is a more operational way to use the system, as the RTK station is located outside, and ground station laptops can be located inside.
TODO


'''Technically'''
'''Implementation'''


from its mobile position and
Install a debian
These data are transmitted as new messages within the paparazzi telemetry. The

Latest revision as of 08:27, 5 July 2020

The principle

The Differential GPS present here is based on the Ublox chip M8P. There are two types of Ublox M8P:

  • NEO-M8P-0: acting as the rover (mobile)
  • NEO-M8P-2: acting as the rover (mobile) or as the ground station

The NEO-M8P-2 acting as the ground station must know its position. This can be done by locating the ground antenna to a know position and set the Ublox to this position, or setting the Ublox to send its estimated position after a given converging time and precision.

When running the Ublox ground station acquire observation data and output them with its position to the NEO-M8P rover (mobile).

The ground station output three messages types of the RTCM3 standard to the rover (mobile):

  • RTCM3.2 1005 : Ground station position
  • RTCM3.2 1077 : GPS observation data
  • RTCM3.2 1087 : Glonass observation data

The NEO-M8P acting as a rover (mobile) computes the station position with the data received from the ground. By comparing the computed position with the position received, the rover deduce the error to take into account to estimate its position from its own observation data.


Implementation

Ublox systems integration: we use gps boards from DROTEK. The boards are very small, and equiped with USB and UART. The antenna are active ones from Tallisman.

Datalink: to not duplicate radio links the ground and board Ublox use the paparazzi telemetry.

  • on the ground side, the NEO-M8OP-2 is connected to the laptop using the USB connector (should be /dev/ttyAVCMX). The "rtcm2ivy" ground application (sw/ground_segment/misc/rtcm2ivy) broadcast the RTCM data from the ground ublox to the IVY bus. The paparazzi server (sw/ground_segment/tmtc/server) gets the data from the IVY bus and send it to the rover (mobiles) using the telemetry (sw/ground_segment/tmtc/link -d /dev/paparazzi/xbee -transport xbee -s 57600). All rovers (mobile) linked to the same ground station receive the RTCM data.
  • on the rover (mobile) side, the NEO-M8P is connected to the autopilot using the UART. The ublox input RTCM3 message coming from the ground, and output UBX (position) messages to the autopilot. The u-Blox can have three status: 3D, DGPS, RTK

If the rover (mobile) stop receiving ground data, the NEO-M8P acts as a regular GPS, switching from DGPS/RTK to 3D.


Ublox Configuration

Ublox provides a Windows application (U-CENTER) to upgrade and configure the Ublox chips. The NEO-M8P requires at least the U-CENTER V8.24. In a linux environment this version needs to be run in a Windows virtual machine. Previous version (ex.V8.16) that could be run with Linux/Wine are not compatible for the NEO-M8P. It is recommended to configure also the on board Ublox with U-CENTER tools, as the modules/gps/gps_ubx_ucenter is not working for the moment.


Ground station ublox

  • Check firmware "view / Messages View / UBX / MON (Monitor) / VER (version)"
  • Set default settings view / Configuration View / ..."
  • Set output messages "view / Configuration View / Msg (Messages)": USB
    F5-05 RTCM3.2 1005 (send), F5-4D RTCM3.2 1077 (send), F5-4D RTCM3.2 1087 (send), 01-3B NAV_SVIN (send), (CFG send)
  • Set model type "view / Configuration View / NAV5 (Navigation 5)":
    Dynamic Model : 2-Stationnary (send) (CFG send)
  • Set interface "view / Configuration View / PORT":
    Target: USB, Protocol in: none, Protocol out: 0+1+5 - UBX+NMEA+RTCM3 (send) (CFG send)
  • Set acquisition rate "view / Configuration View / RATE (Rates)"
    Target: Measurement period :1000 (ms) (send) (CFG send)
  • Set position type "view / Configuration View / TMODE3 (Time Mode 3)"
  • Check converging estimated position "view / Messages View / UBX / NAV (Navigation) / SVIN (survey)"
  • Check sending messages "view / Messages View / RTCM3"


Mobile (rover) ublox

  • Check firmware "view / Messages View / UBX / MON (Monitor) / VER (version)"
  • Set default settings view / Configuration View / ..."
  • Set output messages "view / Configuration View / Msg (Messages)": UART1
    01-05 NAV-PVT (send), 01-06 NAV-SOL (send), 01-30 NAV-SVINFO (send)
  • Set model type "view / Configuration View / NAV5 (Navigation 5)":
    Dynamic Model : 7-Airborne < 2g (send) (CFG send)
  • Set interface "view / Configuration View / PORT":
    Target: UART1, Protocol in: 5-RTCM3, Protocol out: 0-UBX (send), Baudrate: 115200 (send) (CFG send)
  • Set acquisition rate "view / Configuration View / RATE (Rates)"
    Target: Measurement period :200 (ms) (send) (CFG send)


Paparazzi Configuration

Airframe XML configuration file:

   <module name="gps" type="ublox">
     <configure name="GPS_BAUD" value="B115200"/>
     <define name="USE_GPS_UBX_RTCM" value="TRUE"/> 
   </module>

Telemetry XML configuration file (optional):

   <mode name="RTCM3" >
     <message name="GPS_RXMRTCM" period="1"/>
     <message name="GPS_INT"     period=".25"/>
     <message name="GPS_RTK"     period="1"/>
   </mode>


External RTK Ground Station

(Working Draft)
With this implementation, the RTK ground application runs in a separate machine (ex."Raspberry Pi"), providing a wireless "hotspot" access to the ground station laptop (GCS). This is a more operational way to use the system, as the RTK station is located outside, and ground station laptops can be located inside. TODO

Implementation

Install a debian