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
- 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\)).
- System Architecture:
- Detailed Computational Map: Provide an updated Mermaid diagram + a
rqt_graphexport, or an annotatedrqt_graphexport. This must serve as a complete map of the system's "plumbing."- Topics: Labeled as
/topic_name [msg_type](rqt_graphexport) - Services/Actions: Labeled as
/name [srv_type]or/name [action_type](can be a Mermaid diagram, or an annotatedrqt_graph).
- Topics: Labeled as
- 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).
- Detailed Computational Map: Provide an updated Mermaid diagram + a
- Experimental Analysis & Validation:
- 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.
- 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.
- 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.
- Noise & Uncertainty Analysis:
- Project Management:
- Instructor Feedback Integration: A table listing every critique/question from Milestone 1, and the specific technical actions taken to adjust your approach or architecture.
-
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 a1b2c3dcustom_ekf_node.pyStudent Name 2 Path Planning Commit e5f6g7hrrt_star_planner.cppStudent Name 3 Integration & Hardware Commit i9j0k1lrobot_launch.py,params.yaml
Note on Audits: If
git blameandgit shortlogreveal 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.