GPS&罗盘
任务模式以及一些其他的自动和手工/辅助模式会用到GPS。 PX4支持全球导航卫星系统(GNSS),如GPS、格罗纳斯、伽利略、北斗、QZSS和SBAS等。 其通过u-blox、MTK Ashtech 或 Emlid 协议或UAVCAN进行通信。
Up to two GPS modules can be connected using either a UART or the CAN bus:
- A primary GNSS module that usually also includes a compass/magnetometer, buzzer, safety switch, and UI LED.
- An optional secondary GNSS/compass module that is used as a fallback. This may include a buzzer, safety switch, LEDs, but these are not used by PX4.
PX4 also supports Real Time Kinematic (RTK) and Post-Processing Kinematic (PPK) GNSS Receivers, which extend GNSS systems to centimetre-level precision.
支持的GPS模块
任何运行在PX4的元件应通过u-blox、MTK Ashtech 或 Emlid 协议或UAVCAN进行通信。
下表包括了一些无RTK的GPS模块(其中大部分也有指南针)。 下面的设备PX4开发团队测试过了,或者是在PX4社区中受欢迎的。
Device | GPS | Compass | CAN | Buzzer / SafeSw / LED | 备注 |
---|---|---|---|---|---|
ARK GPS | M9N | ICM42688p | ✓ | ✓ | + Baro, IMU |
Avionics Anonymous UAVCAN GNSS/Mag | SAM-M8Q | MMC5983MA | ✓ | ✗ | |
CUAV NEO 3 GPS | M9N | IST8310 | ✓ | ||
CUAV NEO 3 Pro GPS | M9N | RM3100 | ✓ | ✓ | + Baro |
CUAV NEO 3X GPS | M9N | RM3100 | ✓ | ✗✓✓ | + Baro. |
CubePilot Here2 GNSS GPS (M8N) | M8N | ICM20948 | ✓ | Superseded by HERE3 | |
Emlid Reach M+ | ✓ | ✗ | ✗ | Supports PPK. RTK expected. | |
Holybro DroneCAN M8N GPS | M8N | BMM150 | ✓ | ✗ | + Baro |
Holybro Micro M8N GPS | M8N | IST8310 | ✗ | ||
Holybro Nano Ublox M8 5883 GPS | UBX-M8030 | QMC5883 | ✗ | ||
Holybro M8N GPS | M8N | IST8310 | ✓ | ||
Holybro M9N GPS | M9N | IST8310 | ✓ | ||
Holybro DroneCAN M9N GPS | M9N | BMM150 | ✓ | ✓ | |
Hobbyking u-blox Neo-M8N GPS & Compass | M8N | ✓ | ✗ | ||
LOCOSYS Hawk A1 GNSS receiver | MC-1612-V2b | optional | ✗✗✓ | ||
LOCOSYS Hawk R1 | MC-1612-V2b | ✗✗✓ | |||
LOCOSYS Hawk R2 | MC-1612-V2b | IST8310 | ✗✗✓ | ||
mRo GPS u-blox Neo-M8N Dual Compass | M8N | LIS3MDL, IST8308 | ✗ | ||
RaccoonLab L1 GNSS NEO-M8N | NEO-M8N | RM3100 | ✓ | ✗✗✓ | + Baro |
Sky-Drones SmartAP GPS | M8N | HMC5983, IST8310, LIS3MDL | ✓ | + Baro | |
Zubax GNSS 2 | MAX-M8Q | LIS3MDL | ✗ | + Baro |
Notes:
- ✓ or a specific part number indicate that a features is supported, while ✗ or empty show that the feature is not supported. "?" indicates "unknown".
- Where possible and relevant the part name is used (i.e. ✓ in the GPS column indicates that a GPS module is present but the part is not known).
- The list may omit some discontinued hardware that is still supported (check earlier versions for info about discontinued modules). Removed items include:
- Here GPS
- Drotek DP0804
Mounting the GNSS/Compass
大多数GPS模块还包含一个 指南针/磁力计 (校准/安装信息见链接)。 我们建议GPS模块的安装尽可能远离电机/电调的电源线 - 通常在支座或机翼(固定翼)上。
Mounting the Compass explains how to mount a GNSS module that has a compass.
Hardware Setup
The hardware setup depends on the flight controller, the GNSS module, and the connection bus it supports - UART/I2C or CAN.
Pixhawk Standard Connectors
Connecting GNSS/Compass modules is easiest when using a flight controller that supports the Pixhawk connector standard. All flight controllers that follow this standard, including most Pixhawk Standard controllers (and many others) use the same port connectors and wiring for connecting GNSS modules. Because of this standardization, many popular GNSS/Compass modules plug directly into the flight controller "out of the box".
If you're using GNSS/Compass modules that connect via generic UARTs and serial protocols like I2C:
- The primary GNSS/Compass module should be connected to the 10-pin port labelled
GPS1
,GPS&SAFETY
, orGPS
(this is port described as "Full GPS + Safety Switch Port" in the connector standard). The GPS should incorporate a buzzer, safety switch, and UI LED. - An (optional) secondary module can be connected to the 6-pin
GPS2
port, if present (this is "Basic GPS Port" in the standard). - The ports are generally plug-n-play for u-blox modules (only).
The ports include a UART for the GNSS and an I2C port for connecting the Compass. The "Full GPS + Safety Switch Port" includes additional I2C connectors for LEDs, buzzer and safety switch. There is nothing to stop you from connecting the GPS pins to any other free UART as a GNSS port, and the compass or buzzer to an I2C port. However if you do this then you will need to configure the ports.
For DroneCAN GNSS/compass modules:
- DroneCan GPS modules are connected to CAN-bus ports, which are 4-pin ports labeled
CAN1
orCAN2
.
Other Flight Controllers/GNSS Modules
If you're working with a flight controller and GNSS module combination that does not comply with the Pixhawk connector standard then you will need to pay particular attention to the connector pinouts on the flight controller and the module. You may need to rewire/solder the connectors.
WARNING
Some flight controllers use ports that are software-compatible but not connector compatible (even if they use the same connector!) because they use different pin orderings.
The pinouts for the connector standard are documented in the standard. Pinouts for other controllers and the GNSS modules should be included in their manufacturer documentation.
GNSS Configuration
The default configuration for GPS module connected via the GPS serial port is provided below. Additional device-specific configuration may be provided in PX4 or manufacturer device documentation (e.g. Trimble MB-Two > Configuration).
Primary GPS Configuration (UART)
Primary GPS configuration on Pixhawk is handled transparently for U-Blox GPS modules — simply connect the GPS module to the port labeled GPS1
, GPS&SAFETY
, or GPS
(if there is only one GPS port), and everything should work.
The default Serial Port Configuration configures GPS1
as a GPS port using GPS_1_CONFIG, sets the protocol to u-blox
with GPS_1_PROTOCOL, and a baud rate of 0: Auto
with SER_GPS1_BAUD.
For GPS types like Trimble, Emlid, MTK, you will need to change the GPS_1_PROTOCOL
appropriately. For Trimble MB-Two you will also need to modify SER_GPS1_BAUD
to set the rate to 115200 baud.
Secondary GPS Configuration (UART)
To use a secondary GPS, you will generally attach it to the port named GPS2
, if present, and otherwise attach it to any free UART port. The port may be pre-configured, but unlike the primary port, this is not guaranteed.
To ensure the port is set up correctly perform a Serial Port Configuration to assign GPS_2_CONFIG to the selected port.
The following steps show how to configure a secondary GPS on the GPS 2
port in QGroundControl:
Find and set the parameter GPS_2_CONFIG to GPS 2.
Open QGroundControl and navigate to the Vehicle Setup > Parameters section.
Select the GPS tab, then open the GPS_2_CONFIG parameter and select
GPS 2
from the dropdown list.
Reboot the vehicle in order to make the other parameters visible.
Select the Serial tab, and open the SER_GPS2_BAUD parameter (
GPS 2
port baud rate): set it to Auto (or 115200 for the Trimble).
After setting up the second GPS port:
- Configure the ECL/EKF2 estimator to blend data from both GPS systems. For detailed instructions see: Using the ECL EKF > Dual Receivers.
DroneCAN GNSS Configuration
DroneCAN GNSS configuration is covered in the linked document (and in the documentation for specific modules).
Configuring GPS as Yaw/Heading Source
GPS can be used as a source for yaw fusion when using modules where yaw output is supported by the device. This is documented in RTK GPS > Configuring GPS as Yaw/Heading Source.
Compass Configuration
Compass calibration for an included compass part is covered in: Compass Configuration.
Developer Information
- GPS/RTK-GPS
- Compass
- Driver source code (Compasses)