Skip to content

Add Galaxea A1Z arm in simulation - #2947

Merged
KrishnaH96 merged 7 commits into
mainfrom
krishna/task/a1z-sim
Jul 14, 2026
Merged

Add Galaxea A1Z arm in simulation#2947
KrishnaH96 merged 7 commits into
mainfrom
krishna/task/a1z-sim

Conversation

@KrishnaH96

Copy link
Copy Markdown
Contributor

Problem

dimos has no support for the Galaxea A1Z, a standalone 6 DOF arm with an optional G1Z parallel gripper.

Review of #2925 asked for the work to be split. This PR is the first half, the arm as a simulation and model integration. Hardware support (the CAN adapter and a setup guide) is deliberately deferred to a follow up PR, so the absence of an adapter here is intentional. This PR supersedes #2925.

Solution

Adds the A1Z following the piper, xarm and a750 pattern.

  • Asset: official A1Z URDF packages vendored as one LFS archive, both variants included.
  • Config (robot/manipulators/a1z/config.py): a single has_gripper flag (default true) selects between the gripper model and the bare flange model and wires the gripper joint and hardware id from it.
  • Collision exclusions: enumerated with Drake ComputePointPairPenetration against the convex hulls it plans with. Without them planning fails at the home pose.
  • Blueprints: a1z-planner-only, a1z-planner-coordinator, coordinator-a1z and keyboard-teleop-a1z, all on the mock adapter. Teleop uses the viser backend.
  • Tests: a1z case added to the parametrized keyboard teleop test, blueprint registry regenerated.

How to Test

Sim only, no hardware needed.

Automated:

pytest dimos/robot/manipulators/test_blueprints.py dimos/robot/test_all_blueprints_generation.py -q

Teleop with interactive viser UI:

dimos run keyboard-teleop-a1z

Plan and execute (two terminals):

dimos run a1z-planner-coordinator -o manipulationmodule.visualization.backend=meshcat
python -i -m dimos.manipulation.planning.examples.manipulation_client
# plan([0.3, 0.5, -0.5, 0.2, 0.3, 0.2]); preview(); execute()
# plan([0.2]*6) is correctly rejected, joints 2 and 3 have one sided limits
# gripper(0.5)

Contributor License Agreement

  • I have read and approved the CLA.

@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds Galaxea A1Z simulation support. The main changes are:

  • Vendored A1Z URDF assets.
  • A1Z model and mock-hardware configuration.
  • Planner, coordinator, and keyboard-teleop blueprints.
  • Blueprint registry and test coverage updates.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
dimos/robot/manipulators/a1z/config.py Adds A1Z model paths, joint mapping, gripper configuration, and mock hardware setup.
dimos/robot/manipulators/a1z/blueprints/basic.py Adds planner/coordinator and coordinator-only A1Z blueprints.
dimos/robot/manipulators/a1z/blueprints/teleop.py Adds the A1Z keyboard teleoperation blueprint and visualization setup.
dimos/robot/all_blueprints.py Registers the new A1Z blueprint entry points.
dimos/robot/manipulators/test_blueprints.py Adds the A1Z teleop blueprint to the shared blueprint contract test.

Reviews (4): Last reviewed commit: "Update dimos/robot/manipulators/a1z/conf..." | Re-trigger Greptile

@KrishnaH96
KrishnaH96 requested a review from TomCC7 July 14, 2026 20:56
@codecov

codecov Bot commented Jul 14, 2026

Copy link
Copy Markdown

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
3 2 1 4
View the full list of 2 ❄️ flaky test(s)
dimos.e2e_tests.test_dimsim_spatial_memory::test_go_to_the_bed

Flake rate in main: 17.27% (Passed 115 times, Failed 24 times)

Stack Traces | 564s run time
lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec67e900>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x7f81e99fc5e0>
human_input = <function human_input.<locals>.send_human_input at 0x7f81e99fc7c0>
dim_sim = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x7f81ec3b7f20>
explore_house = <function explore_house.<locals>.explore at 0x7f81e99fcd60>

    @pytest.mark.self_hosted_large
    def test_go_to_the_bed(lcm_spy, start_blueprint, human_input, dim_sim, explore_house) -> None:
        start_blueprint(
            "run",
            "unitree-go2-agentic",
            simulator="dimsim",
        )
        lcm_spy.save_topic(".../McpClient/on_system_modules/res")
        lcm_spy.wait_for_saved_topic(".../McpClient/on_system_modules/res", timeout=1200.0)
    
        explore_house()
    
        human_input("go to the bed")
    
