Release v1.3.1 - #84
Merged
Merged
Conversation
Mirror of dev/JH_i2rt-main into the public repo. Highlights: - Hardware revisions are now flat arm variants: the arm `--version` flag and the `version=` kwarg are removed from the robot-construction API in favour of `ArmType.YAM_ULTRA_2` and the `_ARM_VARIANTS` family/revision map. - New Intel RealSense D405 camera variants for the yam arm and the crank_4310 / linear_4310 grippers, plus the new `yam_station_*_d405` station models. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release v1.3.1 mirrors the current
dev/JH_i2rt-maintree into the public repository. Two changes land: arm hardware revisions become flat arm variants (the arm--versionflag andversion=kwarg are gone), and the YAM family gains Intel RealSense D405 camera models plus a newyam_station_*_d405station family.Per release direction,
pyproject.tomlstays at package version1.1.2— the release version is carried by the branch/PR title.Changes
Flat arm variants (replaces the
--versionflag)i2rt/robots/utils.py: added the_ARM_VARIANTSmap from variant name to(family, revision), added theArmType.YAM_ULTRA_2member plusArmType.family/ArmType.versionaccessors, and dropped theversionparameter from_load_arm_config,_load_gripper_config,combine_arm_and_gripper_xml, andArmType.get_xml_path— each now derives the on-disk(family, v<N>)pair from theArmTypealonei2rt/robots/get_robot.py: removed the keyword-onlyversionargument fromget_yam_robotand updated its config/XML lookups to resolve the revision fromarm_typei2rt/robots/motor_chain_robot.py: dropped the--versionCLI flag from_CliArgsand itsget_yam_robotcall; the--armdocstring now listsyam_ultra_2i2rt/robot_models/__init__.py: addedavailable_arm_families(), which reports only families that have at least one shippedv<N>/<arm>.xml, so a staged raw CAD export is not mistaken for a familyexamples/control_with_mujoco/control_with_mujoco.py: removed the--versionflag and thearm_versionparameter threaded through_robot_workerexamples/control_with_viser/control_with_viser.py: removed theversionparameter frommain()and itsget_yam_robotcallexamples/minimum_gello/minimum_gello.py: removedArgs.version, addedyam_ultra_2to the--armliteral, and dropped theversionargument from_run_viewer_loopand bothget_yam_robotcallsi2rt/robots/tests/test_robot_variants.py: addedArmType.YAM_ULTRA_2to the variant matrixi2rt/robots/tests/test_urdf_mjcf_alignment.py,i2rt/robots/tests/test_urdf_mjcf_posed_alignment.py: reworked the alignment fixtures to enumerate variants viaArmType.family/ArmType.versioninstead of a separate version argumentNew D405 camera and station models
i2rt/robot_models/arm/yam/v1/yam_crank_4310_d405.xml,yam_linear_4310_d405.xml,yam_linear_4310_d405.urdf: added wrist-camera YAM variants with the D405 placed at the calibrated wrist-camera extrinsici2rt/robot_models/arm/yam/v1/assets/crank_4310/,assets/d405/: added the crank gripper and D405 bracket/cable-holder meshes the new arm models referencei2rt/robot_models/gripper/crank_4310/crank_4310_d405.xml,i2rt/robot_models/gripper/linear_4310/linear_4310_d405.xml(+ theirassets/d405/meshes): added D405-equipped variants of both 4310 grippersi2rt/robot_models/station/yam_station_crank_4310_d405/,yam_station_linear_4310_d405/: added the two station models (URDF + MJCF + README with kinematics/extrinsics tables)i2rt/robot_models/station/assets/Bracket_for_top_D405.stl: added the top-mounted D405 bracket mesh shared by both stationsDocs
README.md: added the arm-variant table (mass, chain length, per-model doc links) includingyam_ultra_2, added theflexible_4310/no_grippergripper rows and the Viser / Flow Base example rows, and updated the zero-gravity and Python API snippets to passarm_typeAGENTS.md,CLAUDE.md: rewrote the "config-driven, runtime-composed models" section to describe hardware revisions as arm variants, document the two-placeArmType+_ARM_VARIANTSregistration, and note thatget_arm_xml_path(arm, version)andsync_gripper_mounts.py --version Nintentionally keep an explicit versionexamples/control_with_mujoco/README.md,examples/control_with_viser/README.md,examples/minimum_gello/README.md: dropped the--versionrow from the argument tables and addedyam_ultra_2to the--armvalue listsTest Plan
uv sync --all-packagesin a fresh checkout succeedsuv run python -c "import i2rt"imports cleanlyuv run pytest i2rt/robots/tests i2rt/utils/tests tests -qpasses (expected: 429 passed, 2 skipped)uv run ruff check .passesuv run python i2rt/robots/motor_chain_robot.py --helpshows no--versionflag and listsyam_ultra_2under--armuv run python examples/control_with_mujoco/control_with_mujoco.py --arm yam_ultra_2 --simlaunches--arm yam_ultra --version 2now errors rather than silently ignoring the flagKnown follow-ups (not introduced as regressions by this PR)
yam_crank_4310_d405.xml,yam_linear_4310_d405.xml,crank_4310_d405.xml,linear_4310_d405.xml) contain literal--inside header comments, which XML 1.0 forbids. MuJoCo loads them (TinyXML2 is lenient) butxml.etree.ElementTree— which this repo uses incombine_arm_and_gripper_xml— rejects them. Latent today because nothing references these models yet; should be fixed upstream in dev before they are wired intoArmType/GripperType..claude/launch.json(pre-existing inmain, untouched here) hardcodes a developer's absolute personal path and points at a doc site not present in this repo. Worth removing separately.🤖 Generated with Claude Code