ADORe Embedded — Release
Requirements
Docker (recommended)
- Docker Engine 24+ — install guide
x86_64oraarch64host matching the image architecture in the filename- GNU Make
Docker-free bundle
podman— install guide, orutil-linuxwithunshare,chroot, andmount(standard on most Linux distributions)- Lichtblick visualisation in the bundle requires
podman
Fetch
https://github.com/eclipse-adore/adore/releases/
Release: https://github.com/eclipse-adore/adore/releases/tag/release
Docker image
# x86_64
curl -L -o adore_embedded_x86_64_9dbb267_RHcb4b0dd.tar.gz https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_x86_64_9dbb267_RHcb4b0dd.tar.gz
wget https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_x86_64_9dbb267_RHcb4b0dd.tar.gz
# aarch64
curl -L -o adore_embedded_aarch64_9dbb267_RHcb4b0dd.tar.gz https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_aarch64_9dbb267_RHcb4b0dd.tar.gz
wget https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_aarch64_9dbb267_RHcb4b0dd.tar.gzDocker-free bundle
# x86_64
curl -L -o adore_embedded_x86_64_9dbb267_RHcb4b0dd_bundle.tar.gz https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_x86_64_9dbb267_RHcb4b0dd_bundle.tar.gz
wget https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_x86_64_9dbb267_RHcb4b0dd_bundle.tar.gz
# aarch64
curl -L -o adore_embedded_aarch64_9dbb267_RHcb4b0dd_bundle.tar.gz https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_aarch64_9dbb267_RHcb4b0dd_bundle.tar.gz
wget https://github.com/eclipse-adore/adore/releases/download/release/adore_embedded_aarch64_9dbb267_RHcb4b0dd_bundle.tar.gzUnpack
# x86_64
tar -xzf adore_embedded_x86_64_9dbb267_RHcb4b0dd.tar.gz
cd adore_embedded_x86_64_9dbb267_RHcb4b0dd
# aarch64
tar -xzf adore_embedded_aarch64_9dbb267_RHcb4b0dd.tar.gz
cd adore_embedded_aarch64_9dbb267_RHcb4b0ddThe image archive (*.tar.gz) inside the directory is loaded separately on first run — no manual extraction needed.
Quick start
./load.sh # import Docker image (first run only)
./start.sh # start container
./start_lichtblick.sh # start Lichtblick visualiser (optional)
./shell_dist.sh # attach to pre-built workspace
./stop_lichtblick.sh # stop visualiser
./stop.sh # stop containerRunning a scenario
shell_dist.sh drops directly into the simulation scenarios directory with the workspace pre-sourced.
./shell_dist.shInside the shell, launch any scenario by name:
ros2 launch simulation_test.launch.pyOther available scenarios in the same directory:
ros2 launch template.launch.py
ros2 launch dlr_campus.launch.py
ros2 launch saad_maad.launch.pyVisualizing with Lichtblick
Lichtblick connects to the running scenario over rosbridge (WebSocket on port 9090) and renders a pre-configured layout shipped with the release.
1. Start Lichtblick (in a separate terminal, before or after launching a scenario):
./start_lichtblick.sh2. Launch a scenario (in another terminal):
./shell_dist.sh
ros2 launch simulation_test.launch.py3. Open Lichtblick in a Chromium-based browser:
http://localhost:8080/?ds=rosbridge-websocket&ds.url=ws://localhost:9090
The default layout loads automatically. To load the shipped layout explicitly, open it from ros2_workspace_dist/context/ inside the container, or from the adore_scenarios/assets/lichtblick_layouts/Default.json path in the release directory.
Note: Lichtblick requires a Chromium-based browser (Chrome, Chromium, Edge). Firefox is not supported.
4. Stop when done:
./stop_lichtblick.sh
./stop.shDev vs dist workspace
Dev (shell_dev.sh) |
Dist (shell_dist.sh) |
|
|---|---|---|
| Mount | Live ros2_workspace/ from host |
Pre-built ros2_workspace_dist/ baked into the image |
| ROS2 setup | Not sourced — run source install/setup.bash after building |
Sourced automatically on shell entry |
| Use when | Actively modifying and rebuilding source | Running scenarios against a known-good build |
Use shell_dev.sh during development. Use shell_dist.sh to run scenarios against the shipped build without any host dependencies.
Docker-free bundle
No Docker required. The bundle ships a complete Linux rootfs extracted from the Docker image alongside the pre-built ROS2 workspace and the Lichtblick image archive.
How it works
start.sh uses podman if available, otherwise falls back to unshare/chroot from util-linux. Both paths mount the ros2_workspace_dist/ directory from the bundle into the rootfs at runtime, so scenarios always run against the shipped build without copying it into the container.
The unshare path creates an unprivileged user namespace with a private mount and PID namespace, then calls chroot into the rootfs. No root access is required with either backend.
Lichtblick in the bundle requires podman. The Lichtblick container image is included in the bundle as lichtblick/<archive>.tar.gz and is imported into podman on first use.
Unpack
tar -xzf <filename_bundle>
cd <dirname_bundle>Workflow
./shell_dist.sh # enter the dist workspace shell
./shell_dev.sh # enter the dev workspace shell
./stop.sh # remove the imported podman image (podman only; no-op for unshare)
./start_lichtblick.sh # start the Lichtblick visualiser (requires podman)
./stop_lichtblick.sh # stop the Lichtblick visualiserRunning a scenario (bundle)
Open two terminals in the bundle directory.
Terminal 1 — start the environment and launch a scenario:
./shell_dist.sh
ros2 launch simulation_test.launch.pyTerminal 2 — start Lichtblick:
./start_lichtblick.shThen open in a Chromium-based browser:
http://localhost:8080/?ds=rosbridge-websocket&ds.url=ws://localhost:9090
When done:
./stop_lichtblick.sh
./stop.shstop.sh removes the imported podman image (adore_bundle_<ros_distro>). Re-running start.sh or any shell script will re-import it from the rootfs directory on the next invocation. When using the unshare backend, stop.sh prints a notice and exits cleanly — there is no persistent state to remove.
Backend selection
| Backend | Selected when | Persistent state |
|---|---|---|
podman |
podman is on PATH |
Podman image adore_bundle_<ros_distro> imported on first run; removed by stop.sh |
unshare/chroot |
podman not found |
None — namespace torn down when the shell exits |
Bundle contents
| Path | Description |
|---|---|
rootfs/ |
Complete Linux rootfs with all ROS2 and ADORe dependencies |
ros2_workspace_dist/ |
Pre-built ROS2 workspace mounted into the rootfs at runtime |
lichtblick/<archive>.tar.gz |
Lichtblick container image archive, imported into podman on first use |
bundle.env |
ROS_DISTRO and DOCKER_PLATFORM consumed by the bundle scripts |
lichtblick.env |
LICHTBLICK_IMAGE and LICHTBLICK_ARCHIVE_NAME consumed by start_lichtblick.sh |
container.env |
Runtime environment variables passed into the environment |
start.sh |
Start an interactive session via podman or unshare/chroot |
stop.sh |
Remove the imported podman image; no-op for unshare |
shell_dist.sh |
Shell into the pre-built dist workspace |
shell_dev.sh |
Shell into the dev workspace |
start_lichtblick.sh |
Start Lichtblick via podman (loads archive on first use) |
stop_lichtblick.sh |
Stop the Lichtblick podman container |
.bundle_inner.sh |
Internal helper — mounts filesystems and execs into the chroot (not called directly) |
README.md |
This file |
Rebuild ROS2 workspace
./shell_dev.sh # enter dev shell
make build # rebuild inside containerOr non-interactively:
./build_ros_workspace.shContents (Docker release)
| Path | Description |
|---|---|
adore.env |
Image name, tag, and container configuration |
container.env |
Runtime environment variables passed into the container |
load.sh |
Load the image archive into Docker |
start.sh |
Start the container detached |
stop.sh |
Stop and remove the container |
shell_dev.sh |
Interactive shell — live source workspace |
shell_dist.sh |
Interactive shell — pre-built distribution workspace |
build_ros_workspace.sh |
Rebuild the ROS2 workspace inside the container |
start_lichtblick.sh / stop_lichtblick.sh |
Lichtblick visualiser |
bundle_run.sh |
Run without Docker via podman or unshare |
bundle_shell_dev.sh / bundle_shell_dist.sh |
Shells for the Docker-free bundle |
ros2_workspace_dist/ |
Pre-built ROS2 workspace |
lichtblick/ |
Lichtblick image archive and supporting files |
*.tar.gz |
Docker image archive |