-
Notifications
You must be signed in to change notification settings - Fork 706
WIP release

This is the Go2 Relocalization release.
160 commits, 17 contributors, 969 files changed.
A Go2 can now build a clean, loop-closed global map from its own recordings and relocalize against it on later runs. A new Rust voxel ray-tracing mapper with per-voxel normals stops moving objects and grazing rays from corrupting the map, so floors, stairs, and slopes stay dense and stable. PGO loop closure reconstructs a full global map in seconds from a sampled slice of memory2 recordings, and a dimos map tool builds, inspects, and exports the relocalization pointclouds. At runtime the robot loads a saved map, publishes the map -> world transform, and plans on the global costmap, with low-confidence matches filtered out and AprilTag/ArUco markers flowing through the same 3D pipeline as anchors.
- Foxglove viewer support removed (~15k lines); Rerun is the sole viewer backend. (#2122)
- RPyC removed as a transport and dependency. (#2094)
- Docker modules have been removed. (#2224)
- Robot catalogue (
RobotConfig) removed. Hardware metadata now comes from a_hardware.pyfactory. (#2550) - Manipulation viz config:
visualization_backend/visualization_optionsreplaced by a singlevisualizationblock (none/meshcat/viser). (#2475)
- Per-platform nav blueprints:
unitree-g1-nav-simpleraytracing nav for the G1 (#2327), the i2rt FlowBase base from WASD teleop to full MID-360 + FastLio2 + click-to-drive (#2090), andalfred-navfor the new Alfred wheeled base (#2100). by @jeff-hykin, @mustafab0 - 3D multi-level-surface (MLS) path planner that places nodes on map surfaces and plans over a cached graph, plus a
path-planner-evalblueprint to score any planner against synthetic and mesh-derived scenarios. (#2310, #2302) by @aclauer -
vis_throttleworks out of the box and nav logging is much quieter (FastLIO, PGO, A*). (#2108, #2095) by @jeff-hykin
- Rust voxel ray-tracing mapper that clears stale voxels along rays so global maps handle moving objects (
dimos run mid360-fastlio-ray-trace); per-voxel normals and a recency gate keep grazing rays from eroding floors, stairs, and slopes. (#2163, #2462, #2275) by @aclauer - Publishes a
local_mapslice of the global map around the robot for downstream nav. (#2257) by @aclauer - Pose-graph loop closure and global map reconstruction, plus a
dimos maptool to visualize mem2 maps, run offline loop closure, and export relocalization pointclouds. (#2242, #2241, #2306) by @leshy - Go2 relocalization against a prebuilt map: load a saved map, publish
map->world, and plan on the global costmap. (#2160) by @arkluc - Point-LIO native module as an alternative to FAST-LIO, plus a Virtual Mid-360 that records and replays Livox pcaps offline; FAST-LIO supports the same pcap record/replay. (#2486, #2498) by @jeff-hykin
- PyO3 Python bindings and a mem2 transform pipeline for the Rust ray-tracer and 3D planner. (#2351, #2368) by @aclauer
- A-750 arm: initial support with a
keyboard-teleop-a750blueprint and gripper bindings. (#1911) by @adob - G1 GR00T whole-body walking policy as a first-class coordinator task (
unitree-g1-groot-wbc);--simulationselects 500 Hz hardware vs 50 Hz Mujoco, and Twists on/g1/cmd_veldrive it. (#2300, #2239) by @Nabla7 - Go2
move()now sends calibrated SPORT Move velocities (real m/s and rad/s) instead of raw joystick deflections. (#2567) by @mustafab0 - Support for current Unitree firmware (G1 >= 1.5.1, Go2 >= 1.1.15) via an optional
aes_128_key;connect()now fails fast with an actionable error instead of hanging. (#2476) by @KrishnaH96
- Viser visualizer with a MoveIt-style plan/preview/execute UI; the loose viz options collapse into one validated
visualizationconfig. (#2475) by @TomCC7 - Pink IK backend (
kinematics_name=pink) for faster IK, and a visualization protocol routed throughWorldMonitorwith trajectory-timed preview playback. (#2481, #2460) by @TomCC7 - Skills return a structured
SkillResult(success, message, error_code, duration) with domain error enums, exposed to the LLM as JSON for structured retries; all 18 skills migrated. (#2091) by @mustafab0 - xArm teleop syncs to the robot's real joint state at startup and moves to a default pose on activate/deactivate. (#2425) by @TomCC7
- Hosted teleoperation over WebRTC via a Cloudflare Realtime SFU: a
HostedTeleopModule(cmd/state datachannels + camera video) that drops into existing blueprints, with recording and latency/jitter/loss stats (dimos run teleop-hosted-go2 teleop-recorder). (#2411) by @ruthwikdasyam - Stream a robot or sim camera (MuJoCo, RealSense, Go2) into the Quest VR headset during teleop. (#2198) by @ruthwikdasyam
- AprilTag 3D detector plus a camera-calibration CLI that generates
camera_info.yaml, with adesk-marker-tfblueprint; calibration also works with the Go2 (live topic source, fisheye model). (#2107, #2123) by @bogwi, @leshy -
dimos apriltaggenerates print-ready ArUco/AprilTag PDFs with packing and a size ruler. (#2037) by @leshy - ArUco detections emit standard
vision_msgs/Detection3DArray, so markers flow through filtering, tracking, spatial memory, TF frames, and Rerun. (#2278) by @bogwi
- MCAP/DDS as a memory2 store, so Go2 DDS recordings query like any mem2 stream and render to
.rrd. (#2314) by @leshy - Time windowing on
Stream(from_time/to_time,from_timestamp/to_timestamp). (#2315) by @leshy - Recorder overwrite modes (
overwrite/backup/error, defaultbackup) so re-recording no longer silently clobbers prior runs. (#2248) by @arkluc
- Rust module API reworked with proc macros (declare inputs/outputs/setup/teardown as attributes) and a faster runtime; crates renamed to
dimos-module/dimos-module-macros. (#2080) by @aclauer -
native_configmacro and aModuleConfigvalidation trait cut native-module config boilerplate; native modules honor real log levels and Rust modules usetracingdriven by the dimos log level. (#2503, #2325, #2235) by @aclauer - Exclusive capabilities for agent skills:
@skill(uses=[...])plus a capability registry so the MCP server refuses or briefly waits on conflicting skills (e.g. two movement commands at once). (#2279) by @paul-nechifor -
dedicated_workerlets a heavy module claim an exclusive worker instead of sharing one. (#2185) by @paul-nechifor -
robot_idinGlobalConfig(--robot-id/ROBOT_ID) so multiple robots can share one API key for hosted teleop. (#2490) by @spomichter - TF lookups can wait for not-yet-available transforms via
forward_tolerance. (#2229) by @arkluc - New lightweight
dimsimsimulator selectable with--simulation=dimsim. (#1735) by @paul-nechifor
- FAST-LIO Mid-360 scan voxel default lowered to 0.1 m to stop Go2 odometry divergence (notably on stairs). (#2466) by @jeff-hykin
- Global mapper VRAM leak fixed by releasing Open3D's CUDA cache per frame. (#2031) by @leshy
- RealSense color-only mode (
enable_depth=False) no longer crashes; falls back to an identity color TF. (#2561) by @ruthwikdasyam - Native module builds fixed on Linux, and native modules now compile during the build step before replay starts. (#2459, #2207) by @jeff-hykin
- LCM segfault fixed via a patched
lcm-dimos-fork; dropped LCM packets now surface as warnings with larger default buffers for high lidar throughput. (#2343, #2200) by @paul-nechifor, @jeff-hykin - Packaging: runtime data files (yaml/json/urdf/...) reliably shipped in the wheel, and a wrongly-dropped dependency restored. (#2104, #2551) by @paul-nechifor
-
--simulationflag restored and backwards compatible (bare, or=mujoco/=dimsim). (#2103) by @paul-nechifor - RealSense switched to
realsense-extendedwith Jetson wheels, fixing RealSense on the G1's Jetson. (#2322) by @jeff-hykin - Drone agentic blueprint startup fixed (
DroneTrackingModule/OsmSkillaccept wiring kwargs). (#2345) by @knikou01 - CUDA-only security demo removed from the Go2 agentic flow that was breaking it everywhere. (#2251) by @spomichter
- Manipulation tears down cleanly when planning init fails; keyboard teleop accepts
LfsPath/Pathmodel paths. (#2520, #2186) by @TomCC7, @mustafab0
- 3D MLS planner builds its graph artifact in ~200 ms on a 2M-voxel map and plans in ~0.28 ms. (#2310) by @aclauer
- Rust module runtime sped up via separate publish/receive tokio tasks and constant-time routing. (#2080) by @aclauer
- Removed ~1 GB of unused Python dependencies. (#2539) by @paul-nechifor
- Upgrade vulnerable dependencies flagged by Dependabot. (#2040) by @paul-nechifor
- Enable uv cooldown to avoid immediately-published package versions (supply-chain protection). (#2115) by @Dreamsorcerer
- @bogwi made their first contribution in #1884
- @Mgczacki made their first contribution in #2050
- @swstica made their first contribution in #2071
- @arkluc made their first contribution in #2145
- @adob made their first contribution in #1911
- @KrishnaH96 made their first contribution in #2224
- @knikou01 made their first contribution in #2345
- @TomCC7 made their first contribution in #2425
Full Changelog: https://github.com/dimensionalOS/dimos/compare/v0.0.12...v0.0.13