Industrial cell telemetry bridge

Simulated manufacturing-cell telemetry on a C++ / ROS 2 edge, bridged over HTTPS into a thin AWS path that persists samples and emits rule-based health events as CloudWatch logs.

Summary

Portfolio / exploratory demonstration: an edge-to-cloud tracer for industrial-shaped cell telemetry. A C++ / ROS 2 edge publishes simulated cell metrics; a bridge batches them over authenticated HTTPS; a thin AWS floor persists samples and evaluates in-batch health rules. v1 is frozen — a deliberate first step into industrial edge → cloud using known AWS patterns, with clear limits and a runway for deeper robotics and later MLOps work.

Problem

Manufacturing and automated cells generate continuous state — temperature, vibration, cycle time, fault flags. Operators need durable series and early health signals without a full digital twin or ML model on day one. Constrained edge nodes make a bridge pattern (batch → authenticated HTTPS) a practical first hop.

This work demonstrates that data path and the engineering hygiene around it — contracts, ADRs, layered verification, and an explicit shipped-vs-deferred freeze — not a production cell controller or predictive-maintenance product.

Approach

cell_sim publishes CellTelemetry on the ROS graph; cell_bridge batches by size or time and POSTs JSON to ingest. A local stub covers early milestones. The AWS path uses API Gateway, a Python Lambda, DynamoDB sample history, in-memory batch rules after persist, and structured CloudWatch log events (CELL_ALERT / INGEST_OK) as the dual sink.

Edge-to-cloud architecture — ROS 2 telemetry, HTTPS batching, durable samples, rule evaluation, and CloudWatch alert events.
  • Three edge packages (cell_msgs, cell_sim,cell_bridge) in C++20 / ROS 2 Jazzy, Dockerized for macOS → Linux
  • HTTPS JSON bridge with API key auth
  • Deployable dev cloud floor (API Gateway, Python Lambda, DynamoDB)
  • Post-deploy smoke asserting HTTP → DynamoDB → CloudWatch logs
  • Docs: charter, architecture, SHIPPED vs deferred, contracts, ADRs
  • Milestones M0–M5 complete; v1 frozen

Key decisions: C++20 / rclcpp for long-term robotics signal; HTTPS JSON batches (MQTT deferred); thin AWS floor; rules on the in-memory batch after persist; CELL_ALERT log events as the sole notification channel. Verification spans edge image tests, cloud unit tests, and post-deploy smoke on the live path.

Running against live AWS, the bridge batches samples and accepts them over authenticated HTTPS:

Edge bridge — batched samples accepted over authenticated HTTPS (HTTP 202 per batch).

Results & limits

End-to-end path is demoable three ways: cloud smoke alone, local edge with stub, and edge → live AWS. Contracts, ADRs, and an explicit SHIPPED list make the boundary legible. DynamoDB series is durable history and a runway for a later model or deeper robotics slice.

Durable telemetry history — cell observations persisted in DynamoDB with cycle, fault, timestamp, and schema metadata.
Rule-based health signal — a structured CELL_ALERT event with cell, cycle, fault reason, and sample values.

No real sensors, actuators, control loops, or robot models. No ML. Alerting is a structured log event, not a notification platform.

GitHub repository

Reach out via Contact to discuss this project or schedule a walkthrough.