Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
2328932
Initial splitting of docker.
Jelmerdw Nov 28, 2025
ec28b68
rcdt_husarion can now start a container and directly launch husarion.…
geurto Dec 1, 2025
4164867
rcdt_gazebo now spawns a new world and a Panther
geurto Dec 1, 2025
86ca907
split rcdt_core up into rcdt_base and rcdt_cuda, based on if an image…
geurto Dec 1, 2025
ab86170
added rviz/vizanti launch files -- rviz now launches with some (hardc…
geurto Dec 2, 2025
6cac687
moving to separate platforms.yml, simulator.yml, tools.yml so you can…
geurto Dec 2, 2025
216e3ec
added rcdt_nav2
geurto Dec 3, 2025
64bc153
324 make repository compliant to alliander ospo standards (#339)
rosalievanark Nov 28, 2025
ac2c6bf
Generalize nav2 tests and add GPS test. (#338)
Jelmerdw Dec 1, 2025
f7f970a
Improve stability of tests.
Jelmerdw Dec 3, 2025
27a6a52
rebase
geurto Dec 3, 2025
8debfd5
moved Husarion URDFs to rcdt_gazebo as they are only used in simulati…
geurto Dec 5, 2025
e8f1ec5
small updates
geurto Dec 5, 2025
fda7361
adding back the URDF to rcdt_husarion fixed the launch issue
geurto Dec 5, 2025
791e129
basic nav2/panther/gazebo/rviz launch now runs, started additions in …
geurto Dec 5, 2025
4db1622
Add script to make compose and spin container for given platform.
Jelmerdw Dec 9, 2025
8df01c0
Create devcontainer configurations for VSCode.
Jelmerdw Dec 9, 2025
db277fc
Start integrating Franka.
Jelmerdw Dec 9, 2025
91f996a
Add gripper components to Franka.
Jelmerdw Dec 10, 2025
9feb34a
Make platfroms argument optional.
Jelmerdw Dec 10, 2025
1dab436
Simplify code.
Jelmerdw Dec 10, 2025
54559c6
Add moveit base.
Jelmerdw Dec 10, 2025
0c07515
Use Register and add pose_manipulator node.
Jelmerdw Dec 11, 2025
cabe277
First working version of Moveit with separate dockers.
Jelmerdw Dec 11, 2025
f7625c9
Fix robot visualization in Rviz.
Jelmerdw Dec 11, 2025
6460b1a
Move URDF's to new rcdt_description package and install this package …
Jelmerdw Dec 12, 2025
a8d6e90
Merge branch 'main' into 321-split-docker-image-structure
Jelmerdw Dec 12, 2025
c746f0c
Undo change.
Jelmerdw Dec 12, 2025
329f28d
Add ouster.
Jelmerdw Dec 12, 2025
7a8113c
Add velodyne.
Jelmerdw Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .devcontainer/dev/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "dev",
"dockerComposeFile": "../../docker-compose.yml",
"service": "dev",
"workspaceFolder": "/rcdt_robotics",
"overrideCommand": true,
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"llvm-vs-code-extensions.vscode-clangd",
"charliermarsh.ruff",
"astral-sh.ty"
]
}
}
}
24 changes: 0 additions & 24 deletions .devcontainer/devcontainer.json

This file was deleted.

7 changes: 7 additions & 0 deletions .devcontainer/franka/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "franka",
"dockerComposeFile": "../../platforms.yml",
"service": "rcdt_franka",
"workspaceFolder": "/rcdt/ros",
"overrideCommand": true
}
7 changes: 7 additions & 0 deletions .devcontainer/moveit/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "moveit",
"dockerComposeFile": "../../platforms.yml",
"service": "rcdt_moveit",
"workspaceFolder": "/rcdt/ros",
"overrideCommand": true
}
7 changes: 7 additions & 0 deletions .devcontainer/panther/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "husarion",
"dockerComposeFile": "../../platforms.yml",
"service": "rcdt_husarion",
"workspaceFolder": "/rcdt/ros",
"overrideCommand": true
}
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.venv
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,8 @@ clangd/
# for LSP in neovim
.clangd-build/
**/compile_commands.json

# generated compose files
platforms.yml
simulator.yml
tools.yml
24 changes: 24 additions & 0 deletions attach.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0

mapfile -t CONTAINER_NAMES < <(docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }}')
mapfile -t CONTAINER_IDS < <(docker ps -q)

echo "Choose Docker container to attach to:"
for i in "${!CONTAINER_NAMES[@]}"; do
CLEAN_NAME=$(echo "${CONTAINER_NAMES[$i]}" | sed 's/^[\/]//')
echo "$((i+1)). ${CLEAN_NAME}"
done

stty sane
read -p "Enter container number (1-N): " CHOICE

SELECTED_ID="${CONTAINER_IDS[$((CHOICE-1))]}"
SELECTED_NAME="${CONTAINER_NAMES[$((CHOICE-1))]}"

echo "Attaching to $SELECTED_ID/$SELECTED_NAME"

docker exec -it $SELECTED_NAME bash
53 changes: 53 additions & 0 deletions common/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0

############################################################################################
# Script to build one of the non-base Dockerfiles.
# Each needs the following arguments:
# - ARCH: architecture to build for [amd64 / arm64]
# - PACKAGE: package name to build [core / franka / husarion / velodyne / vision]
# - BASE_PACKAGE: base image tag [base / core]
############################################################################################

