Complete autonomous landing module #262
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Completed the autonomous landing module. Tackled the following problems in the ticket:
Multiple detections? Which one do we choose to go to?
Implemented a flexible detection selection system with four different approaches:
• NEAREST_TO_CENTER (default): Chooses the detection closest to the image center
• LARGEST_AREA: Selects the detection with the biggest bounding box
• HIGHEST_CONFIDENCE: Picks the detection with the highest confidence score
• FIRST_DETECTION: Uses the first detection in the list
How/where does this get integrated in the worker pipeline?
The auto_landing_worker() function follows the worker pattern:
• Input: Receives merged_odometry_detections from an input queue
• Output: Sends landing_info to an output queue
• Commands: Receives control commands for state changes from a command queue
How do we turn it on/off? How do we signal this?
Uses AutoLandingCommand and AutoLandingController. The command wrapper carries two string commands ("enable"/"disable") and is sent through the command queue to be processed. The controller layer has enable() and disable() methods, and is_enabled() for status queries. The process_detections() only processes when enabled.
Let me know if anything needs changing.
Note: Some of the brightspot tests are failing so it doesn't pass the pytest check. I believe they were already failing beforehand.