aboutsummaryrefslogtreecommitdiff
path: root/src/modules/att_pos_estimator_ekf/KalmanNav.cpp
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2014-03-17 22:20:41 +0400
committerAnton Babushkin <anton.babushkin@me.com>2014-03-17 22:20:41 +0400
commit3d5f52678fa093a248d824828fcafe12ac2f8f15 (patch)
treeb95401fd45205dac6c8311de68ad0cdb101364a2 /src/modules/att_pos_estimator_ekf/KalmanNav.cpp
parent2284a7e985b174dab4b3c1666d9f019d9479a230 (diff)
downloadpx4-firmware-3d5f52678fa093a248d824828fcafe12ac2f8f15.tar.gz
px4-firmware-3d5f52678fa093a248d824828fcafe12ac2f8f15.tar.bz2
px4-firmware-3d5f52678fa093a248d824828fcafe12ac2f8f15.zip
Use updated map_projection_XXX functions in apps
Diffstat (limited to 'src/modules/att_pos_estimator_ekf/KalmanNav.cpp')
-rw-r--r--src/modules/att_pos_estimator_ekf/KalmanNav.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/modules/att_pos_estimator_ekf/KalmanNav.cpp b/src/modules/att_pos_estimator_ekf/KalmanNav.cpp
index 668bac5d9..a4d5560c7 100644
--- a/src/modules/att_pos_estimator_ekf/KalmanNav.cpp
+++ b/src/modules/att_pos_estimator_ekf/KalmanNav.cpp
@@ -97,6 +97,8 @@ KalmanNav::KalmanNav(SuperBlock *parent, const char *name) :
{
using namespace math;
+ memset(&ref, 0, sizeof(ref));
+
F.zero();
G.zero();
V.zero();
@@ -247,11 +249,7 @@ void KalmanNav::update()
lat0 = lat;
lon0 = lon;
alt0 = alt;
- // XXX map_projection has internal global
- // states that multiple things could change,
- // should make map_projection take reference
- // lat/lon and not have init
- map_projection_init(lat0, lon0);
+ map_projection_init(&ref, lat0, lon0);
_positionInitialized = true;
warnx("initialized EKF state with GPS");
warnx("vN: %8.4f, vE: %8.4f, vD: %8.4f, lat: %8.4f, lon: %8.4f, alt: %8.4f",
@@ -327,7 +325,7 @@ void KalmanNav::updatePublications()
float x;
float y;
bool landed = alt < (alt0 + 0.1); // XXX improve?
- map_projection_project(lat, lon, &x, &y);
+ map_projection_project(&ref, lat, lon, &x, &y);
_localPos.timestamp = _pubTimeStamp;
_localPos.xy_valid = true;
_localPos.z_valid = true;