navigator: unify timeout waiting for payload to execute mission item command

Used for winch, gripper, gimbal to reach the desired state before continuing the mission.
Ideally we'd have feedback from all these components and not just a feed-forward delay.
This commit is contained in:
Matthias Grob
2024-11-28 20:23:36 +01:00
parent 17c24bafbc
commit ce3fcd503f
5 changed files with 52 additions and 160 deletions
+4 -14
View File
@@ -115,14 +115,6 @@ Navigator::Navigator() :
_distance_sensor_mode_change_request_pub.get().request_on_off = distance_sensor_mode_change_request_s::REQUEST_OFF;
_distance_sensor_mode_change_request_pub.update();
// Update the timeout used in mission_block (which can't hold it's own parameters)
_mission.set_payload_deployment_timeout(_param_mis_payload_delivery_timeout.get());
_mission.set_gimbal_wait_time(_param_mis_gimbal_wait_t.get());
_adsb_conflict.set_conflict_detection_params(_param_nav_traff_a_hor_ct.get(),
_param_nav_traff_a_ver.get(),
_param_nav_traff_collision_time.get(), _param_nav_traff_avoid.get());
reset_triplets();
}
@@ -150,9 +142,10 @@ void Navigator::params_update()
param_get(_handle_mpc_acc_hor, &_param_mpc_acc_hor);
}
_mission.set_payload_deployment_timeout(_param_mis_payload_delivery_timeout.get());
_mission.set_gimbal_wait_time(_param_mis_gimbal_wait_t.get());
_mission.set_command_timeout(_param_mis_command_tout.get());
_adsb_conflict.set_conflict_detection_params(_param_nav_traff_a_hor_ct.get(),
_param_nav_traff_a_ver.get(),
_param_nav_traff_collision_time.get(), _param_nav_traff_avoid.get());
}
void Navigator::run()
@@ -1270,9 +1263,7 @@ void Navigator::run_fake_traffic()
void Navigator::check_traffic()
{
if (_traffic_sub.updated()) {
_traffic_sub.copy(&_adsb_conflict._transponder_report);
uint16_t required_flags = transponder_report_s::PX4_ADSB_FLAGS_VALID_COORDS |
@@ -1291,7 +1282,6 @@ void Navigator::check_traffic()
}
_adsb_conflict.remove_expired_conflicts();
}
bool Navigator::abort_landing()