6D Pose Estimation Nut Picker
Budget: £250 – £750 GBP
I have a robotic arm performing pick-and-place tests in a controlled laboratory setting, and I need reliable 6-DoF pose estimation for a single mechanical nut so the gripper can approach it with millimetre-level accuracy. The 3D geometry will be supplied as a clean CAD file; you can convert it to whatever internal format your pipeline prefers, but keep the physical scale intact.
The vision feed comes from a calibrated depth camera mounted overhead. You’re welcome to fuse RGB if you like, yet the core solution must run using depth data alone so it remains robust under variable lighting. The nut will sit on a plain tray and occasionally roll, so the algorithm should handle arbitrary orientation and partial occlusion.
What I expect from you
• A runnable script, ROS node, or standalone executable that ingests the camera stream, detects the nut, and outputs its full 6D pose in the robot’s base frame (x, y, z, roll, pitch, yaw).
• Clear instructions to reproduce the results on my Ubuntu workstation (Python or C++ are both fine).
• Calibration steps to align the depth camera to the robot frame.
• A brief report summarising method, accuracy benchmarks, and any limitations.
Feel free to leverage PCL, Open3D, OpenCV, TensorFlow, or other libraries; just note the versions in a requirements file. Real-time performance (≥10 Hz) is ideal, but I can trade a little speed for higher precision if needed. Once the pose is consistently within ±2 mm translation and ±2 ° rotation during my bench tests, I’ll release the final milestone.
The vision feed comes from a calibrated depth camera mounted overhead. You’re welcome to fuse RGB if you like, yet the core solution must run using depth data alone so it remains robust under variable lighting. The nut will sit on a plain tray and occasionally roll, so the algorithm should handle arbitrary orientation and partial occlusion.
What I expect from you
• A runnable script, ROS node, or standalone executable that ingests the camera stream, detects the nut, and outputs its full 6D pose in the robot’s base frame (x, y, z, roll, pitch, yaw).
• Clear instructions to reproduce the results on my Ubuntu workstation (Python or C++ are both fine).
• Calibration steps to align the depth camera to the robot frame.
• A brief report summarising method, accuracy benchmarks, and any limitations.
Feel free to leverage PCL, Open3D, OpenCV, TensorFlow, or other libraries; just note the versions in a requirements file. Real-time performance (≥10 Hz) is ideal, but I can trade a little speed for higher precision if needed. Once the pose is consistently within ±2 mm translation and ±2 ° rotation during my bench tests, I’ll release the final milestone.