Sr. Mechatronics EngineerGurugram, IndiaOpen to relocation

Tanay Misra

Five years of bench-level motion control on the SSi Mantra surgical arm, where I wrote the EtherCAT master. Alongside it, the tech stack of a Unitree G1 humanoid on a four-person programme: coordinator, safety path, navigation bridge, voice. 2,000+ commits across five platform generations.

G1 + Inspire hands · custom coordinator, safety path and voice
2,000+
commits · humanoid tech stack · five generations
5 yrs
surgical-arm motion control, bench-validated · SSi Mantra
41 DOF
29 body + 12 hand · G1 + Inspire hands
100 Hz
safety thread · requests FIFO 90 · pinned core
01 · The humanoid

One robot. Five generations.
Accountable for the stack.

A Unitree G1 with Inspire dexterous hands, 41 degrees of freedom, on a four-person programme where I am accountable for the tech stack, hardware accessories and software: 2,000+ commits across five platform generations. Monolithic proof-of-concept to a split-compute dual-Jetson platform, with a behavior-tree coordinator, a safety thread at the top of the scheduler, and a voice pipeline that never leaves the robot. Coordinator, safety, voice and the nav bridge all run on the real robot.

~8,400 LOC
C++ coordinator · BehaviorTree.CPP v4 · 3 threads request SCHED_FIFO
100 Hz
safety monitor · requests FIFO 90 · pinned core · raises the alarm, never auto-damps
1.5 min
cold LiDAR relocalization, down from ~13 min · on an existing FAST-LIO2 + 3D-BBS stack
1,316 +408
Python test functions + gtest cases, v3_5 alone · 113+ bugs tracked & fixed in-repo
Coordinator & safety

The spine: a behavior-tree coordinator commanding the G1 over DDS, with a safety thread at the top of the scheduler

Priority arbitration Emergency > Teleop > Voice > Autonomous > Idle in a BehaviorTree.CPP v4 coordinator. Arm joint commands go out on a 500Hz timer, the rate the DDS bus expects; hand control publishes at 100Hz; processes exchange state over a hand-rolled lock-free seqlock shared-memory interface, memory_order_acquire and all. Safety is its own 100Hz thread on a dedicated core, requesting SCHED_FIFO, watching thermal and battery thresholds. It never auto-damps, by design: the walking policy controls balance, so a damp from a side thread mid-walk causes the fall it exists to prevent. If the safety thread dies, the coordinator releases the arms, opens the hands, raises the alert and leaves the damp to the operator. That path used to report the robot as safe while its damp call did nothing. I found it and made it fail visibly.

Edge voice AI

A robot you talk to, fully offline, audio to audio

Whisper large-v3-turbo → a custom fine-tuned 14B LLM → Kokoro TTS. The pipeline was originally squeezed onto a 16GB Orin NX (three models taking turns on one GPU behind a shared lock), and now runs on an AGX Orin 64GB with room to breathe. STT, TTS and VAD candidates each went through my own head-to-head shootout harness. A custom speculative-decoding path (draft model, batched verify, KV realignment) was written from scratch, benchmarked, and retired behind a flag when it lost on the number. In a design A/B, tag-routing beat LLM tool-calling by a measured 690ms per turn. Separately, I built a C++ speaker-ID pipeline that knows who is talking: Silero VAD → TitaNet embeddings, with temporal evidence gating.

Autonomous nav

Walked it to a goal, then spent the month making it refuse to

The chain came up end to end on hardware: a goal set 1.5m out and 90° off heading, the robot aligned, walked 1.10m, and stopped within 10cm of it, eyes on, gantry-suspended. On the nav chain, my part is the bridge from planner to motors and everything guarding it, which is where the month actually went. Velocity and yaw-rate shaping under caps. Fail-closed on stale localization, measured at 1.53s from kill to emergency stop. No state feed, no drive: it publishes only zeros. Armed only by an explicit flag, disarmed by default, walked up a rung ladder where every step needed a human to say go. The planner itself (A*, elastic band, pure pursuit) is an existing stack I drive, not one I wrote.

