Roadmap & Contributing
If you’re curious about the planned features and overall development roadmap, see the open issues on GitHub:
Bridge UI for UI related improvements and new features
Phantom Bridge for the Bridge node related features and capabilities
Cloud Briudge for cloud related topics
Feel free to open a new issue if you don’t see what you’d like implemented. It also helps if you let us know what features you care about the most by leaving comments or reacting to issues.
If you’d like to contribute or get otherwise involved, get in touch via GitHub or , pull requets are also highly appreciated.
Here are some quality-of-life tips for debugging and working with the Phantom Bridge node source code:
Log Files
To write Bridge node logs to files, you can configure the ROS_LOG_DIR environment variable in the compose.yaml file, as seen below. For log persistence across container lifecycles, specify an output directory that’s external to the container.
services:
phntm_bridge:
container_name: phntm-bridge
environment:
- ROS_LOG_DIR=/ros2_ws/phntm_bridge_logs
volumes:
~/phntm_bridge_logs:/ros2_ws/phntm_bridge_logs
Dev Mode
To streamline development with frequently changing code, you can mount a live repository into the Docker container, overwriting the /ros2_ws/src/phntm_bridge directory. This approach eliminates the need for constant image rebuilds, as illustrated in the example below. (This is currently the recommended way of running Phantom Bridge, as it makes upgrading as easy as pulling updates from the GitHub repo and restarting the Docker container.)
You may also prefer to not launch the Bridge node automatically on the container start, but rather start it manually from the container’s interactive shell.
services:
phntm_bridge:
container_name: phntm-bridge
volumes:
- ~/phntm_bridge:/ros2_ws/src/phntm_bridge # override with live repo
command:
/bin/sh -c "while sleep 1000; do :; done" # don't launch on container start
Then you can launch the process manually like so:
docker compose up phntm_bridge -d # launch the modified container (detached)
docker exec -it phntm-bridge bash # get interactive shell inside the container
ros2 launch phntm_bridge bridge_agent_launch.py # launches Bridge & Agent nodes, Ctrl-C kills both
Note that when launched manually like this, on the first run inside the container the Bridge node performs
first run checks and then exists. This is normal behavior but since
the container doesn’t restart afterwards, you’ll need to launch the node again by hand. Before you do so,
make sure to source the environment to get access to any custom packages that may have just been installed
with source /ros2_ws/install/setup.bash
(in normal mode, the whole container restarts and fresh
environment is sourced automatically).