aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-04-25 15:09:11 +0200
committerThomas Gubler <thomasgubler@gmail.com>2014-04-25 15:09:11 +0200
commit35b0c294568ca916b344e6a9e6a8e27cefb6f8ca (patch)
treecacc309bc5b43abe9185a8d98ec299f92e7195b7
parent06dd10cb018d48f60abd1a5e9f83fbdc67867d8c (diff)
downloadpx4-firmware-35b0c294568ca916b344e6a9e6a8e27cefb6f8ca.tar.gz
px4-firmware-35b0c294568ca916b344e6a9e6a8e27cefb6f8ca.tar.bz2
px4-firmware-35b0c294568ca916b344e6a9e6a8e27cefb6f8ca.zip
navigator: set reference for map projection only once
-rw-r--r--src/modules/navigator/navigator_main.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/modules/navigator/navigator_main.cpp b/src/modules/navigator/navigator_main.cpp
index e43028415..2f6bf49f3 100644
--- a/src/modules/navigator/navigator_main.cpp
+++ b/src/modules/navigator/navigator_main.cpp
@@ -625,7 +625,6 @@ Navigator::task_main()
parameters_update();
global_position_update();
home_position_update();
- map_projection_init(_home_pos.lat, _home_pos.lon, _home_pos.timestamp);
navigation_capabilities_update();
offboard_mission_update(_vstatus.is_rotary_wing);
onboard_mission_update();
@@ -781,7 +780,6 @@ Navigator::task_main()
if (fds[2].revents & POLLIN) {
home_position_update();
// XXX check if home position really changed
- map_projection_init(_home_pos.lat, _home_pos.lon, _home_pos.timestamp);
dispatch(EVENT_HOME_POSITION_CHANGED);
}
@@ -824,6 +822,11 @@ Navigator::task_main()
_global_pos_valid = _vstatus.condition_global_position_valid;
+ /* set reference for map _projection if global pos is valid and home position is valid and we have not done so already */
+ if (!map_projection_initialized() && _global_pos_valid && _home_pos.valid) {
+ map_projection_init(_home_pos.lat, _home_pos.lon, _home_pos.timestamp);
+ }
+
/* publish position setpoint triplet if updated */
if (_pos_sp_triplet_updated) {
_pos_sp_triplet_updated = false;