Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "ros2_ws/src/Universal_Robots_ROS2_Driver"]
path = ros2_ws/src/Universal_Robots_ROS2_Driver
url = https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git
[submodule "engine/o3de"]
path = engine/o3de
url = https://github.com/o3de/o3de.git
Expand Down
86 changes: 13 additions & 73 deletions Docker/Dockerfile.O3DE
Original file line number Diff line number Diff line change
Expand Up @@ -4,90 +4,23 @@
# SPDX-License-Identifier: Apache-2.0 OR MIT
#

ARG ROS_VERSION=humble
ARG UBUNTU_VERSION=jammy
ARG ROS_VERSION=jazzy
ARG UBUNTU_VERSION=noble

FROM ros:${ROS_VERSION}-ros-base-${UBUNTU_VERSION}

ENV WORKSPACE=/data/workspace

WORKDIR $WORKSPACE

# O3DE Arguments
ARG O3DE_REPO=https://github.com/o3de/o3de
ARG O3DE_BRANCH=2505.1
ARG O3DE_COMMIT=HEAD

# O3DE Extras Arguments
ARG O3DE_EXTRAS_REPO=https://github.com/o3de/o3de-extras
ARG O3DE_EXTRAS_BRANCH=2505.1
ARG O3DE_EXTRAS_COMMIT=HEAD

# ROSCon2023 Human Worker Arguments
ARG ROSCON_DEMO_HUMAN_WORKER_REPO=https://github.com/RobotecAI/o3de-humanworker-gem
ARG ROSCON_DEMO_HUMAN_WORKER_BRANCH=2.0.0
ARG ROSCON_DEMO_HUMAN_WORKER_COMMIT=HEAD

# ROSCon2023 UR10 and UR20 Robots Gem Arguments
ARG ROSCON_DEMO_UR_ROBOTS_REPO=https://github.com/RobotecAI/o3de-ur-robots-gem
ARG ROSCON_DEMO_UR_ROBOTS_BRANCH=2.0.0
ARG ROSCON_DEMO_UR_ROBOTS_COMMIT=HEAD

# ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem Arguments
ARG ROSCON_DEMO_OTTO_ROBOTS_REPO=https://github.com/RobotecAI/o3de-otto-robots-gem
ARG ROSCON_DEMO_OTTO_ROBOTS_BRANCH=2.0.0
ARG ROSCON_DEMO_OTTO_ROBOTS_COMMIT=HEAD

# ROSConDemo Arguments
ARG ROSCON_DEMO_REPO=https://github.com/RobotecAI/ROSCon2023Demo.git
ARG ROSCON_DEMO_BRANCH=3.0.1
ARG ROSCON_DEMO_BRANCH=main
ARG ROSCON_DEMO_COMMIT=HEAD
ARG ROSCON_DEMO_LEVEL=level1
ARG ROSCON_DEMO_FULLSCREEN=0
ARG ROSCON_DEMO_LARGE_SCALE=0

# O3DE Environment
ENV O3DE_REPO=$O3DE_REPO
ENV O3DE_BRANCH=$O3DE_BRANCH
ENV O3DE_COMMIT=$O3DE_COMMIT
ENV O3DE_ROOT=$WORKSPACE/o3de

# O3DE Extras Environment Variables
ENV O3DE_EXTRAS_REPO=$O3DE_EXTRAS_REPO
ENV O3DE_EXTRAS_BRANCH=$O3DE_EXTRAS_BRANCH
ENV O3DE_EXTRAS_COMMIT=$O3DE_EXTRAS_COMMIT
ENV O3DE_EXTRAS_ROOT=$WORKSPACE/o3de-extras

# ROSCon2023 Human Worker Environment Variables
ENV ROSCON_DEMO_HUMAN_WORKER_REPO=$ROSCON_DEMO_HUMAN_WORKER_REPO
ENV ROSCON_DEMO_HUMAN_WORKER_BRANCH=$ROSCON_DEMO_HUMAN_WORKER_BRANCH
ENV ROSCON_DEMO_HUMAN_WORKER_COMMIT=$ROSCON_DEMO_HUMAN_WORKER_COMMIT
ENV ROSCON_DEMO_HUMAN_WORKER_ROOT=$WORKSPACE/o3de-humanworker-gem

# ROSCon2023 UR10 and UR20 Robots Gem Environment Variables
ENV ROSCON_DEMO_UR_ROBOTS_REPO=$ROSCON_DEMO_UR_ROBOTS_REPO
ENV ROSCON_DEMO_UR_ROBOTS_BRANCH=$ROSCON_DEMO_UR_ROBOTS_BRANCH
ENV ROSCON_DEMO_UR_ROBOTS_COMMIT=$ROSCON_DEMO_UR_ROBOTS_COMMIT
ENV ROSCON_DEMO_UR_ROBOTS_ROOT=$WORKSPACE/o3de-ur-robots-gem

