Quadcopter cannot take-off when using Cartographer SLAM for Non-GPS navigation

I’d like to have a quadcopter to fly indoor stably so Cartographer laser SLAM is selected for indoor localization.

I take this article in ardupilot wiki for reference and do exactly as it says.

Finally the data is collected but the quad cannot arm due to HIGH GPS HDOP both in Loiter mode and Poshold mode
The value of GPS_HDOP is 655.35.

The quad is tunned for outdoor flight and most of parameters are default expect for those set in calibrations and companion link. Then the parameters are modified as the ardupilot wiki says.

  • Baud for telem2 (to companion computer) 500000, which is not 921600 for not accepting by the USB-to-UART converter
  • AHRS_EKF_TYPE = 2
  • EK2_ENABLE = 1
  • EK3_ENABLE = 0
  • GPS_TYPE = 0
  • EK2_GPS_TYPE = 3
  • COMPASS_USE = 0, COMPASS_USE2 = 0, COMPASS_USE3 = 0
  • MAG_ENABLE = 0, this option does not exist

What should I do now?
BTW, why there is still BAD compass health after disabling the compasses in parameter list?
It would be very grateful if someone helps!

Version
AdruCopter V 4.0.0-rc2 (beta version when choosing Firmware these days)

Platform
[ ] All
[ ] AntennaTracker
[ X ] Copter
[ ] Plane
[ ] Rover
[ ] Submarine

Airframe type
quad X frame with tip-to-tip length of 450mm
the quad never takes off when fixing this issue

Hardware type

  • Autopilot
    Pixraptor 2.1
    It is a modified pixhawk 2, which is shown Px4fmu-v3 in MAVROS
  • Companion computer
    Intel NUC with i3-8 CPU
    OS: Ubuntu 18.04 LTS

QQ%E5%9B%BE%E7%89%8720191115002334

I believe this parameter was renamed to COMPASS_ENABLE. Setting it to = 0 should stop the “Bad compass health” messages.

This seems like a bug. I think HDOP is supposed to be 0.0 if there is no GPS connected. There may be a way to ignore this warning, though:
Try setting EK2_GPS_CHECK = 0. This should disable the HDOP check. If that doesn’t work, you can try setting GPS_HDOP_GOOD to some big number like 70000. And if THAT doesn’t work, maybe try disabling the GPS check bit in the ARMING_CHECK bitmask.

655.35 looks like -1 for an unisgned 16 bit number :slightly_smiling_face: