-
Notifications
You must be signed in to change notification settings - Fork 0
Open
2 / 32 of 3 issues completedDescription
Goal: Replace Canny/Hough orientation with YOLO-predicted θ integrated into ROS pipeline and validated on test data.
Motivation:
- In the Valve Intervention task, we must turn two underwater valves to the Open/Shut positions the judge tells us.
- To do this autonomously (and earn bonus points), the robot must know each valve’s pose so it can grasp and turn correctly. Therefore, we need to estimate the valve’s pose.
Current solution:
- YOLOv8 (bbox) -> 2D location/extent (no orientation)
- Canny + Hough line detection -> in-plane handle orientation (θ)
- Depth/PCL (annulus + RANSAC plane) -> 3D point + surface normal (tilt)
- Fusion (θ + normal) -> full 6-DoF pose (position + handle orientation)
Problems with current solution:
- Canny + Hough -> fragile: fails under noise, poor lighting, turbidity; often returns NaN if no line is found.
- Depth-based angle estimation -> unreliable: depth noise and sparse/missing points distort plane fit and give unstable orientation.
- Manual angle detection -> not autonomous: requires human input, no scoring bonus, not scalable or robust.
Proposed solution**
- Extend YOLOv8 -> bbox + handle orientation (θ)
- Train with valve-angle annotations
- Keep depth/PCL for 3D position + tilt; fuse with YOLO angle for full pose
Suggested workflow
- Research and understand current solution for estimating in-plane handle orientation (θ)
- Ultralytics fork -> Evaluate the ultralytics fork that supports angle prediction. Verify if it can be adapted for valve orientation.
- Need to figure out how to use it locally, just as it is now.
- Need to figure out how to add a reghead
- Write docs for how to add reghead
- Training setup -> Get familiar with Hugging Face, Roboflow, and Slurm.
- Annotation tool -> Build a simple tool to label images with valve angle (draw handle, calculate θ).
- Dataset annotation -> Use the tool to add angle labels to the existing dataset.
- Model training & testing -> Train YOLOv8 with bbox + θ, benchmark against current method.
- Integration -> Replace Canny/Hough with YOLO-predicted θ in ROS pipeline.
References
- Canny Edge Detection
- Hough Line Transform
- Roboflow
- Hugging Face
- Slurm example
- Ultralytics fork
- TAC ChallengeMission-Booklet-2024-rev.2
- RANSAC: https://www.geeksforgeeks.org/python/step-by-step-guide-to-using-ransac-in-opencv-using-python and https://acnice.medium.com/teach-me-the-ransac-algorithm-like-im-5-d3b1dd6d67a8
- Ultralytics: https://docs.ultralytics.com/quickstart/
Reactions are currently unavailable