Walter the Waiter Robot

2024

An autonomous waiter robot that can serve food using interchangeable function modules.

Context

  • Course: Principles of Integrated Engineering (ENGR 2110)
  • Project Prompt: “Design and prototype an integrated mechatronic system that contains electrical, firmware, software, and mechanical components.”  
  • Timeframe: 6 weeks, divided into 3 sprints
  • Team Role(s): Primary Mechanical Designer & Fabricator
  • Year: Fall 2024

Process

For my final project for Principles of Integrated Engineering (PIE), I wanted to create a complex mechanical system to practice my design, prototyping, and fabrication skills. Along with four other team members, I ideated based on group and personal learning goals; eventually deciding to make a Waiter Robot that would be able to autonomously navigate a space using Apriltags and elegantly change functions with mechanically isolated modules. Over the next six weeks, which we divided into three sprints, we created a final prototype which we affectionately named Walter: 

Photo of Walter the Waiter Robot and his fabulous bowtie

Walter is capable of a couple of things that seem simple, but present complex engineering challenges. Walter can…

Drive across indoor surfaces with ease and turn about a point.

Carry and extend an autonomously actuated tray to deliver a plate of food weighing up to 5lb, and sense when it’s been removed.

Swap between function modules seamlessly.

And more!

Walter has three distinct mechanical systems: the drivetrain, module interfacing system, and four-bar tray module. I designed, prototyped, and fabricated the drivetrain and the module interfacing system.

The drivetrain consists of two centered drive wheels mounted to a 2ft x 2ft chassis made out of 1010 aluminum extrusion. Two caster wheels are mounted to either side to stabilize the chassis while still allowing the robot to be driven with only two powered wheels.

OnShape screenshot of final drivetrain assembly
OnShape screenshot of final drivetrain assembly, viewed from the bottom

The powered wheels are mounted to the chassis with two .25in acrylic plates, between which the motion hardware was housed. The wheels themselves are driven by a Yellowjacket planetary DC motor, reduced by another 1:3 with cogged belts and pulleys, in order to move the weight of the full robot.

When designing the chassis and drivetrain, I focused on durability and adaptability. I made the frame out of 1010 aluminum extrusion because we had enough of it on hand, and it would be easy to modify if our designs changed. In addition, if braced correctly, a basic square frame can support well over 50lb. With this in mind, I designed and assembled the frame with a double-wide cross brace in the middle and .25in acrylic corner brackets.

Photo of the chassis and drivetrain with a board for mounting electronics on top, taken from Spring #1

Next, the robot needed a body. I designed a shell to mount to the chassis with t-nuts out of .5in plywood panels. I faricated the panels using some woodworking equipment, and then fastened the panels to eachother using a nail gun. This shell was built with aesthetics and the function of the future tray module in mind. 

OnShape screenshot of the chassis with the plywood shell mounted, viewed from the rear of the robot
Photo of the side shell panels mounted to the chassis, viewed from the front of the robot

Walter uses a modular interfacing system to allow for seamless switching between different modules, including the serving tray module and other potential features. There are two main parts of the interfacing system: the module housing unit mounted to the top of the robot shell, and the module receiver, which interlocks with the module housing.

The module housing is 3D-printed with ABS, and uses a stepper motor connected to a series of gears, the end of which protrudes into the interior of the housing.

OnShape screenshot of the module housing mounted to the top shell panel.

Each module has a module receiver, a 3D printed piece designed to interlock with the module housing. To insert a module, the receiver can be easily slid into the housing, which allows the gear on the receiver to mesh with the gear on the housing, allowing for the transfer of rotational energy. A key on the receiver can then be turned to lock the module into place. When the stepper motor is actuated, the gears will transfer rotational energy between the housing and the receiver, and into a vertical shaft in the receiver, which the module can then use.

OnShape screenshot of the module receiver
OnShape screenshot of the full robot with the module housing and receiver mounted to the top shell panel
OnShape screenshot of a cross-sectional view of the module housing and receiver, showcasing the gear system inside

To further explain how Walter's mechanical systems work together, this diagram illustrates the flow of mechanical energy across all systems:

Diagram illustrating the flow of mechanical energy in the full robot

When breaking down the mechanical design challenge of a modular interfacing system, I thought about it in terms of two problems: selectively restricting movement and transferring power intermittently. My solution to these two problems was inspired by the functional geometry of a dovetail joint, which restricts movement along all but one axis, and the elegance of more complicated geared transmission systems.

Reflection

Through this project, I learned so much about project scoping, mechanical design, tolerancing, and teaming. 

My most important lesson learned was to anticipate changes in project goals. My team set out to accomplish something ambitious for our project timeline. Through recognizing that, we also recognized that we would have to make compromises along the way to meet deadlines and adapt to problems. This planning really saved the team's morale when things went wrong, since we had already mapped out alternatives.  

A technical lesson I learned was to regularly challenge my assumptions about the best way to solve a problem. For example, there are several small aspects of the final mechanical design that I would change in retrospect. If I challenged my initial assumptions earlier in the design process, I might have been able to find better solutions.

The full project website can be found here.