Skip to content
Open
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
10 changes: 5 additions & 5 deletions Docker/Dockerfile.O3DE
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ 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.0
ARG ROSCON_DEMO_BRANCH=3.0.1
ARG ROSCON_DEMO_COMMIT=HEAD
ARG ROCSON_DEMO_LEVEL=level1
ARG ROCSON_DEMO_FULLSCREEN=0
ARG ROSCON_DEMO_LEVEL=level1
ARG ROSCON_DEMO_FULLSCREEN=0
ARG ROSCON_DEMO_LARGE_SCALE=0

# O3DE Environment
Expand Down Expand Up @@ -92,8 +92,8 @@ ENV ROSCON_DEMO_ROBOTEC_GEMS_ROOT=$WORKSPACE/robotec-o3de-tools
ENV ROSCON_DEMO_REPO=$ROSCON_DEMO_REPO
ENV ROSCON_DEMO_BRANCH=$ROSCON_DEMO_BRANCH
ENV ROSCON_DEMO_COMMIT=$ROSCON_DEMO_COMMIT
ENV ROCSON_DEMO_LEVEL=$ROCSON_DEMO_LEVEL
ENV ROCSON_DEMO_FULLSCREEN=$ROCSON_DEMO_FULLSCREEN
ENV ROSCON_DEMO_LEVEL=$ROSCON_DEMO_LEVEL
ENV ROSCON_DEMO_FULLSCREEN=$ROSCON_DEMO_FULLSCREEN
ENV ROSCON_DEMO_LARGE_SCALE=$ROSCON_DEMO_LARGE_SCALE

ENV ROSCON_DEMO_ROOT=$WORKSPACE/ROSCon2023Demo
Expand Down
65 changes: 34 additions & 31 deletions Docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* [NVIDIA container toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker)
* [rocker](https://github.com/osrf/rocker)
* **Optional** This tool simplifies injecting NVIDIA support when running Docker images. If not installed, you can still run GPU-required Docker images but with additional setup steps.
* **Note** There known issues using rocker with Ubuntu 22.04 and NVIDIA drivers newer than version 525.
* **Note** There are known issues using rocker with Ubuntu 22.04 and NVIDIA drivers newer than version 535.

# Building the Docker image
There are 2 different Dockerscripts that build the two different types of ROSCon2023Demo images:
Expand All @@ -21,31 +21,34 @@ There are 2 different Dockerscripts that build the two different types of ROSCon
## 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, noble) | 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 | 2.0.0 |
| ROSCON_DEMO_COMMIT | The commit on the branch/tag for ROSCon2023 Warehouse Demo (or HEAD) | HEAD |
| ROCSON_DEMO_LEVEL | The startup level (level1 or level2). **See Notes below** | level1 |
| ROCSON_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 |
| 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 |

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

Expand All @@ -56,7 +59,7 @@ docker build -f Dockerfile.O3DE -t roscon2023_demo/o3de:latest .
If you want to pull a different variant of the image based on a different fork, you can run a command similar to the following

```
docker build -f Dockerfile.O3DE --build-arg ROSCON_DEMO_REPO=https://github.com/myfork/ROSCon2023Demo.git --build-arg ROCSON_DEMO_LEVEL=level2 -t myfork/roscon2023_demo/o3de:latest .
docker build -f Dockerfile.O3DE --build-arg ROSCON_DEMO_REPO=https://github.com/myfork/ROSCon2023Demo.git --build-arg ROSCON_DEMO_LEVEL=level2 -t myfork/roscon2023_demo/o3de:latest .
```

> **Note:**: `Dockerfile.O3DE` clones multiple Gems that are not listed in the table above. These are assets only Gems or tooling Gems. The working commit hashes are either hard-coded in the scripts or the newest versions are pulled from the repository (for backward compatible Gems).
Expand All @@ -67,7 +70,7 @@ 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, noble) | jammy |
| UBUNTU_VERSION | The supporting distro of Ubuntu (focal, jammy) | jammy |
| 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_COMMIT | The commit on the branch/tag for ROSCon2023 Warehouse Demo (or HEAD) | HEAD |
Expand All @@ -82,7 +85,7 @@ docker build -f Dockerfile.ROS -t roscon2023_demo/ros:latest .
> **Note:** By default, the O3DE simulation launcher is built to run the smaller warehouse scene. To create a Docker image with the large warehouse, the `ROSCON_DEMO_LEVEL` argument needs to be set to `level2`:
>
>```
>docker build -f Dockerfile.O3DE --build-arg ROCSON_DEMO_LEVEL=level2 -t roscon2023_demo/o3de:latest .
>docker build -f Dockerfile.O3DE --build-arg ROSCON_DEMO_LEVEL=level2 -t roscon2023_demo/o3de:latest .
>```