# ROSCon2023 OTTO 600 and OTTO 1500 Robots Gem Environment Variables
ENV ROSCON_DEMO_OTTO_ROBOTS_REPO=$ROSCON_DEMO_OTTO_ROBOTS_REPO
ENV ROSCON_DEMO_OTTO_ROBOTS_BRANCH=$ROSCON_DEMO_OTTO_ROBOTS_BRANCH
ENV ROSCON_DEMO_OTTO_ROBOTS_COMMIT=$ROSCON_DEMO_OTTO_ROBOTS_COMMIT
ENV ROSCON_DEMO_OTTO_ROBOTS_ROOT=$WORKSPACE/o3de-otto-robots-gem

# Assets only Gems used in the demo
ENV ROSCON_DEMO_WAREHOUSE_ASSETS_REPO=https://github.com/RobotecAI/robotec-warehouse-assets.git
ENV ROSCON_DEMO_WAREHOUSE_ASSETS_ROOT=$WORKSPACE/robotec-warehouse-assets
ENV ROSCON_DEMO_GENERIC_ASSETS_REPO=https://github.com/RobotecAI/robotec-generic-assets.git
ENV ROSCON_DEMO_GENERIC_ASSETS_ROOT=$WORKSPACE/robotec-generic-assets

# Robotec.ai additional tooling Gems
ENV ROSCON_DEMO_ROBOTEC_GEMS_REPO=https://github.com/RobotecAI/robotec-o3de-tools.git
ENV ROSCON_DEMO_ROBOTEC_GEMS_BRANCH=o3de-2505
ENV ROSCON_DEMO_ROBOTEC_GEMS_COMMIT=4006ef9
ENV ROSCON_DEMO_ROBOTEC_GEMS_ROOT=$WORKSPACE/robotec-o3de-tools

# ROSConDemo Environment Variables
ENV ROSCON_DEMO_REPO=$ROSCON_DEMO_REPO
ENV ROSCON_DEMO_BRANCH=$ROSCON_DEMO_BRANCH
Expand Down Expand Up @@ -119,11 +52,14 @@ RUN apt-get update \
&& apt-get install -y \
binutils \
clang \
clang-tools \
cmake \
git \
git-lfs \
libglu1-mesa-dev \
libxcb-xinerama0 \
libxcb-randr0-dev \
libxcb-keysyms1-dev \
libfontconfig1-dev \
libnvidia-gl-470 \
libxcb-xkb-dev \
Expand Down Expand Up @@ -157,13 +93,17 @@ RUN apt-get update \
ros-${ROS_DISTRO}-navigation2 \
ros-${ROS_DISTRO}-ur-description \
ros-${ROS_DISTRO}-force-torque-sensor-broadcaster \
ros-${ROS_DISTRO}-simulation-interfaces \
python3-vcstool \
python3-rosdep2 \
python3-colcon-common-extensions \
&& pip install python-statemachine
python3-colcon-common-extensions

ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

COPY clone_simulation.sh $WORKSPACE/
RUN cd $WORKSPACE \
&& ./clone_simulation.sh \
&& rm clone_simulation.sh

COPY build_simulation.sh $WORKSPACE/
COPY launch_simulation.sh $WORKSPACE/
COPY launch_ros.sh $WORKSPACE/
Expand Down
15 changes: 6 additions & 9 deletions Docker/Dockerfile.ROS
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
# SPDX-License-Identifier: Apache-2.0 OR MIT
#

ARG ROS_VERSION=humble
ARG UBUNTU_VERSION=jammy
ARG ROS_VERSION=jazzy
ARG UBUNTU_VERSION=noble

FROM ros:${ROS_VERSION}-ros-base-${UBUNTU_VERSION}

Expand Down Expand Up @@ -64,15 +64,12 @@ RUN apt-get update \
ros-${ROS_DISTRO}-cyclonedds \
ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \
ros-${ROS_DISTRO}-controller-manager \
ros-${ROS_DISTRO}-ur-client-library \
ros-${ROS_DISTRO}-nav2-common \
ros-${ROS_DISTRO}-navigation2 \
ros-${ROS_DISTRO}-ur-description \
ros-${ROS_DISTRO}-force-torque-sensor-broadcaster \
ros-${ROS_DISTRO}-simulation-interfaces \
python3-vcstool \
python3-rosdep2 \
python3-colcon-common-extensions \
&& pip install python-statemachine
python3-colcon-common-extensions

ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

