Skip to content

fix: bridge simulation clock for REXROV and Slocum - #25

Open
yeseorizi wants to merge 1 commit into
IOES-Lab:mainfrom
yeseorizi:fix/clock-validation-20261022
Open

yeseorizi wants to merge 1 commit into
IOES-Lab:mainfrom
yeseorizi:fix/clock-validation-20261022

Conversation

@yeseorizi

@yeseorizi yeseorizi commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add the missing one-way Gazebo → ROS /clock bridge to the standalone REXROV and Slocum glider robot configurations.

On main (0d19c3f), Gazebo can be running while a ROS node with use_sim_time=true remains at time zero for these examples. Both configurations omit the clock mapping.

  • Add /clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock to each configuration.
  • Add a regression test requiring exactly one one-way clock mapping and register it with ament/CTest, so normal package testing runs it.
  • No simulator dynamics, controller, dependency or other robot configuration changes.

Reproduction and validation

  • New configuration tests fail for both baseline configurations and pass with the mapping.
  • Independently built this branch's robot-model package: 48 registered Python cases passed in 10 repeats (480 case executions).
  • Independent runtime reruns received 20 increasing ROS clock samples and 10 odometry messages for each robot (REXROV clock: 0.127–0.146 s; Slocum: 3.290–3.309 s), with no residual simulator processes. The scene runs used a local diagnostic ros_gz_bridge shutdown overlay, which is not part of this PR.
  • Changed-file pre-commit checks passed.
colcon build --packages-select posim_robot_models --cmake-args -DBUILD_TESTING=ON
ctest --test-dir build/posim_robot_models --output-on-failure \
  -R '^test_' --repeat until-fail:10

Scope / limitations

Tested in Ubuntu 26.04 ARM64 Docker on an Apple Silicon Mac, ROS 2 Lyrical / Gazebo Jetty 10.5.0. This covers the documented standalone launches, not a multi-world/multi-clock configuration or full-release validation.

The existing locally patched asv_wave_sim dependency also remained installed during scene checks. Neither that renderer teardown patch nor the bridge overlay is included in this PR; successful scene cleanup is not attributed to this change alone.

Checklist

  • Forked the repository and kept the change focused.
  • Added and registered regression tests; ran the package's Python tests and changed-file pre-commit.
  • Signed commits with DCO and disclosed AI assistance.
  • Whole repository colcon test / all platforms validated (outside this scoped fix).
  • Remote formatting CI passed. Docker jobs are intentionally skipped for fork PRs; this is not a Docker build result. The website static-site check also passed; publishing was skipped.

Assisted-by: OpenAI Codex (implementation, tests and PR preparation).

Assisted-by: OpenAI Codex
Signed-off-by: Kwon Yeseol <172019512+yeseorizi@users.noreply.github.com>

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.

1 participant