Projects
Learned control, perception on the edge, SLAM, and the simulation behind them, on robots that had to work in front of someone. Each page covers what the problem was, what I actually built, and what the measurement came out to.
Current work
Simulation, Learning and Edge AI at Arrive AI
Digital twin simulation, reinforcement learning, vision-language-action models, and the edge inference stack that has to run modern models fast enough to be useful.
ICRA 2025 Coordinated Payload Transport with Biped-Wheeled Robots
One reinforcement learning agent driving two balancing robots to carry a shared payload, trained in Isaac Lab and transferred to hardware with no fine-tuning.
IEEE AIM 2024 Rough-Terrain Path Tracking with Hybrid Deep Reinforcement Learning
A model-based controller and a learned policy working together, so an Ackermann-steered vehicle tracks a path across terrain neither was tuned for.
IFAC 2025 Agile Off-Road Traversal of an Ackermann-Steered Platform
Goal-to-goal navigation learned end-to-end for a mid-scale off-road vehicle, with reward shaping tuned for stability rather than raw speed.
NVIDIA collaboration Real-Time 3D Scene Reconstruction with NVIDIA Isaac ROS Nvblox
A deployment pipeline taking Nvblox from a simulated test arena to a TurtleBot3 Burger, producing live 3D reconstruction and 2D costmaps on a Jetson Orin Nano.
Isaac Bi3D Freespace Segmentation on HPC and Hardware
Scaling NVIDIA's Bi3D freespace segmentation across L40 GPUs on a university cluster, then deploying it on a Clearpath Husky in a custom off-road scenario.
DepthNet and SegNet on a Clearpath Husky
Monocular depth and semantic segmentation running live on a Jetson AGX Orin aboard a Husky, tested against the real scene rather than a dataset.
LiDAR-Inertial Odometry and Mapping on a Unitree Go1
LIO-SAM brought up on a legged robot with a Velodyne VLP-16, then tuned for the one thing it wasn't written for: a gait that shakes the sensor every step.
Kinematic Model Verification for a Unitree Go1
A Denavit-Hartenberg model of the Go1's legs, checked against hardware data instead of assumed correct, agreeing to the order of 10⁻².