Skip to content
All projects

ML & Data

MACHINOVA: CFRP Surface-Roughness Prediction

Graduation project in the TUSAŞ Lift Up program. Five regressors compared under three cross-validation schemes on a Taguchi L9 design; the RSM model reaches CV R² = 0.978. Shipped as a desktop app, standalone .exe and Flask REST API.

My role
The only computer engineer in a 5-person team: statistics, ML, app & API
Context
TUSAŞ Lift Up · Graduation project
Stack
scikit-learn · RSM · Taguchi / ANOVA · Flask

R² 0.978

cross-validated

0.012 µm

RMSE

83.2%

cutting-speed effect

The problem

When milling carbon-fibre-reinforced polymer (CFRP) aerospace parts, surface roughness (Ra) decides whether a part passes. Operators pick three parameters: cutting speed (Vc), feed (fn) and depth of cut (ap). This graduation project in TUSAŞ’s Lift Up programme asked for a tool that predicts Ra from those settings before cutting. I was the only computer engineer in a team with four mechanical engineers, responsible for the statistics, the models and the software.

Data

A Taguchi L9 orthogonal design: 3 factors × 3 levels = 9 combinations, each repeated 14 times, for 126 measurements with Ra between 0.882 and 1.190 µm. The 14 repeats rise slightly and consistently within each group, a sign of tool wear over successive cuts. With no pass index in the data, the model learns the mean Ra per setting and the spread is reported as an uncertainty band (±0.024 µm ≈ 2σ).

Method

  • Statistics first: Taguchi signal-to-noise (smaller-is-better) and ANOVA. Cutting speed explains 83.2% of the variance in Ra.
  • Five regressors inside one StandardScaler pipeline (no leakage): linear baseline, degree-2 response-surface (RSM) + RidgeCV, Random Forest, SVR (RBF) and an MLP. Ridge matters because L9 aliases the interaction terms, which makes plain polynomial regression ill-conditioned.
  • Three validation schemes, including leave-one-combination-out, so a model is also judged on settings it never saw.
Bar chart comparing R² of five regression models under 10-fold and leave-combination-out cross-validation
Five models, two of the validation schemes.

The RSM model was chosen: accuracy equal to the best, plus smooth interpolation between the tested levels, which a random forest cannot give. Its scores are CV R² = 0.978 and RMSE = 0.012 µm.

3D response surface of predicted Ra over cutting speed and feed at a fixed depth of cut
RSM response surface: predicted Ra over cutting speed and feed (ap = 1.5 mm).

Shipping it

MACHINOVA desktop application: inputs for cutting speed, feed and depth of cut, and a predicted Ra of 0.902 µm
The MACHINOVA decision-support app used by operators.

The model ships three ways: a CustomTkinter desktop app, a standalone .exe (PyInstaller) for shop-floor PCs with no Python, and a Flask REST API (POST /predict) for integration. All 14 figures and 9 tables for the paper are regenerated by one analysis script.

More projects

Robotics & Autonomy

2026Independent research

Teaching Cost Curve: how many demos does a robot need?

Measuring the demonstration-count vs. success-rate curve for SmolVLA, LoRA fine-tuned on unseen LIBERO tasks, on a single 8 GB consumer GPU. Nearly all of the value arrives in the first five demonstrations, and so does catastrophic forgetting.

66.7% · success @ 5 demos

  • SmolVLA
  • LeRobot
  • LoRA / PEFT
  • LIBERO
Read case studyCode
Robotics & Autonomy

2026Independent project · public dataset

GPS-Denied UAV Localization

Neural dead reckoning for a fixed-wing UAV: an LSTM predicts one-second displacements from 19 GPS-free sensor channels. After 4.5 minutes without GPS it is still within ~85 m, about 38× better than classical dead reckoning.

44.4 m · mean error, 4.5 min

  • PyTorch
  • LSTM / GRU / TCN
  • Sensor fusion
  • TorchScript
Read case studyCode
VO
Robotics & Autonomyprivate

2026TEKNOFEST 2026 · Team bugbuster · Finalist

Aerial AI: GPS-Free Visual Odometry

TEKNOFEST 2026 Artificial Intelligence in Aviation. I owned the GPS-free positioning task: RAFT optical flow + homography with a keyframe ladder estimates the aircraft’s displacement from its downward camera. Full rehearsal: 2256/2256 frames, 3.54 m mean error.

3.54 m · mean error, full run

  • RAFT
  • Homography
  • OpenCV
  • PyTorch
Read case studyCode on request