Skip to content

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)

  1. Step 1: Concise action with command(s)
    # Example: build ROS workspace
    colcon build --symlink-install
    source install/setup.bash
    
  2. Step 2: Screenshots/console logs as needed
  3. 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

# Paste concise logs or metrics
mean_error = 2.3 deg
latency_ms = 14.8

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
// Example: Arduino motor test (watch current & temperature)

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.