Skip to content

Add Lambkin benchmark for Beluga AMCL - #580

Open
Lobotuerk wants to merge 4 commits into
mainfrom
jtlorente/b39bc7e8-e451-4dd3-af53-8d21c642872e
Open

Lobotuerk wants to merge 4 commits into
mainfrom
jtlorente/b39bc7e8-e451-4dd3-af53-8d21c642872e

Conversation

@Lobotuerk

@Lobotuerk Lobotuerk commented Aug 18, 2026 •

Copy link
Copy Markdown
Member

Summary

Lambkin is installed with pip from a pinned git commit (beluga_lambkin/requirements.txt) in the jazzy, kilted and lyrical dev images. beluga_lambkin/ holds the benchmark script and the beluga_inference_ros2 launch/params package.

Usage

See beluga_lambkin/README.md for build, run, and dataset mounting instructions.

@Lobotuerk
Lobotuerk force-pushed the jtlorente/b39bc7e8-e451-4dd3-af53-8d21c642872e branch 4 times, most recently from 275b20f to a570a94 Compare August 20, 2026 15:07
@glpuga

glpuga commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

@Lobotuerk I'm not up to speed on what this is about, can you give me a summary of what is the idea of this PR?

@glpuga
glpuga self-requested a review September 11, 2026 15:39
@Lobotuerk

Copy link
Copy Markdown
Member Author

I think this one is @djetshu

@djetshu

djetshu commented Sep 15, 2026

Copy link
Copy Markdown

@glpuga Quick summary of what this PR is about:

The idea (BEL-5): add Lambkin benchmarking support for Beluga's AMCL localization stack. Lambkin is treated as an external dependency, installed via pip from a pinned commit of Ekumen-OS/lambkin. We only keep the parts specific to Beluga in a new beluga_lambkin/ folder:

  • beluga_benchmark.py: defines a benchmark that sweeps sensor model (beam / likelihood_field) and particle count, launches the AMCL stack, replays a bag, and scores localization accuracy (APE) against ground truth.
  • beluga_ros2/: the ROS 2 launch package (AMCL, map server, lifecycle manager) that the benchmark drives.
  • Dockerfile: a ros:jazzy ros base image that installs Lambkin via pip for running the benchmark in a reproducible container.

Note: this is still under revision, not quite ready for a full review pass yet. Mainly wanted to leave this context on what the changes are trying to accomplish so far while I keep iterating with Multica.

@Lobotuerk Lobotuerk changed the title BEL-5: Implement SDD Spec Add Lambkin benchmark for Beluga AMCL Sep 24, 2026
@Lobotuerk
Lobotuerk force-pushed the jtlorente/b39bc7e8-e451-4dd3-af53-8d21c642872e branch from 5f61ba3 to 150351e Compare September 29, 2026 12:25
@Lobotuerk
Lobotuerk requested a review from djetshu September 29, 2026 19:14
@Lobotuerk

Copy link
Copy Markdown
Member Author

Hi @glpuga @Lobotuerk @djetshu,

The SDD Pipeline QA verification suite has passed cleanly (all unit/integration tests and linting are green).

📝 Implementation Summary:

  1. Beluga-Evaluation Files (beluga_lambkin/):
    • beluga_benchmark.py: Configured with launch parameters laser_model_type:= and max_particles:= matching beluga_ros2's launch file declarations.
    • beluga_ros2/: Integrated CMakeLists.txt, launch/, package.xml, and params/.
    • requirements.txt: Declares external Lambkin SDK pinned to commit d9512d8b674fcea785833f58ee7a2c386b5f5b3a.
  2. Docker Development Images (docker/images/):
    • Updated docker/images/{jazzy,kilted,rolling}/Dockerfile to bump the base evo constraint to "evo>=1.34.3" and install Lambkin using --break-system-packages with exponential retry backoff.
    • Included --ignore-installed on Kilted to avoid collisions with Debian-managed packages (typing-extensions).
    • Kept docker/images/humble/Dockerfile untouched (Humble excluded from Lambkin integration per architectural resolution).
  3. Git History & DCO Compliance:
    • Maintained clean, linear history rebased on origin/main.
    • All commits signed off with matching author (jtlorente <jtlorente@creativa77.com.ar>), fully passing the Probot DCO check.
  4. CI Status:
    • DCO check: PASS
    • Pre-commit linting: PASS
    • Docker dev image builds: Jazzy, Kilted, Lyrical PASS
    • Full Colcon builds & tests: Jazzy, Kilted PASS; Ubuntu 22.04 / 24.04 & Windows PASS

