{"id":262,"date":"2026-02-20T19:14:01","date_gmt":"2026-02-20T19:14:01","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/?page_id=262"},"modified":"2026-05-03T03:05:22","modified_gmt":"2026-05-03T03:05:22","slug":"system-design","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/system-design\/","title":{"rendered":"System Design"},"content":{"rendered":"<div id=\"pl-gb262-6af923dda80e6\"  class=\"panel-layout\" ><div id=\"pg-gb262-6af923dda80e6-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-gb262-6af923dda80e6-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-gb262-6af923dda80e6-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"textwidget custom-html-widget\"><h1 id=\"requirements\">Requirements<\/h1>\n<h3 id=\"mandatory-functional\">Mandatory Functional Requirements<\/h3>\n\n<table class=\"requirements-table\">\n  <caption>Functional Requirements for Automated RFID Labelling System<\/caption>\n  <thead>\n    <tr>\n      <th scope=\"col\">ID<\/th>\n      <th scope=\"col\">Requirement<\/th>\n      <th scope=\"col\">Description<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <th scope=\"row\">M.F.1<\/th>\n      <td>Correlate RFID with item details<\/td>\n      <td>The system shall correlate an RFID tag with the corresponding item details stored in the database.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.2<\/th>\n      <td>Detect items in a pile<\/td>\n      <td>The system shall detect items placed in a pile to be grasped for labelling.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.3<\/th>\n      <td>Grasp items from a pile<\/td>\n      <td>The system shall grasp items from a cluttered or piled configuration.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.4<\/th>\n      <td>Detect presence of items<\/td>\n      <td>The system shall verify whether an item is present or absent in the OR inventory room.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.5<\/th>\n      <td>Move grasped item into\/out of labelling zones<\/td>\n      <td>The system shall transport an item between the pickup area and the labelling zone.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.6<\/th>\n      <td>Track item counts and expiry<\/td>\n      <td>The system shall maintain records of item quantities and expiration dates in the OR inventory room.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.7<\/th>\n      <td>Localize items in supply room<\/td>\n      <td>The system shall localize items within the OR inventory room.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.8<\/th>\n      <td>Identify optimal label location<\/td>\n      <td>The system shall identify an optimal area on the item surface for label placement.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.9<\/th>\n      <td>Update database<\/td>\n      <td>The system shall continuously update the database to monitor the item in the OR inventory room.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.10<\/th>\n      <td>Label items with RFID<\/td>\n      <td>The system shall attach RFID-enabled labels to items in the optimal location.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.11<\/th>\n      <td>Communicate with staff<\/td>\n      <td>The system shall communicate status, issues, and task completion to hospital staff and operations\/supply managers.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.12<\/th>\n      <td>Obtain item details from user input<\/td>\n      <td>The system shall obtain item details from user input.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.F.13<\/th>\n      <td>Perform basic error recovery actions<\/td>\n      <td>The system shall re-plan for failed grasp attempts.<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table><\/div><\/div><\/div><\/div><\/div>\n\n<div id=\"pl-gb262-6af923dda84b6\"  class=\"panel-layout\" ><div id=\"pg-gb262-6af923dda84b6-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-gb262-6af923dda84b6-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-gb262-6af923dda84b6-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"textwidget custom-html-widget\"><h3 id=\"Desirable-functional\">Desirable Functional Requirements<\/h3>\n\n<table class=\"requirements-table\">\n  <caption>Table 2: Desirable Functional Requirements<\/caption>\n  <thead>\n    <tr>\n      <th scope=\"col\">ID<\/th>\n      <th scope=\"col\">Requirement<\/th>\n      <th scope=\"col\">Description<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <th scope=\"row\">D.F.1<\/th>\n      <td>Obtain item details from perception pipeline<\/td>\n      <td>The system shall obtain item details by reorienting the item and reading the details.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">D.F.2<\/th>\n      <td>Perform advanced error recovery actions<\/td>\n      <td>The system shall find and pick up dropped objects.<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table><\/div><\/div><\/div><\/div><\/div>\n\n<div id=\"pl-gb262-6af923dda86da\"  class=\"panel-layout\" ><div id=\"pg-gb262-6af923dda86da-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-gb262-6af923dda86da-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-gb262-6af923dda86da-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"textwidget custom-html-widget\"><h3 id=\"mandatory-non-functional\">Mandatory Non-Functional Requirements<\/h3>\n\n<table class=\"requirements-table\">\n  <caption>Table 3: Mandatory Non-Functional Requirements<\/caption>\n  <thead>\n    <tr>\n      <th scope=\"col\">ID<\/th>\n      <th scope=\"col\">Requirement<\/th>\n      <th scope=\"col\">Description<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <th scope=\"row\">M.N.1<\/th>\n      <td>Create minimal obstruction<\/td>\n      <td>The system shall occupy minimal physical space and avoid obstructing supply room movement.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.N.2<\/th>\n      <td>Be compliant with hospital regulations<\/td>\n      <td>The system shall meet all relevant hospital, OSHA and safety guidelines.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.N.3<\/th>\n      <td>Be intuitive to use<\/td>\n      <td>The system shall require minimal training and be easy for staff to operate.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.N.4<\/th>\n      <td>Be affordable<\/td>\n      <td>The system shall remain cost-effective to support deployment in hospitals.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.N.5<\/th>\n      <td>Be generalizable<\/td>\n      <td>The system shall support a variety of item types and categories.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.N.6<\/th>\n      <td>Take up minimal loading dock space<\/td>\n      <td>The system shall require minimal space in the hospital loading dock.<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table><\/div><\/div><\/div><\/div><\/div>\n\n<div id=\"pl-gb262-6af923dda88b6\"  class=\"panel-layout\" ><div id=\"pg-gb262-6af923dda88b6-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-gb262-6af923dda88b6-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-gb262-6af923dda88b6-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"textwidget custom-html-widget\"><h3 id=\"desirable-non-functional\">Desirable Non-Functional Requirements<\/h3>\n\n<table class=\"requirements-table\">\n  <caption>Table 4: Desirable Non-Functional Requirements<\/caption>\n  <thead>\n    <tr>\n      <th scope=\"col\">ID<\/th>\n      <th scope=\"col\">Requirement<\/th>\n      <th scope=\"col\">Description<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <th scope=\"row\">D.N.1<\/th>\n      <td>Be easy to maintain<\/td>\n      <td>Should allow fast servicing and modular component replacement.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">D.N.2<\/th>\n      <td>Be modular<\/td>\n      <td>Design modular subsystems to support future sensor or gripper upgrades.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">D.N.3<\/th>\n      <td>Be reliable<\/td>\n      <td>Should have a high mean time between failures (requiring human intervention).<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h3 id=\"mandatory-performance\">Mandatory Performance Requirements<\/h3>\n\n<table class=\"requirements-table\">\n  <caption>Table 5: Mandatory Performance Requirements<\/caption>\n  <thead>\n    <tr>\n      <th scope=\"col\">ID<\/th>\n      <th scope=\"col\">Requirement<\/th>\n      <th scope=\"col\">Description<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <th scope=\"row\">M.P.1<\/th>\n      <td>Grasp rigid &amp; opaque items (80%)<\/td>\n      <td>Successfully grasp rigid, opaque items in 80% of attempts.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.P.2<\/th>\n      <td>Label items successfully (80%)<\/td>\n      <td>System shall affix a label that adheres firmly without occluding critical text.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.P.3<\/th>\n      <td>Label processing time (3 min)<\/td>\n      <td>Complete labelling workflow for one item within 3 minutes on average.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.P.4<\/th>\n      <td>Optimal label location (30 s)<\/td>\n      <td>Determine optimal label placement within 30 seconds.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.P.5<\/th>\n      <td>Detect presence of non-liquid\/non-metal items (80%)<\/td>\n      <td>Detect non-liquid and non-metal items with 80% accuracy in the OR supply room.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">M.P.6<\/th>\n      <td>Localize items to within 1 m&sup3;<\/td>\n      <td>The system shall localize items within a spatial uncertainty of 1 m&sup3; in the OR supply room.<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h3 id=\"desirable-performance\">Desirable Performance Requirements<\/h3>\n\n<table class=\"requirements-table\">\n  <caption>Table 6: Desirable Performance Requirements<\/caption>\n  <thead>\n    <tr>\n      <th scope=\"col\">ID<\/th>\n      <th scope=\"col\">Requirement<\/th>\n      <th scope=\"col\">Description<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <th scope=\"row\">D.P.1<\/th>\n      <td>Grasp non-rigid &amp; opaque items (65%)<\/td>\n      <td>Successfully grasp deformable opaque items in 65% of attempts.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">D.P.2<\/th>\n      <td>Detect presence of liquids\/metals (65%)<\/td>\n      <td>Detect liquid or metallic items using RFID localization with 65% accuracy.<\/td>\n    <\/tr>\n    <tr>\n      <th scope=\"row\">D.P.3<\/th>\n      <td>Grasp transparent items (40%)<\/td>\n      <td>Successfully grasp transparent items in 40% of attempts.<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table><\/div><\/div><\/div><\/div><\/div>\n\n\n<h1 class=\"wp-block-heading\" id=\"functional-arch\">Functional Architecture<\/h1>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"597\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-functional-1024x597.png\" alt=\"\" class=\"wp-image-556\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-functional-1024x597.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-functional-300x175.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-functional-768x448.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-functional.png 1182w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h1 class=\"wp-block-heading\" id=\"cyber-arch\">Cyberphysical Architecture<\/h1>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"704\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-cyberphysical-1024x704.png\" alt=\"\" class=\"wp-image-557\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-cyberphysical-1024x704.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-cyberphysical-300x206.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-cyberphysical-768x528.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/05\/final-cdr-cyberphysical.png 1410w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h1 class=\"wp-block-heading\" id=\"system-desc\">Full System Design Description<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-content\/uploads\/sites\/98\/2026\/02\/imgonline-com-ua-CompressToSize-5zbRAnfBrlQ-scaled.jpg\" alt=\"\" class=\"wp-image-246\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Labelling subsystem<\/h2>\n\n\n\n<p>\nThe labelling subsystem is responsible for detecting incoming medical items, identifying their attributes and applying RFID labels using robotic manipulation. This subsystem ensures that every item entering the supply chain is uniquely identifiable and trackable.\n\nThis system enables fully automated operation while maintaining high accuracy and generalizability across diverse item shapes and materials. Manual labelling introduces human error and increases labor costs, while conveyor systems lack flexibility for irregular, deformable or randomly oriented items.\n\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Perception Module<\/h3>\n\n\n\n<p>\n\nDetects and isolates individual items from clutter. It takes multi-camera RGB-D images and uses them for item segmentation, grasp pose estimation and finding optimal label location. Multi-camera setups allow us to deal with occlusions easily, making the algorithm far more robust and improving grasp success rates.\n\nWe selected RGB-D cameras instead of RGB-only cameras because depth information significantly improves segmentation accuracy and grasp planning reliability.\n\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Manipulation Module<\/h3>\n\n\n\n<p>\n\nComputes safe trajectories and grasp configurations and executes pick-and-place and labelling motions. We select algorithms for the Franka arm such that the accuracy and repeatability of the arm is high, ensuring consistent and reliable label placement.\n\nWe selected the Franka robotic arm due to its high precision, repeatability and safe human-robot interaction capabilities. A single-arm system reduces throughput and limits dexterity, while gantry systems lack the flexibility needed to handle diverse object geometries and orientations.\n\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tracking subsystem<\/h2>\n\n\n\n<p>\n\nThe tracking subsystem monitors labelled inventory in the OR supply room using fixed RFID infrastructure and maintains real-time inventory awareness.\n\nWe selected fixed RFID tracking because it enables continuous, automatic detection without requiring human intervention or line-of-sight. Compared to computer vision tracking, RFID is more reliable in cluttered environments and does not require direct visibility. Mobile RFID readers were also considered but discarded due to decreased performance under occlusion, latency and obstruction risks in hospital environments.\n\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RFID Localization Module<\/h3>\n\n\n\n<p>\n\nDetects presence of tagged items and computes item spatial position. It uses the signal strength and phase angle from multiple antennas to estimate item location. This allows the system to determine which shelf or region an item occupies.\n\nWe selected passive RFID tags because they are far more cost-effective per unit while also being reasonably accurate for localization. Alternative tracking methods such as barcodes were rejected because they require line-of-sight scanning and manual intervention.\n\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Inventory Management Module<\/h3>\n\n\n\n<p>\n\nUpdates inventory counts, location, and notifies staff of shortages or expiry. The RFID information obtained from the localization module is processed and stored in a central database, which provides real-time inventory tracking. This information is presented through a customer-friendly UI, allowing hospital staff to monitor inventory status and receive alerts.\n\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware<\/h2>\n\n\n\n<p>\n\nWe use a bimanual Franka setup with multiple RGB-D cameras, custom grippers, and pneumatic systems. The dual-arm setup allows one arm to manipulate objects while the other applies labels, improving efficiency and flexibility. The custom grippers and pneumatic systems were designed to handle deformable, translucent and irregular medical items without damaging them.\n\nWe also use passive RFID labels, including specialized tags for metal and liquid items, and a label dispenser for fast and reliable labelling. Fixed RFID readers and antennas are installed in the supply room to enable continuous tracking.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Functional Architecture Cyberphysical Architecture Full System Design Description Labelling subsystem The labelling subsystem is responsible for detecting incoming medical items, identifying their attributes and applying RFID labels using robotic manipulation. This subsystem ensures that every item entering the supply chain is uniquely identifiable and trackable. This system enables fully automated operation while maintaining high accuracy<br \/><a class=\"moretag\" href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/system-design\/\">+ 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-262","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/pages\/262","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=262"}],"version-history":[{"count":20,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/pages\/262\/revisions"}],"predecessor-version":[{"id":561,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/pages\/262\/revisions\/561"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamg\/wp-json\/wp\/v2\/media?parent=262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}