Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
8c9d940
feat(manipulators): add Galaxea A1Z arm adapter
jetsonearth Jul 14, 2026
e5101fa
feat(galaxea_a1z): native macOS support via userspace gs_usb CAN tran…
jetsonearth Jul 14, 2026
6610986
feat(galaxea_a1z): coordinator blueprint and robot config
jetsonearth Jul 14, 2026
1c63b09
Merge remote-tracking branch 'origin/main' into feat/galaxea-a1z-adapter
jetsonearth Jul 15, 2026
edeef0d
feat(galaxea_a1z): planner and keyboard-teleop blueprints on real har…
jetsonearth Jul 15, 2026
94a378e
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 15, 2026
66e60fc
feat(galaxea_a1z): fall back to userspace gs_usb when socketcan is un…
jetsonearth Jul 16, 2026
ada4100
fix(galaxea_a1z): stabilize startup and gripper modeling
Nabla7 Jul 17, 2026
ec2e041
fix(galaxea_a1z): harden hardware setup and remove teleop
Nabla7 Jul 19, 2026
aa94234
feat: add A1Z teach and replay workflow
Nabla7 Jul 19, 2026
a0d052d
refactor: narrow A1Z integration scope
Nabla7 Jul 19, 2026
08f8cdd
fix: preserve existing A1Z teleop
Nabla7 Jul 19, 2026
a72b843
refactor: tighten A1Z PR scope
jetsonearth Jul 19, 2026
041e6c5
feat: record A1Z camera observations
jetsonearth Jul 19, 2026
fe873cf
feat: keyboard gripper control in A1Z teach mode
jetsonearth Jul 19, 2026
a13b1a1
feat: automate A1Z host setup
jetsonearth Jul 19, 2026
039cc9b
fix: drain A1Z gs_usb RX on a reader thread
jetsonearth Jul 19, 2026
67c9af6
fix: replay A1Z teach episodes at natural speed
jetsonearth Jul 19, 2026
f48249f
feat: polish A1Z teach mode UX and denoise recording session
jetsonearth Jul 19, 2026
759431e
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 19, 2026
43593f0
feat: run LeRobot policies on A1Z
jetsonearth Jul 19, 2026
87330bf
fix: make A1Z setup reproducible and safer
Nabla7 Jul 21, 2026
9c99f8b
fix: rebase Piper teleop on main
TomCC7 Jul 21, 2026
c7c765f
feat: allow undoing the last saved episode
Nabla7 Jul 21, 2026
75ab36f
refactor: simplify Piper gripper routing
TomCC7 Jul 21, 2026
63ed5e3
refactor: address Piper teleop review
TomCC7 Jul 21, 2026
e41baf2
test: refine Piper teleop coverage
TomCC7 Jul 21, 2026
1dbf767
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 21, 2026
c380ca1
refactor: simplify Piper integration
TomCC7 Jul 21, 2026
1a15f18
fix: satisfy Piper teleop type checks
TomCC7 Jul 21, 2026
40b1152
fix: type Piper SDK state
TomCC7 Jul 21, 2026
fa7ea5c
chore: fix Piper pre-commit checks
TomCC7 Jul 21, 2026
339c3ec
Add composable A1Z learned policy skills
Nabla7 Jul 21, 2026
e20b657
fix(unitree): marshal stop_movement zero-twist onto the loop thread (…
ruthwikdasyam Jul 15, 2026
61c2295
Revert "fix(unitree): marshal stop_movement zero-twist onto the loop …
Nabla7 Jul 21, 2026
a951ec0
fix(zenoh): isolate sessions to loopback by default
jeff-hykin Jul 21, 2026
1d3ca53
Merge remote-tracking branch 'origin/main' into feat/galaxea-a1z-adapter
Nabla7 Jul 21, 2026
450663b
Regenerate blueprint registry after main merge
Nabla7 Jul 21, 2026
da5e540
Consolidate A1Z learning documentation
Nabla7 Jul 21, 2026
413b771
Revert "fix(zenoh): isolate sessions to loopback by default"
Nabla7 Jul 21, 2026
2537596
docs(manipulation): tell the real story — planning, learning, platforms
mustafab0 Jul 21, 2026
6f27e91
feat(zenoh): partition multicast discovery per machine
jeff-hykin Jul 21, 2026
135c304
Revert "feat(zenoh): partition multicast discovery per machine"
jeff-hykin Jul 21, 2026
4b3475b
doc: piper integration
TomCC7 Jul 21, 2026
b9a07cb
feat(zenoh): add usrpwd password auth defaulting to machine id
jeff-hykin Jul 21, 2026
1d1f61c
fix: accumulate EEF teleop commands
TomCC7 Jul 21, 2026
c9c16d8
merge: add hosted arm teleoperation
TomCC7 Jul 21, 2026
4c9174c
doc: simplify integration doc
TomCC7 Jul 21, 2026
74cbd82
chore: cleanup
TomCC7 Jul 21, 2026
2cb568f
Merge branch 'main' into cc/feat/piper-teleop-data-collection-clean
TomCC7 Jul 21, 2026
f2b2a24
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 21, 2026
1144720
feat: add Piper CAN activation command
TomCC7 Jul 22, 2026
3afbb1a
refactor: inline Piper CAN activation
TomCC7 Jul 22, 2026
386102a
Merge branch 'cc/feat/piper-teleop-data-collection-clean' into advent…
TomCC7 Jul 22, 2026
90d4a12
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 22, 2026
75d58ec
hide zenoh noise
jeff-hykin Jul 22, 2026
240fa12
Merge branch 'main' into adventure_x
Nabla7 Jul 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions dimos/cli/dimos.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
from dimos.mapping.cli.rename import main as _map_rename_main
from dimos.mapping.cli.replay import main as _map_replay_main
from dimos.mapping.cli.replay_marker import main as _map_replay_marker_main
from dimos.robot.manipulators.galaxea_a1z.teach_replay_cli import app as a1z_app
from dimos.robot.manipulators.piper.cli import app as piper_app
from dimos.robot.unitree.go2.cli.go2tool import app as go2tool_app
from dimos.utils.cache import cache_usage_locked
Expand Down Expand Up @@ -177,6 +178,7 @@ def callback(**kwargs) -> None: # type: ignore[no-untyped-def]

main.callback()(create_dynamic_callback()) # type: ignore[no-untyped-call]
main.add_typer(go2tool_app, name="go2tool")
main.add_typer(a1z_app, name="a1z")
main.add_typer(piper_app, name="piper")
main.command()(shell)
main.add_typer(cache_app, name="cache")
Expand Down
12 changes: 12 additions & 0 deletions dimos/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@

import os
from pathlib import Path
import subprocess
import sys

try:
# Not a dependency, just the best way to get config path if available.
Expand All @@ -27,6 +29,16 @@
STATE_DIR = Path(GLib.get_user_state_dir()) / "dimos"
CACHE_DIR = Path(GLib.get_user_cache_dir()) / "dimos"

if sys.platform == "linux":
MACHINE_ID = Path("/etc/machine-id").read_text().strip()
if os.sys.platform == "darwin":
parts = subprocess.run(
["ioreg", "-rd1", "-c", "IOPlatformExpertDevice"],
capture_output=True,
text=True,
).stdout.split('"')
MACHINE_ID = parts[parts.index("IOPlatformUUID") + 2].lower()

DIMOS_PROJECT_ROOT = Path(__file__).parent.parent

if (DIMOS_PROJECT_ROOT / ".git").exists():
Expand Down
6 changes: 5 additions & 1 deletion dimos/core/global_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from pydantic import AliasChoices, Field
from pydantic_settings import BaseSettings, SettingsConfigDict

from dimos.constants import DEFAULT_BUILD_NATIVE
from dimos.constants import DEFAULT_BUILD_NATIVE, MACHINE_ID
from dimos.models.vl.types import VlModelName
from dimos.visualization.rerun.constants import (
RERUN_ENABLE_WEB,
Expand Down Expand Up @@ -92,6 +92,10 @@ class GlobalConfig(BaseSettings):
default_factory=_default_transport,
validation_alias=AliasChoices("DIMOS_TRANSPORT", "transport"),
)
zenoh_password: str = Field(
default=MACHINE_ID,
validation_alias=AliasChoices("DIMOS_ZENOH_PASSWORD", "zenoh_password"),
)
build_native: bool = DEFAULT_BUILD_NATIVE
dtop: bool = False
obstacle_avoidance: bool = True
Expand Down
17 changes: 17 additions & 0 deletions dimos/hardware/manipulators/galaxea_a1z/_registry.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright 2025-2026 Dimensional Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ADAPTER_FACTORIES = {
"galaxea_a1z": "dimos.hardware.manipulators.galaxea_a1z.adapter:GalaxeaA1ZAdapter",
}
Loading
Loading