<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Engineering on Mulham Fetna</title>
    <link>https://mulhamfetna.com/tags/engineering/</link>
    <description>Recent content in Engineering on Mulham Fetna</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>contact@mulhamfetna.com (Mulham Fetna)</managingEditor>
    <webMaster>contact@mulhamfetna.com (Mulham Fetna)</webMaster>
    <copyright>© 2026 Mulham Fetna</copyright>
    <lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mulhamfetna.com/tags/engineering/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>From tutorial project to production robot: a roadmap for the tendon hand twin</title>
      <link>https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/roadmap-to-production/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate>
      <author>contact@mulhamfetna.com (Mulham Fetna)</author>
      <guid>https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/roadmap-to-production/</guid>
      <description>&lt;div class=&#34;lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl&#34;&gt;&#xA;  The system works, and it teaches well. Getting it to drive real servos safely is a sequence of&#xA;well-scoped upgrades — each one grounded in a limitation measured earlier in this series.&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Where it stands&#xA;    &lt;div id=&#34;where-it-stands&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#where-it-stands&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Area&lt;/th&gt;&#xA;          &lt;th&gt;Today&lt;/th&gt;&#xA;          &lt;th&gt;Production target&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Hand tracking&lt;/td&gt;&#xA;          &lt;td&gt;image-normalized landmarks, one global calibration&lt;/td&gt;&#xA;          &lt;td&gt;metric world landmarks, per-finger calibration, a temporal filter&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Command mapping&lt;/td&gt;&#xA;          &lt;td&gt;flexion → ±50 N; the twin is a switch&lt;/td&gt;&#xA;          &lt;td&gt;flexion → tendon length; proportional curl&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Physics model&lt;/td&gt;&#xA;          &lt;td&gt;force motors, decorative horns, no self-contact&lt;/td&gt;&#xA;          &lt;td&gt;position servos on horns, tuned stiffness, contacts for grasping&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Middleware&lt;/td&gt;&#xA;          &lt;td&gt;one topic, default QoS, open on the LAN&lt;/td&gt;&#xA;          &lt;td&gt;parameters, explicit QoS, a watchdog, SROS 2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Containers&lt;/td&gt;&#xA;          &lt;td&gt;privileged, host namespaces, root, &lt;code&gt;xhost&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;least privilege, non-root, optional headless&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Code&lt;/td&gt;&#xA;          &lt;td&gt;classes copied into three files, no tests&lt;/td&gt;&#xA;          &lt;td&gt;one shared package, tests, CI&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Hardware&lt;/td&gt;&#xA;          &lt;td&gt;simulation only&lt;/td&gt;&#xA;          &lt;td&gt;a servo driver on the same topic&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;ol class=&#34;border-s-2 border-primary-500 dark:border-primary-300 list-none&#34;&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;li&gt;&#xA;  &lt;div class=&#34;flex&#34;&gt;&#xA;    &lt;div&#xA;      class=&#34;bg-primary-500 dark:bg-primary-300 text-neutral-50 dark:text-neutral-700 min-w-[30px] h-8 text-2xl flex items-center justify-center rounded-full ltr:-ml-12 rtl:-mr-[79px] mt-5&#34;&gt;&#xA;      &lt;span class=&#34;relative block icon&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 448 512&#34;&gt;&lt;path fill=&#34;currentColor&#34; d=&#34;M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z&#34;/&gt;&lt;/svg&gt;&#xA;&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;block p-6 rounded-lg shadow-2xl flex-1 ms-6 mb-10 break-words&#34;&gt;&#xA;      &lt;div class=&#34;flex justify-between&#34;&gt;&#xA;        &#xA;          &lt;h2 class=&#34;mt-0&#34;&gt;Stage 1 · Correctness&lt;/h2&gt;&#xA;        &#xA;        &#xA;      &lt;/div&gt;&#xA;      &#xA;        &lt;h4 class=&#34;mt-0&#34;&gt;&#xA;          Measure the right thing, command the right quantity&#xA;        &lt;/h4&gt;&#xA;      &#xA;      &lt;div class=&#34;mb-6&#34;&gt;&#xA;        &lt;p&gt;&lt;strong&gt;World landmarks.&lt;/strong&gt; Image-normalized coordinates bend angles by up to 16° with hand orientation&#xA;(&lt;a href=&#34;https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/mediapipe-hands/&#34; &gt;Part 4&lt;/a&gt;).&#xA;Read &lt;code&gt;multi_hand_world_landmarks&lt;/code&gt; instead, then recalibrate.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/roadmap-to-production/cover.png" />
    </item>
    
  </channel>
</rss>
