My Work
Projects & Creations
A showcase of personal and professional projects spanning web development, machine learning, and embedded systems.
BCIT Robotic Welding System (ROS2 + AI)
Description
- Developed a ROS2 Fanuc driver using Ethernet IP protocol, implemented in C++ using the EIP Scanner module, enabling full programmatic control of the Fanuc CrX10ia cobot.
- Built a custom PyQt5 UI for the Fanuc CrX10ia – Lincoln R450 PowerWave system, and developed a TCP/IP driver for the Lincoln R450 following the ArcLink message structure in Python.
- Programmed background TP and Karel firmware programs to interface with ROS2 running programs.
- Currently integrating an AI agent into the live robotic welding loop — beginning with LLMs and VLMs for high-level reasoning, with plans for task-specific SLMs.
Technologies
ROS2C++PythonPyQt5EtherNet/IPKARELTCP/IPLLM/VLM
In-Pipe Welding Robotic Arm
Description
- Built an in-pipe welding robotic arm focusing on control software, embedded system design, and electrical wiring as part of the SFU Motion and Power Electronics Control Lab.
- Developed and tested control software using TMS320F240 DSP (dSPACE) during prototyping; transitioned to Raspberry Pi Compute Module 4 and NXP ARM S32K144 MCU for final implementation.
- Created a seam tracking algorithm integrating Python scripts with line laser sensors for real-time accuracy, applying KNN algorithms for point-cloud filtering and piecewise-linear fitting for edge detection.
- Designed PI and computed torque controllers for DC and PMSM motors, and a trajectory-based control system for smooth, jerk-free motion. Built a FreeMaster HMI (HTML/CSS/JS/JSON-RPC) for real-time robot control.
Technologies
C++PythonROS2Raspberry Pi CM4NXP S32K144dSPACETCP/IPKNNMATLAB
SKC Engineering – Train Boiler FEA & Welding
Description
- Performed FEA thermal structural analysis of a historic train boiler system (Spirit of Kamloops, Locomotive 2141) to determine Maximum Allowable Working Pressure (MAWP) and suggest re-designs.
- Conducted welding experiments using the cobot system at BCIT, and performed laser scan and point-cloud processing of parts before and after welds to detect geometric distortion.
- Developed frontend software tools for welding engineers (JavaScript) and managed website and database for Fleet Management (Ruby on Rails).
Technologies
FEASolidWorksANSYSLaser ScanningPoint CloudJavaScriptRuby on Rails
ACIM 5010 – Automated Conveyor Sorting System
Description
- Designed and implemented a fully automated conveyor-based sorting system using Studio 5000 and a CompactLogix L36ERMS Safety PLC.
- Developed modular ladder logic architecture using multiple subroutines with structured JSR execution and a state-machine–based control strategy.
- Integrated photo-eye sensors, pushbuttons, indicator lamps, and pneumatic actuators with deterministic timing using TON timers and CTU counters.
- Programmed PowerFlex 525 VFD control via digital I/O for safe start/stop sequencing. Designed fault detection logic using timers and counters to detect missing bins, initialization timeouts, and E-stop conditions.
Technologies
Studio 5000Ladder LogicCompactLogix PLCPowerFlex 525 VFDIndustrial Controls
Mobile Robot with Advanced Perception
Description
- Built a fully automated mobile robot using Hector SLAM for navigation, with a YOLOv3 model for detecting stop signs.
- Implemented an OpenCV line-tracing algorithm and a CNN network for detecting cat and dog images via ArUco markers, enabling the robot to determine where to drop red and blue balls to accomplish its mission.
Technologies
ROSPythonYOLOv3OpenCVHector SLAMCNNArUco Markers
Feelstance – AI Navigation for the Visually Impaired
Description
- Proposed and prototyped a device capable of generating artificial 3D touch sensation from a 2D picture, aiming to solve the navigation problem for visually impaired or blind users.
- The solution extracts 3D dense information from a 2D image using deep learning and translates it into 3D tactile sensation applied to the user's skin via electromechanical devices.
- Combined mobile device, embedded system, and deep learning into an end-to-end wearable navigation assistant.
Technologies
Deep LearningPythonEmbedded SystemsOpenCVComputer VisionMobile Development