Session N — Short Title
One-sentence purpose of the session.
Use when: Every entry; this is the canonical title and brief purpose.
Skip when: Never.
1) Activity Goals
- Implement ______ (e.g., ROS2 node publishing joint states)
- Validate ______ (e.g., Ackermann kinematics constraint)
- Document ______ (e.g., BOM with costs, wiring diagram)
Use when: Always, to define the goals of the activity; mark as checkboxes and evaluate at the end.
Skip when: Never
2) Materials & Setup
BOM (bill of materials)
| # | Item | Qty | Link/Source | Cost (MXN) | Notes |
|---|---|---|---|---|---|
| 1 | ______ | __ | ______ | __ | ______ |
Tools/Software - OS/Env: Ubuntu 24.04 + ROS 2 Jazzy (WSL2 ok) - Editors: VS Code, Python 3.12, Arduino IDE, RoboDK (if used) - Slicers/ECAD: PrusaSlicer, Altium, Multisim
Wiring / Safety
- Motor driver current limit: __ A (≤ spec)
- Battery: LiPo __S, follow charging protocol
- PPE / Risk notes: ______
Use when: Hardware or software setup affects reproducibility or safety; include current limits and battery notes.
Skip when: Pure software simulation with no hardware or safety changes; still list software versions briefly.
3) Procedure (what you did)
- Step 1: Concise action with command(s)
- Step 2: Screenshots/console logs as needed
- Step 3: Verification checkpoint ✅
Use when: Documenting steps so another student can reproduce results from a clean state.
Skip when: Only design discussion or planning occurred; move notes to Reflection and Analysis.
4) Data, Tests & Evidence
Test plan - Inputs: __ - Expected: ____ - Metrics: RMSE, latency, current draw, etc.
Results
Tables/plots | Case | Input | Output | Error | Pass? | |------|-------|--------|-------|-------| | A | … | … | … | ✅/❌ |
Use when: You measured, tested, or compared against expected behavior; include raw evidence and brief summaries.
Skip when: Nothing was executed; defer to Procedure or Reflection.
5) Analysis
- Compare expected vs observed.
- Explain anomalies (friction, backlash, sampling, clipping).
-
Link to equations/constraints (e.g., Pfaffian for nonholonomic: A(q)·q_dot = 0). Equations should be in a readable format (LaTeX or code). For example:
$$ A(q) \cdot \dot{q} = 0 $$ -
Propose fixes (calibration, PID gains, step timing).
Use when: Data exists or you made claims that require justification; tie to theory.
Skip when: Session only set up infrastructure with no results; provide a short note and defer deeper analysis to a later entry.
6) Code
Short, runnable snippets only. Link big files to repo.
# Example: publish joint states
# SAFETY: respect joint limits before publishing
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import JointState
Use when: A snippet clarifies the approach, parameters, or API usage; keep it executable and minimal.
Skip when: Code is long; link to repository paths and commits instead.
7) Files & Media
- CAD/URDF: /urdf/arm_3dof.urdf.xacro
- Launch: /launch/sim.launch.py
- Firmware: /firmware/drive_test/
- Video demo (≤60 s): https://…
- Photos: img/sessionN_*
Use when: Artifacts help a reviewer verify function or build the same setup.
Skip when: No media or files were changed; omit to keep the entry concise.