The pair of GPS receivers is not giving a heading
What ArduPilot says:
- Incorrect Role set for DroneCAN GPS, N should be Base
- GPS[N] yaw not available
Two GPS receivers on one aircraft can give its heading: one is the base, the other the rover, and the rover works out the direction from one antenna to the other (moving baseline; GPSn_TYPE 17 and 18 for u-blox, 22 and 23 for DroneCAN). “GPS[2] yaw not available”: the rover with that number has given no heading for more than 15 s, and arming is refused. “Incorrect Role set … should be Base”: the correction data the rover needs is coming from a DroneCAN node that is not set up as the base.
What to do, most likely first
The rover has no precise fix relative to the base yet: that takes a good sky view for both antennas and longer than an ordinary fix.
FixWait in the open, away from walls and vehicles.
The types are not a matching pair, so the base's corrections never reach the rover.
CheckOne receiver must be the base (17, or 22 on DroneCAN) and the other the rover (18, or 23).
FixSet
GPS1_TYPEandGPS2_TYPEas a pair, leaveGPS_AUTO_CONFIGat 1 or 2 so that ArduPilot sets the receivers up, and reboot.The antenna positions entered do not match where the antennas are.
CheckThe heading is accepted only when the measured distance between the antennas is within 20% of the one given by
GPS1_POS_X,GPS1_POS_Y,GPS2_POS_X,GPS2_POS_Yand the Z values, and that distance is at least 5 cm.FixMeasure each antenna's position from the aircraft's centre (X forward, Y right, Z down, in metres), enter it and reboot.
Parameters to look at
| Parameter | What it is |
|---|---|
GPS1_TYPE | GPS type |
GPS2_TYPE | GPS type |
GPS1_POS_X | Antenna X position offset |
GPS1_POS_Y | Antenna Y position offset |
GPS2_POS_X | Antenna X position offset |
GPS2_POS_Y | Antenna Y position offset |
GPS_AUTO_CONFIG | Automatic GPS configuration |
EK3_SRC1_YAW | Yaw Source |
The code that sends it
Incorrect Role set for DroneCAN GPS, N should be Base
libraries/AP_GPS/AP_GPS_DroneCAN.cpp AP_GPS_DroneCAN::handle_moving_baseline_msg() · Open in ArduPilot Copter-4.7.1
GPS[N] yaw not available
libraries/AP_GPS/AP_GPS.cpp AP_GPS::pre_arm_checks() · Open in ArduPilot Copter-4.7.1