{"id":169,"date":"2026-02-19T20:07:03","date_gmt":"2026-02-19T20:07:03","guid":{"rendered":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/?page_id=169"},"modified":"2026-04-01T22:42:13","modified_gmt":"2026-04-01T22:42:13","slug":"navigation-subsystem-progress","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/system\/system-implementation\/navigation-subsystem-progress\/","title":{"rendered":"Navigation Subsystem Progress"},"content":{"rendered":"\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\"><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Week of Late January \u2013 Decoupling and Algorithm Validation<\/h2>\n\n\n\n<p><em>1.29.26<\/em><\/p>\n\n\n\n<p>This week focused on isolating the core planning algorithms from ROS2 and validating them as standalone Python modules. The Forest Planner and Route Planner were decoupled from the ROS2 stack to allow faster iteration and easier debugging.<\/p>\n\n\n\n<p>The Forest Planner successfully generated structured planting layouts in coordinate form and produced visualization-ready outputs. The Route Planner was validated downstream of the forest plan and demonstrated the ability to ingest planting coordinates and compute traversal sequences. We evaluated TSP-based and ACO-style routing formulations to determine tradeoffs between optimality and computation time.<\/p>\n\n\n\n<p>Key outcome:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verified planning logic independent of middleware.<\/li>\n\n\n\n<li>Confirmed forest \u2192 route planner pipeline compatibility.<\/li>\n\n\n\n<li>Established groundwork for later ROS2 integration.<\/li>\n<\/ul>\n\n\n\n<p>The main blocker at this stage was hardware integration (Warthog access and lab setup), which limited system-level testing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Week of Early February \u2013 Simulation &amp; System Setup<\/h2>\n\n\n\n<p><em>2.5.26<\/em><\/p>\n\n\n\n<p>With standalone planners working, attention shifted to OS and simulation infrastructure. Unity Hub was installed on Linux to support simulation-based validation, and efforts began to install Ubuntu 22.04 for full ROS2 compatibility.<\/p>\n\n\n\n<p>However, restoring NuGet packages in Unity caused rendering failures, preventing a fully operational simulation environment. This slowed validation of the perception \u2192 planning \u2192 navigation loop in simulation.<\/p>\n\n\n\n<p>Key technical developments:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ROS2 environment preparation.<\/li>\n\n\n\n<li>Simulation environment bootstrapping (Unity + ROS2).<\/li>\n\n\n\n<li>Early localization data becoming available.<\/li>\n<\/ul>\n\n\n\n<p>Primary blockers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unity package restoration issues.<\/li>\n\n\n\n<li>OS setup and dependency conflicts.<\/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\">Week of Feb 5 \u2013 Test Planning &amp; System Architecture<\/h2>\n\n\n\n<p>This week emphasized formalizing test infrastructure. Navigation-specific test plans were drafted, including integration tests that would span SLAM, perception, and obstacle avoidance modules.<\/p>\n\n\n\n<p>We also initiated PCB power requirement consolidation to ensure computational hardware (Jetson, sensors, and embedded controllers) would be adequately supported. This was critical for guaranteeing stable runtime performance of planning algorithms under field conditions.<\/p>\n\n\n\n<p>Technical emphasis:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Defined navigation subsystem test cases.<\/li>\n\n\n\n<li>Structured integration tests across SLAM and perception.<\/li>\n\n\n\n<li>Began formal hardware\u2013software co-design considerations.<\/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\">Week of Feb 9 \u2013 OS Stabilization &amp; Simulation Debugging<\/h2>\n\n\n\n<p><em>2.9.26<\/em><\/p>\n\n\n\n<p>Navigation efforts concentrated on stabilizing the Ubuntu dual-boot configuration and debugging Unity Hub failures.<\/p>\n\n\n\n<p>Although simulation rendering was still incomplete due to NuGet restore issues, the system architecture was clarified:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Planning layer produces global forest layout.<\/li>\n\n\n\n<li>Route planner generates optimized traversal sequence.<\/li>\n\n\n\n<li>Downstream controller executes waypoints once localization confidence is sufficient.<\/li>\n<\/ul>\n\n\n\n<p>Documentation was also formalized via Slite to track GPS testing logs and navigation progress.<\/p>\n\n\n\n<p>Primary blocker:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unity dependency restoration preventing full simulation validation.<\/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\">Week of Feb 12 \u2013 Hardware-Software Interface &amp; Power Distribution<\/h2>\n\n\n\n<p>Navigation work expanded beyond pure algorithms to system-level engineering. PCB conceptual design and power distribution planning were advanced to support compute scaling decisions 2.19.26 Canopy Weekly Status.<\/p>\n\n\n\n<p>The focus here was computational budgeting:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Estimating power draw of Jetson compute platforms.<\/li>\n\n\n\n<li>Determining whether Nano Orin suffices or AGX Orin is required.<\/li>\n\n\n\n<li>Ensuring 12V\/24V rails remain stable under load.<\/li>\n<\/ul>\n\n\n\n<p>Although primarily electrical, these decisions directly impact navigation performance, especially under SLAM + perception + planning concurrency loads.<\/p>\n\n\n\n<p>Additionally:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PR1 presentation leadership required consolidation of navigation progress.<\/li>\n\n\n\n<li>Integration planning began between SLAM and route planning.<\/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\">Week of Feb 17 \u2013 Integration Readiness &amp; SLAM Coupling<\/h2>\n\n\n\n<p><em>2.5.26<\/em><\/p>\n\n\n\n<p>Navigation shifted toward integration with localization. RTK GNSS was publishing to ROS, though reliability testing was ongoing 2.12.26 Canopy Weekly Status.<\/p>\n\n\n\n<p>The goal was to:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Establish a clean localization output topic.<\/li>\n\n\n\n<li>Define message interface between localization and planning.<\/li>\n\n\n\n<li>Prepare for full navigation stack testing.<\/li>\n<\/ol>\n\n\n\n<p>Navigation test plans were updated to include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SLAM + navigation integration<\/li>\n\n\n\n<li>Perception-informed obstacle avoidance<\/li>\n\n\n\n<li>End-to-end traversal validation<\/li>\n<\/ul>\n\n\n\n<p>This week marked a conceptual transition:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>From algorithm validation \u2192 to stack integration.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Week of Feb 19 \u2013 System Coordination &amp; Review Preparation<\/h2>\n\n\n\n<p><em>2.12.26<\/em><\/p>\n\n\n\n<p>As Progress Review 2 approached, navigation tasks included:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Finalizing PCB conceptual design.<\/li>\n\n\n\n<li>Clarifying computational scaling strategy.<\/li>\n\n\n\n<li>Preparing integration milestones 2.19.26 Canopy Weekly Status.<\/li>\n<\/ul>\n\n\n\n<p>There was a broader project-level reflection on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Breaking tasks into subsystems.<\/li>\n\n\n\n<li>Increasing clarity in goals and scheduling.<\/li>\n\n\n\n<li>Formalizing sprint-style workflows.<\/li>\n<\/ul>\n\n\n\n<p>From a navigation perspective, the focus became:<\/p>\n\n\n\n<p>Preparing for field deployment scenarios (e.g., Schenley Park permitting).<\/p>\n\n\n\n<p>Ensuring modularity between perception, localization, and planning.<\/p>\n\n\n\n<p>Maintaining computational feasibility.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><em>Starting from here, Navigation faded out a little since the PCB design begins, so this will be a progress report on different other things Alina did, not limited to Navigation. <\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Week of February 23, 2026<\/h2>\n\n\n\n<p>The primary focus this week was on the mechatronics side of the project \u2014 specifically, getting the linear actuator operational. Working with Istan on Friday, we attempted to test the actuator; while physical movement wasn&#8217;t achieved, communication and command transmission were verified as functional. On the software side, trajectory planning in Python was next on the roadmap, with the intent to validate motion sequences before committing to hardware integration.<\/p>\n\n\n\n<p>The other major workstream was the PCB schematic for the Autonomy Hardware. This was flagged as a blocker: coordination with Neha after her SLAM project meeting was needed to move forward, with a target of completing the schematic by Thursday. This was also the week the team adopted meeting note-taking as a defined role, which became my ongoing responsibility.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Week of March 9, 2026<\/h2>\n\n\n\n<p>With PDR preparation in full swing, the scrum update was oriented around presentation work. Next steps included finalizing the Schedule section slides alongside continuing PCB work and picking up obstacle avoidance tasks. The team discussed presentation guidelines for the Schedule slide, noting that the Gantt chart should be delivered at a summary level rather than in granular detail, and that the presenter should be ready to address whether the project is ahead, behind, or on schedule, along with the major remaining milestones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Thursday&#8217;s Progress<\/h2>\n\n\n\n<p>This week the PCB design and Bill of Materials (BOM) were completed, resolving a blocker that had been open for several weeks. With the PCB done, the focus pivoted toward software and integration work \u2014 specifically implementing D* Lite for navigation and beginning integration efforts with Neha on the localization stack.<\/p>\n\n\n\n<p>A new mechanical blocker surfaced: help was needed to design a PCB mounting structure to sit on top of the stepper motor or ball screw driver&#8217;s base. The PCB was ready for physical deployment but required a suitable fixture before it could be mounted.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Week of March 16, 2026<\/h2>\n\n\n\n<p>This week&#8217;s focus shifted to software architecture and cross-team integration. Working with Neha and Shuyi, the team aligned on referencing Steward&#8217;s overall ROS2 architecture as a reference implementation and began building our own in a dedicated <code>ros_architecture<\/code> branch in the Canopy repo. The plan was for each subsystem&#8217;s development branch to pull or fetch from this shared branch, establishing a clean integration baseline. The decision and architecture strategy were coordinated during this week&#8217;s discussions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Thursday&#8217;s progress<\/h2>\n\n\n\n<p>A busy and productive week across several fronts. On the perception side, seedling\/pot detection was validated successfully, with plans to collect additional data once paper tubes arrived for testing with the actual target containers. On the software integration front, the ROS1 bridge was the main focus \u2014 a recurring blocker for the team&#8217;s ability to fully bring up the navigation and localization stack. An office hours session with John was used for a dry run ahead of PR4.<\/p>\n\n\n\n<p>PCB bringup was scoped for the following week. The status of the 3D-printed PCB mounting fixture was also flagged as a pending question for the team.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Week of March 23, 2026<\/h2>\n\n\n\n<p>This week&#8217;s update was relatively brief. The primary next steps were exploring a remote desktop solution for the Jetson board to ease development access, and repotting seedlings into tube containers in preparation for upcoming perception and grasp testing. The ROS1 bridge remained an active issue, though Neha reported by the end of the week that the bridge was fixed and ROS1-to-ROS2 communication was functional \u2014 unblocking the localization testing pipeline that the navigation stack depended on.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Thursday&#8217;s Progress<\/h2>\n\n\n\n<p>A major milestone on the PCB front: bringup and initial board unit testing were completed. The next integration phase was clearly scoped \u2014 connecting the board to the BLDC motor controller, the ELEGOO microcontroller, and the e-stop circuit, then powering through the Power Distribution Board (PDB) and validating the full assembly. The only remaining blocker was waiting on ring-terminal connectors for the e-stop wiring.<\/p>\n\n\n\n<p>Data collection for pot detection was also completed this week, which Shuyi used to train pot detection model V1.0 using Roboflow for auto-labeling. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Week of Late January \u2013 Decoupling and Algorithm Validation 1.29.26 This week focused on isolating the core planning algorithms from ROS2 and validating them as standalone Python modules. The Forest Planner and Route Planner were decoupled from the ROS2 stack [&hellip;]<\/p>\n","protected":false},"author":476,"featured_media":0,"parent":18,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-169","page","type-page","status-publish","hentry","clearfix"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/users\/476"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/comments?post=169"}],"version-history":[{"count":16,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/169\/revisions"}],"predecessor-version":[{"id":306,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/169\/revisions\/306"}],"up":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/pages\/18"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2026teamj\/wp-json\/wp\/v2\/media?parent=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}