Skip to content

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Oct 21, 2025

🎉 New feature

Toward #732

Summary

Set up

In order to test this, you'll need a source build of gz-sim with the following PRs:

I have removed all Gazebo ROS vendor packages temporarily since those are currently pinned to Ionic. With the recent changes removing the version numbers from the packages, having gz-jetty installed, either from binaries or from source, should be sufficient to build this PR.

Test it

  1. Install ROS 2 Rolling

  2. Add Gazebo nightlies to your apt sources. Follow https://gazebosim.org/docs/jetty/install_ubuntu/, but use ubuntu-nightly instead of ubuntu-stable.

    deb [arch=amd64 signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-nightly noble main
    
  3. Install gz-jetty

    sudo apt install gz-jetty
    
  4. Create a new workspace and use vcs to checkout standard_interfaces.repos

    mkdir -p ~/ros_gz_ws/src
    cd ~/ros_gz_ws/src
    vcs import --input https://raw.githubusercontent.com/gazebo-tooling/gz_vendor/refs/heads/main/gz_vendor.repos
    touch gz_dartsim_vendor/COLCON_IGNORE
    touch gz_ogre_next_vendor/COLCON_IGNORE
    
    git clone https://github.com/azeey/ros_gz -b standard_interfaces
    cd ..
    
  5. Source rolling and install dependencies

    source /opt/ros/rolling/setup.bash
    export GZ_BUILD_FROM_SOURCE=1
    rosdep install -i -y -r --from-paths src --skip-keys="rviz2 sdformat_urdf"
    
    
  6. Build workspace

    colcon build
    
  7. Run tests
    colcon test --packages-select ros_gz_sim

  8. If you want to run just the tests introduced in this PR, in a new terminal:

    source ~/ros_gz_ws/install/setup.bash
    cd ~/ros_gz/ws/build/ros_gz_sim
    ctest -R gz_simulation
    

Tip

If the build fails with c++: fatal error, it likely ran out of memory. Try building with colcon build --parallel-workers=1 --executor sequential

Note

If the build fails due to missing APIs. It is likely that somehow, ros_gz_sim is being build against the Gazebo install in the system instead of the one we are building from source. If this happens, uninstall libgz-sim10, remove the build/ros_gz_sim directory and build again.

Checklist

  • Signed all commits for DCO
  • Added tests
  • Added example and/or tutorial
  • Updated documentation (as needed)
  • Updated migration guide (as needed)
  • Consider updating Python bindings (if the library has them)
  • codecheck passed (See contributing)
  • All tests passed (See test coverage)
  • While waiting for a review on your PR, please help review another open pull request to support the maintainers
  • Was GenAI used to generate this PR? If so, make sure to add "Generated-by" to your commits. (See this policy for more info.)

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by and Generated-by messages.


This is an automatic backport of pull request #790 done by [Mergify](https://mergify.com).

---------

Signed-off-by: Addisu Z. Taddese <addisu@openrobotics.org>
Signed-off-by: Saurabh Kamat <kamatsaurabh01@gmail.com>
Co-authored-by: Saurabh Kamat <kamatsaurabh01@gmail.com>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
(cherry picked from commit ae92d97)

# Conflicts:
#	ros_gz_sim/src/gzserver.cpp
@mergify mergify bot requested a review from ahcorde as a code owner October 21, 2025 22:46
@mergify mergify bot added the conflicts label Oct 21, 2025
@mergify
Copy link
Contributor Author

mergify bot commented Oct 21, 2025

Cherry-pick of ae92d97 has failed:

On branch mergify/bp/jazzy/pr-790
Your branch is up to date with 'origin/jazzy'.

You are currently cherry-picking commit ae92d97.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   ros_gz_sim/CMakeLists.txt
	new file:   ros_gz_sim/include/ros_gz_sim/gz_simulation_interfaces.hpp
	modified:   ros_gz_sim/package.xml
	new file:   ros_gz_sim/src/gz_simulation_interfaces/actions/simulate_steps.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/actions/simulate_steps.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/gazebo_proxy.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/gazebo_proxy.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/gz_entity_filters.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/gz_entity_filters.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/gz_simulation_interfaces.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/handler_base.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/delete_entity.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/delete_entity.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entities.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entities.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entities_states.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entities_states.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entity_info.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entity_info.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entity_state.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_entity_state.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_simulation_state.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_simulation_state.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_simulator_features.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/get_simulator_features.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/reset_simulation.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/reset_simulation.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/set_entity_state.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/set_entity_state.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/set_simulation_state.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/set_simulation_state.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/spawn_entity.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/spawn_entity.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/step_simulation.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/services/step_simulation.hpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/utils.cpp
	new file:   ros_gz_sim/src/gz_simulation_interfaces/utils.hpp
	new file:   ros_gz_sim/test/sdf/gz_simulation_interfaces.sdf
	new file:   ros_gz_sim/test/test_gz_simulation_interfaces.launch.py

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   ros_gz_sim/src/gzserver.cpp

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Inbox

Development

Successfully merging this pull request may close these issues.

1 participant