From 1911c7360d38802b7b20ba6eae0e8af5e27ca7e0 Mon Sep 17 00:00:00 2001 From: James Cotton Date: Tue, 28 Feb 2012 22:49:17 -0600 Subject: [PATCH] New NEDPosition object which is the transformed GPS location --- flight/Modules/Attitude/revolution/attitude.c | 11 +++++++++++ flight/Revolution/UAVObjects.inc | 1 + .../src/plugins/uavobjects/uavobjects.pro | 2 ++ shared/uavobjectdefinition/nedposition.xml | 12 ++++++++++++ 4 files changed, 26 insertions(+) create mode 100644 shared/uavobjectdefinition/nedposition.xml diff --git a/flight/Modules/Attitude/revolution/attitude.c b/flight/Modules/Attitude/revolution/attitude.c index 4d1796ba7..f7f5e1545 100644 --- a/flight/Modules/Attitude/revolution/attitude.c +++ b/flight/Modules/Attitude/revolution/attitude.c @@ -60,6 +60,7 @@ #include "velocityactual.h" #include "gpsposition.h" #include "baroaltitude.h" +#include "nedposition.h" #include "flightstatus.h" #include "homelocation.h" #include "gpsposition.h" @@ -116,6 +117,7 @@ int32_t AttitudeInitialize(void) { AttitudeActualInitialize(); AttitudeSettingsInitialize(); + NEDPositionInitialize(); PositionActualInitialize(); VelocityActualInitialize(); @@ -621,6 +623,15 @@ static int32_t updateAttitudeINSGPS(bool first_run) (float) (home.ECEF[1] / 100.0f), (float) (home.ECEF[2] / 100.0f)}; LLA2Base(LLA, ECEF, (float (*)[3]) home.RNE, NED); + + // Store this for inspecting offline + NEDPositionData nedPos; + NEDPositionGet(&nedPos); + nedPos.North = NED[0]; + nedPos.East = NED[1]; + nedPos.Down = NED[2]; + NEDPositionSet(&nedPos); + } else if (!outdoor_mode) { INSSetPosVelVar(1e-2f, 1e-2f); vel[0] = vel[1] = vel[2] = 0; diff --git a/flight/Revolution/UAVObjects.inc b/flight/Revolution/UAVObjects.inc index d91eb9c17..359fd497c 100644 --- a/flight/Revolution/UAVObjects.inc +++ b/flight/Revolution/UAVObjects.inc @@ -55,6 +55,7 @@ UAVOBJSRCFILENAMES += manualcontrolsettings UAVOBJSRCFILENAMES += mixersettings UAVOBJSRCFILENAMES += mixerstatus UAVOBJSRCFILENAMES += nedaccel +UAVOBJSRCFILENAMES += nedposition UAVOBJSRCFILENAMES += objectpersistence UAVOBJSRCFILENAMES += overosyncstats UAVOBJSRCFILENAMES += positionactual diff --git a/ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro b/ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro index 456d25047..9e8a38295 100644 --- a/ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro +++ b/ground/openpilotgcs/src/plugins/uavobjects/uavobjects.pro @@ -71,6 +71,7 @@ HEADERS += $$UAVOBJECT_SYNTHETICS/accessorydesired.h \ $$UAVOBJECT_SYNTHETICS/flightplancontrol.h \ $$UAVOBJECT_SYNTHETICS/watchdogstatus.h \ $$UAVOBJECT_SYNTHETICS/nedaccel.h \ + $$UAVOBJECT_SYNTHETICS/nedposition.h \ $$UAVOBJECT_SYNTHETICS/sonaraltitude.h \ $$UAVOBJECT_SYNTHETICS/flightstatus.h \ $$UAVOBJECT_SYNTHETICS/hwsettings.h \ @@ -129,6 +130,7 @@ SOURCES += $$UAVOBJECT_SYNTHETICS/accessorydesired.cpp \ $$UAVOBJECT_SYNTHETICS/flightplancontrol.cpp \ $$UAVOBJECT_SYNTHETICS/watchdogstatus.cpp \ $$UAVOBJECT_SYNTHETICS/nedaccel.cpp \ + $$UAVOBJECT_SYNTHETICS/nedposition.cpp \ $$UAVOBJECT_SYNTHETICS/sonaraltitude.cpp \ $$UAVOBJECT_SYNTHETICS/uavobjectsinit.cpp \ $$UAVOBJECT_SYNTHETICS/flightstatus.cpp \ diff --git a/shared/uavobjectdefinition/nedposition.xml b/shared/uavobjectdefinition/nedposition.xml new file mode 100644 index 000000000..7fc6eb315 --- /dev/null +++ b/shared/uavobjectdefinition/nedposition.xml @@ -0,0 +1,12 @@ + + + Contains the current position relative to @ref HomeLocation + + + + + + + + +