Skip to content

ray_tracing: place clouds purely through tf - #3596

Draft
jeff-hykin wants to merge 7 commits into
jeff/feat/dim_slamfrom
jeff/fix/ray_tracing_tf
Draft

ray_tracing: place clouds purely through tf#3596
jeff-hykin wants to merge 7 commits into
jeff/feat/dim_slamfrom
jeff/fix/ray_tracing_tf

Conversation

@jeff-hykin

Copy link
Copy Markdown
Member
  • place clouds purely through tf; drop the odometry input
  • previously clouds were dropped at the odom pose, ignoring the sensor mount: a camera half a metre up and angled down put the floor in the wrong place
  • tf lookup at each cloud's stamp resolves world_frame -> sensor frame through the mount edge
  • cargoHash refresh to unstick the nix build

@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

@@           Coverage Diff           @@
##             main    #3596   +/-   ##
=======================================
  Coverage   77.10%   77.10%           
=======================================
  Files        1262     1262           
  Lines      120300   120301    +1     
  Branches    10634    10634           
=======================================
+ Hits        92758    92762    +4     
  Misses      24461    24461           
+ Partials     3081     3078    -3     
Flag Coverage Δ
OS-ubuntu-24.04-arm 71.99% <100.00%> (+<0.01%) ⬆️
OS-ubuntu-latest 73.88% <100.00%> (+<0.01%) ⬆️
Py-3.10 73.88% <100.00%> (+<0.01%) ⬆️
Py-3.11 73.88% <100.00%> (-0.01%) ⬇️
Py-3.12 ?
Py-3.13 73.88% <100.00%> (-0.01%) ⬇️
Py-3.14 73.88% <100.00%> (+<0.01%) ⬆️
Py-3.14t 73.88% <100.00%> (+<0.01%) ⬆️
SelfHosted-Linux 35.16% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dimos/mapping/ray_tracing/module.py 100.00% <100.00%> (ø)

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

jeff-hykin and others added 7 commits August 21, 2026 03:42
The pinned hash no longer matches what vendoring the lockfile produces, so
`nix build` fails in the fixed-output vendor derivation and RayTracingVoxelMap
cannot start at all. Reproduced on an untouched checkout of main.
… pose

on_lidar registered camera-frame points into the world using only the
odometry pose, so the base_link -> camera_color_optical_frame mount never
applied. The ESKF roll error used to cancel it; with odometry level the
map came out rotated. Resolve the mount once from tf (held clouds until it
arrives) and start rays at the sensor origin instead of the body center.
The offline transformer.py variant still has the odom-only registration.
Look up world_frame <- cloud.frame_id at each cloud stamp and register
points and the ray origin through that one transform, fresh every
cloud. The old path paired clouds with buffered odometry poses and
assumed they were already in the body frame; the map now accumulates
and publishes in config.world_frame instead, odom on alfred.

Clouds must arrive in their own sensor frame and the odometry source
must put its world->body edge on tf, which OdometryFusion does. The
offline python binding takes pre-transformed points and passes an
empty world_frame.
@jeff-hykin
jeff-hykin force-pushed the jeff/fix/ray_tracing_tf branch from 76d1ad8 to c8e8540 Compare August 21, 2026 10:48
@jeff-hykin
jeff-hykin changed the base branch from main to jeff/feat/dim_slam August 21, 2026 10:48
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.

2 participants