>       lcm_spy.wait_until_odom_position(-3.567, -1.332, threshold=2, timeout=180)

dim_sim    = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x7f81ec3b7f20>
explore_house = <function explore_house.<locals>.explore at 0x7f81e99fcd60>
human_input = <function human_input.<locals>.send_human_input at 0x7f81e99fc7c0>
lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec67e900>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x7f81e99fc5e0>

dimos/e2e_tests/test_dimsim_spatial_memory.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/lcm_spy.py:167: in wait_until_odom_position
    self.wait_for_message_result(
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x7f81ea53ab60>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec67e900>
        threshold  = 2
        timeout    = 180
        x          = -3.567
        y          = -1.332
dimos/e2e_tests/lcm_spy.py:153: in wait_for_message_result
    wait_until(
        event      = <threading.Event at 0x7f81ec560950: unset>
        fail_message = 'Failed to get to position x=-3.567, y=-1.332'
        listener   = <function LcmSpy.wait_for_message_result.<locals>.listener at 0x7f81e99fcf40>
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x7f81ea53ab60>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec67e900>
        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 0x7f81ec560950: 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   = 539610.871335105
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 0x7f81ec560950: unset>>
timeout    = 180

.../utils/testing/waiting.py:35: TimeoutError
dimos.e2e_tests.test_dimsim_walk_forward::test_walk_forward

Flake rate in main: 19.26% (Passed 109 times, Failed 26 times)

Stack Traces | 207s run time
lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec3d86e0>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x7f81e99fcae0>
human_input = <function human_input.<locals>.send_human_input at 0x7f81e99fd4e0>
dim_sim = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x7f81ec3da600>

    @pytest.mark.self_hosted_large
    def test_walk_forward(lcm_spy, start_blueprint, human_input, dim_sim) -> None:
        start_blueprint(
            "run",
            "--disable",
            "spatial-memory",
            "--disable",
            "security-module",
            "unitree-go2-agentic",
            simulator="dimsim",
        )
        lcm_spy.save_topic(".../McpClient/on_system_modules/res")
        lcm_spy.wait_for_saved_topic(".../McpClient/on_system_modules/res", timeout=1200.0)
    
        origin_x, origin_y = 1, 2
        dim_sim.set_agent_position(origin_x, origin_y)
    
        human_input("move forward 3 meter")
    
>       lcm_spy.wait_until_odom_position(origin_x + 3, origin_y, threshold=0.4, timeout=120)

dim_sim    = <dimos.e2e_tests.dim_sim_client.DimSimClient object at 0x7f81ec3da600>
human_input = <function human_input.<locals>.send_human_input at 0x7f81e99fd4e0>
lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec3d86e0>
origin_x   = 1
origin_y   = 2
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x7f81e99fcae0>

dimos/e2e_tests/test_dimsim_walk_forward.py:37: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/lcm_spy.py:167: in wait_until_odom_position
    self.wait_for_message_result(
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x7f81e99fc360>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec3d86e0>
        threshold  = 0.4
        timeout    = 120
        x          = 4
        y          = 2
dimos/e2e_tests/lcm_spy.py:153: in wait_for_message_result
    wait_until(
        event      = <threading.Event at 0x7f81ec3dad20: unset>
        fail_message = 'Failed to get to position x=4, y=2'
        listener   = <function LcmSpy.wait_for_message_result.<locals>.listener at 0x7f81e99fd940>
        predicate  = <function LcmSpy.wait_until_odom_position.<locals>.predicate at 0x7f81e99fc360>
        self       = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7f81ec3d86e0>
        timeout    = 120
        topic      = '/odom#geometry_msgs.PoseStamped'
        type       = <class 'dimos.msgs.geometry_msgs.PoseStamped.PoseStamped'>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

predicate = <bound method Event.is_set of <threading.Event at 0x7f81ec3dad20: 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=4, y=2

deadline   = 539817.501415238
interval   = 0.1
message    = 'Failed to get to position x=4, y=2'
predicate  = <bound method Event.is_set of <threading.Event at 0x7f81ec3dad20: unset>>
timeout    = 120

.../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.

TomCC7
TomCC7 previously approved these changes Jul 14, 2026
Comment thread dimos/robot/manipulators/a1z/config.py Outdated
@KrishnaH96
KrishnaH96 enabled auto-merge July 14, 2026 22:25
@KrishnaH96
KrishnaH96 added this pull request to the merge queue Jul 14, 2026
Merged via the queue into main with commit de6c8f0 Jul 14, 2026
30 of 31 checks passed
@KrishnaH96
KrishnaH96 deleted the krishna/task/a1z-sim branch July 14, 2026 23:01
T-Markus-Liang added a commit to T-Markus-Liang/dimos_m20 that referenced this pull request Jul 25, 2026
* fix: better save path for nav recordings (dimensionalOS#2796)

* feat(transport): rust zenoh support and api refactor (dimensionalOS#2753)

* feat(arduino): add ArduinoModule with full arduino sim (and real arduino) support (dimensionalOS#1879)

* Swastika/docs chore/cleanup and fix links (dimensionalOS#2832)

* Velocity API (dimensionalOS#2859)

* holonomic trajectory controller (dimensionalOS#2697)

Co-authored-by: danvi <bogdan@dimensionalos.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: leshy <lesh@sysphere.org>

* fix(config): merge nested module overrides (dimensionalOS#2829)

* fix(mls-planner): macOS fix, link pyo3 cdylib (dimensionalOS#2836)

* revert(voxels): drop unused time_window mode from VoxelGrid (dimensionalOS#2845)

* Revert "feat(arduino): add ArduinoModule with full arduino sim (and r… (dimensionalOS#2868)

* feat: external blueprint registration (dimensionalOS#2517)

* Fix test_basic_deployment in CI (dimensionalOS#2767)

* Run CI on merge queue (dimensionalOS#2936)

* fix: disallow unused _ variables (dimensionalOS#2928)

* Add Galaxea A1Z arm in simulation (dimensionalOS#2947)

Co-authored-by: cc <cc7@duck.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cc <55869557+TomCC7@users.noreply.github.com>

* Initial  xArm6 WorldBelief perception stack (dimensionalOS#2665)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat(g1-groot): navigation on the real G1 (Point-LIO + raytracing costmap) (dimensionalOS#2861)

Co-authored-by: Jeff Hykin <jeff.hykin@gmail.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* Swastika/docs/navigation relocalization (dimensionalOS#2764)

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(teleop): rename Hosted Teleop page to Remote Teleop (dimensionalOS#2967)

* feat(hosted-teleop): Go2 teleoperation over Cloudflare broker (dimensionalOS#2798)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: spomichter <pomichterstash@gmail.com>
Co-authored-by: Sam Bull <git@sambull.org>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* DimSim scene editing/authoring in JS + moving inside dimos (dimensionalOS#2187)

Co-authored-by: Paul Nechifor <paul@nechifor.net>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(unitree): marshal stop_movement zero-twist onto the loop thread (dimensionalOS#2977)

* chore: bump version to 0.0.14b1 (beta pre-release) (dimensionalOS#2971)

* add latency graph and description to hosted teleop page (dimensionalOS#2982)

* docs(hosted-teleop): operator how-to + config/architecture refresh (dimensionalOS#2945)

Co-authored-by: stash <pomichterstash@gmail.com>

* serve LFS media via dimos-docs-assets so it renders on mintlify (dimensionalOS#2973)

* style(docs): fix trailing whitespace breaking lint on main (dimensionalOS#2991)

* add dimTELE banner (dimensionalOS#2984)

Co-authored-by: stash <pomichterstash@gmail.com>

* feat: blueprint namespaces (dimensionalOS#2725)

* fix: delete dead dimsim code (dimensionalOS#2980)

Co-authored-by: leshy <lesh@sysphere.org>

* fix: run all tests locally (dimensionalOS#2995)

* add gitHub community files for contributors and AI-assisted development (dimensionalOS#2347)

* fix: large file (dimensionalOS#3003)

* Fix/ivan/3d planner voxel colors (dimensionalOS#2983)

* feat: ban `__new__` (dimensionalOS#3009)

* fix: remove removed cibuildwheel enable group breaking release builds (dimensionalOS#3007)

* [Backport release/0.0.14b1] fix: remove removed cibuildwheel enable group breaking release builds (dimensionalOS#3013)

Co-authored-by: stash <pomichterstash@gmail.com>

* build(deps): bump the actions group across 1 directory with 6 updates (dimensionalOS#3056)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(manipulation): stabilize agentic xArm simulation (dimensionalOS#2999)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* fewer fields (dimensionalOS#3052)

* Build all GC Roots into Cachix (dimensionalOS#2866)

* Control coordinator refactor to add declarative task (dimensionalOS#2959)

Co-authored-by: Paul Nechifor <paul@nechifor.net>
Co-authored-by: leshy <lesh@sysphere.org>

* feat(hosted-teleop): Arm hosted teleoperation over the Cloudflare broker (dimensionalOS#3004)

* feat(control): removes frozen set of input streams - now Any Input stream can be routed to the control coordinator (dimensionalOS#3110)

* chore: add OpenYAM URDF support (dimensionalOS#3049)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat: add Viser robot mesh display options (dimensionalOS#3112)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* add links to cards (dimensionalOS#3065)

* [Tests] Add unit tests for SequentialIds (dimensionalOS#3060)

* feat(web): PR 1 - Deno (dimensionalOS#3042)

* Ivan/feat/go2zenoh (dimensionalOS#3141)

* feat: Piper teleop polishing (dimensionalOS#3101)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat(hosted-teleop): auto-select operator view via robot_type broker config (dimensionalOS#3144)

* chore: remove get_project_root (dimensionalOS#3131)

* Add backport label to Dependabot PRs and check docker weekly (dimensionalOS#3067)

* fix memory issues DIM-1326 (dimensionalOS#3149)

Co-authored-by: danvi <bogdan@dimensionalos.com>

* docs(drone): fix dead pre-built RosettaDrone APK link (dimensionalOS#2546)

Co-authored-by: Paul Nechifor <paul@nechifor.net>

* feat: manipulation planning group (dimensionalOS#2645)

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* Go2 holonomic Pose tracker trajectory controller (dimensionalOS#2948)

Co-authored-by: Ivan Nikolic <lesh@sysphere.org>

* feat(web): PR 2 - Relay (dimensionalOS#3043)

* ai disclose rule update (dimensionalOS#3028)

* Replace httpx with aiohttp (dimensionalOS#2974)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* fix(memory2): recorder ingress reception_ts + poseless streams (dimensionalOS#2927)

* ci: smoke-build a wheel on PRs touching release build config (dimensionalOS#3008)

* Fix typos and grammar (dimensionalOS#2726)

Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* feat: visualize manipulation obstacles (dimensionalOS#3108)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat(web): PR 3 - Python client (dimensionalOS#3044)

* feat(web): PR 4 - E2E (dimensionalOS#3045)

* Swastika/chore/readme update (dimensionalOS#3027)

* Persist dependencies on disk (dimensionalOS#3167)

* ci: label first-time contributor PRs (dimensionalOS#3171)

* Add @Dreamsorcerer as global codeowner (dimensionalOS#3165)

* feat(m20): integrate official MuJoCo model

* docs(m20): add official MuJoCo integration guide

* docs(m20): add English guide and fidelity review

* docs(m20): make English guide primary

* docs(m20): document lateral and yaw limitation

* docs(m20): add MuJoCo test matrix

* docs(m20): consolidate test matrix into guides

* docs(m20): clarify guide reading order

* fix(memory2): preserve recorder ingress timing

* fix(memory2): avoid undefined frame in pose warning

* fix(config): merge nested module overrides (dimensionalOS#2829)

(cherry picked from commit 66ce423)

* style: format Zenoh service

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Andrew Lauer <69774903+aclauer@users.noreply.github.com>
Co-authored-by: Jeff Hykin <jeff.hykin@gmail.com>
Co-authored-by: Swastika <44317853+swstica@users.noreply.github.com>
Co-authored-by: Dan Vi <bogwi@tutamail.com>
Co-authored-by: danvi <bogdan@dimensionalos.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: leshy <lesh@sysphere.org>
Co-authored-by: cc <55869557+TomCC7@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>
Co-authored-by: Sam Bull <git@sambull.org>
Co-authored-by: Krishna_Hundekari <113392023+KrishnaH96@users.noreply.github.com>
Co-authored-by: cc <cc7@duck.com>
Co-authored-by: Jheng-Yi Lin <75511000+jhengyilin@users.noreply.github.com>
Co-authored-by: Pim Van den Bosch <49974392+Nabla7@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: stash <pomichterstash@gmail.com>
Co-authored-by: ruthwikdasyam <63036454+ruthwikdasyam@users.noreply.github.com>
Co-authored-by: Viswajit <39920874+Viswa4599@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dimos-release-bot[bot] <4143859+dimos-release-bot[bot]@users.noreply.github.com>
Co-authored-by: Mustafa Bhadsorawala <39084056+mustafab0@users.noreply.github.com>
Co-authored-by: 起岚 <155608604+xiaoyaoqilan@users.noreply.github.com>
Co-authored-by: Daniel Eneh <72442267+Danny024@users.noreply.github.com>
Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
T-Markus-Liang added a commit to T-Markus-Liang/dimos_m20 that referenced this pull request Jul 25, 2026
* fix: better save path for nav recordings (dimensionalOS#2796)

* feat(transport): rust zenoh support and api refactor (dimensionalOS#2753)

* feat(arduino): add ArduinoModule with full arduino sim (and real arduino) support (dimensionalOS#1879)

* Swastika/docs chore/cleanup and fix links (dimensionalOS#2832)

* Velocity API (dimensionalOS#2859)

* holonomic trajectory controller (dimensionalOS#2697)

Co-authored-by: danvi <bogdan@dimensionalos.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: leshy <lesh@sysphere.org>

* fix(config): merge nested module overrides (dimensionalOS#2829)

* fix(mls-planner): macOS fix, link pyo3 cdylib (dimensionalOS#2836)

* revert(voxels): drop unused time_window mode from VoxelGrid (dimensionalOS#2845)

* Revert "feat(arduino): add ArduinoModule with full arduino sim (and r… (dimensionalOS#2868)

* feat: external blueprint registration (dimensionalOS#2517)

* Fix test_basic_deployment in CI (dimensionalOS#2767)

* Run CI on merge queue (dimensionalOS#2936)

* fix: disallow unused _ variables (dimensionalOS#2928)

* Add Galaxea A1Z arm in simulation (dimensionalOS#2947)

Co-authored-by: cc <cc7@duck.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cc <55869557+TomCC7@users.noreply.github.com>

* Initial  xArm6 WorldBelief perception stack (dimensionalOS#2665)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat(g1-groot): navigation on the real G1 (Point-LIO + raytracing costmap) (dimensionalOS#2861)

Co-authored-by: Jeff Hykin <jeff.hykin@gmail.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* Swastika/docs/navigation relocalization (dimensionalOS#2764)

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(teleop): rename Hosted Teleop page to Remote Teleop (dimensionalOS#2967)

* feat(hosted-teleop): Go2 teleoperation over Cloudflare broker (dimensionalOS#2798)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: spomichter <pomichterstash@gmail.com>
Co-authored-by: Sam Bull <git@sambull.org>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* DimSim scene editing/authoring in JS + moving inside dimos (dimensionalOS#2187)

Co-authored-by: Paul Nechifor <paul@nechifor.net>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(unitree): marshal stop_movement zero-twist onto the loop thread (dimensionalOS#2977)

* chore: bump version to 0.0.14b1 (beta pre-release) (dimensionalOS#2971)

* add latency graph and description to hosted teleop page (dimensionalOS#2982)

* docs(hosted-teleop): operator how-to + config/architecture refresh (dimensionalOS#2945)

Co-authored-by: stash <pomichterstash@gmail.com>

* serve LFS media via dimos-docs-assets so it renders on mintlify (dimensionalOS#2973)

* style(docs): fix trailing whitespace breaking lint on main (dimensionalOS#2991)

* add dimTELE banner (dimensionalOS#2984)

Co-authored-by: stash <pomichterstash@gmail.com>

* feat: blueprint namespaces (dimensionalOS#2725)

* fix: delete dead dimsim code (dimensionalOS#2980)

Co-authored-by: leshy <lesh@sysphere.org>

* fix: run all tests locally (dimensionalOS#2995)

* add gitHub community files for contributors and AI-assisted development (dimensionalOS#2347)

* fix: large file (dimensionalOS#3003)

* Fix/ivan/3d planner voxel colors (dimensionalOS#2983)

* feat: ban `__new__` (dimensionalOS#3009)

* fix: remove removed cibuildwheel enable group breaking release builds (dimensionalOS#3007)

* [Backport release/0.0.14b1] fix: remove removed cibuildwheel enable group breaking release builds (dimensionalOS#3013)

Co-authored-by: stash <pomichterstash@gmail.com>

* build(deps): bump the actions group across 1 directory with 6 updates (dimensionalOS#3056)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(manipulation): stabilize agentic xArm simulation (dimensionalOS#2999)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* fewer fields (dimensionalOS#3052)

* Build all GC Roots into Cachix (dimensionalOS#2866)

* Control coordinator refactor to add declarative task (dimensionalOS#2959)

Co-authored-by: Paul Nechifor <paul@nechifor.net>
Co-authored-by: leshy <lesh@sysphere.org>

* feat(hosted-teleop): Arm hosted teleoperation over the Cloudflare broker (dimensionalOS#3004)

* feat(control): removes frozen set of input streams - now Any Input stream can be routed to the control coordinator (dimensionalOS#3110)

* chore: add OpenYAM URDF support (dimensionalOS#3049)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat: add Viser robot mesh display options (dimensionalOS#3112)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* add links to cards (dimensionalOS#3065)

* [Tests] Add unit tests for SequentialIds (dimensionalOS#3060)

* feat(web): PR 1 - Deno (dimensionalOS#3042)

* Ivan/feat/go2zenoh (dimensionalOS#3141)

* feat: Piper teleop polishing (dimensionalOS#3101)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat(hosted-teleop): auto-select operator view via robot_type broker config (dimensionalOS#3144)

* chore: remove get_project_root (dimensionalOS#3131)

* Add backport label to Dependabot PRs and check docker weekly (dimensionalOS#3067)

* fix memory issues DIM-1326 (dimensionalOS#3149)

Co-authored-by: danvi <bogdan@dimensionalos.com>

* docs(drone): fix dead pre-built RosettaDrone APK link (dimensionalOS#2546)

Co-authored-by: Paul Nechifor <paul@nechifor.net>

* feat: manipulation planning group (dimensionalOS#2645)

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* Go2 holonomic Pose tracker trajectory controller (dimensionalOS#2948)

Co-authored-by: Ivan Nikolic <lesh@sysphere.org>

* feat(web): PR 2 - Relay (dimensionalOS#3043)

* ai disclose rule update (dimensionalOS#3028)

* Replace httpx with aiohttp (dimensionalOS#2974)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* fix(memory2): recorder ingress reception_ts + poseless streams (dimensionalOS#2927)

* ci: smoke-build a wheel on PRs touching release build config (dimensionalOS#3008)

* Fix typos and grammar (dimensionalOS#2726)

Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>

* feat: visualize manipulation obstacles (dimensionalOS#3108)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat(web): PR 3 - Python client (dimensionalOS#3044)

* feat(web): PR 4 - E2E (dimensionalOS#3045)

* Swastika/chore/readme update (dimensionalOS#3027)

* Persist dependencies on disk (dimensionalOS#3167)

* ci: label first-time contributor PRs (dimensionalOS#3171)

* Add @Dreamsorcerer as global codeowner (dimensionalOS#3165)

* feat: add RoboPlan multi-robot planning (dimensionalOS#3155)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Andrew Lauer <69774903+aclauer@users.noreply.github.com>
Co-authored-by: Jeff Hykin <jeff.hykin@gmail.com>
Co-authored-by: Swastika <44317853+swstica@users.noreply.github.com>
Co-authored-by: Dan Vi <bogwi@tutamail.com>
Co-authored-by: danvi <bogdan@dimensionalos.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: leshy <lesh@sysphere.org>
Co-authored-by: cc <55869557+TomCC7@users.noreply.github.com>
Co-authored-by: Paul Nechifor <paul@nechifor.net>
Co-authored-by: Sam Bull <git@sambull.org>
Co-authored-by: Krishna_Hundekari <113392023+KrishnaH96@users.noreply.github.com>
Co-authored-by: cc <cc7@duck.com>
Co-authored-by: Jheng-Yi Lin <75511000+jhengyilin@users.noreply.github.com>
Co-authored-by: Pim Van den Bosch <49974392+Nabla7@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: stash <pomichterstash@gmail.com>
Co-authored-by: ruthwikdasyam <63036454+ruthwikdasyam@users.noreply.github.com>
Co-authored-by: Viswajit <39920874+Viswa4599@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dimos-release-bot[bot] <4143859+dimos-release-bot[bot]@users.noreply.github.com>
Co-authored-by: Mustafa Bhadsorawala <39084056+mustafab0@users.noreply.github.com>
Co-authored-by: 起岚 <155608604+xiaoyaoqilan@users.noreply.github.com>
Co-authored-by: Daniel Eneh <72442267+Danny024@users.noreply.github.com>
Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
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.

3 participants