Gazebo Bridge (Host)
Runs on your local machine and bridges a native Gazebo Sim
process to ROS2/Gazebo Transport running inside a remote Dev Container, SSH
remote, WSL, or GitHub Codespace — so you get native GPU/graphics performance
for the simulator without giving up a container-based ROS2 environment.
Status: early / pre-alpha. The core relay mechanism is proven on a real
cross-machine deployment, but this hasn't seen broad testing yet — expect
rough edges.
Requires the companion extension
This is one half of a pair — install Gazebo Bridge (Remote)
(RoboStar.gz-bridge-remote) too, inside your Dev Container / Codespace;
it needs to be running there for the bridge to do anything. These aren't
wired as a hard Marketplace dependency: this extension runs on your local
machine (extensionKind: ["ui"]), so it activates in every window you
open, remote or not — a hard dependency on gz-bridge-remote (which can
only ever exist inside a remote connection) would nag you to install it
even in windows with nothing to do with this project. Add
RoboStar.gz-bridge-remote to the target project's devcontainer.json
customizations.vscode.extensions instead, so it's only ever suggested
where it's actually relevant.
What it does
- Relays Gazebo Transport's UDP-multicast discovery traffic and the
dynamically-negotiated TCP data connections it sets up, across the
container boundary.
- Intercepts
gz sim ... launches issued inside the container and runs the
real simulator natively on your machine, streaming its output back to the
container's terminal.
- Syncs the SDF worlds/models/meshes a launch references from the
container's filesystem into a local cache, so the native process can
actually find them.
- Builds native Gazebo system plugins from source synced out of the
container, or fetches prebuilt release binaries declared via a package's
package.xml.
Commands
- Gazebo Bridge: Show Host Relay Status
- Gazebo Bridge: Sync Resources from Remote
- Gazebo Bridge: Build Native Plugins
Settings
gzBridge.nativeGzCommand — local gz command to run (default gz,
resolved via your normal PATH).
gzBridge.nativeConfigPath — value for GZ_CONFIG_PATH. VS Code doesn't
source your shell profile, so anything set there (e.g. Homebrew's
gz-harmonic caveats) isn't inherited automatically.
gzBridge.nativeGuiPluginPath — value for GZ_GUI_PLUGIN_PATH, e.g. to
point at a locally-built GUI plugin instead of the one bundled with your
Gazebo install.
gzBridge.nativePluginSources — workspace-relative paths to
CMake-buildable native plugin sources to sync and build before each
launch.
A note on trust
This extension spawns local processes and runs CMake builds using paths and
arguments supplied by whatever remote/container it's connected to. That's
the intended behavior when you control the container — be aware of it
before connecting to one you don't.
Third-party notices
Bundles vendored gz-msgs protobuf schemas (discovery.proto,
header.proto, time.proto), Apache License 2.0, Copyright Open Source
Robotics Foundation.
License
Apache-2.0