NorLab TeamCity GUI
(VPN/intranet access) •
norlabulaval
(Docker Hub)
Jetson-Containers
•
Containerized development workflow for NorLab perception or control projects
leveraging docker and nvidia-docker
technology.
Maintainer Luc Coupal
- CUDA support via nvidia-docker
- Multi architectures:
l4t/arm64
,linux/amd64
- Multi OS versions:
- Jetpack:
r35.2.1
,r35.4.1
,r36.2.8
... - Ubuntu:
focal
,jammy
- Jetpack:
- Multi ros2 distros:
foxy
,humble
... - Multi ros2 packages:
core
,base
,desktop
- Multi packages (non-exhaustive list):
- Numerical computing:
numpy
,numba
,pycuda
,tensorrt
- Deep-learning:
pytorch
,torch2trt
,tensordict
- Vision:
opencv
,torchvision
- NorLab perception stack:
libpointmatcher[-ros]
,norlab-icp-mapper[-ros]
- NorLab control stack: (in progress)
- MLOps:
ray
,omegaconf
,hydra-core
,wandb
- Deep-rl:
stable-baseline3
- Simulation:
gym
,f1tenth-gym
- Numerical computing:
- custom dependency management;
- development environment consistency;
- codebase stabilization trough continuous integration pipeline;
- easy deployment to robots compute box;
- results reproducibility.
Recommanded reading by Tobit Flatscher
- Why should I use Docker when developing robotics software?
- Why is Docker important in particular for academic and research institutions?
Note: Dockerized-Norlab images are intended to be used as base images for Dockerized-NorLab-Project
-
Pick an images that fit your project, the most basic one is dockerized-norlab-dependencies-full
-
Pick the tag that fit your needs, e.g.
DN-bleeding-foxy-base-l4t-pytorch-r35.4.1
Notes:bleeding
is for the DNdev
branch,foxy
is the ros version,base
is the ROS package type,l4t-pytorch
is the Jetson container pkg,r35.4.1
is the Jetpack version -
Pull the image from Dockerhub
docker pull norlabulaval/dockerized-norlab-dependencies-full:DN-bleeding-foxy-base-l4t-pytorch-r35.4.1
-
Pull the image from Dockerhub
docker run -it --rm \ --env ROS_DOMAIN_ID=1 --env DISPLAY="${DISPLAY}" --env QT_X11_NO_MITSHM=1 \ --net host -p 2222:2222 -p 6006:6006 -p 7777:7777 \ --privileged \ -v /etc/localtime:/etc/localtime:ro -v /tmp/.X11-unix:/tmp/.X11-unix:rw -v /tmp/.docker.xauth:/tmp/.docker.xauth:rw \ norlabulaval/dockerized-norlab-dependencies-full:DN-bleeding-foxy-base-l4t-pytorch-r35.4.1
Note:
- Add the
--runtime nvidia
flag if you have nvidia gpu and nvidia-docker is installed. - For MacOs user, replace the line
--net host -p 2222:2222 -p 6006:6006 -p 7777:7777
with--net bridge
.
- Add the
Notes:
- All images also have a tag pinned for each release version, starting from release v0.5.2, e.g.
DN-v0.5.2-foxy-ros-core-l4t-r35.2.1
. - Bleeding tags are build from the latest
dev
branch version (e.g.DN-bleeding-foxy-base-l4t-pytorch-r35.4.1
) and are rebuild each week. - All images are multi-architecture build (amr64 and amd64).
- Most have CUDA support via nvidia-docker base image, both for L4T (aka Jetson OS) and ubuntu.
git clone --recurse-submodule https://github.com/norlab-ulaval/dockerized-norlab.git
Assuming a docker builder with multi-architecture docker-container driver named local-builder-multiarch-virtual
execute the following in repository root
export BUILDX_BUILDER=local-builder-multiarch-virtual \
&& export NBS_OVERRIDE_BUILD_MATRIX_MAIN=".env.build_matrix.main" \
&& export NBS_OVERRIDE_ADD_DOCKER_CMD_AND_FLAG="build --push" \
&& source dockerized-norlab-scripts/build_script/dn_build_all.bash
Note: To create a multi-architecture docker builder with architecture virtualization
docker buildx create \
--name local-builder-multiarch-virtual \
--driver docker-container \
--node local \
--platform linux/amd64,linux/arm64 \
--bootstrap \
--use