"""Mirror calibrated O30 V10; retain existing V9 filenames for compatibility.""" from pathlib import Path import hashlib import json import shutil import struct import xml.etree.ElementTree as ET import numpy as np ROOT = Path(__file__).resolve().parents[2] MODEL = ROOT / 'src/linkerhand-sim/linker_hand_mujoco_ros2/linker_hand_mujoco_ros2/urdf/O30' SOURCE = MODEL / 'linker_hand_o30_right/linkerhand_o30_right_zero_v10_calibrated.urdf' OUTPUT = ROOT / 'assets/exports/O30_V10_left_right' RIGHT = OUTPUT / 'right/linkerhand_o30_right_v10.urdf' LEFT = OUTPUT / 'left/linkerhand_o30_left_v10.urdf' def mirror_stl(source, target): raw = source.read_bytes() count = struct.unpack_from('