Verified green by SDD-Reviewer QA. Re-requesting your review!

@Lobotuerk

Copy link
Copy Markdown
Member Author

Hi @glpuga @Lobotuerk @djetshu,

The updates for this round have been verified:

  • Commits are signed off and DCO check is green.
  • Docker dev images for Jazzy, Kilted, and Lyrical built cleanly.
  • Colcon tests for Jazzy and Kilted passed cleanly.
  • Rolling Dockerfile was reverted to main.
  • Package renamed to beluga_inference_ros2 with updated maintainers.
  • Benchmark options (--dataset, --map, --sensor-topic) and launch arguments are wired.
  • beluga_lambkin/README.md added.
  • Compatibility check for compare_results.py against evo 1.34.3 was completed and reported.

Verified by SDD-Reviewer QA. Re-requesting your review!

@Lobotuerk
Lobotuerk force-pushed the jtlorente/b39bc7e8-e451-4dd3-af53-8d21c642872e branch from 14a03c2 to baab72a Compare October 6, 2026 14:50
@Lobotuerk

Copy link
Copy Markdown
Member Author

Hi @glpuga @Lobotuerk @djetshu,

The SDD Pipeline QA verification suite has passed cleanly (100% of remote CI runs, unit/integration test suites, Docker builds, and linters are green).

📝 Implementation Summary:

  • Jazzy Dockerfile Fix: Added --ignore-installed to RUN pip install --no-cache-dir --ignore-installed -r /tmp/lambkin-requirements.txt in docker/images/jazzy/Dockerfile, resolving the Debian package uninstall conflict and enabling build-image (jazzy) to pass.
  • Full CI Matrix Green:
    • build-image: All distros (jazzy, kilted, lyrical, humble) passed.
    • build-test: All distros (jazzy, kilted, lyrical, humble) passed.
    • Platform runners: Ubuntu 22.04 / 24.04 and Windows passed.
    • Codecov and documentation builds passed.
    • Probot DCO check passed across all rebased and new commits.
  • Benchmark & Launch Package: beluga_inference_ros2 is fully wired with launch options (--dataset, --map, --sensor-topic), beluga_lambkin/README.md is updated, and beluga_lambkin is cataloged in the top-level README.md.

Verified green by SDD-Reviewer QA. Re-requesting your review and merge!

Lobotuerk and others added 4 commits October 7, 2026 15:39
…mages

Signed-off-by: jtlorente <jtlorente@creativa77.com.ar>
Co-authored-by: multica-agent <github@multica.ai>
Signed-off-by: jtlorente <jtlorente@creativa77.com.ar>
Co-authored-by: multica-agent <github@multica.ai>
Signed-off-by: jtlorente <jtlorente@creativa77.com.ar>
Co-authored-by: multica-agent <github@multica.ai>
Signed-off-by: jtlorente <jtlorente@creativa77.com.ar>
Co-authored-by: multica-agent <github@multica.ai>
@Lobotuerk
Lobotuerk force-pushed the jtlorente/b39bc7e8-e451-4dd3-af53-8d21c642872e branch from 7621e52 to c923024 Compare October 7, 2026 18:39

This branch has not been deployed

No deployments
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.

3 participants