Robotics engineer building embodied AI: LLM-driven robot behavior, real-time motor control, and simulation-in-the-loop.
Built Phil, an AI drummer robot, as a robotics engineer at KIST (Dec 2025 – Sep 2026).
Phil listens, talks back, and plays a real drum kit.
A local LLM plans the performance, a C++ controller drives the motors over CAN in real time,
and a frame-level SIL runs the same controller against PyBullet with zero code changes.
voice ─▶ Whisper ─▶ Qwen3 planner ─▶ TCP ─▶ C++ controller ─▶ CAN / serial ─▶ motors
└──▶ vcan / PTY ─▶ PyBullet (SIL)
| Repo | Role | Stack |
|---|---|---|
| phil-control | Real-time body controller: state machine, trajectory generation, TMotor / Maxon / Dynamixel drive | C++17, SocketCAN, Dynamixel SDK |
| phil-interaction | Brain: Whisper STT → Qwen3 classifier / planner → validated commands → MeloTTS | Python, Ollama, LangGraph |
| phil-simulation | Frame-level SIL: replays raw can_frame / Dynamixel packets into PyBullet |
Python, PyBullet, vcan, PTY |
| phil-midi-converter | MIDI ↔ score converter: Groove MIDI Dataset drum tracks → Phil's text scores (quantize, merge, assign hands) and back to MIDI | C++17 |
| phil-matlab-analysis | MATLAB log analysis: motor tracking plots, Simscape Multibody replay of logged motion, OBB/SAT arm–stick collision check | MATLAB, Simulink |
| Phil_Robot-AI-Drummer | Legacy monorepo snapshot before the split | archive |
- Smart Duct Inspection Robot · Award-winning capstone. ROS2, LiDAR 2D SLAM, frontier exploration, YOLO cable-damage detection, web monitoring. Owned SLAM, track-drive mechanics, and detector real-world robustness (>90% on-site accuracy).
- Amorepacific Short-form Ad Agent · Vision + LLM pipeline that turns a product page URL into a 15-second short-form ad. Playwright DOM asset extraction, GPT storyboard, MoviePy rendering, C# WinForms client over WebSocket.
