Skip to content

Develop

Environment Compilation and Deployment

Assuming the base image is ros-humble-jammy-base:latest

Dependency Installation

# System library dependencies
sudo apt install libasio-dev nlohmann-json3-dev libwebsocketpp-dev libssl-dev

# Build and compilation tool dependencies
sudo apt install ninja-build cmake unzip pkg-config \
  python3 python3-pip python3-venv python3-dev ca-certificates \
  python3-colcon-common-extensions python3-rosdep \
  ros-humble-ament-cmake ros-humble-ament-index-cpp

# Initialize and update rosdep
sudo rosdep init
rosdep update

Compilation Process

cd pnd_bridge

# Install ROS dependencies
sudo rosdep install --from-paths ./src --ignore-src -r -y

# Execute full compilation
colcon build --symlink-install

# (Optional) If you need to skip rerun_bridge during compilation:
# colcon build --package-ignore rerun_bridge --symlink-install

Note

Other compilation options can be found in the ./colcon_defaults.yaml file in the project root.

Deployment and Execution

1. Physical Machine Deployment

Copy the compiled install directory and the pnd_bridge.sh script to the remote robot for use.

2. Docker Deployment

Supports one-click container deployment to avoid environment contamination.

First, build the image in the project root directory:

docker build -t pnd_bridge:humble .

Start the foxglove_bridge example:

docker run --rm -it \
  --network host \
  pnd_bridge:humble \
  --enable-foxglove-bridge \
  --domain-id 0 \
  --robot adam_pro

Note

The Docker image entry point is equivalent to executing ./pnd_bridge.sh [options], so all pnd_bridge parameters can be directly appended to the docker run command. For example, to view the help documentation:

docker run --rm -it --network host pnd_bridge:humble --help