Inference improvements#52
Merged
tomasz-lewicki merged 24 commits intomainfrom Mar 13, 2026
Merged
Conversation
added 9 commits
February 24, 2026 19:26
| # Mount bash history in the host filesystem in order to preserve history between containers | ||
| HOLOSOMA_DEPS_DIR="$HOME/.holosoma_deps" | ||
| mkdir -p "$HOLOSOMA_DEPS_DIR" | ||
| touch "$HOLOSOMA_DEPS_DIR/bash_history" |
Contributor
There was a problem hiding this comment.
should we separate this per container/env? Like if I ran something in the inference container, do I necessarily also want that history in the retargeting or isaacsim container?
lindashih
reviewed
Mar 12, 2026
lindashih
reviewed
Mar 12, 2026
Juyue
approved these changes
Mar 12, 2026
Contributor
Juyue
left a comment
There was a problem hiding this comment.
{2, 6, 9, 10} looks great! Great debugging features and thanks for removing dead code path.
asetapen
approved these changes
Mar 12, 2026
clayrosenthal
approved these changes
Mar 13, 2026
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.
Misc Inference code improvements
Auto-detect network interface:
TaskConfig.interfacedefaults to"auto"instead of"lo". When"auto", a newdetect_robot_interface()function scans/sys/class/net/for the first wired NIC that is operationally UP, skipping wifi/docker/veth interfaces. If no interface is found, we fallback toloAdded debug config overrides for easier testing. Specifically
DebugConfigtoTaskConfigwith three toggles:force_upright_imu(override gravity to[0,0,-1]),force_zero_angular_velocity, andforce_zero_action(hold default pose). Also added a per-joint diagnostic table (_print_joint_table) that prints q/dq/action in degrees alongside observation printing. This is super helpful for debugging policies.Freejoint detection in MuJoCo: The simulator no longer looks for a hardcoded
"floating_base_joint"name. Instead it finds the freejoint bymjJNT_FREEtype, and filters robot joints by joint type rather than name exclusion. This fixes compatibility with robot XMLs that don't follow this naming convention.Lazy extension entrypoint loading:
holosoma.config.inferenceandholosoma.config.robotentry points are now loaded on first use (_load_extensions()) instead of at module import time. This helps us avoid circular imports in extensions, while preseriving the nice--helpmessages in core and extensions. TheAnnotatedInferenceConfigis replaced by aget_annotated_inference_config()factory that triggers lazy loading before building the tyro CLI type.Suppress problematic tyro CLI fields —
SceneConfig.scene_filesandSceneConfig.rigid_objectsare annotated withtyro.conf.Suppressto prevent opaque parser errors when users pass unrecognized CLI flags. Previously, we would somehow always get error about these fields whenever any unrecognized field would get in.Remove dead SDK code. Deleted
sdk/command_sender/andsdk/state_processor/. These were superseded by the entry-point-basedsdk/__init__.pyinterface factory and are no longer imported anywhere. I should've deleted them in Unify the robot SDK interface #45.Added python3.12 mujoco setup scripts. I believe @kingb has a cleaner solution, though.
Docker Improvements: Inference docker now mounts
/dev/input(for joystick) and persists bash history across container restarts. Addedevdevtosetup.pydependencies.WBT observation printing: the
WholeBodyTrackingPolicynow respectsprint_observationsflag (was previously only wired in locomotion).Remove unused upper controller path in base.py policy postprocessing.