Working configuration: PX4 v1.10 + companion computer. I upload flight missions using mavros and everything works great.
However, when I upload invalid missions (e.g. Waypoints too far), there is apparently no way to know upon upload if PX4 has accepted the mission and ready to execute it. I’ll elaborate.
bool success = true; mavros_msgs::WaypointPush wp_push; // [...] add some waypoints to wp_push ros::ServiceClient c = node_->serviceClient<WaypointPush>("/mavros/mission/push"); success &= c.call(wp_push); success &= (wp_push.response.success); success &= (wp_push.response.wp_transfered == wp_push.request.waypoints.size());
Executing this code,
success is always
true for both valid and invalid missions.
Shortly after this, PX4 sends MAVLINK_MSG_ID_MISSION_ACK message. The
mission_type of the received mission is always
It seems like the only way to know if PX4 is ready to execute the mission is to manually parse statustext messages like “Altitude too low”, “wp too far” etc. — which doesn’t seem to be the right way to do it.
Hence the question: does PX4 send any indication that mission has passed “checkMissionFeasible()” over mavlink?