Peer-reviewed papers and preprints
Robot learning, calibration, humanoid locomotion, and haptics. Papers I wrote or helped write, newest first — and a granted patent at the end.





My reading companion turns the survey into a searchable library: all 280 references categorised by the method family the paper cites them under, by subject and by year, each linked to the paper itself, with the equations behind the classical methods and a vertical timeline of the field's milestones.

IRIS is a low-cost 3D-printed 6-DOF cinema robot that uses goal-conditioned transformer-based imitation learning to autonomously generate smooth, object-aware camera motion.


Generalized robot-world and hand-eye calibration (many sensors, many targets, unknown monocular scale) solved to certified global optimality by a semidefinite relaxation over the rotations. Re-implemented in Python in 2026: the paper's simulation studies, and the real 8-camera / 16-tag rig data solved with a duality gap of 1e-8, recovering the paper's 2.5 % tag-scale finding.

Low-cost, fully 3D-printed 6-DoF cinema robot arm (IRIS) with FOC actuators, differential wrist, and a vision-conditioned imitation-learning stack in ROS.
An open-source toolkit for spatialized vibrotactile feedback that scales to 128 actuators by putting a microcontroller inside every one and daisy-chaining them — a chain of sixteen is one cable, not sixteen. Measured at 16 ms to skin and one command every 5 ms. The page carries a pattern editor: paint a spatiotemporal pattern, play it on a sleeve, and find out whether the link can carry it.

A wearable suit with 32 vibration units renders obstacle directions on the upper body while a drone is teleoperated; a multi-obstacle control barrier function (MultiCBF) decides which unit vibrates and how hard. Fewer collisions and less input disagreement than no feedback in a 12-participant AirSim study.

Metric3D v2 fine-tuned on 16,780 RGB-D stair images recovers stair rise and run from a single image (1.7 cm / 2.5 cm mean error on the archived scenes). BipedNav feeds that geometry to a five-link biped walking by virtual holonomic constraints; the page has an in-browser demo that runs the pipeline on your own photo.


Two Doppler radars on one vehicle calibrate each other from their own ego-velocities: the yaw and the translation axis are identifiable without targets or overlapping views. Re-implemented in Python and re-run in 2026: simulation sweep inside the paper's 2°/3° envelope, and the Endeavour bus pairs reproduced to 0.01 rad, with the weakly identifiable short-baseline pair called out.


Targetless spatiotemporal calibration of a 3D radar and a monocular camera: radar ego-velocity and scaled camera poses fused on a continuous-time B-spline trajectory to estimate the extrinsics, the scale and the time offset. Re-implemented in Python in 2026 with the paper's simulation studies, an identifiability check, and the radar front end run on the original handheld-rig recordings.

Proposes a weakly supervised attention-guided data augmentation strategy for fine-grained image classification tasks.

Generative design (Fusion 360) of a 3-D-printed chassis for a self-balancing unicycle robot: seven brackets carved by topology optimisation, a lighter body with a higher centre of mass, and a Simulink comparison of the generative and conventional chassis under the same PID controllers. Re-run on the website with an interactive twin.




A fire-main nozzle for a cruise ship, designed during my internship at China State Shipbuilding. Water entering the head is held back by a spring-loaded low-pressure valve until the main is charged, then split through a swirl chamber into tangential jets that leave as a fine centrifugal mist rather than a solid stream. In CFD the design put out a fire with 80% less water and reacted 67% faster than the baseline sprinkler head.