Zihao Zhao avatar

Zihao Zhao

Undergraduate Student · MEng Computing

Imperial College London

I am an undergraduate student in MEng Computing at Imperial College London. My recent work spans Embodied AI, systems programming, compiler construction, and full-stack web development.

I am currently building software and robotics projects across research internships and course projects, with interests in practical machine learning systems, robot manipulation, and reliable computing infrastructure.

The ends do not define means, they never do.

Education

Selected Publications

Experiences

Jul 2026 - Present Research Intern Center for Frontiers in Computing Science, Peking University
Jul 2025 - Oct 2025 Research Intern Shanghai Jiao Tong University

Robotic Platforms

Robotic platforms I have hands-on experience with.

Loading Franka Panda...

Franka Emika Panda

Loading Mobile ALOHA...

AgileX Mobile ALOHA

Loading Universal Manipulation Interface...

Universal Manipulation Interface (UMI)

Projects

WhereToI logo May 2026 - Present · Full-stack web application WhereToI Web App A geospatial web app for finding and comparing nearby public toilets.
  • Built a full-stack web prototype for locating and comparing nearby public toilets by distance, access, cleanliness, cost, opening status, and facilities.
  • Implemented an interactive map with geolocation, search, filters, sorting, toilet detail cards, and external directions.
  • Developed authenticated feedback workflows with ratings, comments, profile visibility, access history, and Gemini-assisted comment summaries.
  • Built a Node.js backend with PostgreSQL/SQLite storage, CSV seed import, REST APIs, caching, and optional PaddleOCR/YOLO-based photo analysis.
WACC Compiler Studio interface with source editor and build output Jan 2026 - Mar 2026 · Compiler WACC Compiler A multi-target compiler for AArch64, ARM32 and x86-64 assembly.
  • Built a full compiler for the WACC language targeting AArch64, ARM32 and x86-64 assembly.
  • Designed the compilation pipeline including lexing, parsing, semantic analysis, TAC intermediate representation, and code generation.
  • Added peephole optimisations to remove redundant instructions and improve generated assembly efficiency.
  • Extended the language with function overloading through static type checking and an exception handling mechanism.
Oct 2025 - Dec 2025 · Operating systems PintOS Kernel extensions covering scheduling, user programs and virtual memory.
  • Extended kernel threading with priority scheduling, priority donation, and the BSD scheduler.
  • Implemented system calls, process loading, argument passing, and safe user-kernel memory access for user programs.
  • Built virtual memory support with lazy loading, supplemental page tables, dynamic stack growth, and second-chance frame eviction.
  • Added swap support, shared executable pages, and memory-mapped file management.
Urban driving path planner showing road boundaries, candidate trajectories and obstacle detections Jul 2025 - Aug 2025 · Computer vision YOLO-Based Autonomous Path Planner An uncertainty-aware trajectory advisory system for urban driving videos.
  • Developed a causal, uncertainty-aware trajectory advisory system for front-view driving videos, integrating YOLO tracking, traffic sign/light recognition, and YOLOPv2 drivable-area and lane segmentation.
  • Fine-tuned YOLOv8 on GTSDB, YOLOv11 for traffic-light detection, and a CNN on GTSRB; added lane association and multi-frame confirmation to reduce false detections.
  • Designed a multi-hypothesis planner combining semantic road boundaries, bounded ego corridors, candidate-specific obstacle checks, range-rate/TTC estimation, and uncertainty-aware UNKNOWN rejection.
  • Built a Gradio demo and video-level evaluation pipeline for day, night, construction, intersection, and congested-road scenarios using ADE/FDE, off-road, collision-risk, TTC, and temporal-stability metrics.
May 2025 - Jun 2025 · Computer architecture ARMv8 Assembler and Emulator An AArch64 toolchain with Raspberry Pi GPIO hardware demonstrations.
  • Built an AArch64 emulator to simulate execution of binary programs on a Raspberry Pi.
  • Built an AArch64 assembler translating A64 assembly source code into executable binary files.
  • Wrote A64 assembly to flash an LED via Raspberry Pi GPIO.
  • Implemented a 7-segment display counter with GPIO input controls, debouncing, and timed digit updates.