Skip to content

Docker-based simulation environment for Booster Robotics, including Webots world files, control interface, and FastDDS configuration.

Notifications You must be signed in to change notification settings

socrob/booster_webots_sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Booster Sim β€” Dockerized Booster Robotics Webots Simulation

This repository provides a Dockerized development and simulation stack for Booster Robotics, including:

  • βœ… Webots β€” advanced 3D robot simulator.
  • βœ… Booster Control Runner β€” bridges the SDK and Webots simulation.
  • βœ… FastDDS β€” real-time DDS middleware for ROS 2.
  • βœ… Booster ROS 2 packages β€” integrated example and interface nodes.

πŸ“¦ How it works

Large binaries like Webots, worlds, control runners and FastDDS monitor are distributed via GitHub Releases, not tracked in the repository.

The Dockerfile automatically:

  • Pulls these .zip files with curl.
  • Unpacks them in the right directories.
  • Installs ROS 2 Humble on NVIDIA CUDA runtime for GPU-accelerated OpenGL.
  • Removes unnecessary Mesa fallback libraries early to avoid software rendering fallback.

🐳 NVIDIA Runtime Requirements

This stack runs on:

FROM nvidia/cuda:12.3.1-runtime-ubuntu22.04

You must have:

  • A compatible NVIDIA GPU.
  • Proper NVIDIA drivers installed on the host for CUDA 12.3+.
  • The nvidia-container-toolkit and nvidia-docker runtime configured.

Test with:

nvidia-smi

Ensure it shows your GPU with no errors.

This guarantees hardware OpenGL rendering inside the container (not Mesa).


βœ… Quickstart with Makefile

Use the Makefile for a simple workflow:

# Build the Docker image
make compose-build

# Launch the container stack
make compose-up

# Open a shell inside the running container
make exec

# Shut down and clean up
make compose-down

βœ… The compose-up automatically forwards X11 for GUI (Webots) and uses the NVIDIA runtime.


βš™οΈ Manual usage inside container

No automatic entrypoint is defined. Once inside the container, use the pre-set bash aliases:

# Run the 7DOF simulation world:
start-webots-7dof

# Or run the release world:
start-webots

# Start the Control Runner (matching version):
start-runner
start-runner-7dof

# Run SDK client example:
sdk-client

These are all defined in the Dockerfile and ready to use in ~/.bashrc.


βœ… FastDDS config

A custom fastdds_profile.xml is included and auto-set:

export FASTRTPS_DEFAULT_PROFILES_FILE=/root/Workspace/booster_sim/fastdds_profile.xml

No extra setup needed.


⚑️ GPU OpenGL troubleshooting

If you see Webots using Mesa, double-check:

  • You started Docker with --runtime=nvidia.
  • You passed /dev/dri and NVIDIA device nodes.
  • You have xhost +local:docker to allow GUI access.
  • Your host has the proprietary NVIDIA OpenGL drivers (libGLX_nvidia.so etc.).

πŸ“Œ License and vendor notice

The .zip binaries are from Booster Robotics official distribution and provided in GitHub Releases only for team internal use.

All intellectual property belongs to Booster Robotics.


Β© Booster Robotics Simulation β€” 2025

About

Docker-based simulation environment for Booster Robotics, including Webots world files, control interface, and FastDDS configuration.

Resources

Stars

Watchers

Forks

Packages

No packages published