Manipulation

Built the MoveIt bridge; velocity scaling with measured receipts

A 500Hz DDS bridge (2ms timer) with cubic-Hermite interpolation, fed by MoveIt planners across OMPL, Pilz and CHOMP. Velocity scaling had no effect on execution in that pipeline, so I applied it in the interpolator by rescaling trajectory timestamps directly: a measured 10× execution-duration range from the same planned path.

02 · From the optimization log

Measured, or it
didn't happen.

Before/after numbers committed to git on an earlier generation of the voice stack. The wins came from KV-cache reuse, sentence-level LLM/TTS interleaving, and a GPU lock that hands each model the whole GPU on its turn, not bigger hardware. On today's stack, the same measure runs p50 2.82s, p95 4.82s over 40 live turns.

one turn · audio → audio · illustrative trace
Pipeline
Before
After
Δ
Perceived latency, speech end to first audio (chat), earlier generation
5.5s
2.9s
−47%
RAG-grounded reply
9-10s
5.6-6.0s
−39%
TTS per sentence
2,000ms
300-360ms
−83%
Tag-routing vs tool-calling (design A/B)
n/a
−690ms
per turn, measured
03 · Where the discipline came from

Before the humanoid,
an operating room.

Five years on SSi Mantra, India's first indigenous surgical robot, a 12-DOF system. Motion control on its arm, validated at bench level: cascaded PID, gain scheduling and friction compensation on frameless-torque-motor joints, for smooth low-speed surgical motion. Hands deep in harmonic drives, ELMO and Ingenia servo controllers, Bode/Nichols on the bench for 7+ joints.

EtherCAT, by hand

A pySOEM EtherCAT master for the arm: PDO mapping, the CiA 402 (DS402) drive state machine, bring-up and tuning across 7+ joints, and a bench commissioning flow that cut drive bring-up time by more than half. I wrote the master. Every byte on the bus accounted for.

Medical-grade means paranoid

Harnessing layouts, calibration procedures, repeatability and system-level safety compliance, the unglamorous work that lets a robot pass medical scrutiny. That habit carried over to the humanoid, where the safety path now fails visibly instead of reporting a success it never delivered.

Soft robots, no bones

At NUS in Dr. Marcelo Ang's lab, I designed and fabricated soft pneumatic actuators whose asymmetric bending is baked into the material itself: two elastomers cured as a viscosity gradient. Springer IAS 2022. An IEEE hexapod paper before that.

Viscosity-gradient soft pneumatic actuator, CAD render from the NUS work
Fig: viscosity-gradient soft pneumatic actuator · Springer IAS 2022 · w/ NUS
04 · Experience & paper trail

Receipts.

Experience

JAN 2025 - NOW
Sr. Mechatronics Engineer · SS Innovations
Accountable for the humanoid tech stack, hardware accessories and software. Bench-level motion control on the surgical arm, and its EtherCAT master.
MAY 2022 - DEC 2024
Mechatronics Engineer · SS Innovations
Harnessing and calibration for medical-grade actuators, and DFM for the surgical platform's sub-assemblies.
JUN 2021 - MAY 2022
Robotics Software Intern · SS Innovations
Early controls software for the surgical platform.
FEB - JUN 2020
Research Intern · NUS, Dr. Marcelo Ang's Lab
Soft pneumatic actuators; squid-inspired soft robot locomotion.

Education · Publications · Honors

2020 - 2022
M.Tech Robotics · DIAT (DRDO), Pune
GPA 8.05/10 · thesis on motion control of medical-grade actuators.
SPRINGER · IAS 2022
GradNet: viscosity-gradient soft pneumatic actuators
IEEE · ICCAR 2020
Amphibian hexapod with computer vision for rescue ops
2018 · PITTSBURGH
ASME Student Design Competition, World Rank 10
Asia-Pacific champions → world finals.
Finis

Say hello.

If any of this resonated (the humanoid, the bus, the bends without bones), write to me.

tanaymisra97@gmail.com → LINKEDIN CV · PDF
© 2026 Tanay Misra · Gurugram, India