# Running the Docker image
Expand Down Expand Up @@ -124,7 +127,7 @@ Next, start the ROS 2 stack in the background and direct the log to `/data/works
./launch_ros.sh > /data/workspace/ros2.log &>1 &
```

Depending on which level is specified with the `ROCSON_DEMO_LEVEL` the simulation will start with the configured warehouse scene. The ROS 2 stack will spawn the worker robots and start their navigation tasks.
Depending on which level is specified with the `ROSCON_DEMO_LEVEL` the simulation will start with the configured warehouse scene. The ROS 2 stack will spawn the worker robots and start their navigation tasks.

# Large scale simulation

Expand All @@ -136,7 +139,7 @@ You will need to build the O3DE and ROS Docker images on separate machines. The

On the machine meant for the simulation, run the following command to build the O3DE Docker image for the large scale simulation:
```
docker build -f Dockerfile.O3DE --build-arg ROCSON_DEMO_LEVEL=level2 --build-arg ROSCON_DEMO_LARGE_SCALE=1 -t roscon2023_demo_large/o3de:latest .
docker build -f Dockerfile.O3DE --build-arg ROSCON_DEMO_LEVEL=level2 --build-arg ROSCON_DEMO_LARGE_SCALE=1 -t roscon2023_demo_large/o3de:latest .
```
This will create the docker image `roscon2023_demo_large/o3de:latest` that will launch the Docker container from.

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

# Validate the ROCSON_DEMO_LEVEL value before starting the longer git processes
if [ "$ROCSON_DEMO_LEVEL" == 'level1' ]
# Validate the ROSCON_DEMO_LEVEL value before starting the longer git processes
if [ "$ROSCON_DEMO_LEVEL" == 'level1' ]
then
DEMO_LEVEL=demolevel1
elif [ "$ROCSON_DEMO_LEVEL" == 'level2' ]
elif [ "$ROSCON_DEMO_LEVEL" == 'level2' ]
then
DEMO_LEVEL=demolevel2
else
echo "Invalid 'level' argument '$ROCSON_DEMO_LEVEL'. Must be level1 or level2."
echo "Invalid 'level' argument '$ROSCON_DEMO_LEVEL'. Must be level1 or level2."
exit 1
fi

Expand Down
2 changes: 1 addition & 1 deletion Docker/launch_simulation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ cd $ROSCON_DEMO_ROOT/ros2_ws
. ./install/setup.sh

cd $ROSCON_SIMULATION_HOME
./ROSCon2023Demo.GameLauncher -r_fullscreen=$ROCSON_DEMO_FULLSCREEN -bg_connectToAssetProcessor=0
./ROSCon2023Demo.GameLauncher -r_fullscreen=$ROSCON_DEMO_FULLSCREEN -bg_connectToAssetProcessor=0
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ git clone --branch 2.0.0 --single-branch --depth 1 https://github.com/RobotecAI/
git clone --branch 2.0.0 --single-branch --depth 1 https://github.com/RobotecAI/o3de-otto-robots-gem
git clone https://github.com/RobotecAI/robotec-warehouse-assets.git
git clone https://github.com/RobotecAI/robotec-generic-assets.git
git clone --branch 2505 --single-branch --depth 1 https://github.com/RobotecAI/robotec-o3de-tools.git
git clone --branch o3de-2505 --single-branch --depth 1 https://github.com/RobotecAI/robotec-o3de-tools.git
./o3de/scripts/o3de.sh register --gem-path o3de-humanworker-gem
./o3de/scripts/o3de.sh register --gem-path o3de-ur-robots-gem
./o3de/scripts/o3de.sh register --gem-path o3de-otto-robots-gem
Expand Down