Real SO-101 arm
Simulated SO-101 in Viam's 3D scene
Overview
Greeter is an autonomous booth greeter built on the Viam platform as part of Viam's at-home technical exercise. A fixed webcam and a pre-trained person detector find and track people walking past a booth, and an SO-101 robotic arm engages each one: it turns toward them, points, beckons them over, and waves before moving on to the next person.
How it works
- Perception loop: the webcam feed runs through Viam's vision service and a people-detection model. A tracker confirms new people and estimates their bearing relative to the arm.
- Behavior state machine: Idle → Point (new confirmed person) → Beckon (after 2.5 s) → Wave (after two beckons) → Idle. If the person leaves the view for 2 s, any greeting state returns to Idle.
- Motion loop: gesture poses are generated and sent to the arm continuously, with a speed setting for running gently on real hardware.
- Sim or real: one setting in
.envswitches between Viam's simulated SO-101 and a physical SO-101 arm. - Tested: unit tests cover the math, gestures, and tracking with no robot needed, and helper scripts check the connection and live detections before the arm ever moves.
My role
Solo project: design, implementation, testing, and documentation.
Gallery

