ArduPilot / MissionPlanner

Mission Planner Ground Control Station for ArduPilot (c# .net)
http://ardupilot.org/planner/
GNU General Public License v3.0
1.8k stars 2.42k forks source link

Redundant Bad GPS Health / GPS No Fix #363

Open jaswedrowniczek opened 10 years ago

jaswedrowniczek commented 10 years ago

message on HUD: "Bad GPS Health" is very confused for users who don't know correct interpretation of it.

I had to search MessagePlanner code for correct and trivial explanations: These messages are depend on bits of mavlink message "1" ("SYS_STATUS")

[CurrentState.cs] : if (sensors_health.gps != sensors_enabled.gps) { messageHigh = "Bad GPS Health"; messageHighTime = DateTime.Now; }

Bits are flags: enum MAV_SYS_STATUS_SENSOR { MAV_SYS_STATUS_SENSOR_3DGYRO=1, /* 0x01 3D gyro | / MAV_SYS_STATUS_SENSOR_3DACCEL=2, / 0x02 3D accelerometer | _/ MAV_SYS_STATUS_SENSOR_3DMAG=4, / 0x04 3D magnetometer | _/ MAV_SYS_STATUS_SENSOR_ABSOLUTEPRESSURE=8, / 0x08 absolute pressure | _/ MAV_SYS_STATUS_SENSOR_DIFFERENTIALPRESSURE=16, / 0x10 differential pressure | _/ MAV_SYS_STATUS_SENSORGPS=32, / 0x20 GPS | _/ MAV_SYS_STATUS_SENSOR_OPTICALFLOW=64, / 0x40 optical flow | _/ MAV_SYS_STATUS_SENSOR_VISIONPOSITION=128, / 0x80 computer vision position | _/ MAV_SYS_STATUS_SENSOR_LASERPOSITION=256, / 0x100 laser based position | _/ MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUNDTRUTH=512, / 0x200 external ground truth (Vicon or Leica) | _/ MAV_SYS_STATUS_SENSOR_ANGULAR_RATECONTROL=1024, / 0x400 3D angular rate control | _/ MAV_SYS_STATUS_SENSOR_ATTITUDESTABILIZATION=2048, / 0x800 attitude stabilization | _/ MAV_SYS_STATUS_SENSOR_YAWPOSITION=4096, / 0x1000 yaw position | _/ MAV_SYS_STATUS_SENSOR_Z_ALTITUDECONTROL=8192, / 0x2000 z/altitude control | _/ MAV_SYS_STATUS_SENSOR_XY_POSITIONCONTROL=16384, / 0x4000 x/y position control | _/ MAV_SYS_STATUS_SENSOR_MOTOROUTPUTS=32768, / 0x8000 motor outputs / control | _/ MAV_SYS_STATUS_SENSOR_RCRECEIVER=65536, / 0x10000 rc receiver | _/ MAV_SYS_STATUS_SENSOR_3DGYRO2=131072, / 0x20000 2nd 3D gyro | _/ MAV_SYS_STATUS_SENSOR_3DACCEL2=262144, / 0x40000 2nd 3D accelerometer | _/ MAV_SYS_STATUS_SENSOR_3DMAG2=524288, / 0x80000 2nd 3D magnetometer | _/ MAV_SYS_STATUS_SENSOR_ENUMEND=524289, / | */ };

I propose:

  1. Disable message on HUD: "Bad GPS Health" We have direct and clean message about GPS status on HUD (Right down corner) : GPS: 3D Fix / No Fix !!

Details are also available Earth Map (Hdop:... + Stats: ... ) and Status Tab ( gpsstatus/gpshdop/satcount)

  1. Other messages will be more clean when we after message add simply number as error code for detailed explanation. This may simply interpretation of many problems..
  2. I propose also in Status Tab (under HUD) a) add variable health_sensors: from SYS_STATUS mavlink message onboard_control_sensors_health variable
    b) correct variable "gpstime" In 1.2.97 + ardurover 2.45 contain "2014-03-0" ( part of date! )

Greetings,
Janusz

meee1 commented 10 years ago

for 1. I don't believe this is the best scenario. As Bad GPS Health is to do with hdop and sat count, and does not fit under the 3d fix/no fix solution.

2a. I will see if I can add individual sensor health output.