mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-03 13:38:52 +08:00
* sensors: move GPS antenna offsets to per-receiver parameters
Move antenna position configuration from the single EKF2_GPS_POS_X/Y/Z
parameter set into per-receiver SENS_GPS{0,1}_OFF{X,Y,Z} parameters in
the sensors module. Each offset slot is matched to a physical receiver
by device ID (SENS_GPS{0,1}_ID), falling back to uORB instance index
when no IDs are configured.
The antenna offset is now carried through the SensorGps uORB message
and blended alongside other GPS states when multi-receiver blending is
active, so EKF2 receives the correct lever arm for whichever receiver
(or weighted combination) is selected.
- Add antenna_offset_{x,y,z} fields to SensorGps.msg
- Remove EKF2_GPS_POS_X/Y/Z params; EKF2 reads offset from gnssSample
- Add SENS_GPS{0,1}_ID and SENS_GPS{0,1}_OFF{X,Y,Z} params (module.yaml)
- Blend antenna offsets in GpsBlending (weighted average)
- Add unit tests for single, blended, and failover antenna offset cases
- Migrate params.c to module.yaml for the vehicle_gps_position module
* sensors: gps_blending: add asymmetric weight and fallthrough offset tests
Add two additional antenna offset test cases:
- dualReceiverAsymmetricWeightAntennaOffset: verify that unequal eph
values produce correctly skewed blend weights (0.8/0.2) and that the
output antenna offset reflects the weighted average
- blendingFallthroughAntennaOffset: verify that when blending is enabled
but can_do_blending evaluates false (eph=0), the non-blending path
correctly assigns the selected receiver's antenna offset
* feat(param_translation): translate EKF2_GPS_POS_ to SENS_GPS0_OFF_
* fix(msgs): proper formatting
* chore(msg): 0 if invalid/unknown
* fix(ROMFS): migrate EKF2_GPS_POS_ params
* fix(docs): migrate EKF2_GPS_POS_ params
* fix(blending): unsigned param
* Update msg/SensorGps.msg
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(sensors/gps): remove 'values:' tag in module.yaml
* fix(sensors/gps): unsigned instance index
* fix(blending): restore const on gps_blend_states()
Move antenna offset blending into blend_gps_data() where the
weights are computed, keeping gps_blend_states() const.
* fix(sensors/gps): fix msg annotation and restore SENS_GPS_PRIME values
Remove incorrect @invalid NaN annotation from antenna offset fields
(0.0 default is correct, not a sentinel). Restore values tag for
SENS_GPS_PRIME so QGC shows a dropdown.
* fix(gps_blending): fix pre-existing bug to clear _gps_updated flags
The loop iterates over i but always clears gps_select_index. The intent is to clear
all updated flags, but only the selected one gets cleared (N times)
* test(gps_blending): add stale update flag regression test
113 lines
4.8 KiB
Markdown
113 lines
4.8 KiB
Markdown
# ARK G5 RTK GPS
|
|
|
|
::: info
|
|
This GPS module is made in the USA and NDAA compliant.
|
|
:::
|
|
|
|
[ARK G5 RTK GPS](https://arkelectron.com/product/ark-g5-rtk-gps/) is a [DroneCAN](index.md) quad-band [RTK GPS](../gps_compass/rtk_gps.md).
|
|
|
|
The module incorporates the [Septentrio mosaic-G5 P3 Ultra-compact high-precision GPS/GNSS receiver module](https://www.u-blox.com/en/product/zed-x20p-module), magnetometer, barometer, IMU, and buzzer module.
|
|
|
|

|
|
|
|
## Where to Buy
|
|
|
|
Order this module from:
|
|
|
|
- [ARK Electronics](https://arkelectron.com/product/ark-g5-rtk-gps/) (US)
|
|
|
|
## Hardware Specifications
|
|
|
|
- [DroneCAN](index.md) RTK GNSS, Magnetometer, Barometer, IMU, and Buzzer Module
|
|
- [Dronecan Firmware Updating](../dronecan/index.md#firmware-update)
|
|
- Sensors
|
|
- [Septentrio mosaic-G5 P3 Ultra-compact high-precision GPS/GNSS receiver module](https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3)
|
|
- All-band all constellation GNSS receiver
|
|
- All-in-view satellite tracking: multi-constellation, quad-band GNSS module receiver
|
|
- Full raw data with positioning measurements and Galileo HAS positioning service compatibility
|
|
- Best-in-class RTK cm-level positioning accuracy
|
|
- Advanced GNSS+ algorithms
|
|
- 20Hz update rate
|
|
- [ST IIS2MDC Magnetometer](https://www.st.com/en/mems-and-sensors/iis2mdc.html)
|
|
- [Bosch BMP390 Barometer](https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/bmp390/)
|
|
- [Invensense ICM-42688-P 6-Axis IMU](https://invensense.tdk.com/products/motion-tracking/6-axis/icm-42688-p/)
|
|
- STM32F412VGH6 MCU
|
|
- Safety Button
|
|
- Buzzer
|
|
- Two CAN Connectors (Pixhawk Connector Standard 4-pin JST GH)
|
|
- G5 "UART 2" Connector
|
|
- 4-pin JST GH
|
|
- TX, RX, PPS, GND
|
|
- G5 USB C
|
|
- Debug Connector (Pixhawk Connector Standard 6-pin JST SH)
|
|
- LED Indicators
|
|
- GPS Fix
|
|
- RTK Status
|
|
- RGB system status
|
|
- USA Built
|
|
- NDAA Compliant
|
|
- Power Requirements
|
|
- 5V
|
|
- 270mA
|
|
- Dimensions
|
|
- Without Antenna
|
|
- 48.0mm x 40.0mm x 15.4mm
|
|
- 13.0g
|
|
- With Antenna
|
|
- 48.0mm x 40.0mm x 51.0mm
|
|
- 43.5g
|
|
- Includes
|
|
- CAN Cable (Pixhawk Connector Standard 4-pin)
|
|
- Full-Frequency Helical GPS Antenna
|
|
|
|
## Hardware Setup
|
|
|
|
### Wiring
|
|
|
|
The ARK G5 RTK GPS is connected to the CAN bus using a [Pixhawk connector standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) 4-pin JST GH cable.
|
|
For more information, refer to the [CAN Wiring](../can/index.md#wiring) instructions.
|
|
|
|
### Mounting
|
|
|
|
The recommended mounting orientation is with the connectors on the board pointing towards the **back of vehicle**.
|
|
|
|
The sensor can be mounted anywhere on the frame, but you will need to specify its position, relative to vehicle centre of gravity, during [PX4 Configuration](#px4-configuration).
|
|
|
|
## Firmware Setup
|
|
|
|
The Septentrio G5 module firmware can be updated using the Septentrio [RxTools](https://www.septentrio.com/en/products/gps-gnss-receiver-software/rxtools) application.
|
|
|
|
## Flight Controller Setup
|
|
|
|
### Enabling DroneCAN
|
|
|
|
In order to use the ARK G5 RTK GPS, connect it to the Pixhawk CAN bus and enable the DroneCAN driver by setting parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` for dynamic node allocation (or `3` if using [DroneCAN ESCs](../dronecan/escs.md)).
|
|
|
|
The steps are:
|
|
|
|
- In _QGroundControl_ set the parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` or `3` and reboot (see [Finding/Updating Parameters](../advanced_config/parameters.md)).
|
|
- Connect ARK G5 RTK GPS CAN to the Pixhawk CAN.
|
|
|
|
Once enabled, the module will be detected on boot.
|
|
|
|
There is also CAN built-in bus termination via [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM)
|
|
|
|
### PX4 Configuration
|
|
|
|
You need to set necessary [DroneCAN](index.md) parameters and define offsets if the sensor is not centred within the vehicle:
|
|
|
|
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
|
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK G5 RTK GPS from the vehicle's centre of gravity.
|
|
|
|
## LED Meanings
|
|
|
|
The GPS status lights are located to the right of the connectors:
|
|
|
|
- Blinking green is GPS fix
|
|
- Blinking blue is received corrections and RTK Float
|
|
- Solid blue is RTK Fixed
|
|
|
|
## See Also
|
|
|
|
- [ARK G5 RTK GPS Documentation](https://docs.arkelectron.com/gps/ark-g5-rtk-gps) (ARK Docs)
|