diff options
author | Thomas Gubler <thomasgubler@gmail.com> | 2014-04-25 15:09:11 +0200 |
---|---|---|
committer | Thomas Gubler <thomasgubler@gmail.com> | 2014-04-25 15:09:11 +0200 |
commit | 35b0c294568ca916b344e6a9e6a8e27cefb6f8ca (patch) | |
tree | cacc309bc5b43abe9185a8d98ec299f92e7195b7 /src/modules | |
parent | 06dd10cb018d48f60abd1a5e9f83fbdc67867d8c (diff) | |
download | px4-firmware-35b0c294568ca916b344e6a9e6a8e27cefb6f8ca.tar.gz px4-firmware-35b0c294568ca916b344e6a9e6a8e27cefb6f8ca.tar.bz2 px4-firmware-35b0c294568ca916b344e6a9e6a8e27cefb6f8ca.zip |
navigator: set reference for map projection only once
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/navigator/navigator_main.cpp | 7 |
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; |