To be able to detect the completion of the TAKEOFF, we currently check if the tracker state transitions from:
TAKEOFF -> REFERENCE -> HOVER.
However, during this transition, when TAKEOFF is finished and the system switches between active trackers, from LandOffTracker to MpcTracker, there are instances where the tracker state being published is IDLE. This results in the state sequence being: TAKEOFF -> IDLE -> REFERENCE -> HOVER.
Is this the expected behavior? If i am not mistaken, the idle state is used when there is no tracker active (NullTracker). Having an IDLE state during the switch between trackers could potentially cause confusion, as it may be interpreted as no active tracker being present.
In our case, this leads to failures in detecting that takeoff has completed when an IDLE state is received, as it is mistaken for the NullTracker.
We've observed this issue intermittently, likely because our node operates at a lower frequency. Most of the time, we can correctly detect that the takeoff is finished and proceed with trajectory tracking.
To be able to detect the completion of the TAKEOFF, we currently check if the tracker state transitions from: TAKEOFF -> REFERENCE -> HOVER.
However, during this transition, when TAKEOFF is finished and the system switches between active trackers, from LandOffTracker to MpcTracker, there are instances where the tracker state being published is IDLE. This results in the state sequence being: TAKEOFF -> IDLE -> REFERENCE -> HOVER.
Is this the expected behavior? If i am not mistaken, the idle state is used when there is no tracker active (NullTracker). Having an IDLE state during the switch between trackers could potentially cause confusion, as it may be interpreted as no active tracker being present.
In our case, this leads to failures in detecting that takeoff has completed when an IDLE state is received, as it is mistaken for the NullTracker.
We've observed this issue intermittently, likely because our node operates at a lower frequency. Most of the time, we can correctly detect that the takeoff is finished and proceed with trajectory tracking.
Completion of takeoff unsuccessful:
Successful completion: