{"id":430,"date":"2026-04-12T21:47:09","date_gmt":"2026-04-12T21:47:09","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/component-testing-experiment-results\/"},"modified":"2026-05-04T01:28:22","modified_gmt":"2026-05-04T01:28:22","slug":"component-testing-experiment-results","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/component-testing-experiment-results\/","title":{"rendered":"Component Testing &amp; Experiment Results"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\"><strong>Pure Pursuit Controller (Local Planning)<\/strong><\/h4>\n\n\n\n<p>We implemented a pure-pursuit local planning module for F1TENTH autonomy stack, which takes the planned path and current vehicle state as input, computes a steering command, and publishes it to the vehicle control module. This enables closed-loop path tracking for local navigation.<\/p>\n\n\n\n<p><strong>Test 1: Standalone Visualization<\/strong><\/p>\n\n\n\n<p><strong>Acceptance Criteria:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A dummy grid map and dummy planned path are visualized<\/li>\n\n\n\n<li>A dummy vehicle successfully tracks the path using the pure-pursuit controller<\/li>\n\n\n\n<li>Vehicle motion qualitatively follows the path with stable steering behavior<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"708\" height=\"766\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Pure_pursuit-Standalone-Visualization.gif\" alt=\"\" class=\"wp-image-544\" style=\"aspect-ratio:0.9243006643411025;width:350px;height:auto\" \/><\/figure>\n\n\n\n<p><strong>Test 2: ROS 2 Node Integration<\/strong><\/p>\n\n\n\n<p><strong>Acceptance Criteria<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Node successfully subscribes to:\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Dummy path publication topic<\/li>\n\n\n\n<li>Dummy current vehicle state publication topic<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Node publishes steering commands to a steering topic<\/li>\n\n\n\n<li>Steering output updates correctly in response to changing path or state inputs<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.youtube.com\/watch?v=aePewyiDYb8\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-02-191808-1024x575.png\" alt=\"\" class=\"wp-image-542\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-02-191808-1024x575.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-02-191808-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-02-191808-768x431.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-02-191808-1536x863.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-02-191808.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">F1TENTH Pure pursuit in Rviz2 Simulator<\/figcaption><\/figure>\n\n\n\n<p>Here&#8217;s the video: <a href=\"https:\/\/www.youtube.com\/watch?v=aePewyiDYb8\">https:\/\/www.youtube.com\/watch?v=aePewyiDYb8<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Waypoint Operation<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p>We implemented a set of mutually exclusive buttons to represent different interaction modes: <strong>Off<\/strong>, <strong>Modify<\/strong>, and <strong>Delete<\/strong>. In <strong>Off<\/strong> mode, waypoint interaction is disabled, preventing any modifications on the map. In <strong>Modify<\/strong> mode, users can add a new waypoint by clicking on empty space or reposition an existing waypoint via drag-and-drop. In <strong>Delete<\/strong> mode, users can remove a waypoint by clicking directly on it.<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-from-2026-02-12-01-26-52-1024x576.png\" alt=\"\" class=\"wp-image-510\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-from-2026-02-12-01-26-52-1024x576.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-from-2026-02-12-01-26-52-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-from-2026-02-12-01-26-52-768x432.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-from-2026-02-12-01-26-52-1536x864.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-from-2026-02-12-01-26-52.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The <a href=\"https:\/\/youtu.be\/7G8Y0vxf-O8\"><strong>video<\/strong><\/a> here shows the operation results.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Route Generation<\/strong><\/h3>\n\n\n\n<p>This function focuses on developing a backend route planning module that generates and visualizes a global route based on user-defined waypoints. Unlike the Autoware planner, which only computes a trajectory toward the current goal point, this module aims to provide a <strong>full route preview<\/strong> by connecting all user-selected waypoints using the lanelet map.<\/p>\n\n\n\n<p>The backend will:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Receive waypoints from the frontend<\/li>\n\n\n\n<li>Compute a continuous route along the lanelet graph<\/li>\n\n\n\n<li>Return the route for visualization in the UI<\/li>\n\n\n\n<li>Provide additional route-level information such as distance and estimated time of arrival (ETA)<\/li>\n<\/ul>\n\n\n\n<p>This module is designed as a <strong>lightweight planner for visualization purposes only<\/strong>, without handling dynamic obstacle avoidance or execution-level control.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"707\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-04-30-234309-1024x707.png\" alt=\"\" class=\"wp-image-511\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-04-30-234309-1024x707.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-04-30-234309-300x207.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-04-30-234309-768x531.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-04-30-234309-1536x1061.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u87a2\u5e55\u64f7\u53d6\u756b\u9762-2026-04-30-234309.png 2018w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The <a href=\"https:\/\/youtu.be\/PGZTPyt22Hc\">video<\/a> here should routes that generate with different waypoints.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Skeleton Detection<\/strong><\/h3>\n\n\n\n<p>This subsystem adds real-time skeleton-based perception to the PatrolKnight anomaly detection pipeline. It uses OpenPifPaf to detect human skeletons from either offline MP4 videos or a live Intel RealSense D435i camera stream, then applies IOU-based tracking to maintain consistent person IDs across frames. The system publishes structured skeleton metadata and annotated image outputs for downstream anomaly detection, while also supporting MP4 and JSON artifact export for testing, debugging, and performance evaluation.<\/p>\n\n\n\n<p><strong>Test 1: Pre-Trained Model Pipeline Execution<\/strong><\/p>\n\n\n\n<p><strong>Acceptance Criteria:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The command-line output reports valid inference timing information<\/li>\n\n\n\n<li>The pre-trained model runs successfully with zero runtime errors.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1011\" height=\"357\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Skeleton-Detection-Command-Line-Output.png\" alt=\"\" class=\"wp-image-524\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Skeleton-Detection-Command-Line-Output.png 1011w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Skeleton-Detection-Command-Line-Output-300x106.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Skeleton-Detection-Command-Line-Output-768x271.png 768w\" sizes=\"auto, (max-width: 1011px) 100vw, 1011px\" \/><figcaption class=\"wp-element-caption\">Skeleton detection command line output<\/figcaption><\/figure>\n\n\n\n<p><strong>Test 2: Single Local Image Skeleton Detection<\/strong><\/p>\n\n\n\n<p><strong>Acceptance Criteria:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Successfully detect &gt; 95% of non-occluded human skeletons (joints &amp; connections).<\/li>\n<\/ul>\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=\"576\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/test_image_3.jpg.predictions-1-1024x576.jpeg\" alt=\"\" class=\"wp-image-526\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/test_image_3.jpg.predictions-1-1024x576.jpeg 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/test_image_3.jpg.predictions-1-300x169.jpeg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/test_image_3.jpg.predictions-1-768x432.jpeg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/test_image_3.jpg.predictions-1.jpeg 1224w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/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 is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"746\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited-1024x746.jpg\" alt=\"\" class=\"wp-image-419\" style=\"aspect-ratio:1.3727129445624615;width:277px;height:auto\" srcset=\"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-300x218.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited-768x559.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/04\/test_image_1_prediction_patched-1-edited.jpg 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\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\" style=\"flex-basis:100%\">\n<p class=\"has-text-align-center\">Single-frame detection results<\/p>\n<\/div>\n<\/div>\n\n\n\n<p><strong>Test 3: Local Video Skeleton Detection<\/strong><\/p>\n\n\n\n<p><strong>Acceptance Criteria:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The system successfully processes multiple video frames from a local MP4 input without crashing.<\/li>\n\n\n\n<li>The output shows consistent skeleton detection across frames, including human joints, skeleton connections, and tracked human subjects.<\/li>\n\n\n\n<li>Re-identify and maintain tracking of a human target even when occluded &lt; 50 frames.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/youtu.be\/6L96AsK97vc\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"553\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212006-1024x553.png\" alt=\"\" class=\"wp-image-569\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212006-1024x553.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212006-300x162.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212006-768x415.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212006-1536x830.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212006.png 1581w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Here&#8217;s the result <a href=\"https:\/\/youtu.be\/6L96AsK97vc\">video<\/a>.<\/p>\n\n\n\n<p><strong>Test 4: Live RealSense Camera Skeleton Detection<\/strong><\/p>\n\n\n\n<p><strong>Acceptance Criteria:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The skeleton detection node successfully receives and processes live image frames from the RealSense D435i camera.<\/li>\n\n\n\n<li>The system publishes live skeleton detection outputs with visible joints, skeleton connections, and structured metadata for downstream anomaly detection.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/youtu.be\/2XHJvDvGfgI\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212142-1024x575.png\" alt=\"\" class=\"wp-image-571\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212142-1024x575.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212142-300x168.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212142-768x431.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212142-1536x862.png 1536w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/\u5c4f\u5e55\u622a\u56fe-2026-05-03-212142.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Here&#8217;s the result <a href=\"https:\/\/youtu.be\/2XHJvDvGfgI\">video<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Anomaly Detection<\/strong><\/h3>\n\n\n\n<p>This subsystem aims to detect anomaly actions, with anomaly score and actions labeled. Certain delay with the detection is acceptable since we are not having real-time anomaly detection system. We adopted a two-stage pipeline to balance detection reliability with action classification interpretability. In Stage 1, we selected the Graph-Jigsaw Conditioned Diffusion Model (GJCD) as our anomaly scoring backbone. Stage 2 is conditionally triggered only when the Stage 1 score exceeds a configurable threshold, activating a zero-shot natural language classification pipeline. The final anomaly score is a weighted fusion of the Stage 1 reconstruction score and Stage 2 classification confidence, ensuring the expensive classification step is invoked selectively while preserving interpretability through human-readable action labels.<\/p>\n\n\n\n<p><strong>Test 1: Pre-Trained Model Pipeline Execution<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The command-line output reports valid inference timing information<\/li>\n\n\n\n<li>The pre-trained model runs successfully with zero runtime errors.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"295\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-2026-04-05-at-3.40.42-PM-1024x295.png\" alt=\"\" class=\"wp-image-552\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-2026-04-05-at-3.40.42-PM-1024x295.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-2026-04-05-at-3.40.42-PM-300x86.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-2026-04-05-at-3.40.42-PM-768x221.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-content\/uploads\/sites\/96\/2026\/05\/Screenshot-2026-04-05-at-3.40.42-PM.png 1390w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Test 2: Anomaly Action Classification <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Label the correct action on the screen with anomaly score<\/li>\n<\/ul>\n\n\n\n<p>-&gt; This test does not reach the acceptance criteria. Will use different approach<\/p>\n\n\n\n<p>Current result can be viewed at: <a href=\"https:\/\/drive.google.com\/file\/d\/1oNhZA2zpQJ_BmL-QVpjfwpnWBm2JlEtK\/view?usp=drive_link\">https:\/\/drive.google.com\/file\/d\/1oNhZA2zpQJ_BmL-QVpjfwpnWBm2JlEtK\/view?usp=drive_link<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pure Pursuit Controller (Local Planning) We implemented a pure-pursuit local planning module for F1TENTH autonomy stack, which takes the planned path and current vehicle state as input, computes a steering command, and publishes it to the vehicle control module. This enables closed-loop path tracking for local navigation. Test 1: Standalone Visualization Acceptance Criteria: Test 2: [&hellip;]<\/p>\n","protected":false},"author":451,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-430","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/pages\/430","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\/451"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/comments?post=430"}],"version-history":[{"count":13,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/pages\/430\/revisions"}],"predecessor-version":[{"id":573,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/pages\/430\/revisions\/573"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teame\/wp-json\/wp\/v2\/media?parent=430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}