Quick Start
Build an ADI Robotics SDK image, open a shell in the container, and verify the environment is ready.
1. Clone the Repository
Clone the meta-repository with all submodules:
git clone --recurse-submodules https://github.com/analogdevicesinc/adi_ros2.git
cd adi_ros2
If you already cloned without submodules:
git submodule update --init --recursive
Note
All build commands below are run from the repository root.
2. Image Stages
The available stages are core, base, full, and desktop.
Note
See Supported Platforms for a description of each variant, what it includes, and image sizes.
3. Build Your First Image
The docker compose commands use compose.build.yml, which declares the
build targets, Dockerfiles, tags, and build arguments for this repository.
Build the base image:
docker compose -f compose.build.yml build base
Note
The first build downloads base images and compiles all ADI packages from source — expect 15–30 minutes depending on your hardware. Subsequent builds use Docker’s layer cache and are much faster.
Verify the image was created:
docker images | grep adi_ros2
You should see adi_ros2 with tag humble-base.
4. Build All Targets
From the repository root, use compose.build.yml for standard and L4T
targets.
Standard Targets (Native Architecture)
Build a specific standard target:
docker compose -f compose.build.yml build core
docker compose -f compose.build.yml build base
docker compose -f compose.build.yml build full
docker compose -f compose.build.yml build desktop
Or build all standard targets at once:
docker compose -f compose.build.yml build
NVIDIA Jetson (L4T) Targets
These images use docker/Dockerfile.l4t and target JetPack 6.x
(L4T_VERSION=r36.2.0 by default).
docker compose -f compose.build.yml build l4t-core
docker compose -f compose.build.yml build l4t-base
docker compose -f compose.build.yml build l4t-full
docker compose -f compose.build.yml build l4t-desktop
Tip
To target a different L4T release:
L4T_VERSION=r36.3.0 docker compose -f compose.build.yml build l4t-base
Cross-Architecture Build (x86_64 Host -> ARM64 Image)
If your Docker setup supports multi-platform builds, you can use Compose with an explicit target platform:
DOCKER_DEFAULT_PLATFORM=linux/arm64 docker compose -f compose.build.yml build base
Or use Docker Buildx directly:
docker buildx build --platform linux/arm64 --target base -f docker/Dockerfile .
Replace --target base with core, full, or desktop as needed.
Note
Cross-platform builds require BuildKit/Buildx and emulation support (QEMU). See Docker’s setup guides:
5. Run a Container
Interactive Shell
Start an interactive container from the base image:
This command can be run from any directory after the image is built.
docker run -it --rm --net=host --ipc=host adi_ros2:humble-base
Verify the environment is loaded:
ros2 pkg list | grep adi
6. Verify the Container Environment
Once inside the container shell, run the following checks:
# ROS distro is set
echo $ROS_DISTRO
# ADI packages are visible
ros2 pkg list | grep adi
# Core tooling is available
ros2 --help
colcon --help
If these commands run successfully, the container is ready.