ArduPilot / ArduPilot/MissionPlanner
Redundant Bad GPS Health / GPS No Fix
- Dominant language
- C#
- Stars
- 2.4k
- Forks
- 2.9k
- Avg merge
- 19h 16m
- Merged PRs (30d)
- 4
Description
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_3D_GYRO=1, /\* 0x01 3D gyro | _/
MAV_SYS_STATUS_SENSOR_3D_ACCEL=2, /_ 0x02 3D accelerometer | _/
MAV_SYS_STATUS_SENSOR_3D_MAG=4, /_ 0x04 3D magnetometer | _/
MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE=8, /_ 0x08 absolute pressure | _/
MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE=16, /_ 0x10 differential pressure | _/
MAV_SYS_STATUS_SENSOR_GPS=32, /_ 0x20 GPS | _/
MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW=64, /_ 0x40 optical flow | _/
MAV_SYS_STATUS_SENSOR_VISION_POSITION=128, /_ 0x80 computer vision position | _/
MAV_SYS_STATUS_SENSOR_LASER_POSITION=256, /_ 0x100 laser based position | _/
MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH=512, /_ 0x200 external ground truth (Vicon or Leica) | _/
MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL=1024, /_ 0x400 3D angular rate control | _/
MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION=2048, /_ 0x800 attitude stabilization | _/
MAV_SYS_STATUS_SENSOR_YAW_POSITION=4096, /_ 0x1000 yaw position | _/
MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL=8192, /_ 0x2000 z/altitude control | _/
MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL=16384, /_ 0x4000 x/y position control | _/
MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS=32768, /_ 0x8000 motor outputs / control | _/
MAV_SYS_STATUS_SENSOR_RC_RECEIVER=65536, /_ 0x10000 rc receiver | _/
MAV_SYS_STATUS_SENSOR_3D_GYRO2=131072, /_ 0x20000 2nd 3D gyro | _/
MAV_SYS_STATUS_SENSOR_3D_ACCEL2=262144, /_ 0x40000 2nd 3D accelerometer | _/
MAV_SYS_STATUS_SENSOR_3D_MAG2=524288, /_ 0x80000 2nd 3D magnetometer | _/
MAV_SYS_STATUS_SENSOR_ENUM_END=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
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in CurrentState.cs and the MessagePlanner code referenced in the issue, then trace how GPS health messages and the HUD Status Tab display are assembled. Done means the redundant HUD message and the requested sensor-health and gpstime behavior have been addressed consistently across those displays.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100