Expand All @@ -86,6 +83,6 @@ RUN cd $WORKSPACE \
&& rm build_ros.sh \
&& if [ $ROSCON_DEMO_LARGE_SCALE -eq 0 ] ; then rm launch_ros_fleet.sh ; fi

ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES all
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=all
ENTRYPOINT ["/bin/bash", "-c"]
48 changes: 14 additions & 34 deletions Docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,36 +19,16 @@ There are 2 different Dockerscripts that build the two different types of ROSCon
* **Dockerfile.ROS** The Dockerscript used to build the Docker image that contains only the ROS 2 relevant software and environment. It does not contain anything that is specific to the O3DE simulation.

## Building the O3DE Docker image
The script for O3DE (`Dockerfile.O3DE`) will build the ROSCon2023Demo Warehouse simulation launcher as well as the ros projects that are needed to launch the simulation. The following arguments (passed to the Docker build command with the `--build-arg` parameter) are supported to customize the Docker image.

| Argument | Description | Default |
| ------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------- |
| ROS_VERSION | The distro of ROS (humble or iron) | humble |
| UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | jammy |
| O3DE_REPO | The git repo for O3DE | https://github.com/o3de/o3de |
| O3DE_BRANCH | The branch/tag for O3DE | 2505.1 |
| O3DE_COMMIT | The commit on the branch/tag for O3DE (or HEAD) | HEAD |
| O3DE_EXTRAS_REPO | The git repo for O3DE Extras | https://github.com/o3de/o3de-extras |
| O3DE_EXTRAS_BRANCH | The branch/tag for O3DE Extras | 2505.1 |
| O3DE_EXTRAS_COMMIT | The commit on the branch for O3DE Extras (or HEAD) | HEAD |
| ROSCON_DEMO_HUMAN_WORKER_REPO | The git repo for Demo Human worker Gem | https://github.com/RobotecAI/o3de-humanworker-gem |
| ROSCON_DEMO_HUMAN_WORKER_BRANCH | The branch/tag for Demo Human worker Gem | 2.0.0 |
| ROSCON_DEMO_HUMAN_WORKER_COMMIT | The commit on the branch/tag for Demo Human worker Gem (or HEAD) | HEAD |
| ROSCON_DEMO_UR_ROBOTS_REPO | The git repo for Demo UR Robots Gem | https://github.com/RobotecAI/o3de-ur-robots-gem |
| ROSCON_DEMO_UR_ROBOTS_BRANCH | The branch/tag for Demo UR Robots Gem | 2.0.0 |
| ROSCON_DEMO_UR_ROBOTS_COMMIT | The commit on the branch/tag for Demo UR Robots Gem (or HEAD) | HEAD |
| ROSCON_DEMO_OTTO_ROBOTS_REPO | The git repo for the Demo Otto Robots Gem | https://github.com/RobotecAI/o3de-otto-robots-gem |
| ROSCON_DEMO_OTTO_ROBOTS_BRANCH | The branch/tag for the Demo Otto Robots Gem | 2.0.0 |
| ROSCON_DEMO_OTTO_ROBOTS_COMMIT | The commit on the branch/tag for the Demo Otto Robots Gem (or HEAD) | HEAD |
| ROSCON_DEMO_REPO | The git repo for ROSCon2023 Warehouse Demo | https://github.com/RobotecAI/ROSCon2023Demo.git |
| ROSCON_DEMO_BRANCH | The branch/tag for ROSCon2023 Warehouse Demo | 3.0.1 |
| ROSCON_DEMO_COMMIT | The commit on the branch/tag for ROSCon2023 Warehouse Demo (or HEAD) | HEAD |
| ROSCON_DEMO_ROBOTEC_GEMS_REPO | The git repo for Robotec Gems | https://github.com/RobotecAI/robotec-o3de-tools.git |
| ROSCON_DEMO_ROBOTEC_GEMS_BRANCH | The branch/tag for Robotec Gems | o3de-2505 |
| ROSCON_DEMO_ROBOTEC_GEMS_COMMIT | The commit on the branch/tag for Robotec Gems (or HEAD) | 4006ef9 |
| ROSCON_DEMO_LEVEL | The startup level (level1 or level2). **See Notes below** | level1 |
| ROSCON_DEMO_FULLSCREEN | Option to launch the simulation in fullscreen mode (0=no, 1=yes) | 0 |
| ROSCON_DEMO_LARGE_SCALE | Option to enable large scale simulation (0=no, 1=yes) (see [README.md]()../README.md) | 0 |
The script for O3DE (`Dockerfile.O3DE`) will build the ROSCon2023Demo Warehouse simulation launcher as well as the ROS projects that are needed to launch the simulation. The following arguments (passed to the Docker build command with the `--build-arg` parameter) are supported to customize the Docker image.

