{"id":301,"date":"2026-04-02T22:19:04","date_gmt":"2026-04-02T22:19:04","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/?page_id=301"},"modified":"2026-05-02T19:24:35","modified_gmt":"2026-05-02T19:24:35","slug":"lsv","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/lsv\/","title":{"rendered":"LSV"},"content":{"rendered":"\n<div class=\"wp-block-buttons alignwide is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#skeleton-detection\">Skeleton Detection<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#anomaly-detection\">Anomaly Detection<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#mapping\">Mapping<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#waypoint-scheduler\">Waypoint Scheduler<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#ui-ux\">User Interface<\/a><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"skeleton-detection\">Skeleton Detection<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">Summary<\/h5>\n\n\n\n<p>Skeleton Detection&nbsp;is a ROS 2 perception module under ICM (Intelligence Control Module) that adds human pose understanding to the anomaly detection pipeline. Built on OpenPifPaf, it processes image streams from either prerecorded MP4 footage or a live Intel RealSense D435i camera, detects human skeleton keypoints, and tracks individuals across frames using IOU-based identity matching. The system publishes structured skeleton metadata for downstream use, generates annotated image output for visualization, and can save both an annotated video and a JSON log for offline review and logging. This makes the module useful both for real-time monitoring and for analyzing recorded scenes during development and testing.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"360\" style=\"aspect-ratio: 762 \/ 360;\" width=\"762\" controls src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/2026-04-12-17-00-59-online-video-cutter.com-3.mp4\"><\/video><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Data flow<\/h5>\n\n\n\n<p>In offline mode, a local MP4 is used as the input source. The frames are routed through the camera reader path and published to the detector input topic, typically \/dummy_camera\/image_raw. The skeleton_detection_node subscribes to that image stream, runs skeleton inference and tracking, then publishes structured skeleton metadata on \/skeleton_detection\/frame and annotated images on \/skeleton_output. When enabled, it also saves an annotated MP4 and JSON metadata log to disk.<\/p>\n\n\n\n<p>In live mode, the Intel RealSense D435i provides the input image stream through the ROS camera topic, typically \/camera\/camera\/color\/image_raw. The skeleton_detection_node subscribes directly to that live topic, processes each incoming frame, publishes skeleton metadata and annotated image output, and can also export the same disk artifacts for later analysis.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Topic<\/th><th class=\"has-text-align-left\" data-align=\"left\">Type<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><\/thead><tbody><tr><td>\/camera\/camera\/color\/image_raw<\/td><td>sensor_msgs\/msg\/Image<\/td><td>Input: Live RGB image stream from the Intel RealSense D435i camera. Used in live detection mode.<\/td><\/tr><tr><td>\/dummy_camera\/image_raw<\/td><td>sensor_msgs\/msg\/Image<\/td><td>Input: Image topic consumed by&nbsp;skeleton_detection_node&nbsp;in the offline\/MP4 workflow. It serves as the detector input topic when frames are routed through the camera reader path.<\/td><\/tr><tr><td>\/skeleton_detection\/frame<\/td><td>skeleton_detection\/msg\/SkeletonFrame<\/td><td>Output: Per-frame skeleton metadata, including detected people, joint data, bounding boxes, tracking IDs, and timestamps.<\/td><\/tr><tr><td>\/skeleton_output<\/td><td>sensor_msgs\/msg\/Image<\/td><td>Output: Annotated image stream with skeleton overlays, bounding boxes, and tracking IDs drawn on each frame.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1298\" height=\"945\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited.jpg\" alt=\"\" class=\"wp-image-419\" style=\"aspect-ratio:1.3736108459041436;width:614px;height:auto\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited.jpg 1298w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited-300x218.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited-1024x746.jpg 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited-768x559.jpg 768w\" sizes=\"auto, (max-width: 1298px) 100vw, 1298px\" \/><figcaption class=\"wp-element-caption\">Figure: Skeleton Detection Output in Offiline Mode with Joints and Confidence Score Visualized<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"481\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Live-Mode-Output-1-1024x481.png\" alt=\"\" class=\"wp-image-424\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Live-Mode-Output-1-1024x481.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Live-Mode-Output-1-300x141.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Live-Mode-Output-1-768x361.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Live-Mode-Output-1-1536x721.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Live-Mode-Output-1.png 1693w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Figure: Skeleton Detection Output in Live Mode with Joints, Confidence Score, and FrameID Visualized<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"anomaly-detection\">Anomaly Detection<\/h2>\n\n\n\n<p>The Anomaly Action Detection Module is a two-stage safety sub-system integrated into the autonomous driving platform via ROS 2 (Humble). The pipeline begins with a Graph-Jigsaw Conditioned Diffusion (GJCD) model that processes 17-keypoint COCO skeleton sequences in sliding windows of 24 frames. This first stage operates downstream of existing skeleton detection nodes, calculating a normalized reconstruction error to identify potential anomalies. To optimize computational efficiency, the system only triggers the second stage, a pre-trained LLM BART-large-mnli, when the initial anomaly score exceeds a configurable threshold, ensuring high-performance processing without unnecessary overhead.<\/p>\n\n\n\n<p>For final classification, the module translates complex motion dynamics, such as joint velocity and spatial displacement, into natural language descriptions for the LLM. The LLaMA 3 model then categorizes the behavior into specific labels such as fighting, loitering, or chasing, providing both an anomaly score and a human-readable explanation.The final fused output is delivered through a structured ROS 2 JSON topic, supporting seamless modular integration and real-time operator alerts.<\/p>\n\n\n\n<p><strong>Key Features:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Topic<\/th><th>Type<\/th><th>Description<\/th><\/tr><tr><td>\/skeleton_detection\/frame<\/td><td>skeleton_detection\/msg\/SkeletonFrame<\/td><td>Input: The skeleton detection result.<\/td><\/tr><tr><td>\/anomaly_detections<\/td><td>std_msgs\/msg\/String<\/td><td>Output: Anomaly action detected with time frame and person id.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mapping\">Mapping<\/h2>\n\n\n\n<p>Migrate the mapping technique from the F1TENTH stack to the LSV simulation environment to support future patrol robot autonomy development. This task focuses on mapping and map processing so that the LSV robot performance can be validated.<\/p>\n\n\n\n<p><strong>Key Features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Obtain recorded rosbag file with mapping and localization topics.<\/li>\n\n\n\n<li>Operate LIO-SAM_ROS2-PIXKIT mapping offline and parameter tuning.<\/li>\n\n\n\n<li>Use point cloud editing tool (CloudCompare) to remove dynamic objects and outliers.<\/li>\n\n\n\n<li>Down-sample static map by voxelization.<\/li>\n\n\n\n<li>Use built map to generate corresponding Lanelet map.<\/li>\n<\/ul>\n\n\n\n<p><strong>Acceptance Criteria:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rosbags contain sufficient topics for mapping and localization.<\/li>\n\n\n\n<li>LIO-SAM mapping correctly constructs environments with no structural misalignment.<\/li>\n\n\n\n<li>Erase all dynamic points and outliers within the dense map.<\/li>\n\n\n\n<li>The dense map is down-sampled correctly as a sparse map.<\/li>\n\n\n\n<li>The coordinates of the point cloud map and Lanelet map are aligned.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th class=\"has-text-align-left\" data-align=\"left\">Topic<\/th><th class=\"has-text-align-left\" data-align=\"left\">Type<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>\/sensing\/lidar\/top\/velodyne_points<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">sensor_msgs::msg::PointCloud2<\/td><td class=\"has-text-align-left\" data-align=\"left\">Input: LiDAR frames for map construction.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>\/sensing\/imu\/imu_data<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">sensor_msgs::msg::Imu<\/td><td class=\"has-text-align-left\" data-align=\"left\">Input: IMU frames for motion distortion and IMU Preintegration.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>\/sensing\/gnss\/fixposition\/nav_sat_fix<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">sensor_msgs::msg::NavSatFix<\/td><td class=\"has-text-align-left\" data-align=\"left\">Input: GNSS signals for world coordinate alignment.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"472\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-140855_Compress-1.png\" alt=\"\" class=\"wp-image-388\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-140855_Compress-1.png 1000w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-140855_Compress-1-300x142.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-140855_Compress-1-768x362.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">Map generation in the Sunnyvale parking lot. Green line: GNSS pose. Blue line: LiDAR pose. Yellow line: Loop closure constraints.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-144522-1024x474.png\" alt=\"\" class=\"wp-image-389\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-144522-1024x474.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-144522-300x139.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-144522-768x355.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-144522-1536x711.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-144522.png 1632w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Static map generation result. (Blue) Static map. (Red) Dynamic points filtering.<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 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-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145724-1024x474.png\" alt=\"\" class=\"wp-image-390\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145724-1024x474.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145724-300x139.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145724-768x356.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145724-1536x711.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145724.png 1633w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Before the map down-sampling.<\/figcaption><\/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=\"1024\" height=\"472\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145737-1024x472.png\" alt=\"\" class=\"wp-image-391\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145737-1024x472.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145737-300x138.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145737-768x354.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145737-1536x707.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-03-26-145737.png 1633w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">After the map down-sampling.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"waypoint-scheduler\">Waypoint Scheduler<\/h2>\n\n\n\n<p>Design a waypoint scheduler and integrate it into the LSV simulation environment to support future patrol robot autonomy development. This task focuses on the scheduler so that the LSV robot performance can be validated.<\/p>\n\n\n\n<p><strong>Key Features<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Design waypoint scheduler.<\/li>\n\n\n\n<li>Assign vehicle heading to the pure position waypoint.<\/li>\n<\/ul>\n\n\n\n<p><strong>Acceptance Criteria:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dataflow of waypoint scheduler is correct and work as expected.<\/li>\n\n\n\n<li>The heading is automatically assigned to the waypoint with the correct direction.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th class=\"has-text-align-left\" data-align=\"left\">Topic<\/th><th class=\"has-text-align-left\" data-align=\"left\">Type<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>\/planning\/mission_planning\/no_heading_goal<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">geometry_msgs::msg::PoseStamped<\/td><td class=\"has-text-align-left\" data-align=\"left\">Input: Goal point sent from UI with no heading.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>\/map\/vector_map<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">autoware_map_msgs::msg::LaneletMapBin<\/td><td class=\"has-text-align-left\" data-align=\"left\">Input: Lanelet map layers with directions.<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>\/planning\/mission_planning\/goal<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">geometry_msgs::msg::PoseStamped<\/td><td class=\"has-text-align-left\" data-align=\"left\">Output: Goal point with heading aligned to closest lanelet map lane.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"804\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/image-2-1024x804.png\" alt=\"\" class=\"wp-image-396\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/image-2-1024x804.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/image-2-300x236.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/image-2-768x603.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/image-2-1536x1207.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/image-2.png 1795w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">ACM planning simulation visualization.<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 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=\"182\" height=\"152\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-04-01-142512.png\" alt=\"\" class=\"wp-image-397\" \/><figcaption class=\"wp-element-caption\">Input:<br>(x,y,yaw) = (-62.8,37.5,0.0)<br>Output:<br>(x,y,yaw) = (-62.8,37.5,1.28)<br><\/figcaption><\/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 is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"188\" height=\"161\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-04-01-142806.png\" alt=\"\" class=\"wp-image-398\" style=\"aspect-ratio:1.1677181403474717;width:177px;height:auto\" \/><figcaption class=\"wp-element-caption\">Input:<br>(x,y,yaw) = (-49.2,41.5,0.0)<br>Output:<br>(x,y,yaw) = (-49.2,41.5,3.10)<br><\/figcaption><\/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 is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"172\" height=\"129\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/Screenshot-2026-04-01-142845.png\" alt=\"\" class=\"wp-image-399\" style=\"aspect-ratio:1.333373712901272;width:201px;height:auto\" \/><figcaption class=\"wp-element-caption\">Input:<br>(x,y,yaw) = (-24.7,86.8,0.0)<br>Output:<br>(x,y,yaw) = (-24.7,86.8,-0.29)<br><\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ui-ux\">User Interface<\/h2>\n\n\n\n<p>Our user interface is designed to provide intuitive control over waypoints, allowing users to easily add points through clicking, adjust their positions via drag-and-drop, and remove existing waypoints as needed. In addition, the interface visualizes the planned route in real time, along with the robot\u2019s current status and the underlying lanelet map. This integration enables the planner to leverage richer semantic and geometric information for more informed decision-making. Furthermore, based on the lanelet map, the system can compute additional route-related metrics, such as total distance and estimated time of arrival (ETA), offering users a more comprehensive and practical navigation experience.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-05-02-152230-1024x640.png\" alt=\"\" class=\"wp-image-492\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-05-02-152230-1024x640.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-05-02-152230-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-05-02-152230-768x480.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-05-02-152230-1536x960.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-05-02-152230-2048x1280.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Skeleton Detection Summary Skeleton Detection&nbsp;is a ROS 2 perception module under ICM (Intelligence Control Module) that adds human pose understanding to the anomaly detection pipeline. Built on OpenPifPaf, it processes image streams from either prerecorded MP4 footage or a live Intel RealSense D435i camera, detects human skeleton keypoints, and tracks individuals across frames using IOU-based [&hellip;]<\/p>\n","protected":false},"author":452,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"[]"},"class_list":["post-301","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/pages\/301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/users\/452"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/comments?post=301"}],"version-history":[{"count":23,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/pages\/301\/revisions"}],"predecessor-version":[{"id":493,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/pages\/301\/revisions\/493"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/media?parent=301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}