Bilal SabugarRobotics & product engineeringLet’s talk

02 / Robot control · Collaborative platform

OSRS.

How do you connect an experiment, its hardware and the data needed to understand it?

My contribution
Platform engineering & online system identification
Current stage
Open-source research platform
Available evidence
Source code · 20-trial SIL results · Technical report
OSRS source architecture figure connecting camera and load-cell feedback to the controller, hardware and dashboard
Control and perception architecture · OSRS experiment documentation

Inside the engineering / Interactive walkthrough

Follow one pass through the control loop.

In the ball-balancing module, observations become an estimate, then a correction and a record of what happened. Select a stage to see its job in the system.

01 / Sense

Collect observations of the ball.

The report describes camera-based tracking and load-cell readings beneath the plate. These are different ways to observe the same physical experiment.

Why this matters

Each sensor has different limitations. Camera visibility and force calibration matter before a controller can trust the observations.

Perception and tracking algorithms
Input
Camera frames and serial load-cell readings
Output
Visual position and force-based observations

A guided reading of the repository technical report. This panel does not run the controller or reproduce its experimental results.

Read all stages without using the tabs

Collect observations of the ball.

The report describes camera-based tracking and load-cell readings beneath the plate. These are different ways to observe the same physical experiment.

Why it matters: Each sensor has different limitations. Camera visibility and force calibration matter before a controller can trust the observations.

Input: Camera frames and serial load-cell readings
Output: Visual position and force-based observations

Perception and tracking algorithms

Turn observations into a useful state.

The documented estimator combines position estimates according to confidence and filters velocity. Online identification uses observations and previous control input to estimate the system’s response.

Why it matters: The controller needs an estimate of motion, not only a raw sensor value. Online identification lets the system estimate model parameters from incoming data instead of treating them as fixed assumptions.

Input: Sensor observations and previous control input
Output: Estimated position, velocity and model parameters

Sensor fusion and online system identification

Calculate and limit the correction.

The control pipeline considers the ball’s position and velocity, selects a response and converts the correction into joint targets. The report describes clamping targets to calibration bounds before sending them to the actuators.

Why it matters: The correction must become a command that fits the hardware’s configured range, rather than an unconstrained model output.

Input: Estimated state, target position and calibration
Output: Bounded joint commands for the robot

Movement algorithms and execution flow

Make the experiment visible.

The platform publishes telemetry to the interface. Repository guides and experiment figures let a reader inspect the architecture and the software-in-the-loop tests separately.

Why it matters: A system is easier to study when its commands, observations and test context can be reviewed together. Simulation figures remain labelled as simulation.

Input: Commands, observations and experiment context
Output: Telemetry, plots and development records

Platform source and experiment records

01 / The project

A robotics platform that connects hardware, camera feedback, simulation and a live control dashboard for repeatable experiments.

Core engineering team: Bilal Sabugar, Aditya Jadav and Archie Veera. My June–July 2026 research internship at the IITGN Robotics Lab included the ball-balancing work. OSRS brings hardware, perception and MuJoCo simulation into a common software platform.

Status
Open-source research platform
Tools & technologies
Python · FastAPI · React · MuJoCo · OpenCV · Dynamixel

02 / My contribution

Platform engineering & online system identification.

My credited responsibilities cover platform engineering, full-stack robotics and recursive least squares (RLS) identification—a method for estimating system behaviour from incoming data.

The project discloses AI-assisted development under human engineering direction in AI_DISCLOSURE.md.

03 / Purpose & architecture

The problem behind the implementation.

A controller is difficult to study when hardware commands, sensor observations and test records are disconnected. OSRS gives the team a shared platform for observing and repeating robotics experiments.

How the parts connect

A Python/FastAPI runtime connects robot interfaces, OpenCV perception and MuJoCo simulation to a React dashboard. The ball-balancing work joins camera and force estimates with control and online identification. Repository manuals describe the physical connections and calibration separately from software-in-the-loop evaluation.

04 / Engineering decisions

Decisions that shape the system.

01

Keep hardware and experiments modular

Robot, perception, research and simulation modules sit behind shared runtime services. This lets a new experiment reuse the command interface and telemetry instead of building a separate application.

02

Connect observation to control

The ball-balancing work combines visual tracking and load-cell estimates with a control loop. Its research notes describe the progression from simulated cooperative arms to a physical dual-arm platform.

03

Make the experiment inspectable

A React interface exposes commands and telemetry while the Python backend handles hardware and simulation. Source manuals document hardware connections, calibration and the experimental architecture.

Experiment evidence / Software-in-the-loop

Faster settling has a trade-off.

The repository compares manual gains with auto-tuning across 20 simulated trials per configuration. Auto-tuning settled sooner on average, but increased overshoot and final position error. These are reported test results, not physical-robot performance.

Control step
0.02 s · 50 Hz simulation loop
Trial duration
8 seconds
Initial displacement
Randomised ±8–20 cm
Comparison
Matched initial conditions and noise seed
Repository means ± standard deviation · n = 20 per configuration
MetricManual gainsAuto-tuning
Settling time3.63 ± 0.79 s2.19 ± 0.36 s
Overshoot9.15 ± 2.13%14.82 ± 1.12%
Steady-state error0.93 ± 0.17 cm1.64 ± 0.37 cm

Settling means remaining within 2 cm of the target for one continuous second. Steady-state error is mean absolute error over the final two seconds. Source: results_summary.json and run_experiments.py. The controller runs against a synthetic ball-and-plate plant; these experiments have not been independently re-run for this portfolio.

Step-response plot supplied in the OSRS software-in-the-loop experiment directory
Software-in-the-loop experiment figure · A simulation trace, not a measured physical-hardware result

05 / Results & current scope

What exists today.

A public robotics codebase, hardware and simulation guides, and a technical report documenting ball balancing and online system identification.

Engineering principleA useful robotics experiment needs more than a controller: it needs connected hardware, visible data and a way to repeat the test.

Repository figures include software-in-the-loop experiments. Simulation traces must not be read as physical hardware performance. The associated report is available as project research documentation; no independent journal publication is claimed here.

06 / Source material

Inspect the work.

Working on a related problem?

Tell me what you need to build, test or understand. Mention OSRS if it is a useful starting point.

Discuss your project

Continue exploring

RoboScoutBack to all work