Engineering
Robotics
Computer vision
Cup Tracking for a Four-Robot Trail Mix Line
Role
Module owner, cup tracking
Team
Team 4, four people
Timeline
March to May 2026
Context
MEAM 5200 Introduction to Robotics, University of Pennsylvania
Tools
ROS, Python, apriltag_ros, TF, Franka Panda arms
20
teams building one system
4
Franka Panda arms
8
robot teams used the cup poses
10 Hz
pose publishing rate
25
cups, 3 tags each
01 Context
Every robot in the line needed to know where the cups were
S1 1.27:1
Layout of the Trail Mix Bar from the course project brief. Cups start in a stack beside each service robot.
Top-down layout of the Trail Mix Bar: two assembly lines, each with a service robot, a turntable, and a toppings robot, with cereal, candy, and nut dispensers and a service counter at left.
02 Scope
The module reports one thing, and reports it in a form every robot can use
How a detection becomes a cup pose
Wrist camera
Image stream from the arm
AprilTag detection
Tag pose in the camera frame
Tag pose array
Detections collected per robot
cupTracker
Forward kinematics and camera offset
/cup_state
Pose and status in the base frame, 10 Hz
03 Tags
Where the tags go decided how the whole vision pipeline works
S3A 1.1:1
Each cup carries two side tags and one bottom tag. Arrows mark tag orientation.
A clear plastic cup with three AprilTags, two on the sides and one on the bottom, with arrows marking each tag’s orientation.
Two camera poses cover every cup.
Side pose: reads the side tags
S3B 1:1
A Franka Panda arm with a wrist camera angled at a clear cup under a black food dispenser.
S3C 1:1
Wrist camera view of a cup in a black tray with an AprilTag visible on its side.
Top-down pose: reads the bottom tag
S3D 1:1
A Franka Panda arm with a wrist camera pointing down at a stack of clear cups on a wooden bench.
S3E 1:1
Top-down camera view of the inside of a cup with an AprilTag on its bottom and detection axes drawn on it.
04 Pose
A tag pose in the camera frame becomes a cup pose in the robot’s base frame
T_base_tag = T_base_ee(q) · T_ee_camera · T_cam_tag
Base-to-hand pose from forward kinematics, hand-to-camera transform, camera-to-tag detection.
05 Teams
Eight teams built on the module, so the interface mattered as much as the vision
Who used it
Service robot:
Toppings robot:
06 Demo
The same module ran on all four robots and through the full demo
Full demo, portrait recording.
07 Takeaways
Three things I took from it
1
Tag choices set the pipeline.
2
A narrow interface lets other teams move on their own.
3
Own the calibration checkpoint.
View the code on GitHub
Team 4: Sidhant Srivastava, Caroline Chen, Pavitpaul Makkar, Aiden Lee. Built on the course-provided AprilTag detector, with Team 3 (World Tracking) on tag conventions. MEAM 5200 Introduction to Robotics, University of Pennsylvania, Spring 2026.