Repository navigation
Rename OAK-specific post-processing identifiers to generic names - #29
Merged
Merged
Conversation
The Orbbec Gemini 305 replaced the OAK-D SR as the default depth camera; #27 made the prose generic, this renames what was left: - modules/scripts: oak_slam.py -> slam.py (run_oak_slam -> run_slam), run_oak_slam.py -> run_slam.py, convert_episode_to_oak.py -> convert_episode_for_slam.py, docker/oak_vslam/ -> docker/vslam/ - checks.sync: check_oak_imu / load_oak_gyro_norm / oak_left_frame_ts -> check_dcam_imu / load_dcam_gyro_norm / dcam_left_frame_ts; private helpers and locals likewise (oak_dir -> slam_dir, oak_ts -> dcam_ts, ...) - per-episode SLAM input dir oak/ -> slam_input/, log oak_slam_stdout.txt -> slam_stdout.txt - SLAM base image pollenrobotics/oak-vslam -> pollenrobotics/grabette-vslam (same image, retagged; the old name stays as a frozen alias) - pipeline.py imports the slam module so its own batch run_slam() keeps its name - leftover OAK wording in dataset.py, slam.py, app.py, pipeline.py - an IMU-less camera now logs "no IMU (IMU-less camera)" instead of a raw FileNotFoundError; other IMU failures keep the error (tests added) - dataset.py: h264 rationale comment, needless f-string prefix dropped Kept: legacy oakd_*/oak_mask.png names (old recordings), OAK-D-specific notes, the "oak" camera label in offline_vslam.cpp. THIRD_PARTY_NOTICES only gets the moved docker/vslam/ paths. Assisted-by: Claude:claude-opus-5-5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #27: the Orbbec Gemini 305 replaced the OAK-D SR as the default depth camera, and #27 made the prose generic. This renames the OAK-specific identifiers that were held back so in-flight branches wouldn't need painful rebases.
dcam(depth camera) is the generic prefix, as for the rawdcam_*files.Renames (all
git mv, so history follows)grabette_postprocess/oak_slam.py,run_oak_slam()slam.py,run_slam()scripts/pipeline/run_oak_slam.pyrun_slam.pyscripts/pipeline/convert_episode_to_oak.pyconvert_episode_for_slam.pydocker/oak_vslam/docker/vslam/check_oak_imu,load_oak_gyro_norm,oak_left_frame_tscheck_dcam_imu,load_dcam_gyro_norm,dcam_left_frame_ts_check_oak_cameras,_load_oak_left_timestamps,_load_oak_imu,oak_dir,oak_ts…)dcam/slam_direquivalentsoak/, logoak_slam_stdout.txtslam_input/,slam_stdout.txtpollenrobotics/oak-vslampollenrobotics/grabette-vslampipeline.pyalready had its own batchrun_slam(), so it now imports the module (from grabette_postprocess import slam,slam.run_slam(...)) instead of the function.Also in here
no IMU gravity ([Errno 2] No such file or directory: …/oak/imu_acc.csv)for every episode. A missingimu_acc.csvis the normal IMU-less case and now logsno IMU (IMU-less camera): …. Other IMU failures keep the real error. Two tests added (tests/test_slam.py).dataset.py,slam.py,app.py,pipeline.py.dataset.py: the h264 rationale comment from the monorepo copy, and a needless f-prefix dropped.Docker image
pollenrobotics/grabette-vslam:2026-07-22and:latestare the same image asoak-vslam, with the same digestsha256:3fd1c9…. It was re-pushed, not rebuilt.oak-vslamstays as a frozen alias. Both names are public.Kept on purpose
oakd_*/oak_mask.pngnames inepisode_files.pyand their tests (old recordings on the Hub)hardware/oakd.py"oak"camera label insideoffline_vslam.cppTHIRD_PARTY_NOTICES.md; only its twodocker/vslam/paths changed, since the old ones would point at nothinggit grep -n -i -P '(?<![a-z])oak' -- . ':!*.lock'now shows only these.Behaviour change
New runs write
slam_input/andslam_stdout.txt. Episodes converted earlier still haveoak/. Re-running the pipeline converts them again, butvisualize_rgbd_trajectory.py --gravity-alignon an old processed episode needs a re-convert first.Verification
pytest: 70 passed (68 + 2 new)--helpruns for all 11 scripts (the visualizer with--extra viz)pipeline.pyimports;slam.run_slamresolves to the package,run_slamto the batch runnerconvert_episode_for_slam.py→run_slam.py) with the defaultgrabette-vslamimage: OAK-D episode 144/144 tracked, writesslam_input/,slam_stdout.txt,camera_trajectory.csv. A Gemini episode fails withnlohmann type_error … null; that bug already exists on develop: the published image (built 2026-07-22) predates IMU-less support inoffline_vslam.cpp(590a794, 2026-08-18). The Space is unaffected because its Dockerfile recompiles the binary. A rebuilt image is a separate follow-up.FROM grabette-vslam,offline_vslamcompiled fromdocker/vslam/), page shows the branch, API answers. A full conversion ofsimheo/test_0909_gemini-raw(4 Gemini episodes) loggedslam_input/ writtenand the plainno IMU (IMU-less camera)line, tracked 4/4 at 100% (all GOOD), and pushed the dataset🤖 Generated with Claude Code