Skip to content

fix(evals): robosuite scenes keep robosuite's elliptic contact cone - #4902

Closed
ruthwikdasyam wants to merge 1 commit into
mainfrom
ruthwik/fix/robosuite-contact-cone
Closed

ruthwikdasyam wants to merge 1 commit into
mainfrom
ruthwik/fix/robosuite-contact-cone

Conversation

@ruthwikdasyam

Copy link
Copy Markdown
Contributor

Problem

The 6 robosuite scenes (data/.lfs/robosuite.tar.gz) lost robosuite's <option cone="elliptic" impratio="20"> on export. On MuJoCo's pyramidal default, a grasped object creeps out of the closed gripper (about 0.27 mm/s) and falls. More pad friction or gripper force does not fix it.

Fix

Each scene.xml now has <option integrator="implicitfast" cone="elliptic" impratio="20" />, as robosuite 1.5.2 does. Creep drops to about 0.003 mm/s and the object holds. No code change.

Test

All 6 scenes load and step in MuJoCo with cone=elliptic, impratio=20.

Note: get_data does not re-extract an existing data/robosuite/; delete it locally to pick up the new archive.

The exported robosuite scenes lost robosuite's <option cone="elliptic"
impratio="20"> and ran on MuJoCo's pyramidal default, so a grasped object
crept out of the closed gripper (about 0.27 mm/s) until it fell. With
robosuite's settings the creep is about 0.003 mm/s and the object holds.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

go2 replay realtime (arm64)

Details
Benchmark suite Current: 44b5520 Previous: 1216a55 Ratio
peak memory 1699.723 MB 1705.691 MB 1.00
peak threads 368 threads 366 threads 1.01
network (transport) 2727.914 MB 2725.831 MB 1.00
disk write 1.742 MB 1.664 MB 1.05
instructions 134.994 G 135.978 G 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@codecov

codecov Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
7644 1 7643 40
View the top 1 failed test(s) by shortest run time
dimos.e2e_tests.test_dimsim_spatial_memory::test_go_to_the_bed
Stack Traces | 271s run time
lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x79ace98bf9b0>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x79ace913df80>
wait_for_system_ready = <function wait_for_system_ready.<locals>.wait at 0x79ace913e020>
human_input = <function human_input.<locals>.send_human_input at 0x79ace913e160>
dim_sim = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x79ae5afdd3d0>
explore_house = <function explore_house.<locals>.explore at 0x79ace913e980>

    @pytest.mark.self_hosted_large
    def test_go_to_the_bed(
        lcm_spy, start_blueprint, wait_for_system_ready, human_input, dim_sim, explore_house
    ) -> None:
        start_blueprint(
            "run",
            "unitree-go2-agentic",
            simulator="dimsim",
        )
        wait_for_system_ready(timeout=300.0)
    
        explore_house()
    
        human_input("go to the bed")
    
>       lcm_spy.wait_until_odom_position(-3.567, -1.332, threshold=3, timeout=180)

dim_sim    = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x79ae5afdd3d0>
explore_house = <function explore_house.<locals>.explore at 0x79ace913e980>
human_input = <function human_input.<locals>.send_human_input at 0x79ace913e160>
lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x79ace98bf9b0>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x79ace913df80>
wait_for_system_ready = <function wait_for_system_ready.<locals>.wait at 0x79ace913e020>

dimos/e2e_tests/test_dimsim_spatial_memory.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/lcm_spy.py:143: in wait_until_odom_position
    self.wait_for_message_result(
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x79ace913c860>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x79ace98bf9b0>
        threshold  = 3
        timeout    = 180
        x          = -3.567
        y          = -1.332
dimos/e2e_tests/lcm_spy.py:129: in wait_for_message_result
    wait_until(
        event      = <threading.Event at 0x79ace8e8ce00: unset>
        fail_message = 'Failed to get to position x=-3.567, y=-1.332'
        listener   = <function LcmSpy.wait_for_message_result.<locals>.listener at 0x79ace913c9a0>
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x79ace913c860>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x79ace98bf9b0>
        timeout    = 180
        topic      = '/odom#geometry_msgs.PoseStamped'
        type       = <class 'dimos.msgs.geometry_msgs.PoseStamped.PoseStamped'>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

predicate = <bound method Event.is_set of <threading.Event at 0x79ace8e8ce00: unset>>

    def wait_until(
        predicate: Callable[[], bool],
        *,
        timeout: float,
        interval: float = 0.1,
        message: str | None = None,
    ) -> None:
        """Poll ``predicate`` until it returns truthy or ``timeout`` elapses."""
        deadline = time.monotonic() + timeout
        while time.monotonic() < deadline:
            if predicate():
                return
            time.sleep(interval)
>       raise TimeoutError(message or f"Timed out after {timeout}s waiting for condition")
E       TimeoutError: Failed to get to position x=-3.567, y=-1.332

deadline   = 9712820.122610155
interval   = 0.1
message    = 'Failed to get to position x=-3.567, y=-1.332'
predicate  = <bound method Event.is_set of <threading.Event at 0x79ace8e8ce00: unset>>
timeout    = 180

.../utils/testing/waiting.py:35: TimeoutError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

This branch was previously deployed

1 inactive deployment
cachix — 44b55205 Deployed Oct 29, 2026 by ruthwikdasyam via cachix-build #14956
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant