Roomie: Hotel Delivery Robot
An autonomous hotel service robot capable of inter-floor navigation using a robot arm to operate elevators. Delivers room service and provides guided wayfinding for guests.
Project Overview
Roomie is designed to automate repetitive hotel operations, reducing staff workload while providing a novel experience for guests. Its standout feature is the ability to independently navigate between floors by physically pressing elevator buttons with an attached 4-DOF robot arm.
Key Engineering Contributions
Project Leadership & Architecture
Led the development team and designed the entire ROS 2 package structure. Architected the central Finite State Machine (FSM) that manages complex asynchronous tasks like elevator navigation, room docking, and service interactions.
Vision AI Pipeline
Engineered a multi-stage vision pipeline for reliable elevator operation. Cascaded YOLOv8 for panel detection, a custom CNN for button classification, and EasyOCR for floor verification, achieving 95% success rate in real-world trials.
Interactive Robot GUI
Developed the robot's onboard display interface using PyQt and ROS 2. The GUI provides real-time state visualization (e.g., "Going to 5th Floor") and intuitive touch interactions for guests and staff.
Core Technology
- Elevator manipulation: Gaussian velocity profiling for smooth arm control; Coordinate mapping from camera to button space.
- Navigation: Nav2-based path planning with dynamic obstacle avoidance using depth cameras.
- Vision Pipeline: YOLOv8n for object/obstacle detection -> CNN for button classification -> EasyOCR for floor number reading.
- Embedded Control: micro-ROS on ESP32 for managing ultrasonic sensors, RFID readers, and LED indicators.
Tech Stack
Technical Challenges & Solutions
Problem: Rapid arm movements caused vibrations, leading to failed button
presses.
Solution: Applied Gaussian velocity and acceleration profiles to smooth out
trajectories, significantly improving stability.
Problem: Standard path planners struggled with dynamic obstacles in narrow
hotel hallways.
Solution: Implemented waypoint-based local detours and optimized the A*
global planner parameters.
Problem: False positives in button detection.
Solution: Created a multi-stage pipeline: YOLO detects the panel, CNN
classifies the button type, and EasyOCR verifies the floor number.