{"id":156,"date":"2026-04-03T20:32:17","date_gmt":"2026-04-04T01:32:17","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/?page_id=156"},"modified":"2026-04-24T14:05:04","modified_gmt":"2026-04-24T19:05:04","slug":"perception-system","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/perception-system\/","title":{"rendered":"Perception Sub-system"},"content":{"rendered":"\n<p><strong>Vision-based Elevator Floor Detection:<\/strong><\/p>\n\n\n\n<p>The pipeline detects and reads the elevator floor indicator from camera images in a frame-by-frame manner. First, the input image is spatially cropped to reduce background noise, typically keeping the top half and central region where the panel is likely to appear. A vision-language model (VLM) is then used to localize the floor indicator based on a semantic query, producing a bounding box for the display.<\/p>\n\n\n\n<p>To improve stability, detections across consecutive frames are temporally smoothed using simple overlap-based matching and averaging. The resulting bounding box is then expanded slightly and passed to a dedicated readout stage.<\/p>\n\n\n\n<p>In the readout stage, the cropped region is processed using an HSV-based mask to extract illuminated pixels from the display. A percentile-based binarization is applied to enhance contrast, followed by a tighter crop around the foreground. The processed image is then fed into an OCR model with a restricted character set to obtain the final floor symbol. The output is formatted as structured data together with the detection result for downstream use.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1771\" height=\"887\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/detection_pipeline.png\" alt=\"\" class=\"wp-image-132\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/detection_pipeline.png 1771w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/detection_pipeline-300x150.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/detection_pipeline-768x385.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/detection_pipeline-1536x769.png 1536w\" sizes=\"auto, (max-width: 1771px) 100vw, 1771px\" \/><\/figure>\n\n\n\n<p><strong>Fig:<\/strong> <strong>The Pipeline of Elevator Floor Detection.<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>IMU-based Elevator Floor Detection:<\/strong><\/p>\n\n\n\n<p>The imu based elevator floor detection uses the z-direction acceleration from imu to detect spikes, and then split the floor transition based on the time interval between a pair of spikes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1299\" height=\"999\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-12.png\" alt=\"\" class=\"wp-image-221\" title=\"Figure_1.png\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-12.png 1299w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-12-300x231.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-12-768x591.png 768w\" sizes=\"auto, (max-width: 1299px) 100vw, 1299px\" \/><\/figure>\n\n\n\n<p><strong>Fig: A demonstration of spike detection and time duration distribution.<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Button Detection:<\/strong><\/p>\n\n\n\n<p>The button pose detection pipeline uses a VLM-based vision module to detect elevator button panels from the live camera stream and produce a 6-DoF<br>target pose (position and orientation). The detected pose is transformed through the robot&#8217;s frame chain (camera \u2192 base \u2192 arm) so the arm controller can servo toward the button. Stability guards reject single-frame false positives and hold the last valid pose briefly to prevent oscillation, making the<br>detection repeatable enough for downstream arm control to execute button presses reliably.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" data-id=\"142\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image.png\" alt=\"\" class=\"wp-image-142\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image.png 640w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-300x225.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" data-id=\"212\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image.jpeg\" alt=\"\" class=\"wp-image-212\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image.jpeg 640w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/image-300x225.jpeg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n<\/figure>\n\n\n\n<p><strong>Fig: Button Detection Results in Elevator with Language Prompt (for both in and out elevator). <\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Door State Detection:<\/strong><\/p>\n\n\n\n<p>A ROS 2 action server was developed to detect elevator door states by monitoring real-time point cloud density changes within a tracked region. The system leverages a vision-language model to localize and track the elevator door, then calibrates baseline point count and depth over an initial observation window. During operation, incoming point clouds are depth-filtered around the calibrated region to remove noise, and a smoothed percentage metric\u2014based on deviations from the baseline\u2014is used to infer door state. A configurable threshold determines whether the door is open or closed, while robustness is ensured through startup grace periods, data timeout handling, thread-safe processing, and enforcement of single active monitoring sessions.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1921\" height=\"913\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/045b8304e01b1122f948441098938531.png\" alt=\"\" class=\"wp-image-185\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/045b8304e01b1122f948441098938531.png 1921w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/045b8304e01b1122f948441098938531-300x143.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/045b8304e01b1122f948441098938531-768x365.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/045b8304e01b1122f948441098938531-1536x730.png 1536w\" sizes=\"auto, (max-width: 1921px) 100vw, 1921px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1921\" height=\"953\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/80381a1e8294a23fb43992f6fe73f936.png\" alt=\"\" class=\"wp-image-186\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/80381a1e8294a23fb43992f6fe73f936.png 1921w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/80381a1e8294a23fb43992f6fe73f936-300x149.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/80381a1e8294a23fb43992f6fe73f936-768x381.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-content\/uploads\/sites\/92\/2026\/04\/80381a1e8294a23fb43992f6fe73f936-1536x762.png 1536w\" sizes=\"auto, (max-width: 1921px) 100vw, 1921px\" \/><\/figure>\n\n\n\n<p><strong>Fig: A Visualization of Door State Detection.<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vision-based Elevator Floor Detection: The pipeline detects and reads the elevator floor indicator from camera images in a frame-by-frame manner. First, the input image is spatially cropped to reduce background noise, typically keeping the top half and central region where the panel is likely to appear. A vision-language model (VLM) is then used to localize [&hellip;]<\/p>\n","protected":false},"author":434,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-156","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages\/156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/users\/434"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/comments?post=156"}],"version-history":[{"count":7,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages\/156\/revisions"}],"predecessor-version":[{"id":222,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/pages\/156\/revisions\/222"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teama\/wp-json\/wp\/v2\/media?parent=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}