Adam Li

Hello! I'm Adam Li

I am a robotics researcher focused on representations that enable better behaviors and greater safety for robots in order to bring autonomous robots into everyday life.

I received my MS in Robotics from the Department of Robotics at the University of Michigan, where I was a member of ROAHM Lab supervised by Prof. Ram Vasudevan. I also hold a BS in Electrical Engineering and Mechanical Engineering from Rensselaer Polytechnic Institute.

Research Work

Contributor

Select Projects

Generative Animation Inbetweening

Generative Animation Inbetweening

Diffusion modeling 2D animation like a trajectory to address animators' needs

For animations, most generative video models struggle with precision and introduce stylistic changes or errors that are more expensive to fix than simply redrawing from scratch. I built a model focused on adhering closely to provided keyframes and breakdowns (partial keyframes) to deliver hand‑ready and easily-correctable frames for animators.

Multi-Agent Reinforcement Learning to Solve Collaborative Escape-Room Style Tasks

Multi-Agent Reinforcement Learning to Solve Collaborative Escape-Room Style Tasks

Will agents learn to communicate and escape from a simplified escape-room style game?

For our final project for EECS692 Advanced AI at Michigan, we developed a simplified model for escape-room style tasks, and implemented it as an environment to perform multi-agent reinforcement learning. Puzzle rooms are chained together to create a larger escape-room style task.

Reinforcement Learning using DDPG for Robotic Grasping

Reinforcement Learning using DDPG for Robotic Grasping

Exploring reward shaping, DDPG, and RL for manipulation

For our final project for EECS545 Machine Learning, we implemented Lilicrap et al.'s Deep Deterministic Policy Gradient algorithm to train a robotic manipulator to grasp in a custom OpenAI Gym environment. The goal was to grasp a block on the table without moving it and reward shaping was employed to learn this. Through the inclusion of regularization, we demonstrated superior results over the baseline implementation.

CleanTwrpTar

Basic C program written to recover my corrupted phone backups

Back in 2017, I was restoring my phone from a TWRP nandroid backup, and discovered that all of my backups were corrupted. After inspection, it turned out that one of the other standard streams used for verbose logging occasionally output to the tarfile. This program was written to remove strings inserted between the 512 byte data block boundaries where these logging strings were inserted. A friend and I wrote separate solutions to this problem, and we have saved countless others' backups as a result.