I’m Yugmil Patel, a robotics software engineer in Ottawa. I’ve architected two mobile-manipulation stacks end to end, and on the current one I’m the primary author of nearly everything: the real-time CAN driver, the safety firmware, stereo-depth grasping, the data platform that trains policies on the robot, and the fleet tooling that keeps it running without an engineer on site.
90%
Of commits on a field-deployed robot stack
250–400 Hz
Real-time control loop on a mixed CAN bus
1.26 µs
Analytic IK solve, vs 5.1 ms for TRAC-IK
4 mo
Empty repo to live CES 2025 demo
At Sielo I am the primary author, about 90% of commits, of the full software stack for Arlo, a wheelchair-mounted 6-axis assistive arm running ROS 2 on NVIDIA Jetson: the ros2_control hardware interface and real-time loop, MoveIt kinematics and teleoperation, a layered safety system with its own ESP32 firmware, stereo-depth vision-guided grasping, the data platform that trains policies on the robot, and the fleet tooling that keeps units running without an engineer on site. I also wrote the 1,900-line architecture guide, 20+ engineering and operator docs, and the production-readiness audit that gates features from dev to release.
01
Wrote the ros2_control hardware interface and CAN driver for seven actuators on a mixed bus, Robstride extended-ID and Damiao MIT protocols over SocketCAN: a 250–400 Hz loop with per-joint PD gains, velocity and friction feedforward, gravity compensation, and a zero-torque hand-guiding mode. Moved control and teleop to SCHED_FIFO with CPU pinning on a PREEMPT_RT Jetson kernel, which eliminated power-on jerk from scheduler preemption of the CAN write loop, then profiled a 78%-loaded Jetson process by process and recovered the headroom. Ported and extended a closed-form analytic IK plugin (MoveIt KinematicsBase, Eigen) with a gtest suite and A/B benchmark: 1.26 µs mean solve versus 5.1 ms for TRAC-IK, 100% success for both.
02
Built an OAK-D stereo pipeline running YOLOv8 on the camera VPU with aligned depth, lifting detections into 3D base-frame targets through a calibrated camera-to-base extrinsic and feeding a C++ grasp planner (pre-grasp, approach, close) via MoveGroupInterface and the gripper CAN driver. Shipped click-to-go in the operator UI: pixel to depth unprojection to base frame to a yaw-toward-target pose plan. Multi-camera low-latency video reaches the operator app with viewer-gated encoding, so the Jetson's compute stays with perception and control.
03
Sole author of the learning-data platform: MCAP episode recording with provenance, ROS-free conversion to LeRobot datasets, PyTorch training orchestration for ACT, Diffusion Policy, SmolVLA, and π0 with LoRA, a SQLite and Hugging Face Hub model registry with contract-version pinning against train/serve skew, and a deploy node that maps policy actions onto the arm's controllers. Built the Meta Quest teleoperation pipeline used to collect demonstrations and extended the open-source Rosetta LeRobot-to-ROS 2 bridge for the arm's policy server.
04
Designed the layered safety architecture: hardware E-stop relay, ESP32-C6 safety firmware (C++/PlatformIO) with a 20 Hz host heartbeat and 150 ms host-dead failsafe escalating to the power relay, host watchdog, velocity guard at the CAN boundary, and OS-level process kill as the backstop. Wrote the torque-residual collision detector with a halt ladder, motor-fault watchdogs, and start-up protection against wrapped-encoder jumps. When an uncommanded motion occurred, I ran the forensics from MCAP recordings, traced it to stale lift-motor feedback plus a mechanical jolt with the joystick provably zero, and shipped a joystick arming interlock and STOP-triggered snapshots.
05
Every behaviour passes through a simulation-first validation pipeline before it touches hardware, verifying kinematics, controller scheduling, trajectory tracking, and robot-state synchronization; the pipeline is simulator-agnostic (Gazebo, Isaac Sim, MuJoCo). Maintained the URDF/Xacro and SRDF descriptions across three CAD re-exports, verified joint by joint on hardware, and decimated collision meshes from 200k to 1–4k triangles. Closing the sim-to-real gap is a deliberate loop: models and controllers are refined against telemetry from the physical robot until simulated and real behaviour converge.
06
Built the push-to-deploy pipeline: on-device colcon and Vite builds, versioned release bundles, an atomic symlink flip, and a health gate with automatic rollback, driven by GitLab CI on a self-hosted Jetson runner with bench-canary ordering before robot targets. Put the fleet on a Tailscale tailnet with bootstrap provisioning and ran the first fully over-the-air deploy, GitLab to bench to robot, health-gated at each hop. Wrote the C++ off-process MCAP incident recorder (zero-deserialize raw CDR, 5-minute rolling buffer, 0.76 to 0.10 core) that fires on collisions, faults, and E-stops and uploads to Foxglove Cloud, plus per-robot Grafana Cloud metrics with alerts for offline robots, failed updates, and fault spikes.
Founding robotics engineer at a domestic-robotics startup. I led system design and integration of its first robot, R1D1, a mobile manipulator assembled from off-the-shelf subsystems from different vendors, delivered in four months and demonstrated live at CES 2025. I drove the systems integration, aligning robot models, interfaces, and test coverage across mechanical, electrical, and software teams in the US and China.
01
Wrote the hardware interfaces for each vendor's proprietary protocol over RS232 and RS485, bringing the mobile base, manipulator, and sensor subsystems into a single NVIDIA Jetson Orin NX, then built the ROS 2 control layer on top so the disparate hardware operated as one robot.
02
A complete perception-to-actuation pipeline running live: object detection, depth-based 3D position estimation, MoveIt grasp planning, and closed-loop handover to a person. The engineering was in the integration and reliability work, getting perception, planning, and control to agree on one robot and hold up across repeated public runs, on hardware that had been a concept four months earlier.
03
Designed the real-time streaming architecture for the second robot, R2D3: onboard 3D depth serialized into a live point cloud for a Meta Quest 3, with capture, encoding, transport, and in-headset rendering fitting a 100–200 ms end-to-end budget on the local network, and 300–400 ms teleoperating the robot in San Francisco from Ottawa.
01
National Research Council Canada · 2026
An NVIDIA Isaac Sim environment for an autonomous power-line inspection system: articulated robot and environment assets with physically meaningful properties, full ROS 2 integration for state, perception, planning and control, and reusable scenarios that test autonomy across poses, viewpoints, and operating conditions before deployment.
02
Open source · 2026 – present
An open platform for reinforcement learning and vision-language-action experiments: an Isaac Sim digital twin and ROS 2 pipeline for simulated data collection, policy training and evaluation, and deployment of learned manipulation policies, including VLA models like π0, to a physical arm.
03
Open source · 2024
Designed and built a four-wheel swerve-drive AMR with a modular attachment interface so one base serves multiple use cases. Derived the swerve kinematics from scratch and wrote a custom ROS 2 controller driven from a standard gamepad, validated in Ignition Gazebo with bridged sensor topics. Published openly: 30,000+ views, 600+ reactions, and a repost from Open Robotics.
04
Agricultural UGV · 2022–23
Led an eight-wheel autonomous agricultural UGV for seeding and weeding missions, built on ArduPilot, Jetson Nano, and RTK GPS for navigation and localization. Solved the control problems that come with an eight-wheel suspension, backed by ₹250,000 in government funding.
05
Larsen & Toubro
A motorized welding carriage automating long structural weld runs, with drive control and speed regulation tuned for consistent weld quality on industrial workpieces.
Email is fastest, and I usually reply the same day.