Skip to content
View PrimelPJ's full-sized avatar
🛩️
Locked In
🛩️
Locked In

Block or report PrimelPJ

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
PrimelPJ/README.md

Primel Jayawardana

CS @ University of Calgary
Robotics · State Estimation · Distributed Systems · Full Stack

Portfolio   LinkedIn   X


I build at the infrastructure layer and ship production code.

Lately I have been building autonomy and robotics systems: GNSS-denied navigation and sensor fusion, ROS2 perception at the edge and in the cloud, language-grounded navigation, fleet telemetry, and on-robot anomaly detection. Co-founding Forq, a food payment platform on Stripe Issuing and Flinks open banking. Previously built ML data pipelines at ReMotion Prosthetics on Azure, and did compliance consulting at TechHive Advisory across Canada, the UAE, and Europe.

When I implement something, I read the paper first, and I publish the number that proves it works.


Featured

Carcajou   Python Kalman filter Stereo VO LiDAR

GNSS-denied vehicle navigation, and the benchmark that proves it.

When a car enters a tunnel the satellites go quiet and everything rests on inertial navigation. Carcajou is a strapdown INS with a 15-state error-state Kalman filter, plus a drift harness that reports the metric vendors are actually held to: error as a percent of distance travelled, against a 1 % automotive budget.

over a 120 s outage drift
Industrial MEMS, unaided 5.36 %
Industrial MEMS, ZUPT + NHC 0.22 % (70.6 m becomes 2.9 m)
Consumer MEMS, constraints only 1.28 % median, 20 % p95
Consumer MEMS, masked stereo VO 0.42 % / 0.92 %
Consumer MEMS, LiDAR map matching 0.01 % (about 0.15 m)

The synthetic generator algebraically inverts the discrete mechanization update, so a noise-free run retraces truth to 1.3e-7 m over 6 km. Every metre of reported drift is traceable to a deliberately injected sensor error rather than a bug, and that identity is asserted in CI.

Includes the results that undercut the pitch: NHC beats ZUPT, an unmasked camera is measurably worse than no camera, and mapping dynamic objects into the LiDAR map turned out not to matter on this route.


Robotics & Autonomy

Datum

Dynamic-scene-robust HD-map localization for cheap vision sensors. ONNX semantic masking drops moving objects, 2D ICP registers against the map, and a gated EKF fuses the pose. ROS2 with an AWS map and model pipeline.

ROS2 ONNX ICP EKF AWS

Lexicon

Open-vocabulary language-grounded navigation for ROS2. Say "go to the red chair" and a vision-language model (OWL-ViT) finds it, depth plus tf2 turn the pixel into a 3D map pose, and Nav2 drives there. Lifecycle nodes, a custom action interface, and inference that never blocks the executor.

ROS2 Nav2 PyTorch OWL-ViT

Vantage

Edge and cloud object detection router for ROS2. A small model runs on the robot every frame; a per-frame policy escalates only the uncertain frames to a heavier model on an AWS SageMaker endpoint, and captures hard cases to S3 to build a retraining set.

ROS2 ONNX SageMaker PyTorch

Reflex

Learned proprioceptive anomaly detection for ROS2. An autoencoder trains on a robot's normal joint velocity and effort, exports to ONNX, and runs in a lifecycle node publishing standard /diagnostics, flagging collisions, stalls, and oscillation in real time.

ROS2 PyTorch ONNX Autoencoder


Data & Infrastructure

Beacon

Robot fleet telemetry and monitoring platform. Robots stream over MQTT to AWS IoT Core, which splits into a hot path (Kinesis, Lambda, DynamoDB) for live monitoring and a cold path (Firehose, S3 Parquet, Athena) for analytics. Fully Terraformed, runs in simulation.

ROS2 AWS IoT Kinesis Terraform

Sluice

Serverless near-real-time market data lakehouse on AWS. Kinesis to Firehose to Parquet on S3, hourly Athena OHLCV rollups orchestrated by Step Functions, DynamoDB-backed serving API. Fully Terraformed.

AWS Kinesis Athena Terraform


Stack

Languages

Go Python TypeScript JavaScript Java Swift C++ SQL Bash R

Robotics & ML

ROS 2 Nav2 PyTorch ONNX NumPy SciPy pandas scikit-learn Matplotlib Azure ML

Backend & Infrastructure

Node.js Express Flask Spring Boot PostgreSQL Prisma Redis Supabase Docker Terraform AWS Azure Linux Stripe GitHub Actions pytest Jest

Frontend & Mobile

React React Native Expo SwiftUI Tailwind CSS Vite Vercel


Stats




Pinned Loading

  1. areej areej Public

    JavaScript

  2. Sluice Sluice Public

    Serverless near-real-time market data lakehouse on AWS. Kinesis to Firehose to Parquet on S3, hourly Athena OHLCV rollups via Step Functions, DynamoDB-backed API. Fully Terraformed.

    HCL

  3. Lexicon Lexicon Public

    Natural-language object retrieval for robots: a VLM grounds spoken commands to detected objects, then Nav2 drives to them. Built on ROS2 Jazzy.

    Python 1

  4. Carcajou Carcajou Public

    GNSS-denied vehicle navigation: strapdown INS, 15-state error-state Kalman filter, and a drift benchmark. 5.36% to 0.22% drift over a 120s outage.

    Python

  5. Datum Datum Public

    Dynamic-scene-robust HD-map localization for cheap vision sensors: ONNX masking + 2D ICP + gated EKF, on ROS2 with an AWS map/model pipeline.

    Python

  6. Aegis Aegis Public

    Go