The Toasted Turtle

EECS 106A Project

Matt Cullen • Angela Lee • Ha Nguyen • Aarsh Shroff • Somil Jethra

University of California, Berkeley

GitHub Repository: github.com/MattCullen6154/106aFinal

Demo Presentation: Slide Deck

Introduction

Project Goal

The goal of this project is to build a fully autonomous robot using a TurtleBot3 platform that can navigate a simulated restaurant environment, handling food and drink orders via a command-line interfact, and completing multi-stop delivery tasks without human intervention while avoiding collisions with both static and dynamic obstacles.

This project integrates the core components of atuonomous robotics: perception, planning, mapping, and human-robot interaction. It combines them into a unified system for a real-world service robot behavior.

Real-World Applications

The techniques developed in this project are directly applicable to a range of real-world autonomous service robot deployments:

Design

Design Criteria and Desired Functionality

The system must meet the following design criteria:

The desired functionalities include:

System Design

The system is structured as four high-level software layers communicating over ROS 2 topics:

Design Choices and Trade-Offs

Impact of Design Choices

These choices provided a reliable starting point for autonomous navigation in a known indoor environment. However, the system still relies heavily on environments with mostly known obstacles and can struggle with rapidly changing scenes or ambiguous obstacle types.

Implementation

Hardware

TurtleBot3
TurtleBot3
Webcam
Logitech Webcam
LiDAR
LiDAR
Tray
Tray

Software Overview

1. Sensing Layer

The sensing layer is responsible for real-time perception of the environment using both LiDAR and vision.

The perception system outputs:

2. Mapping and Planning Layer

The mapping system fuses a pre-built SLAM map with live LiDAR updates to have a continuously updated representation of the environment.

The lee_planner node performs global path planning using Lee's BFS algorithm over a coarsened occupancy grid.

Key design steps include:

The planner publishes:

3. Control Layer

The control layer converts planned paths into motor commands for the robot. A proportional controller, turtlebot_control, regulates:

This layer also integrates reactive safety behavior:

4. Interaction Layer

The interaction layer manages high-level task execution and human-robot communication. The waiter_executive node implements a state machine that:

A companion kitchen_node sends the order to the chef.

Complete System Workflow

  1. The diner enters an order through the command-line interface.
  2. The waiter executive determines the required sequence of destinations.
  3. The mapping and planning stack generates a safe navigation path.
  4. The TurtleBot follows the generated waypoints using real-time motor control.
  5. LiDAR and camera perception continuously monitor for obstacles.
  6. If a dynamic obstacle is detected, the robot pauses and waits.
  7. If a static obstacle blocks the path, the planner replans a new route.
  8. The robot delivers the order and returns to the kitchen autonomously.

Results

Performance

The robot successfully collected food and water items and transported them between the kitchen, water station, and dining table stations.

Overall, the robot successfully demonstrated obstacle detection, safe path planning, and autonomous transportation between restaurant stations.

One major limitation was that the system initially treated all obstacles identically, causing slow replanning behavior and delays in deciding whether to wait or reroute.

Demo Video

Please play the videos below at the same time. They are meant to be viewed synchronously, as the first video shows how the TurtleBot navigates through the simulated restaurant environment, and the second shows how the RViz map changes when dynamic obstacles appear, as well as the found path that the TurtleBot follows. The videos were taken at the same time in order to display a synchronous view of how the map changes as the TurtleBot moves. Since the videos show the full demo and may be long in length, feel free to speed them up by toggling the settings in the upper right corner.

Video Demo 1: linked here

Video Demo 2: linked here

Conclusion

Project Outcome

Our results were promising, but integration challenges prevented the system from achieving the level of fluidity and robustness we originally envisioned. We waited too long to integrate independently developed components, which introduced unexpected bugs and unstable behavior during final testing.

Despite these challenges, the robot successfully demonstrated autonomous navigation throughout the simulated restaurant environment.

Difficulties Encountered

Future Improvements

Future iterations of the project would improve obstacle classification and decision-making:

Meet the Toasted Turtle Team!

Ha Nguyen

Ha Nguyen

Senior in Data Science with a concentration in Robotics.

Angela Lee

Angela Lee

Senior majoring in Computer Science and Psychology.

Somil Jethra

Somil Jethra

Senior majoring in Electrical Engineering and Computer Sciences.

Matt Cullen

Matt Cullen

Senior majoring in Electrical Engineering and Computer Sciences.

Aarsh Shroff

Aarsh Shroff

Junior majoring in Computer Science.

Contributions

Thank You!

Thank You Image

Thank you to Jaeyun Stella Seo for mentoring our project, and the EECS 106A staff for a wonderful semester!

This website design was inspired by Jon Barron and Seohong Park .