Logbook

Everything, in order

A timeline of every entry on all my public projects.

33 entries, 4 projects

1
30 weeks
no logs
30 wks
4
3
1
1
4
6
6
5 weeks
no logs
5 wks
3
4 weeks
no logs
4 wks
2
7 weeks
no logs
7 wks
1
1
Sep 2025 Apr 2026 May Jul Aug Oct
  1. October 2026
  2. Aerodesign Payload

    LED driver practice questions

    Created a set of flashcards for some other members to learn about our LED driver.

    • teaching
  3. Entries lost to time Aerodesign Payload

    hard to keep a log when things are moving so fast...

    Jul 3 to Oct 12, 2026
  4. Badminton Robot

    Saving our vision system from the depths

    Background subtraction saved our project.

    • One frame from the left camera, the full 1920 by 1200 frame, with the birdie about 7 m from the cameras
    • Four steps: everything that moved, both cameras and birdie colour, the physics check, and the report 0.08 s after the hit
    • One racket hit: the birdie found live in 94 of its 111 frames, coloured by time since the hit
    • vision
  5. Entries lost to time Badminton Robot

    hard to keep a log when things are moving so fast...

    Apr 12 to Oct 2, 2026
  6. August 2026
  7. Wayless

    Continuous Integration and Formatting

    Deploying CI to our project repo.

    • setup
  8. Wayless

    It continues...

    momentum push! added .clang-format to match Google conventions

    • quick!
  9. 87 days since the last entry for this project Wayless
    May 10 to Aug 5, 2026
  10. July 2026
  11. Aerodesign Payload

    Mastering IR detection (part 3)

    Completing my deep dive on phototransistors.

    • Multimeter probing the IR LED and phototransistor setup on a breadboard
    • QSD123 datasheet Figure 4, light current vs collector-emitter voltage, with the sloped region circled
    • experiment
  12. Aerodesign Payload

    Mastering IR detection (part 2)

    I forgot things aren't ideal in the world of ICs... digging deeper!

    • Breadboard with photodiode circuit and multimeter probes
    • experiment
  13. June 2026
  14. Aerodesign Payload

    Mastering IR detection (part 1)

    Studying opamps, documenting phase-reversal, and setting up for the best IR detection this world has ever seen.

    • TL082 wired as a unity-gain follower, driven and measured by the Analog Discovery 2 — W1 into the +input, scopes on input and output
    • Photodiode → op-amp buffer → Arduino: reverse-biased photodiode feeding a unity-gain buffer into Arduino A0
    • The biased version: R's bottom tied to +1.8 V so OUT rests at 1.8 V with no light, keeping it clear of the phase-reversal floor
    • experiment
  15. Entries lost to time Aerodesign Payload

    hard to keep a log when things are moving so fast...

    May 16 to Jun 30, 2026
  16. May 2026
  17. Shipped RL Arm Tracking last entry May 24, 2026. No more entries for now!
  18. RL Arm Tracking

    Submission and future scope of work

    Polished the GitHub repo for submission (library code into an arm/ package, dead code removed, proper README pointing at this build log). Then some thoughts on GPU training, ripping out IK, learning physics directly, and comments on RL's observation space.

    • reflection
  19. RL Arm Tracking

    v9 has arrived

    v9 trains with an action delta penalty (β=0.1) and 5s episode duration. Jerk dropped 25%, mean error dropped 13%, and time in the 5cm band jumped from 54% to 73%. Shipping v9 as the submission model!

    • v9 rollout reward at training completion
    • v9 eval mean reward showing late-stage uptick
    • experiment
  20. RL Arm Tracking

    New metrics for v5 and planning v9

    Passed on MuJoCo Warp (too much JAX rewrite for the time left), added action and tracking-lag metrics, and used them to characterise v5 as "noisy but on-time" versus classical's "clean but late". Set the stage for v9 with an action delta penalty.

    • research
  21. RL Arm Tracking

    Acceleration in obs and accidentally rewarding termination

    Audited yesterday's collision penalty, removed it, and the eval mean error dropped by ~3 cm. Added target acceleration to the observation space and v5 beats classical by 4.55 cm with time-in-band more than doubled. Then tried letting RL learn collision avoidance with early termination, which caused a "model races to terminate" failure mode.

    • v2 training reward (penalty plus new trajectories)
    • v2 eval mean reward
    • v3 final training reward
    • experiment
  22. RL Arm Tracking

    Comparing classical vs RL, then mixing in new trajectories

    Got the first side-by-side classical vs RL comparison out the door: RL is ~30% tighter on mean error and spends 15 more points of time in the 5 cm band, but jerkier. Moved the tracked point to a green tip site past the gripper, tried DLS for the IK folding issue (no effect), then added a figure-8 and a random-walk "fly" trajectory and kicked off a 5M-step retrain with a self-collision penalty.

    • experiment
    • decision
  23. RL Arm Tracking

    Wiring the RL pipeline end-to-end

    Finished trajectory.py and wired env.py, train.py, eval.py end-to-end. Drilled the RL terminology along the way and watched a PPO policy learn to lead moving targets over a 1M-step training run. Self-collisions and EE visibility flagged for the next session.

    • first random circle, seed 0
    • second random circle, seed 10
    • eval/mean_reward over the 1M-step run
    • research
    • experiment
  24. RL Arm Tracking

    Scoping RL and mapping the arm's reach

    Settled on approach iv (RL on top of IK+PD) as the starting scope. Mapped the Panda arm's reachable workspace from 300,000 sampled joint configurations and laid out a plan to get training running.

    • Arm reach point cloud
    • Arm reach in simulation space
    • Arm reach in simulation space (alternate view)
    • decision
    • experiment
  25. Aerodesign Payload

    Building out the morphological chart

    General team status check, then a payload session building out the morphological chart. Last log's sensing table is now condensed into annotated cells with images. Next step is picking a complete stack.

    • meeting
  26. RL Arm Tracking

    Turning physics on, and a nagging decision

    Turned dynamics on for the first time with a classical IK + PD controller tracking a moving circle, and found the Panda's actuators are already PD tuned. Now weighing how much RL to take on before the deadline.

    • research
    • experiment
  27. RL Arm Tracking

    Implementing inverse kinematics

    Built the Jacobian pseudo-inverse IK solver. It drives the Panda's wrist to a hardcoded 3D target, and degrades as expected when the target is out of reach. This is the foundation for both the classical baseline and the RL Cartesian action wrapper.

    • research
    • experiment
  28. RL Arm Tracking

    Challenge accepted.

    Kickoff for an 11-day RL challenge: train a policy to track a 3D Cartesian trajectory on a simulated Franka arm. Scoped the problem, set up the repo with uv, and got Franka loaded in MuJoCo for first signs of life.

    • first signs of life
    • franka in home keyframe pose
    • research
    • experiment
  29. Aerodesign Payload

    Payload concept analysis

    Built a document of payload options for the team, then sat down as a subteam and analysed concept fragments across motion, interaction, and detection plus localisation. Morphological chart and concept summaries are up next.

    • meeting
    • research
  30. Wayless

    PR #4 feedback: typed angles and value-move

    Addressed Saf's comments on PR #4. Applied copy + move utility on the builder, and introduced Angle and AngularVelocity types so that we explicitly state angle units.

    • refactor
  31. 15 days since the last entry for this project Wayless
    Apr 25 to May 10, 2026
  32. Aerodesign Payload

    Avionics subteam onboarding

    Second onboarding, this time with the full subteam. Delivery is locked in over release, and the payload direction is leaning towards being omnidirectional and self-centring.

    • Polish university plane with externally mounted payloads
    • meeting
  33. Aerodesign Payload

    Reading the payload history

    Read through the team's internal payload history. Need to find what the broader community has done for short-distance localisation and docking.

    • research
  34. Aerodesign Payload

    Subteam alignment & concept gen kickoff

    First proper subteam meeting. Confirmed avionics owns detection and localisation. Last year's approach failed by putting all locating on the plane. Timeline is more aggressive: 6 weeks to a solid design, then prototype.

    • meeting
  35. Aerodesign Payload

    First general meeting!

    First SAE Aerodesign general meeting. Got oriented on team structure and the payload subteam mission: capture and release on the DLZ. Summer focus is research and derisking.

    • meeting
  36. April 2026
  37. Wayless

    Vehicle kinematics on the drive to Kelowna

    Six-hour commute to Kelowna. Worked out the kinematic model: bicycle model, no-slip assumption, back axle as reference. PR #4 is up.

    • physics
  38. Wayless

    Reviewing the ECS foundations

    Reviewed Saf's ECS header PR. World, Entity, Pos2, Types are in. Clean.

    • PR
  39. Wayless

    Reviewing the first renderer

    Reviewed Saf's SFML and vcpkg PR. Window is up, circle is on screen. Still writing finals for school...

    • PR
  40. Wayless

    It begins...

    Kicked off Wayless with Saf. C++ car physics simulator, 2D first, 3D later. Repo is live!

    • hype
  41. Badminton Robot

    Year 1, where we ended up

    The vision and prediction pipeline is the year's primary achievement. Detection is unsolved, the motors came late, and the HTC Vive did not work out.

    • report
  42. Badminton Robot

    The robot

    Four mecanum wheels, a one degree of freedom striking arm (for now), a mostly 3D printed chassis and an all off-the-shelf 24V electrical system.

    • The robot CAD, with the striking arm, power distribution block, drive motor ESC, battery, racquet and mecanum wheels
    • The full robot assembly, without motors
    • The electrical system: the battery feeds a fuse and power distribution, then the drive motor ESC and the racquet motor ESC, with encoder feedback to the microcontroller
    • report
    • hardware
  43. Badminton Robot

    Predicting where the birdie lands

    Drag and gravity, an Extended Kalman Filter, and a Runge-Kutta forward simulation turn a stream of 3D positions into a landing spot and a time-to-arrival.

    • Tracker error against time, and the EKF tracking simulated noisy measurement data
    • report
    • prediction
  44. Badminton Robot

    Stereo vision and detection

    Two cameras triangulate the birdie's 3D position in real time. The geometry works, but picking the birdie out of a dark image does not.

    • Left: an example physical stereo vision setup. Right: the stereo vision setup diagram
    • The depth verify tool showing live stereo triangulation output, validated to 15 m. The low exposure makes the image nearly black.
    • Stereo vision characterization results: spatial accuracy against depth distance from the camera, and the signed X, Y and Z error
    • report
    • vision
  45. Entries lost to time Badminton Robot

    hard to keep a log when things are moving so fast...

    Sep 2 to Apr 9, 2026
  46. September 2025
  47. Badminton Robot

    What we set out to build

    A fully autonomous badminton-playing robot that can sustain a reliable rally against a human opponent.

    • The robot on a badminton court, with the birdie dimensions and the out of bounds line
    • The three key subsystems: stereo vision senses, trajectory prediction predicts, and the drivetrain and platform acts, with localization tracking the robot
    • report