Selected projects / Project 02

Robotics · Computer vision · Control systems

Vision-Guided Pick & Place

A broad rewrite of the LitePlacer control stack. Two cameras became measurement instruments for calibration, board registration, feeder positioning, and closed-loop placement.

  • C# / .NET
  • OpenCV / EmguCV
  • AForge.NET
  • TinyG
  • Embedded C
82.8%inherited handwritten C# deleted or replaced
24new handwritten source modules
7major public rewrite commits
LitePlacer pick-and-place machine in Reza Naima's 2015 calibration demonstration
Calibration and mechanical-slack demonstration · 2015

Vision and calibration

Overview

The cameras moved inside the control loop. The system measured its geometry, learned mechanical offsets, located parts, verified pickup, corrected pose, and then placed.

CV

Machine vision

Dual-camera detection for fiducials, components, tape holes, geometry, optical homing, and template matching.

CAL

Automatic calibration

Camera scale, nozzle offset, optical homing, mechanical slack, and SVD-based PCB registration from measured fiducials.

FDR

Smart feeders

Vision-calibrated carrier tape using detected sprocket holes, fitted tape slope, measured pitch, and predicted pickup locations.

P↺

Verified pickup

TinyG firmware changes added vacuum-pressure sensing so the machine could confirm success rather than assume it.

Closed loopImport CADRegister boardLocate partPickVerify pressureCorrect posePlace

Development artifacts

System in use

The original demonstration and interface captures show the calibration routines and configurable computer-vision pipeline in operation.

Thumbnail for Reza Naima's LitePlacer calibration demonstrationWatch the demo ↗ · automatic calibration and slack measurement
LitePlacer dual-camera CameraView user interface
CameraView · redesigned dual-camera interface
LitePlacer configurable computer-vision filter pipeline
Vision pipeline · per-camera filtering and feature detection

Scope of the rewrite

Engineering scope

The public history records changes across vision, motion, calibration, feeders, sensing, interface design, and control behavior.

≈83%

of inherited application code replaced

Against the final inherited baseline: 11,001 of 13,287 handwritten C# lines deleted and 24 new handwritten modules introduced.

Excludes WinForms Designer files, generated Properties code, binaries, and backups.

Across the complete machine

  • OpenCV/AForge vision pipelines
  • Four-axis X/Y/Z/A motion
  • TinyG JSON command control
  • Circle and rectangle detection
  • Template and blob matching
  • Automatic probing
  • Learned Z heights
  • Mechanical slack compensation
  • Placement pause and abort
  • Needle-change workflows
  • Vacuum pressure feedback
  • Board-coordinate registration

Source and demonstration

Project records

The public repository and demonstration video document the implementation and its development history.