| Argument | Description | Default |
| ------------------------------- | ------------------------------------------------------------------------------------- | ------- |
| ROS_VERSION | The distro of ROS (jazzy) | jazzy |
| UBUNTU_VERSION | The supporting distro of Ubuntu (noble) | noble |
| ROSCON_DEMO_ROBOTEC_GEMS_COMMIT | The commit on the branch/tag for Robotec Gems (or HEAD) | 4006ef9 |
| ROSCON_DEMO_LEVEL | The startup level (level1 or level2). **See Notes below** | level1 |
| ROSCON_DEMO_FULLSCREEN | Option to launch the simulation in fullscreen mode (0=no, 1=yes) | 0 |
| ROSCON_DEMO_LARGE_SCALE | Option to enable large scale simulation (0=no, 1=yes) (see [README.md](../README.md)) | 0 |

To build the Docker image using the default values, use the following command

Expand All @@ -69,12 +49,12 @@ The O3DE Docker image can reach 10 GB in size, so if you want to create a separa

| Argument | Description | Default |
| ----------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------- |
| ROS_VERSION | The distro of ROS (humble, or iron) | humble |
| UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | jammy |
| ROS_VERSION | The distro of ROS (jazzy) | jazzy |
| UBUNTU_VERSION | The supporting distro of Ubuntu (noble) | noble |
| ROSCON_DEMO_REPO | The git repo for ROSCon2023 Warehouse Demo | https://github.com/RobotecAI/ROSCon2023Demo.git |
| ROSCON_DEMO_BRANCH | The branch/tag for ROSCon2023 Warehouse Demo | 2.0.0 |
| ROSCON_DEMO_BRANCH | The branch/tag for ROSCon2023 Warehouse Demo | main |
| ROSCON_DEMO_COMMIT | The commit on the branch/tag for ROSCon2023 Warehouse Demo (or HEAD) | HEAD |
| ROSCON_DEMO_LARGE_SCALE | Option to enable large scale simulation (0=no, 1=yes) (see [README.md]()../README.md) | 0 |
| ROSCON_DEMO_LARGE_SCALE | Option to enable large scale simulation (0=no, 1=yes) (see [README.md](../README.md)) | 0 |

To build the Docker image using the default values, use the following command

Expand Down
17 changes: 11 additions & 6 deletions Docker/build_ros.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,17 @@
# Clone and register the ROSCon2023Demo \
###############################################################
echo "Cloning the ROSCon2023Demo project"
git clone --single-branch -b $ROSCON_DEMO_BRANCH $ROSCON_DEMO_REPO $ROSCON_DEMO_ROOT && \
git -C $ROSCON_DEMO_ROOT lfs install && \
git -C $ROSCON_DEMO_ROOT lfs pull && \
git -C $ROSCON_DEMO_ROOT reset --hard $ROSCON_DEMO_COMMIT
if [ "$ROSCON_DEMO_COMMIT" == "HEAD" ]
then
git clone --single-branch --depth 1 -b $ROSCON_DEMO_BRANCH $ROSCON_DEMO_REPO $ROSCON_DEMO_ROOT && \
git -C $ROSCON_DEMO_ROOT lfs install && \
git -C $ROSCON_DEMO_ROOT lfs pull
else
git clone --single-branch -b $ROSCON_DEMO_BRANCH $ROSCON_DEMO_REPO $ROSCON_DEMO_ROOT && \
git -C $ROSCON_DEMO_ROOT lfs install && \
git -C $ROSCON_DEMO_ROOT lfs pull && \
git -C $ROSCON_DEMO_ROOT reset --hard $ROSCON_DEMO_COMMIT
fi
if [ $? -ne 0 ]
then
echo "Error cloning ROSCon2023Demo project $ROSCON_DEMO_REPO"
Expand All @@ -39,9 +46,7 @@ ROSCon2023Demo Project | $(git -C $ROSCON_DEMO_ROOT rev-parse --short
# Build and install the additional ROS 2 packages and drivers
###############################################################
pushd $ROSCON_DEMO_ROOT/ros2_ws && \
./setup_submodules.bash && \
rosdep update && \
rosdep install --ignore-src --from-paths src/Universal_Robots_ROS2_Driver -y && \
colcon build --symlink-install && \
. ./install/setup.sh && \
popd
Expand Down
Loading