Skip to content
Snippets Groups Projects
Commit 9ba748e6 authored by Matthias Grob's avatar Matthias Grob Committed by Lorenz Meier
Browse files

mc_att_control: fix having high thrust when disarmed

After boot the user is in manual mode and if he has an RC
but doesn't switch out the thrust gets set to the throttle stick
position. When he then starts a takeoff from tablet the thrust is still
high while arming and the land detector immediately sees a takeoff
skiping smooth takeoff from the position controller.
parent ae96e16c
No related branches found
No related tags found
No related merge requests found
......@@ -500,7 +500,10 @@ MulticopterAttitudeControl::generate_attitude_setpoint(float dt, bool reset_yaw_
q_sp.copyTo(attitude_setpoint.q_d);
attitude_setpoint.q_d_valid = true;
attitude_setpoint.thrust_body[2] = -throttle_curve(_manual_control_sp.z);
// hotfix: make sure to leave a zero thrust setpoint for position controller to take over after initialization in manual mode
// without this the actuator_controls thrust stays like it was set here when switching to a position controlled mode and the
// land detector will immediately detect takeoff when arming
attitude_setpoint.thrust_body[2] = _v_control_mode.flag_armed ? -throttle_curve(_manual_control_sp.z) : 0.0f;
attitude_setpoint.timestamp = hrt_absolute_time();
if (_attitude_sp_id != nullptr) {
orb_publish_auto(_attitude_sp_id, &_vehicle_attitude_setpoint_pub, &attitude_setpoint, nullptr, ORB_PRIO_DEFAULT);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment