Closed caguero closed 1 month ago
I just updated merged from ros2
in #500. Can you merge from gz_sim_ros_node
so CI will run?
cc @mjcarroll
I just updated merged from
ros2
in #500. Can you merge fromgz_sim_ros_node
so CI will run?
Merged from gz_sim_ros_node
.
🎉 New feature
Part of https://github.com/gazebosim/ros_gz/issues/544
Summary
Extends #500 and converts the
gzserver
ROS node into a ROS component. It also adds a launch file that creates a container and loads two ROS nodes:gzserver
and a bridge.The idea of loading bridges,
gzserver
and potentially other ROS user components under the same container will benefit performance as we'll use intraprocess in Transport and in ROS. If the ROS user code runs outside of the container, we'll still have the gz Transport intraprocess advantage.Each bridge will be loaded as a separate ROS component. There might be some extra overhead compared with a scenario where all bridges are loaded within the same ROS component. However, there are advantages as many of the ROS utilities should work as expected (topic remapping, namespaces, etc.).
How to test it?
Use the provided
ros_gz_sim.launch.py
(modifyconfig_file
accordingly):gzserver
and the bridge should be running. Open a new terminal and confirm that the two ROS nodes are loaded:Verify that the bridge is advertising
/ros_chatter
:Now, open a new terminal and load a new bridge into the existing container:
Confirm it:
Now verify that the new bridge is advertising the new topics:
Test it
Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
messages.