Creating a Map
Main steps:dimos run unitree-go2-memoryto create a .db file- Auto-clean the .db file into a usable map
- Load the map back (replay)
- Load the map into the Go2 (live)
1. Record a run
DIMOS_ROBOT_IP is set in your environment (or .env), you can drop
the --robot-ip flag:
recording_go2.db to the repo root. Run the next command
from the repo root so the bare-name lookup finds this file. In the next
steps {DB_NAME} refers to the stem of your recording - recording_go2
if you kept the default.
2. Auto-clean the .db, convert into a Map
To create the map file (.pc2.lcm):
--export implies --pgo (runs pose graph optimization) and writes
./{DB_NAME}.pc2.lcm to the current working directory. Add --no-gui
to skip the rerun viewer for headless runs.
{DB_NAME} can be a file name (with or without extension), or a relative / absolute path.
When a bare file name is given, the tool searches in:
- current working directory
data/(where LFS files live)
3. Relocalize against replay
Replay a recording and have the relocalization module localize against the premap. Use theunitree-go2-relocalization blueprint — it’s the
standard unitree-go2 stack plus RelocalizationModule:
{DB_NAME} is resolved the same way as in section 2: cwd
first, then data/.
Sample log:
relocalize skipped means the live submap is still warming up (fewer
than MIN_LOCAL_POINTS points). relocalize rejected means a candidate
was found but its fitness was below the configured threshold (default
0.6). If you want to see every candidate accepted regardless of
quality, disable the gate:
4. Relocalize on a live robot
Same flags as the replay test, but point at the live robot instead of a recorded.db:
