Skip to content

Valve 6DoF estimation #10

@kluge7

Description

@kluge7

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions