-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Launch gzserver and the bridge as composable nodes #528
Conversation
Signed-off-by: Addisu Z. Taddese <[email protected]>
Signed-off-by: Carlos Agüero <[email protected]>
Signed-off-by: Carlos Agüero <[email protected]>
Signed-off-by: Carlos Agüero <[email protected]>
Signed-off-by: Carlos Agüero <[email protected]>
Signed-off-by: Carlos Agüero <[email protected]>
I just updated merged from |
cc @mjcarroll |
Merged from |
Signed-off-by: Carlos Agüero <[email protected]>
* Launch file for the bridge Signed-off-by: Carlos Agüero <[email protected]>
* Launch file for the bridge Signed-off-by: Carlos Agüero <[email protected]>
* Combined gzserver + bridge launch file. Signed-off-by: Carlos Agüero <[email protected]>
* Combined spawn_model + bridge launch file. Signed-off-by: Carlos Agüero <[email protected]>
* Launch file for the bridge Signed-off-by: Carlos Agüero <[email protected]>
Signed-off-by: Addisu Z. Taddese <[email protected]>
Signed-off-by: Addisu Z. Taddese <[email protected]>
…_node_composition Signed-off-by: Addisu Z. Taddese <[email protected]>
Signed-off-by: Addisu Z. Taddese <[email protected]>
Co-authored-by: Addisu Z. Taddese <[email protected]> Signed-off-by: Carlos Agüero <[email protected]>
Co-authored-by: Addisu Z. Taddese <[email protected]> Signed-off-by: Carlos Agüero <[email protected]>
Signed-off-by: Carlos Agüero <[email protected]>
…s_gz into gz_sim_ros_node_composition
Signed-off-by: Carlos Agüero <[email protected]>
Signed-off-by: Carlos Agüero <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!! I'm excited to see this get in.
There are still some issues around required parameters. For example, the following doesn't work.
<launch>
<arg name="world_sdf_file" default="empty.sdf" />
<gz_server world_sdf_file="$(var world_sdf_file)" />
</launch>
But let's address that in a follow up PR.
* Add gzserver with ability to load an SDF file or string Signed-off-by: Addisu Z. Taddese <[email protected]>
🎉 New feature
Part of #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.