ARCH=$1
PACKAGE=$2
BASE_PACKAGE=$3
NO_CACHE=$4
export DOCKER_BUILDKIT=1

# Set Docker image tag
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
GIT_BRANCH=$(git branch --show-current)
if [ "$GIT_BRANCH" != "main" ] ; then
IMAGE_TAG=rcdt/robotics:$PACKAGE-$ARCH-$GIT_BRANCH
else
IMAGE_TAG=rcdt/robotics:$PACKAGE-$ARCH
fi

source ./checks.sh $ARCH

# Check if base image with specific branch tag exists, otherwise use latest
if [ -n "$(docker images | grep rcdt/robotics | grep $BASE_PACKAGE-$ARCH-$GIT_BRANCH)" ] ; then
echo "Using base image with tag $BASE_PACKAGE-$ARCH-$GIT_BRANCH."
BASE_IMAGE_GIT_TAG=$BASE_PACKAGE-$ARCH-$GIT_BRANCH
else
BASE_IMAGE_GIT_TAG=$BASE_PACKAGE-$ARCH
echo "Base image with tag $BASE_PACKAGE-$ARCH-$GIT_BRANCH not found. Using $BASE_PACKAGE-$ARCH."
fi
echo $BASE_IMAGE_GIT_TAG
BASE_IMAGE=rcdt/robotics:$BASE_IMAGE_GIT_TAG
echo $BASE_IMAGE

# Build the Docker image
(
cd "$SCRIPT_DIR"/.. && \
docker build -f rcdt_$PACKAGE/rcdt_$PACKAGE.Dockerfile \
--build-arg BASE_IMAGE=$BASE_IMAGE \
--platform $PLATFORM \
$NO_CACHE \
-t $IMAGE_TAG \
.
)
31 changes: 31 additions & 0 deletions common/build_base.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1
PACKAGE=base

export DOCKER_BUILDKIT=1

# Set Docker image tag
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
GIT_BRANCH=$(git branch --show-current)
if [ "$GIT_BRANCH" == "main" ] ; then
IMAGE_TAG=$PACKAGE
else
IMAGE_TAG=$PACKAGE-$GIT_BRANCH
fi

source ./checks.sh $ARCH

# Build the Docker image
BASE_IMAGE=nvidia/cuda:12.9.1-cudnn-devel-ubuntu24.04-$ARCH
(
cd "$SCRIPT_DIR"/.. && \
docker build -f rcdt_$PACKAGE.Dockerfile \
--build-arg BASE_IMAGE=$BASE_IMAGE \
--platform $PLATFORM \
-t "rcdt/robotics:$IMAGE_TAG-$ARCH" \
.
)
10 changes: 10 additions & 0 deletions common/build_franka.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1
PACKAGE=franka
BASE_PACKAGE=cuda

./build.sh $ARCH $PACKAGE $BASE_PACKAGE
10 changes: 10 additions & 0 deletions common/build_realsense.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1
PACKAGE=realsense
BASE_PACKAGE=cuda

./build.sh $ARCH $PACKAGE $BASE_PACKAGE
10 changes: 10 additions & 0 deletions common/build_simulation.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1
PACKAGE=simulation
BASE_PACKAGE=base

./build.sh $ARCH $PACKAGE $BASE_PACKAGE
10 changes: 10 additions & 0 deletions common/build_velodyne.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1
PACKAGE=velodyne
BASE_PACKAGE=cuda

./build.sh $ARCH $PACKAGE $BASE_PACKAGE
10 changes: 10 additions & 0 deletions common/build_zed.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1
PACKAGE=zed
BASE_PACKAGE=cuda

./build.sh $ARCH $PACKAGE $BASE_PACKAGE
29 changes: 29 additions & 0 deletions common/checks.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1

# Check the platform
if [ "$ARCH" != "amd64" ] && [ "$ARCH" != "arm64" ] ; then
echo "Invalid architecture $ARCH. Please choose either 'amd64' or 'arm64'."
exit 1
else
echo "Running for architecture $ARCH."
fi

# Set platform and start QEMU if needed
if [ "$ARCH" == "amd64" ] ; then
PLATFORM="linux/amd64"
if [ "$(uname -p)" != "x86_64" ] ; then
echo "ERROR: Running amd64 build on $(uname -p) device, exiting."
exit 1
fi
else
PLATFORM="linux/arm64/v8"
if [ "$(uname -p)" == "x86_64" ] ; then
echo "***** Setting up QEMU environment... *****"
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
fi
fi
3 changes: 3 additions & 0 deletions common/dev-pkgs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ros-jazzy-nmea-navsat-driver
ros-jazzy-moveit-ros-perception
ros-jazzy-topic-tools
17 changes: 17 additions & 0 deletions common/pull.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash

# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0
ARCH=$1

BASE_IMAGE=nvidia/cuda:12.9.1-cudnn-devel-ubuntu24.04

if [ "$ARCH" != "amd64" ] && [ "$ARCH" != "arm64" ] ; then
echo "Invalid architecture $ARCH. Please choose either 'amd64' or 'arm64'."
exit 1
fi

docker pull --platform linux/$ARCH $BASE_IMAGE
docker tag $BASE_IMAGE $BASE_IMAGE-$ARCH
echo "Pulled and tagged image $BASE_IMAGE-$ARCH."
Loading
Loading