Project Milestone 2: Mid-Point Technical Proof

Due: Apr 15 Weight: 10% Word Limit: 2500–3000 words (Approx. 5-6 pages)

Each Milestone consists of two parts: Documentation and Technology.

Milestone 2 documents your transition from design to implementation, providing concrete evidence of technical progress and system calibration.


1. Documentation

This report must provide a rigorous bridge between your theoretical models and the actual data flowing through your ROS 2 nodes.

Required Sections

  1. Kinematics: A formal description of your robot's motion model using LaTeX equations. This must explicitly show the mapping from control inputs (e.g., wheel velocities) to state updates (e.g., \(x, y, \theta\)).
  2. System Architecture:
    1. Detailed Computational Map: Provide an updated Mermaid diagram + a rqt_graph export, or an annotated rqt_graph export. This must serve as a complete map of the system's "plumbing."
      • Topics: Labeled as /topic_name [msg_type] (rqt_graph export)
      • Services/Actions: Labeled as /name [srv_type] or /name [action_type] (can be a Mermaid diagram, or an annotated rqt_graph).
    2. Module Descriptions: A technical breakdown of every node shown in the Computational Map. For Library nodes, document the specific parameters tuned (e.g., update_frequency, inflation_radius). For Custom nodes, provide a deep-dive into the logic flow, including links to the specific source file in your repository. Include the Module Declaration Table from Milestone 1, noting changes from the previous milestone if any, and the status of the module (completed/pending).
  3. Experimental Analysis & Validation:
    1. Noise & Uncertainty Analysis:
      • Hardware: Report on sensor calibration (offsets), measured variance/noise profiles during tests, or parameter tuning to adapt to noise.
      • Simulation: Provide the logic and code snippet for your Noise Injector node. You must demonstrate how your custom algorithms perform under synthetic sensor noise.
    2. Run-Time Issues: Document any system behaviors during your runs/tests such as recovery logic after a simulated LiDAR timeout, temporary loss of odometry, or unexpected obstacles.
    3. Milestone Video: Link to one or more embedded YouTube/Vimeo video showing the robot executing a core sub-task (e.g., autonomous mapping, goal-to-goal navigation, or sensor fusion stability). Please use screen recording software where necessary.
  4. Project Management:
    1. Instructor Feedback Integration: A table listing every critique/question from Milestone 1, and the specific technical actions taken to adjust your approach or architecture.
    2. Individual Contribution: To ensure every team member contributes to the robotics engineering, add a table as seen below to showcase individual contributions (with appropriate links to the commits and files)

      Team Member Primary Technical Role Key Git Commits/PRs Specific File(s) Authorship (Direct Links)
      Student Name 1 Perception & Filtering Commit a1b2c3d custom_ekf_node.py
      Student Name 2 Path Planning Commit e5f6g7h rrt_star_planner.cpp
      Student Name 3 Integration & Hardware Commit i9j0k1l robot_launch.py, params.yaml

    Note on Audits: If git blame and git shortlog reveal that the person claiming a custom algorithm in the report did not author the code in the repository, their individual "Algorithmic Factor" points will be forfeit.


2. Technology

The technical portion of this milestone (40% of the MIlestone 2 grade) focuses on the stability of your ROS code and your ability to simulate real-world conditions.

  • ROS Communication Proof: All completed nodes defined must be functional.
  • Math-to-Code Alignment: Your ROS 2 nodes must accurately reflect the kinematic equations defined in your LaTeX section.
  • The Noise Injector: For simulation teams, the noise injector must be a standalone node capable of modifying clean simulation data to mimic real-world uncertainty.
  • Git Audit Readiness: Your repository must show incremental commits from all team members. "Big Bang" pushes of code right before the deadline will trigger an audit.

3. Grading (60% Doc / 40% Tech)

3.1. Rubric

Category Weight Grading Criteria
Documentation (60%) 15% Math & Feedback: Accuracy of LaTeX kinematics and response to M1 feedback.
30% System Mapping: Clarity of Computational Map (Done vs. Pending) and technical writing.
15% Analysis & Video: Quality of robustness audit and video proof.
Technology (40%) 30% Integration Base (70% of Tech): Stable ROS 2 communication for active nodes.
10% Algorithmic Factor (30% of Tech): Implementation of Noise Injector and math in code.

3.2. Example Scenarios

Weighting: 60% Documentation (6.0 pts), 40% Technology (4.0 pts)

In Miletone 2, the tech score is a holistic evaluation of system communication and setup.

Team Profile (Sets Base Points) Student Profile (Audit Multiplier) Doc (60) Tech (40) Indiv. Contribution Total Grade Points
High Performance: Full setup, clear rqt_graph, math implemented. Lead: Active in code and docs. 60 40 1.0 10.0
High Performance: Full setup, clear rqt_graph, math implemented. Contributor: Active in repo (Docs/Config). 60 40 0.9 9.0
Standard Tech: Basic setup, some nodes pending. Integrator: Managed TF and launch files. 50 20 1.0 7.0
Hardware Team: Sensors & Drivers functional. Hardware Lead: Physical setup owner. 60 30 1.0 9.0*

Hardware Bonus will be added at the end of the project.

4. Submission

Each group must submit a link to their GitHub Pages and commit hash(es) (one each for the website and code repos, if they are different) to be used for grading on Canvas.