mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-08 02:17:07 +08:00
@@ -881,7 +881,8 @@ void Ekf2::task_main()
|
||||
map_projection_reproject(&ekf_origin, lpos.x, lpos.y, &est_lat, &est_lon);
|
||||
global_pos.lat = est_lat; // Latitude in degrees
|
||||
global_pos.lon = est_lon; // Longitude in degrees
|
||||
map_projection_reproject(&ekf_origin, lpos.x - lpos.delta_xy[0], lpos.y - lpos.delta_xy[1], &lat_pre_reset, &lon_pre_reset);
|
||||
map_projection_reproject(&ekf_origin, lpos.x - lpos.delta_xy[0], lpos.y - lpos.delta_xy[1], &lat_pre_reset,
|
||||
&lon_pre_reset);
|
||||
global_pos.delta_lat_lon[0] = est_lat - lat_pre_reset;
|
||||
global_pos.delta_lat_lon[1] = est_lon - lon_pre_reset;
|
||||
global_pos.lat_lon_reset_counter = lpos.xy_reset_counter;
|
||||
|
||||
@@ -2296,7 +2296,8 @@ FixedwingPositionControl::task_main()
|
||||
}
|
||||
|
||||
// adjust navigation waypoints in position control mode
|
||||
if (_control_mode.flag_control_altitude_enabled && _control_mode.flag_control_velocity_enabled && _global_pos.lat_lon_reset_counter != _pos_reset_counter) {
|
||||
if (_control_mode.flag_control_altitude_enabled && _control_mode.flag_control_velocity_enabled
|
||||
&& _global_pos.lat_lon_reset_counter != _pos_reset_counter) {
|
||||
_hdg_hold_prev_wp.lat += _global_pos.delta_lat_lon[0];
|
||||
_hdg_hold_prev_wp.lon += _global_pos.delta_lat_lon[1];
|
||||
_hdg_hold_curr_wp.lat += _global_pos.delta_lat_lon[0];
|
||||
|
||||
@@ -677,7 +677,8 @@ MulticopterPositionControl::poll_subscriptions()
|
||||
if (_control_mode.flag_control_manual_enabled) {
|
||||
if (_heading_reset_counter != _ctrl_state.quat_reset_counter) {
|
||||
_heading_reset_counter = _ctrl_state.quat_reset_counter;
|
||||
math::Quaternion delta_q(_ctrl_state.delta_q_reset[0], _ctrl_state.delta_q_reset[1], _ctrl_state.delta_q_reset[2], _ctrl_state.delta_q_reset[3]);
|
||||
math::Quaternion delta_q(_ctrl_state.delta_q_reset[0], _ctrl_state.delta_q_reset[1], _ctrl_state.delta_q_reset[2],
|
||||
_ctrl_state.delta_q_reset[3]);
|
||||
|
||||
// we only extract the heading change from the delta quaternion
|
||||
math::Vector<3> delta_euler = delta_q.to_euler();
|
||||
|
||||
Reference in New Issue
Block a user