Robotics CI/CD from Scratch
Building a production-grade Software-in-the-Loop test platform for ROS 2. Seven posts covering architecture, CI/CD, testing, debugging, and release engineering.
Why I Built a ROS 2 SIL Platform from Scratch
Robotics teams keep hitting the same integration problems: sim passes but hardware fails, PRs break on merge, tests are flaky. Here's how a Software-in-the-Loop test platform solves them at the root.
Architecture: HAL Boundary, Sim Time, and 6 ADRs
The architecture behind a ROS 2 + MuJoCo SIL platform: a single control loop, a hardware abstraction layer for sim-to-real, sim time for deterministic CI, and six documented architecture decisions.
CI/CD for Robotics: GitHub Actions, Merge Queue, Docker
The full anatomy of a robotics CI pipeline: GitHub Actions with container jobs, caching strategy for sub-10-minute builds, native merge queue setup (including the 422-to-org war story), multi-stage Docker, and GHCR release.
Testing Robotics Code: 45 Tests Across Four Layers
A four-layer test pyramid for robotics: linters for hygiene, pure-math gtests because the logic is deliberately separated from nodes, a smoke test that caught a silent QoS mismatch, and a sim-time SIL scenario that caught a physics bug no unit test could see.
6 Real Bugs That SIL Testing Caught
Six real bugs from a robotics CI/CD platform: a silent QoS mismatch, a physics-induced false obstacle detection, a Dockerfile that hid a missing package, and more. Each with symptom, diagnosis, fix, and lesson.
Release Engineering: From Tag to Traceable Image
How a robotics CI/CD platform goes from git tag to versioned Docker image on GHCR — with a fully traceable chain from digest to commit, and a lesson on why you should never re-point a published tag.
From Integration Pain to Production Pipeline
What building a ROS 2 SIL CI/CD platform from scratch taught me about integration engineering, scope discipline, and why the pipeline — not the robot — is what keeps hardware safe and teams fast.