Conversation
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>
|
Updated
|
There was a problem hiding this comment.
💡 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}/../.. |
There was a problem hiding this comment.
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 👍 / 👎.
| return 0 | ||
| fi | ||
| local found | ||
| found=$(grep -m1 '^Stonefish_DIR:' "$cache" | awk '{print $2}') |
There was a problem hiding this comment.
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 👍 / 👎.
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>
Summary
install/(addsvendor/stonefish/package.xml,stonefish_ros2build-depends onStonefish) so a normalcolcon buildis enough — no separate install scripts or system Stonefish.ros-jazzy-ros-baseplus sim-only packages; drop desktop, rviz, unused Ogre/OpenCV/Boost stack, ORB-SLAM, and Kalibr.orb_slam3_ros2,tools/kalibr, VectorNav launch/build wiring, and Kalibr leftover config.joyopt-in (use_joy:=true); keepusb_camoptional on hardware launch.mission_executorRust/CMake paths so incremental colcon rebuilds are ~0.2s instead of ~24s on no-op builds.COLCON_IGNOREforzed_custom_wrapperandscripts/bench_build.shfor build timing experiments.Submodule note
This PR updates submodule pointers:
vendor/stonefish→4e6de52(colconpackage.xml, exclude stray3rdparty/SDL2/from build)vendor/stonefish_ros2→793b8d0(declarebuild_dependonStonefish)Those commits must be reachable from the submodule remotes (or the URLs updated to forks) for CI/
git submodule update --initto succeed.Test plan
git submodule update --init --recursivesource /opt/ros/jazzy/setup.bash && colcon build --cmake-args -DCMAKE_BUILD_TYPE=Releasesource install/setup.bash && ros2 launch bringup stonefish.launch.py mission_name:=prequalify auv_name:=hydrus env_file_name:=hydrus_env.scn headless:=truecolcon buildwith no changes —mission_executorshould finish in under 1s./scripts/bench_build.shdocker build -t rumarino-headless:latest .Made with Cursor