Benchmarks use fixed lighting, calibrated cameras, and curated datasets. A biomedical workspace has reflective surfaces on every instrument tray, staff walking through frame at unpredictable angles, and hardware mounted in the position where it fit the existing room — not the position where the model performs best. This article covers what changed when we deployed a computer vision guidance system on a real articulated arm in that environment: how the architecture differed from lab work, how the data pipeline had to be redesigned, and what we would do differently from the first sprint rather than discovering it after pilot.
The clinical context changes everything
The first and most important difference in biomedical robotics versus industrial settings is the consequence of an error. An industrial arm that misidentifies a part creates rework. An arm in a biomedical context that acts on a misidentification may act on a patient or a clinician. That consequence hierarchy reshapes every design decision downstream — confidence thresholds, fallback behaviours, motion primitives, and the speed at which the system is allowed to act when uncertain.
Regulatory documentation is not paperwork at the end of the project — it is an engineering constraint that runs through the whole build. Who labelled which dataset and when? Which model revision ran during which shift? What was the hardware configuration — camera firmware version, mount angle tolerance, lighting setup — when the system was validated? Answering those questions after the fact requires months of archaeology. Building the audit trail as part of the engineering pipeline requires one sprint of tooling.
Existing clinical workflow is the immovable constraint, not the perception system. The arm has to fit how the room operates today, not how it would operate if designed for the arm. That means dealing with occlusions that are routine in clinical practice, lighting that changes between procedures, and a validation process that has to happen between sessions on active schedules.
Safety architecture before model architecture
The first design review was not "which backbone?" It was: what is the arm allowed to do when model confidence drops below a threshold? The answer determined the entire system architecture. We separated the ROS 2 motion control layer from the vision model update path so the perception system could be updated weekly — as new data arrived and models improved — without touching the certified move primitives that controlled actual arm motion.
Confidence-gated actions were non-negotiable. Below a defined threshold, the arm pauses and requests human confirmation rather than acting on a low-confidence prediction. The threshold was set conservatively at first and tuned upward as the eval set accumulated real examples from the deployment environment. Starting conservative and relaxing with evidence is far safer than starting permissive and tightening after an incident.
We ran failure mode analysis on the vision pipeline before the first clinical pilot. Not a theoretical exercise — we deliberately introduced the failure conditions we expected: partial occlusion by a gloved hand, specular reflections from stainless surfaces, camera position drift from mount settling. For each failure mode, we documented the observable symptom, the fallback behaviour, and the recovery path. That document became the acceptance criteria for the pilot approval.
Software stack version locking for the motion control layer was enforced at the repository level. Perception code could merge on a weekly cycle. Motion control dependencies required a full regression run. The separation was imperfect — some integration surfaces remained — but it let the ML team iterate at ML speed without blocking clinical scheduling.
Data from the real room
Synthetic pre-training on rendered biomedical instrument datasets helped establish baseline feature recognition. Field fine-tuning on captures from the actual deployment environment made the system usable in production. The gap between those two stages was larger than the lab work suggested — reflectance on real instruments under real lighting behaved differently than any rendering pipeline accurately captured.
Every capture was logged with hardware metadata: camera firmware version, mount angle reading from a digital level, lighting scene ID, and the environmental timestamp. When performance dipped after a room reconfiguration, we could diff the hardware metadata across sessions and isolate the cause — camera angle had shifted by four degrees during a cleaning cycle — rather than guessing at model drift.
Clinician review gates were slow and non-negotiable. We attempted to accelerate the labelling review process once and produced a batch of mislabelled edge cases that took longer to correct than slowing down would have cost. A label reviewed carefully in two days is worth more than a label rushed out in four hours to hit a sprint demo. We built that lesson into the sprint calendar for all subsequent cycles.
Active learning — routing low-confidence captures to the labelling queue automatically — reduced the annotation volume required per performance increment by roughly 40% over three months. Instead of labelling everything uniformly, we prioritised the examples where the model was least certain: occlusion cases, specular highlights, instrument variants. The model improved faster on less data when the data targeted the gaps.
Inference on real silicon within a real control loop
A model that hits 95% accuracy on a GPU workstation is useless at 120ms latency on a Jetson Nano when the control loop budget is 40ms. Latency is not a secondary consideration — it is a primary constraint that should be profiled before architecture decisions are finalised. We set the latency target first, then selected model architecture and quantisation strategy to meet it.
Quantised YOLO variants with TensorRT compilation won on the metric that mattered: inference time within the control loop budget on the deployment board. We evaluated heavier backbone architectures on the offline accuracy benchmark, found a 3% improvement, and then profiled them on the actual Jetson Nano under camera load — the improvement disappeared and latency doubled. Offline accuracy benchmarks are not production profiles.
We standardise ONNX export and edge profiling the same way backend teams standardise load testing. It is part of the model release criteria, not optional validation after the fact. A model that passes accuracy eval but fails the edge profile does not ship — the architecture is iterated until both pass. This adds time in early sprints and saves multiple redesign cycles later.
Thermal throttling under sustained load was a failure mode we tested deliberately before pilot. The Jetson Nano in the initial enclosure design throttled after 18 minutes of continuous inference under the lighting temperature of the clinical room. We redesigned the enclosure with passive ventilation before the pilot date rather than discovering the issue during a live session.
What we would change from sprint one
Run the edge profile before finalising model architecture. We spent two weeks evaluating backbone variants on GPU and then re-evaluated everything on the target board. That work could have been parallelised or sequenced differently to avoid the rework.
Build the hardware metadata logging before the first field capture. We added it after the first unexplained performance dip. The captures taken before logging was in place could not be fully traced when questions arose later in the validation process.
Involve the clinical team in failure mode analysis at the start, not just in final acceptance testing. Their knowledge of operational edge cases — which instrument configurations are routine, which lighting scenarios are common, which workflow interruptions happen regularly — would have changed the initial eval set significantly and reduced the number of surprised-by-reality moments in the pilot.
The technical challenges in biomedical robotics are real but solvable. The harder part is the discipline of treating safety, documentation, and clinical workflow as engineering constraints from day one rather than compliance tasks added at the end. The teams that do this from the start ship pilots that become products. The teams that defer it ship pilots that never leave the pilot phase.