Draymir: robotic X-ray film digitizer for NDT
A robot cell that takes radiographic films from a tray and scans each one at 24 µm per pixel, with no operator between films.
The hard part
Moving thin film by robot and triggering the camera line by line at 24 µm per pixel.
What I built
Cell mechanics (tilted scan bed, 100-film trays, ball-screw axis), Denso SCARA, Mitsubishi Q-series PLC and servos, Basler line-scan optics, a C#/.NET 8 application, a CUDA/OpenCV pipeline with exposure fusion, and LLM-assisted defect tagging.
Result
About 90 s per X-ray film and about 268 s per gamma film, with no operator between films.
The problem
Weld inspection by radiography leaves stacks of film that need to be digitized. Scanning them one by one by hand takes an operator for every film.
How the cell works
- A Denso SCARA robot takes one film at a time from a 100-film tray and places it on a tilted scan bed.
- A Basler line-scan camera on a ball-screw axis driven by a Mitsubishi servo sweeps the film. The camera is triggered line by line from the axis encoder, which gives 24 µm per pixel (about 1,060 dpi).
- Dense gamma films are captured at two exposures and fused on the GPU with CUDA and OpenCV, so both thin and thick parts of the weld stay readable.
- The PC application saves each image and uses an LLM to help tag defects.
What I did
I designed the mechanics of the cell, wrote the Mitsubishi Q-series PLC program and servo setup, chose and aligned the optics, and wrote the C#/.NET 8 operator application with its image pipeline.