About me
I'm a PhD student advised by Prof. Jeannette Bohg in the Stanford Interactive Perception and Robot Learning Lab. My research lies at the intersection of machine learning, symbolic AI, motion planning, and robot control. My goal is to bring us closer to a world where robots can assist us in our daily lives.
I am particularly interested in using Task and Motion Planning (TAMP) to solve long-horizon manipulation problems. Prior TAMP works have been limited to simulation due to their computational complexity and reliance on perfect perception, dynamics, and control. My work seeks to overcome these limitations so we can run TAMP on a real robot to perform tasks in the real world.
I enjoy coding in my spare time, and I have developed a number of general-purpose robotics libraries over the years. I generally prototype in Python and code in C++ for performance-sensitive applications like robot control, but I'm a huge fan of Rust and Haskell.
- spatial-dyn
- A fast, lightweight robot dynamics library for C++/Python optimized for controlling robots using Operational Space control. It uses Featherstone's efficient spatial dynamics algorithms, and features a highly stable variational integrator based on discrete dynamics. It was used to teach Topics in Advanced Robotic Manipulation (CS326).
- redis-gl
- A modern web-based visualizer for SpatialDyn. It allows users to interact with and apply forces to the robot with the cursor, while providing a real-time monitor of system variables for debugging. Parts of it have been used for visualizing SO(3) representations, manipulator Jacobians, velocity/force duality, and inertia matrices in Introduction to Robotics (CS223a).
- ctrl-utils
- A header-only library of utilities useful for robot control, including an asynchronous message-passing framework based on Redis (like ROS, but runs on any OS). This is what we use to control all the robots and integrate all the perception sensors in the lab.
- symbolic
- A C++/Python library for symbolic planning using the standard PDDL specification.
- franka-panda
- A driver for running Operational Space control on the Franka Emika Panda with basic friction compensation.
- dbot-redis
- A Redis wrapper for the Dynamic Bayesian Object Tracker (DBOT), which can visually track objects from 3D point cloud data.
- Winter 2020: Principles of Robot Autonomy II (AA 274b)
- Course Assistant
- Fall 2019: Principles of Robot Autonomy I (AA 274a)
-
Course AssistantSCPD teaching recognition
- Winter 2018: Introduction to Robotics (CS 223a)
-
Head Course AssistantCS department award
- Fall 2017: Safe and Interactive Robotics (CS 333)
- Course Assistant
- Spring 2017: Experimental Robotics (CS 225a)
- Co-Head Course Assistant
- Winter 2017: Introduction to Robotics (CS 223a)
- Course Assistant