{"id":265,"date":"2026-02-20T19:14:36","date_gmt":"2026-02-20T19:14:36","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/?page_id=265"},"modified":"2026-05-02T19:42:43","modified_gmt":"2026-05-02T19:42:43","slug":"system-implementation","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/system-implementation\/","title":{"rendered":"System Implementation"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Labelling Subsystem<\/h2>\n\n\n\n<p>For our labelling subsystem, we utilize two Franka Emika Panda arms equipped with custom suction end-effectors. We have designated specific roles for each: the pick-and-place arm handles the introduction and removal of items from the workstation, while the labelling arm retrieves adhesive RFID tags from a dispenser and applies them to the items.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Suction System<\/h3>\n\n\n\n<p>We developed a high-flow suction system powered by a Nessxa air compressor and a vacuum generator. This high-flow configuration is particularly effective for handling RFID labels, as their thin and flexible nature can make achieving a perfect air-tight seal difficult. The system compensates for minor leaks and more easily manipulates the lightweight labels. Initial testing in manual guide mode confirmed the pneumatic system&#8217;s ability to retrieve labels from the dispenser and utilize positive pressure for placement, and subsequent autonomous tests have verified the end-effector&#8217;s robustness.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"567\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/label_ee_cad.jpeg\" alt=\"\" class=\"wp-image-388\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/label_ee_cad.jpeg 787w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/label_ee_cad-300x216.jpeg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/label_ee_cad-768x553.jpeg 768w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"725\" height=\"538\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/label_ee_real.jpeg\" alt=\"\" class=\"wp-image-389\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/label_ee_real.jpeg 725w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/label_ee_real-300x223.jpeg 300w\" sizes=\"auto, (max-width: 725px) 100vw, 725px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\">Labelling End-Effector: CAD model (left), 3D print (right)<\/p>\n\n\n\n<p>WWe also integrated a similar end-effector for the pick-and-place arm by leveraging a design from SNAAK, an MRSD team in the 2026 cohort. While this design is generally effective across various shapes and weights, we found that successful grasps on heavier objects require precise alignment with the center of mass. We address these requirements through our automated grasp pose generation logic.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0946-768x1024.jpg\" alt=\"\" class=\"wp-image-456\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0946-768x1024.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0946-225x300.jpg 225w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0946-1152x1536.jpg 1152w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0946-1536x2048.jpg 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0946-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0947-2-768x1024.jpg\" alt=\"\" class=\"wp-image-457\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0947-2-768x1024.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0947-2-225x300.jpg 225w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0947-2-1152x1536.jpg 1152w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0947-2-1536x2048.jpg 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/IMG_0947-2-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\">Pick-and-place End-Effector<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Motion Planning<\/h3>\n\n\n\n<p>The motion planning subsystem is responsible for generating collision-free paths through the labelling workspace for both the pick and place and labelling arms, enabling them to efficiently transport medical inventory and apply labels onto items. <\/p>\n\n\n\n<p>Since the primary goal of this subsystem is to ensure both arms can operate simultaneously within the workstation in a fast, repeatable, and collision-free manner, a waypoint-based planner was adopted for path generation.<\/p>\n\n\n\n<p>For low-level control, inverse kinematics (IK) is applied to each waypoint to obtain the required joint angles, which are then commanded to the onboard Franka controller to execute straight-line motion in configuration space. The joint configurations obtained from IK are additionally verified to be collision-free with respect to static obstacles, with dynamic inter-arm collisions handled separately by the state machine. If a configuration is found to be in collision, it is recomputed until a valid solution is obtained. All possible arm motions were validated to be collision-free, allowing the final system to transport medical inventory and apply labels at speeds significantly faster than would be achievable with more complex, sampling-based planners such as PRMs or RRTs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"447\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/MP-1024x447.png\" alt=\"\" class=\"wp-image-476\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/MP-1024x447.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/MP-300x131.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/MP-768x335.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/MP-1536x671.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/MP.png 1630w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Grasp Pose Generation &#8211; Input Zone<\/h3>\n\n\n\n<p>When an item enters the input zone, the system segments it using a combination of GroundingDINO and SAM. By merging these masks with RGB-D data from an ASUS Xtion PRO Live camera, we generate a point cloud of the top surface to calculate a best-fit plane. The system then computes a grasp pose at the segmentation mask&#8217;s centroid to ensure reliable object manipulation.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"396\" height=\"296\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-9-2.jpg\" alt=\"\" class=\"wp-image-446\" style=\"width:416px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-9-2.jpg 396w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-9-2-300x224.jpg 300w\" sizes=\"auto, (max-width: 396px) 100vw, 396px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Segmented Object Masks<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"240\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-10.png\" alt=\"\" class=\"wp-image-447\" style=\"width:416px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-10.png 320w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-10-300x225.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Depth Image from Xtion Camera<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"489\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-11.png\" alt=\"\" class=\"wp-image-448\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-11.png 512w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-11-300x287.png 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Object Point Clouds<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"493\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-12.png\" alt=\"\" class=\"wp-image-449\" style=\"aspect-ratio:0.9574077407740774;width:384px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-12.png 472w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/unnamed-12-287x300.png 287w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Computed Grasp Pose<\/p>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Optimal Label Location &#8211; Labelling Zone<\/h3>\n\n\n\n<p>To ensure critical information remains visible to the end-user, our system must avoid occluding existing text or labels when applying new RFID tags to item packaging. We address this through a perception pipeline that processes RGB-D data from a top-down ZED Mini camera positioned above the labeling zone. After generating segmentation masks using GroundingDINO and SAM, the system computes a pixel-wise gradient magnitude to identify visual edges on the object&#8217;s surface, which will capture text and existing labels. A Euclidean Distance Transform (EDT) is then applied to a gradient image to determine the distance between each non-edge pixel and its nearest edge neighbor.<\/p>\n\n\n\n<p>By identifying local peaks in the EDT and filtering them via Adaptive Non-Maximal Suppression (ANMS), we derive candidate center locations that are intuitively the furthest from any visual clutter. Finally, we project a 40\u00d7120 pixel RFID label footprint onto these candidates to verify if a valid orientation exists where the label can be placed without overlapping any detected edges. The system then greedily selects the first valid center point for the final placement.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"910\" height=\"1024\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_rgb_zone_1-910x1024.png\" alt=\"\" class=\"wp-image-450\" style=\"aspect-ratio:0.8887067021930724\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_rgb_zone_1-910x1024.png 910w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_rgb_zone_1-267x300.png 267w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_rgb_zone_1-768x864.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_rgb_zone_1.png 960w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Original RGB Image<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"327\" height=\"367\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_grad_masked.jpg\" alt=\"\" class=\"wp-image-452\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_grad_masked.jpg 327w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_grad_masked-267x300.jpg 267w\" sizes=\"auto, (max-width: 327px) 100vw, 327px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Object Gradient Magnitudes<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"327\" height=\"367\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_edt_local_peaks.jpg\" alt=\"\" class=\"wp-image-453\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_edt_local_peaks.jpg 327w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_edt_local_peaks-267x300.jpg 267w\" sizes=\"auto, (max-width: 327px) 100vw, 327px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Local Peaks of EDT<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"328\" height=\"367\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_edt_anms.jpg\" alt=\"\" class=\"wp-image-454\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_edt_anms.jpg 328w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_edt_anms-268x300.jpg 268w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">ANMS-Filtered Candidates <\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"327\" height=\"366\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_final_placement.jpg\" alt=\"\" class=\"wp-image-455\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_final_placement.jpg 327w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/04\/im2_zone_1_final_placement-268x300.jpg 268w\" sizes=\"auto, (max-width: 327px) 100vw, 327px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Final Label Location<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>While utilizing gradient magnitude effectively highlights text and pre-existing labels, it also captures high-contrast color transitions and decorative graphics on the packaging. This sensitivity occasionally results in the algorithm being overly cautious or restrictive when identifying placement zones. We are continuing to iterate on this design to improve the system&#8217;s robustness and better distinguish critical information from purely aesthetic packaging elements.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">State Machine<\/h3>\n\n\n\n<p>The system utilizes the ROS SMACH (State Machine and Actionlib) library to manage the complex,concurrent workflows of the logistics and labeling arms. The architecture is designed as a hierarchical state machine, where a top-level concurrence container synchronizes two distinct sub-state machines:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Logistics Arm (ARM1): Responsible for the \u201dPick and Place\u201d cycle &#8211; retrieving unlabeled items from the input pile and positioning them in the labeling zone.<\/li>\n\n\n\n<li>Labeling Arm (ARM2): Responsible for \u201dLabel Application\u201d &#8211; retrieving an RFID label from the dispenser and applying it to the localized item.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"429\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/smach_diagram.png\" alt=\"\" class=\"wp-image-471\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/smach_diagram.png 850w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/smach_diagram-300x151.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/smach_diagram-768x388.png 768w\" sizes=\"auto, (max-width: 850px) 100vw, 850px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">State Machine Graphic of ORIO System<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error Recovery<\/h3>\n\n\n\n<p>The ORIO system incorporates a multi-tier recovery framework to mitigate failure modes including grasp\/label drops, IK\/motion planning conflicts, and perception errors.<\/p>\n\n\n\n<p><strong>Human-in-the-Loop (HITL) Recovery<\/strong><\/p>\n\n\n\n<p>Most failures trigger a dedicated GUI intervention request, identifying the error type and workflow location. The interface provides operators with direct hardware control, including manual pneumatic toggling and zone occupancy overrides, allowing them to clear physical jams or reposition items before resuming the state machine from the last valid waypoint.<\/p>\n\n\n\n<p><strong>Autonomous Error Recovery<\/strong><\/p>\n\n\n\n<p>For failures at the input zone, the system implements an autonomous retry logic to minimize downtime:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Detection:<\/strong>&nbsp;Real-time vacuum pressure is monitored via the Clearcore controller. A failure to meet the pressure threshold indicates an inadequate seal.<\/li>\n\n\n\n<li><strong>Resolution:<\/strong>&nbsp;If the item remains in the input zone, the system bypasses the GUI request and automatically re-triggers the perception-pick workflow. By recomputing the grasp pose from a fresh image, the system accounts for any positional shifts caused by the failed attempt, significantly increasing the mean time between failures (MTBF).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Tracking Subsystem<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">RFID Registration<\/h3>\n\n\n\n<p>As items are being labelled, the system simultaneously adds the items&#8217; metadata to a database. Before initiating the system, the user manually enters the target item&#8217;s name and expiration date into the system interface. Once the labelling arm picks up a label from the dispenser, a low-power RFID reader on its end-effectory scans the label&#8217;s embedded tag. Once the tag is successfully read and placed on an item, a ROS service is called to communicate with the database manager node. The node then associates the scanned RFID data with the user-inputted item details and commits the complete entry into a local SQLite database.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"194\" height=\"268\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/lp_rfid.jpg\" alt=\"\" class=\"wp-image-481\" style=\"aspect-ratio:0.723904246501877;width:246px;height:auto\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Item Detection &amp; Tracking<\/h3>\n\n\n\n<p>Our tracking subsystem utilizes an Impinj R700 RFID reader paired with three RFID antennas and the Impinj ItemTest software.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"281\" height=\"187\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/35126ba0fc21beca2f9a7e84f70b3447b4d5295b_r700.jpg\" alt=\"\" class=\"wp-image-543\" style=\"width:387px;height:auto\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\">Impinj R700 RFID Reader<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"218\" height=\"231\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/Unknown.jpeg\" alt=\"\" class=\"wp-image-350\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\">Impinj LHCP Far Field RFID Antenna<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Once labelled items are placed on the supply shelves, the inventory tracking subsystem actively<br>monitors their presence. To account for temporary signal occlusions, an item is only<br>marked as removed from inventory if it fails to be detected for a set amount of time. While this timeout<br>threshold was set to 5 seconds during the SVD and SVD Encore for the sake of demonstration speed,<br>it could be set to 30 minutes, an hour, or several hours depending on the hospital\u2019s needs. Finally,<br>the backend tracking data is visualized on a system GUI, which provides staff with a real-time list of<br>stocked items and automatic alerts for any expired inventory.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"516\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/inventory_gui.png\" alt=\"\" class=\"wp-image-482\" style=\"aspect-ratio:1.6143617021276595;width:825px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/inventory_gui.png 833w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/inventory_gui-300x186.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/inventory_gui-768x476.png 768w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"442\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/expired_items.png\" alt=\"\" class=\"wp-image-483\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/expired_items.png 769w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/expired_items-300x172.png 300w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Labelling Subsystem For our labelling subsystem, we utilize two Franka Emika Panda arms equipped with custom suction end-effectors. We have designated specific roles for each: the pick-and-place arm handles the introduction and removal of items from the workstation, while the labelling arm retrieves adhesive RFID tags from a dispenser and applies them to the items.&nbsp;<br \/><a class=\"moretag\" href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/system-implementation\/\">+ Read More<\/a><\/p>\n","protected":false},"author":464,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-265","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/pages\/265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/users\/464"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/comments?post=265"}],"version-history":[{"count":21,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/pages\/265\/revisions"}],"predecessor-version":[{"id":544,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/pages\/265\/revisions\/544"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/media?parent=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}