Research

I develop embodied agents that reason about how their present actions reshape the future. Every interaction changes object arrangement, free space, and accessibility, and those changes accumulate: a robot can complete each task it is given while gradually leaving behind a workspace that makes every later task harder. My work formalizes the missing capability as anticipatory planning and builds it into planners we already trust. Full details are in my research statement.

Anticipatory versus myopic task planning

Anticipatory task planning

Most deployed planners are myopic: they solve each task in isolation and, lacking any model of what will be asked next, introduce side effects that impede future tasks. I augment the task objective with a learned estimate of the expected cost of future tasks, so a planner chooses among the many states that satisfy the current goal the one that leaves the environment easiest to work in.

Anticipatory task and motion planning in a cabinet domain

Anticipation in continuous space (TAMP)

Where an object goes matters as much as which object moves. Loading a cabinet so that mugs occlude the bowls satisfies the task but forces costly rework later. I bring anticipation to task and motion planning, estimating how continuous placements affect plausible future tasks so that reachability is preserved and obstructions are avoided across long deployments.

Courteous anticipation in shared environments

Courteous anticipation in shared spaces

Real deployments are shared. A staging spot that is convenient for one agent can be another's blocked retrieval path, and a robot that is efficient on its own terms can be inconsiderate to the people around it. I extend anticipatory planning to persistent shared environments, where the cost a decision imposes on others is part of the objective.

Learned cost estimators integrated into the Fast Downward planner

Learned estimates inside classical planners

Anticipation should not require throwing away decades of planning research. I integrate learned anticipatory cost models directly into the Fast Downward stack via C++, PyBind, and PyTorch, so neural estimates compose with standard symbolic heuristics and the planner keeps the guarantees it already provides. The same estimates also act as a learned prior that reduces search and sampling effort on a single problem.

where I'm headed