Sr. Mechatronics EngineerGurugram, IndiaOpen to relocation

Tanay Misra

Drives, control loops and fail-closed safety, from the bus to the robot.

Five years at SS Innovations. On the SSi Mantra surgical arm: bench-level motion control and the EtherCAT master, which I wrote. Alongside it, I lead the technical side of a four-person programme on a Unitree G1 humanoid: coordinator, safety path, navigation bridge, voice. 2,000+ commits across its last two platform generations.

G1 + Inspire hands · custom coordinator, safety path and voice
7+ joints
tuned at bench · frameless torque motor + harmonic reducer
½
drive bring-up time · bench commissioning flow on the EtherCAT master
1.53 s
localization kill → bridge emergency halt · fail-closed nav bridge
10×
MoveIt execution-time range · velocity scaling by retiming the plan
01 · Drives & motion control

The arm: bus,
drives, loops.

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 current/velocity/position loops with dual-encoder feedback, gain scheduling and friction compensation on frameless-torque-motor and harmonic-reducer joints, working directly with compliance, lost motion and two-mass resonance, for smooth low-speed surgical motion. ELMO and Ingenia servo controllers, Bode/Nichols on the bench for 7+ joints, and torque sensing on individual actuators.

7+ joints
tuned at bench · Bode/Nichols · dual-encoder feedback
½
drive bring-up time · bench commissioning flow
CiA 402
PDO mapping + drive state machine · EtherCAT master written by hand
EtherCAT master

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.

Safety & calibration

Safety and calibration work

Harnessing layouts, calibration procedures, repeatability checks and written acceptance tests (step-wise pass/fail, sign-off) in a regulated medical-device environment. That habit carried over to the humanoid, where the safety path now surfaces a failure to the operator instead of passing it silently.

Personal bench

My own four-drive bench

A personal EtherCAT bench of four CiA 402 drives with a torque-ceiling clamp on the command path, now at jog stage. The rule on it: a drive value counts as known only when my declaration and the drive's own readback agree, and nothing reaches an actuator until it is bench-verified.

02 · Safety paths

Safety paths
that fail closed.

On the humanoid the walking policy owns balance, so the safety work is about catching faults and refusing motion rather than braking. Both paths below run on the real robot.

1.53 s
localization kill → bridge emergency halt · measured live, motors not engaged
100 Hz
safety thread · requests FIFO 90 · pinned core · raises the alarm, never auto-damps
Coordinator safety

A safety thread that never fights the walking policy

Safety is a separate 100Hz thread pinned to a 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, flags safety_ok=false, raises the alert and leaves the damp to the operator. I rebuilt that watchdog path so a failure surfaces to the operator instead of passing silently.

Nav bridge

Walked it to a goal, then made the bridge refuse unsafe motion

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 about 10cm from 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: a localization kill put the bridge into emergency halt in a measured 1.53s. 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.

03 · The humanoid

One robot. Five generations.
Technical lead on the stack.

A Unitree G1 with Inspire dexterous hands, 41 degrees of freedom, on a four-person programme where I lead the technical side: tech stack, hardware accessories and software. 2,000+ commits across the last two of five platform generations. Monolithic proof-of-concept to a split-compute dual-Jetson platform, with a behavior-tree coordinator, a safety thread that requests the coordinator's highest SCHED_FIFO priority, and a voice pipeline that runs on 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
41 DOF
29 body + 12 hand · G1 + Inspire hands
<30 s
relocalization from anywhere, no operator input; the original stack took ~13 min from an operator-set pose · on an existing FAST-LIO2 + 3D-BBS stack
1,724 tests
Python + gtest in the team's v3_5 repo · 339 numbered fixes logged in the v3_4 repo
Coordinator

A behavior-tree coordinator commanding the G1 over DDS

Priority arbitration Emergency > Teleop > Voice > Idle in a BehaviorTree.CPP v4 coordinator I designed and built. When teleop ends it ramps the arms off rt/arm_sdk at 50Hz; rt/lowcmd belongs to the walking policy. Hand control publishes at 100Hz; hand-state feedback and vision results cross processes over a lock-free seqlock shared-memory interface, memory_order_acquire and all, and world state goes over ZeroMQ.

Edge voice AI

A robot you talk to, on-device, audio to audio

Whisper large-v3-turbo → an LLM (today a Gemma-4 26B MoE, with a custom fine-tuned 14B as rollback) → 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 built from scratch and benchmarked, then 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.

Manipulation

Built the MoveIt bridge; velocity scaling with measured receipts

A DDS bridge streaming joint targets at a commanded 500Hz (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 by retiming the planned trajectory's timestamps in the bridge: a measured 10× execution-duration range from the same planned path.

Voice latency. 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.

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
04 · Experience & publications

Experience and
publications.

Experience

JAN 2025 - NOW
Sr. Mechatronics Engineer · SS Innovations
Lead the technical side of the humanoid programme: direction, stack, the hiring interview. 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, motion control and validation on the surgical platform, and DFM for its sub-assemblies. Present for early installations; ran demos on live systems.
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.

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
Contact

Say hello.

Hiring for drives, motion control or robot safety? Write to me. I am open to relocation.

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