Robotic Systems

Robotic Systems · teaching-draft · v0.2.0

1. Integration accuracy and energy

Aim

Measure integration error against an exact solution instead of judging an animation.

Time: about 120 minutes. Start with the linked lectures and the course notation contract. The reference program is complete and runnable; your work is to explain it, modify it, and test the results.

Run from this repository

uv sync --locked
uv run --locked python practices/p01-integrators/run.py

The program writes configuration, MuJoCo version, and metrics to outputs/p01-integrators/metrics.json. Experiments with a time history also write trajectory.csv. These are generated results and are not source material.

Use a separate configuration and output directory for each variation:

uv run --locked python practices/p01-integrators/run.py --config practices/p01-integrators/config.yml --output outputs/p01-integrators/baseline

Keep the original configuration as the baseline. Record all changes in your report; avoid changing several physical and numerical parameters at once.

Tasks

  1. Reproduce the three methods from Lecture 2 and run the reference results.
  2. Plot final-state error against timestep on logarithmic axes.
  3. Plot energy over the same physical interval and distinguish drift from bounded oscillation.
  4. Increase timestep toward and beyond the semi-implicit oscillator stability boundary.

Expected checks

Explicit Euler injects energy in the undamped oscillator. In the smooth refinement regime, Euler error roughly halves and RK4 error falls by roughly sixteen when timestep halves.

Submission

Submit your YAML configuration, a short explanation of the equations and assumptions, labeled plots or numerical comparisons with units, and a paragraph explaining a failure or limitation. Include the exact run command. The weekly practice rubric awards 40% for correctness and checks, 30% for the controlled comparison, 20% for interpretation, and 10% for reproducibility.

Extension

Add damping, forcing, or a nonlinear pendulum one at a time. Explain why the analytic oscillator solution no longer validates the new problem.

Reading

CMU 16-715 · CMU dynamics notebooks