Skip to content

nav tooling

leshy edited this page Jun 26, 2026 · 18 revisions

Testing KronNav on a dataset

build kronknav

uv run maturin develop --uv --release -m dimos/mapping/ray_tracing/rust/Cargo.toml && uv run maturin develop --uv --release -m dimos/navigation/nav_3d/mls_planner/rust/Cargo.toml

run on a dataset

uv run python -m dimos.navigation.nav_3d.mls_planner.utils.plan_rrd ~/recordings/china_office_pointlio_sensor.db --robot-height 0.4 --lidar-stream pointlio_lidar --odom-stream pointlio_odom

How to Optimize Point-LIO Configs

  1. Record mid360 with PCAP enabled, see the go2_mid360.md doc (in dimos)
  2. Use pcap_to_db.py to generate alternative lidar/odom outcomes - renders to rerun

Pcap to DB

You can see/edit the default Point-LIO config here.

python -m dimos.hardware.sensors.lidar.pointlio.scripts.pcap_to_db --pcap mid360_shake_stairs/mid360_shake_stairs.pcap --db stairs.db

will open up rerun with aggregated map + odom path create a new db file with the pointlio stream

generate a global map from this via

dimos map global --lidar pointlio_lidar --pgo-tol=0 --no-carve

Options

Flag Default Meaning
--pcap (required) Livox Mid-360 pcap (a missing path is fetched via get_data)
--db <pcap>.db Target memory2 db. Existing → append/align; missing → built from scratch (or fetched via get_data)
--rate 1.0 Replay-speed multiplier
--odom-freq 30.0 Point-LIO odometry rate (Hz)
--max-sensor-sec 0 (whole pcap) Stop after N sensor seconds
--warmup-sec 4.0 Seconds the fake lidar waits before streaming (lets Point-LIO come up)
--no-rrd off Skip writing the <db>.rrd quick-look
--voxel 0.2 Voxel size (m) for the .rrd aggregated map
--host-ip 192.168.1.5 Host IP (override to run two replays at once)
--lidar-ip 192.168.1.155 Synthetic lidar IP
--alias-iface dimos-mid360 Dummy iface the host/lidar IPs live on
--no-network-setup off Don't let the module alias the NIC via sudo — you've set up the IPs + routes yourself

MacOS Caveats

The module aliases the synthetic IPs onto lo0, which needs sudo. A tty-less worker can't prompt, so set up the interface by hand, then pass --no-network-setup:

sudo ifconfig lo0 alias 192.168.1.5 netmask 255.255.255.0
sudo ifconfig lo0 alias 192.168.1.155 netmask 255.255.255.0
sudo route -n add -host 224.1.1.5 -interface lo0
sudo route -n add -host 255.255.255.255 -interface lo0

python -m dimos.hardware.sensors.lidar.pointlio.scripts.pcap_to_db \
    --pcap "$PCAP" --no-network-setup

Clone this wiki locally