
May — Aug 2026 · Seoul, South Korea
Autonomy Robotics Software Engineering Intern
Bear Robotics
Bear Robotics makes serving robots that work in real restaurants, which means navigating rooms full of chairs, people, and other robots, all of which move without warning.
I spent the summer on the part of the software that decides how the robot actually moves: the trajectory controller. My work became the basis for the next generation of that controller.
- 68% → 90%
- Navigation success rate
- 1,192
- Trials measured against
- 2x
- Faster control loop
The problem
A robot in a restaurant is rectangular, but the planner it used treated it more simply than that. In tight spaces the difference matters. The robot would refuse routes it could actually fit through, or get itself wedged and need a person to come and free it.
Getting stuck is worse than being slow. A robot that stops in the middle of a dining room is a robot that someone has to walk over and rescue, and that undoes the point of having it.
What I did
I replaced the planner with one that samples many possible paths forward each cycle, scores them all, and follows the best. Crucially, it checks the robot's full rectangular footprint against the map, so it knows precisely what it can and cannot fit through.
I also changed how those candidate paths are generated. Rather than sampling randomly and hoping, the planner deliberately includes options that would get it out of a jam, so when it does find itself boxed in, an escape route is among the choices it is already considering.
What changed
Navigation success went from 68% to 90% across 1,192 trials against the previous system, and the robot recovered from deadlocks far more often instead of waiting for help.
Sampling hundreds of paths every cycle is expensive, so I parallelized the evaluation. The control loop ended up running roughly twice as fast as before while using less CPU than the system it replaced, which matters on hardware that also has to run everything else.
The work is now integrated into the production robot stack.
Stack
- C++
- ROS
- MPPI
- OpenMP
- Motion planning