Difference between revisions of "DGPS"

From PaparazziUAV
Jump to navigation Jump to search
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''This a working draft'''
'''The principle'''
'''The principle'''


Line 14: Line 12:
* 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.
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'''
'''Implementation'''
Line 24: Line 23:
Datalink: to not duplicate radio links the ground and board Ublox use the paparazzi telemetry.
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)
* 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


* 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.
If the rover (mobile) stop receiving ground data, the NEO-M8P acts as a regular GPS, switching from DGPS/RTK to 3D.




Line 34: Line 35:
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.  
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.
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'''
'''Paparazzi Configuration'''


Airframe XML configuration file:
     <module name="gps" type="ublox">
     <module name="gps" type="ublox">
       <configure name="GPS_BAUD" value="B115200"/>
       <configure name="GPS_BAUD" value="B115200"/>
      <define name="USE_GPS_UBX_RTCM" value="TRUE"/>
     </module>
     </module>
     <define name="USE_GPS_UBX_RTCM" value="TRUE"/>
 
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)<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
 
'''Implementation'''
 
Install a debian

Latest revision as of 09: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