Skip to content

Slim sim build system and remove ORB-SLAM/Kalibr - #23

Closed
Cruiz102 wants to merge 8 commits into
mainfrom
slim-build-system
Closed

Cruiz102 wants to merge 8 commits into
mainfrom
slim-build-system

Conversation

@Cruiz102

Copy link
Copy Markdown
Collaborator

Summary

  • Build Stonefish through colcon into install/ (adds vendor/stonefish/package.xml, stonefish_ros2 build-depends on Stonefish) so a normal colcon build is enough — no separate install scripts or system Stonefish.
  • Slim ROS/system deps in README and Docker: ros-jazzy-ros-base plus sim-only packages; drop desktop, rviz, unused Ogre/OpenCV/Boost stack, ORB-SLAM, and Kalibr.
  • Remove orb_slam3_ros2, tools/kalibr, VectorNav launch/build wiring, and Kalibr leftover config.
  • Make teleop joy opt-in (use_joy:=true); keep usb_cam optional on hardware launch.
  • Fix mission_executor Rust/CMake paths so incremental colcon rebuilds are ~0.2s instead of ~24s on no-op builds.
  • Add COLCON_IGNORE for zed_custom_wrapper and scripts/bench_build.sh for build timing experiments.

Submodule note

This PR updates submodule pointers:

  • vendor/stonefish4e6de52 (colcon package.xml, exclude stray 3rdparty/SDL2/ from build)
  • vendor/stonefish_ros2793b8d0 (declare build_depend on Stonefish)

Those commits must be reachable from the submodule remotes (or the URLs updated to forks) for CI/git submodule update --init to succeed.

Test plan

  • git submodule update --init --recursive
  • source /opt/ros/jazzy/setup.bash && colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
  • source install/setup.bash && ros2 launch bringup stonefish.launch.py mission_name:=prequalify auv_name:=hydrus env_file_name:=hydrus_env.scn headless:=true
  • Re-run colcon build with no changes — mission_executor should finish in under 1s
  • Optional: ./scripts/bench_build.sh
  • docker build -t rumarino-headless:latest .

Made with Cursor

Cruiz102 and others added 2 commits August 25, 2026 23:09
Use ros-base-style deps, build Stonefish via colcon into install/, remove orb_slam3_ros2 and kalibr, make joy/usb_cam/vectornav optional, fix mission_executor Rust/CMake paths for fast incremental builds, and add a colcon benchmark script.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ion commits.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Cruiz102

Copy link
Copy Markdown
Collaborator Author

Updated .gitmodules to use Rumarino-Team/stonefish and Rumarino-Team/stonefish_ros2 so submodule commits in this PR are fetchable:

  • vendor/stonefish @ 4e6de52 on branch colcon-package
  • vendor/stonefish_ros2 @ 793b8d0 on branch build-depend-stonefish

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 42beef1df8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

COMMAND ${CMAKE_COMMAND} -E env
CARGO_TARGET_DIR=${CARGO_TARGET_DIR}
cargo build --release --quiet --manifest-path ${CMAKE_CURRENT_SOURCE_DIR}/Cargo.toml
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../..

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Run Cargo where the crate config is discoverable

When colcon build invokes Cargo from the repository root, Cargo does not discover src/mission_executor/.cargo/config.toml merely because --manifest-path points into that directory. Consequently local builds silently lose the configured Clang linker and IDL_PACKAGE_FILTER, causing r2r to generate bindings outside the intended package set and undermining the build-time reduction this change targets. Keep the crate directory as the working directory or move/pass this configuration explicitly.

Useful? React with 👍 / 👎.

Comment thread scripts/bench_build.sh
return 0
fi
local found
found=$(grep -m1 '^Stonefish_DIR:' "$cache" | awk '{print $2}')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Parse the CMake cache value after the equals sign

When build/stonefish_ros2/CMakeCache.txt exists, its entry has the standard form Stonefish_DIR:PATH=/path, which is a single whitespace-delimited field, so awk '{print $2}' always produces an empty string. The following check therefore returns 1 and, under set -e, aborts the benchmark immediately after its first build instead of running the remaining measurements.

Useful? React with 👍 / 👎.

Cruiz102 and others added 6 commits August 25, 2026 23:18
Remove Fedora instructions and organize the doc into clone → dependencies → build → launch for simulation.

Co-authored-by: Cursor <cursoragent@cursor.com>
…args.

Add scripts/install_deps.sh, slim the README, and expose missions/AUVs/scenarios as choices in stonefish.launch.py for --show-args discovery.

Co-authored-by: Cursor <cursoragent@cursor.com>
Integrate odometry-stamped PID and proteus model updates from main while
keeping Humble slim build, install script, and launch-file enums. Merge
stonefish_ros2 sim-time/RTF cap commits into the colcon build-depend branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
Disable sim-time odometry stamps and RTF cap unless fast_fixed_step is on,
and fall back to 100 ms PID dt when odometry stamps stall or repeat.

Co-authored-by: Cursor <cursoragent@cursor.com>
Restore the 10 Hz wall-clock PID with a separate odometry task, and pin
stonefish_ros2 before the sim-time merge that broke real-time control.

Co-authored-by: Cursor <cursoragent@cursor.com>
Align detection_mocker class enums with mission_executor, fix hydrus_env
scenario typos, sync the PID goal to the first odometry pose, and zero
roll/pitch gains that were flipping the vehicle under the existing TAM.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Cruiz102 Cruiz102 closed this Sep 16, 2026
@Cruiz102
Cruiz102 deleted the slim-build-system branch September 16, 2026 17:54
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.

1 participant