Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
david2611 committed Mar 31, 2023
2 parents 12daa93 + 79c2191 commit 706e5d7
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 48 deletions.
30 changes: 25 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<p align=center><strong>~ Our <a href="https://eval.ai/web/challenges/challenge-page/1614/overview">Robotic Vision Scene Understanding (RVSU) Challenge is live on EvalAI</a> ~<br>(prizes include RTX A6000 NVIDIA GPUs and $2,500USD cash)</strong></p>
<p align=center><strong>~ Our <a href="https://eval.ai/web/challenges/challenge-page/1614/overview">Robotic Vision Scene Understanding (RVSU) Challenge is live on EvalAI</a> ~<br>(prizes include RTX A6000 NVIDIA GPUs)</strong></p>
<p align=center><strong>~ BenchBot is now powered by <a href="https://developer.nvidia.com/nvidia-omniverse-platform">NVIDIA Omniverse</a> and <a href="https://developer.nvidia.com/isaac-sim">Isaac Sim</a>. We are aware of some issues, please <a href="https://github.com/qcr/benchbot/issues">report any you do encounter</a>. ~</strong></p>
<p align=center><strong>~ Our <a href="https://github.com/qcr/benchbot/wiki/Tutorial:-Performing-Semantic-SLAM-with-Votenet">BenchBot tutorial</a> is the best place to get started developing with BenchBot ~</strong></p>

Expand All @@ -25,18 +25,18 @@ This repository contains the software stack needed to develop solutions for Benc

The BenchBot software stack is designed to run seamlessly on a wide number of system configurations (currently limited to Ubuntu 18.04+). System hardware requirements are relatively high due to the software run for 3D simulation (e.g. NVIDIA Omniverse-powered Isaac Sim):

- Nvidia Graphics card (GeForce RTX 2070 minimum, GeForce GTX 3080+ / RTX A6000+ recommended)
- Nvidia Graphics card (GeForce RTX 2080 minimum, Quadro RTX 5000 recommended)
- CPU with multiple cores (Intel i7-6800K 7th Generation minimum)
- 32GB+ RAM
- 64GB+ spare storage (an SSD storage device is **strongly** recommended)

Having a system that meets the above hardware requirements is all that is required to begin installing the BenchBot software stack. The install script analyses your system configuration and offers to install any missing software components interactively. The list of 3rd party software components involved includes:

- NVIDIA GPU Driver (470.57+ recommended)
- NVIDIA GPU Driver (520.60.11+ recommended)
- CUDA with GPU support (10.0+ required, 10.1+ recommended)
- Docker Engine - Community Edition (19.03+ required, 19.03.2+ recommended)
- NVIDIA Container Toolkit (1.0+ required, 1.0.5+ recommended)
- Isaac 2021.2 Omniverse simulator (when installing `sim_omni`)
- Isaac 2022.2.1 Omniverse simulator (when installing `sim_omni`)

## Managing your installation

Expand Down Expand Up @@ -170,6 +170,21 @@ To use our system, we just ask that you cite our paper on the BenchBot system. T
}
```

If you use our benchbot environments for active robotics (BEAR) which are installed by default, we ask you please cite our data paper on BEAR. Citation details are as follows:

```
@article{hall2022bear,
author = {David Hall and Ben Talbot and Suman Raj Bista and Haoyang Zhang and Rohan Smith and Feras Dayoub and Niko Sünderhauf},
title ={BenchBot environments for active robotics (BEAR): Simulated data for active scene understanding research},
journal = {The International Journal of Robotics Research},
volume = {41},
number = {3},
pages = {259-269},
year = {2022},
doi = {10.1177/02783649211069404},
}
```

## Components of the BenchBot software stack

The BenchBot software stack is split into a number of standalone components, each with their own GitHub repository and documentation. This repository glues them all together for you into a working system. The components of the stack are:
Expand All @@ -190,4 +205,9 @@ The BenchBot software stack is split into a number of standalone components, eac

Development of the BenchBot software stack was directly supported by:

[![QUT Centre for Robotics](./docs/qcr_logo_small.png)](https://research.qut.edu.au/qcr/)&emsp;&emsp;&emsp;&emsp;[![NVIDIA AI & Robotics](./docs/nvidia_logo_small.png)](https://www.nvidia.com/en-au/ai-data-science/)&emsp;&emsp;&emsp;&emsp;[![Australian Centre for Robotic Vision](./docs/acrv_logo_small.png)](https://www.roboticvision.org/)
[![QUT Centre for Robotics](./docs/qcr_logo_small.png)](https://research.qut.edu.au/qcr/)&emsp;&emsp;&emsp;&emsp;[![CSIRO Machine Learning and Artificial Intelligence Future Science Platform (MLAI FSP)](./docs/csirod61_logo_small.png)](https://research.csiro.au/mlai-fsp/)&emsp;&emsp;&emsp;&emsp;

</br>
</br>

[![NVIDIA AI & Robotics](./docs/nvidia_logo_small.png)](https://www.nvidia.com/en-au/ai-data-science/)&emsp;&emsp;&emsp;&emsp;[![Australian Centre for Robotic Vision](./docs/acrv_logo_small.png)](https://www.roboticvision.org/)
42 changes: 21 additions & 21 deletions bin/benchbot_install
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ $URL_DEBUG $HOSTNAME_DEBUG"
# Defaults for the installation process
ADDONS_DEFAULT='benchbot-addons/ssu'
CUDA_DEFAULT='cuda'
NVIDIA_DEFAULT='nvidia-driver-510'
NVIDIA_DEFAULT='nvidia-driver-525'
SIMULATOR_DEFAULT='sim_omni'

################################################################################
Expand Down Expand Up @@ -145,7 +145,7 @@ pre-install host system checks.

checks_list_pre=(
"Core host system checks:"
"ubuntu1804"
"ubuntu2004"
"Running Nvidia related system checks:"
"nvidiacard" # Is a valid graphics card available?
"nvidiadriver" # Is the driver available?
Expand All @@ -172,16 +172,16 @@ checks_list_pre=(
"pythonpil" # Is python3-pil & python3-pil.imagetk installed?
)

chk_ubuntu1804_name='Ubuntu version >= 18.04'
chk_ubuntu1804_pass='Passed ($check_result)'
chk_ubuntu1804_fail='Failed'
chk_ubuntu1804_check=\
'[ -f /tmp/benchbot_chk_ubuntu1804 ] && echo "skipped" || lsb_release -r | \
chk_ubuntu2004_name='Ubuntu version >= 20.04'
chk_ubuntu2004_pass='Passed ($check_result)'
chk_ubuntu2004_fail='Failed'
chk_ubuntu2004_check=\
'[ -f /tmp/benchbot_chk_ubuntu2004 ] && echo "skipped" || lsb_release -r | \
awk '"'"'{print $2}'"'"' 2>/dev/null'
chk_ubuntu1804_eval=\
'[ "$check_result" == "skipped" ] || eval_version "$check_result" "18.04"'
chk_ubuntu1804_issue="\
The BenchBot Software Stack is designed to work with Ubuntu 18.04 & above.
chk_ubuntu2004_eval=\
'[ "$check_result" == "skipped" ] || eval_version "$check_result" "20.04"'
chk_ubuntu2004_issue="\
The BenchBot Software Stack is designed to work with Ubuntu 20.04 & above.
There is a possibility it may work with other versions, & other
distributions, but it will probably involve manual installation of packages &
Expand All @@ -193,8 +193,8 @@ chk_ubuntu1804_issue="\
If you would like to continue, & ignore this check, please say yes to the fix
below.
"
chk_ubuntu1804_fix='touch /tmp/benchbot_chk_ubuntu1804'
chk_ubuntu1804_reboot=1
chk_ubuntu2004_fix='touch /tmp/benchbot_chk_ubuntu2004'
chk_ubuntu2004_reboot=1

chk_nvidiacard_name='NVIDIA GPU available'
chk_nvidiacard_pass='Found card of type '"'"'$check_result'"'"
Expand Down Expand Up @@ -224,7 +224,7 @@ wget "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${v}/\
x86_64/cuda-ubuntu${v}.pin" &&
sudo mv cuda-ubuntu${v}.pin /etc/apt/preferences.d/cuda-repository-pin-600 &&
sudo apt-key adv --fetch-keys "https://developer.download.nvidia.com/compute/\
cuda/repos/ubuntu1804/x86_64/3bf863cc.pub" &&
cuda/repos/ubuntu2004/x86_64/3bf863cc.pub" &&
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/\
cuda/repos/ubuntu${v}/x86_64/ /" &&
sudo apt-get update && sudo apt-get -y install '"$NVIDIA_DEFAULT"
Expand All @@ -235,10 +235,10 @@ chk_nvidiaversion_pass='Valid ($check_result)'
chk_nvidiaversion_fail='Invalid ($check_result)'
chk_nvidiaversion_check='cat /proc/driver/nvidia/version 2>/dev/null | '\
'sed '"'"'/NVRM version/!d; s/.*Kernel Module *\([0-9\.]*\).*/\1/'"'"
chk_nvidiaversion_eval='eval_version "$check_result" 470'
chk_nvidiaversion_eval='eval_version "$check_result" 520'
chk_nvidiaversion_issue="\
The version of the running Nvidia driver ("'$check_result'") is incompatible
with BenchBot which requires at least version 470 for the Isaac SDK.
with BenchBot which requires at least version 520 for the Isaac SDK.
Please install a more recent version of the driver from the Nvidia repository."
chk_nvidiaversion_fix="$chk_nvidiadriver_fix"
Expand All @@ -263,7 +263,7 @@ chk_nvidiappa_issue="\
containers if the driver version exactly matches the version of the host.
Please use a driver from either of the following locations (the NVIDIA PPA is
preferred):
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64
http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu"
chk_nvidiappa_fix=\
'sudo apt remove -y nvidia-driver-* && sudo apt -y autoremove; '\
Expand All @@ -289,10 +289,10 @@ chk_cudadriversversion_pass='Valid ($check_result)'
chk_cudadriversversion_fail='Invalid'
chk_cudadriversversion_check='apt list --installed 2>/dev/null | grep -E '\
'"cuda-drivers/" | awk '"'"'{print $2}'"'"
chk_cudadriversversion_eval='eval_version "$check_result" 418'
chk_cudadriversversion_eval='eval_version "$check_result" 520'
chk_cudadriversversion_issue="\
The version of CUDA drivers detected ("'$check_result'") is incompatible with
BenchBot which requires CUDA drivers 418+ for the Isaac SDK.
BenchBot which requires CUDA drivers 520+ for the Isaac SDK.
Please install a more recent version of the CUDA drivers from the NVIDIA
repository."
Expand All @@ -319,7 +319,7 @@ chk_cudadriversppa_issue="\
Our Docker container only supports official CUDA installs, & GPUs only work
in containers if the CUDA drivers version exactly matches the version of the
host. Please install CUDA drivers from the official NVIDIA repository:
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64"
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64"
chk_cudadriversppa_fix=\
'sudo apt remove -y cuda-drivers && sudo apt -y autoremove; '\
"${chk_nvidiadriver_fix//$NVIDIA_DEFAULT/cuda-drivers}"
Expand Down Expand Up @@ -370,7 +370,7 @@ chk_cudappa_issue="\
Our Docker container only supports official CUDA installs, & GPUs only work in
containers if the CUDA version exactly matches the version of the host.
Please install CUDA from the official NVIDIA repository:
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64"
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64"
chk_cudappa_fix=\
'sudo apt remove -y cuda-10* && sudo apt -y autoremove; '\
"${chk_nvidiadriver_fix//$NVIDIA_DEFAULT/$CUDA_DEFAULT}"
Expand Down
2 changes: 1 addition & 1 deletion bin/benchbot_run
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ while [ -n "$(docker ps -q -f 'name='$HOSTNAME_SUPERVISOR)" ] && \
[ -n "$(docker ps -q -f 'name='$HOSTNAME_ROBOT)" ]); do
sleep 1
done
# sleep infinity
#sleep infinity

if [ "$simulator_required" -eq 0 ] && \
[ -z "$(docker ps -q -f 'name='$HOSTNAME_ROBOT)" ]; then
Expand Down
10 changes: 5 additions & 5 deletions docker/core.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Start from the official Ubuntu image
FROM ubuntu:bionic
FROM ubuntu:focal

# Setup a base state with needed packages & useful default settings
SHELL ["/bin/bash", "-c"]
Expand All @@ -19,10 +19,10 @@ ARG CUDA_VERSION
ENV NVIDIA_VISIBLE_DEVICES="all"
ENV NVIDIA_DRIVER_CAPABILITIES="compute,display,graphics,utility"
RUN add-apt-repository ppa:graphics-drivers && \
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin && \
mv -v cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub && \
add-apt-repository -n "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" && \
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin && \
mv -v cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub && \
add-apt-repository -n "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" && \
apt update
RUN CUDA_NAME="cuda-$(echo "${CUDA_VERSION}" | \
sed 's/\([0-9]*\)\.\([0-9]*\).*/\1\.\2/; s/\./-/')" && \
Expand Down
22 changes: 13 additions & 9 deletions docker/shared_tools.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@
ENV BENCHBOT_DIR="/benchbot"
RUN mkdir -p $BENCHBOT_DIR

# Install ROS Melodic
# Install ROS Noetic
RUN apt update && apt install -y curl && \
echo "deb http://packages.ros.org/ros/ubuntu bionic main" > \
echo "deb http://packages.ros.org/ros/ubuntu focal main" > \
/etc/apt/sources.list.d/ros-latest.list && \
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | \
apt-key add - && apt update && \
apt install -y ros-melodic-ros-base python-rosdep \
python-rosinstall python-rosinstall-generator python-wstool \
python-catkin-tools python-pip build-essential \
ros-melodic-tf2-ros ros-melodic-tf
apt install -y ros-noetic-ros-base python3-rosdep \
python3-rosinstall python3-rosinstall-generator python3-wstool \
python3-catkin-tools python3-pip build-essential \
ros-noetic-tf2-ros ros-noetic-tf

# Build a ROS Catkin workspace
ENV ROS_WS_PATH="$BENCHBOT_DIR/ros_ws"
RUN rosdep init && rosdep update && mkdir -p $ROS_WS_PATH/src && \
source /opt/ros/melodic/setup.bash && \
source /opt/ros/noetic/setup.bash && \
pushd $ROS_WS_PATH && catkin_make && source devel/setup.bash && popd

# Add BenchBot's common ROS packages
Expand All @@ -37,8 +37,12 @@ ARG BENCHBOT_CONTROLLER_HASH
ENV BENCHBOT_CONTROLLER_PATH="$BENCHBOT_DIR/benchbot_robot_controller"
RUN git clone $BENCHBOT_CONTROLLER_GIT $BENCHBOT_CONTROLLER_PATH && \
pushd $BENCHBOT_CONTROLLER_PATH && git checkout $BENCHBOT_CONTROLLER_HASH && \
pip install -r requirements.txt && pushd $ROS_WS_PATH && \
pushd src && git clone https://github.com/eric-wieser/ros_numpy && popd && \
pip install -r requirements.txt && \
sed -i 's/np.float/float/g' /usr/local/lib/python3.8/dist-packages/transforms3d/quaternions.py && \
pushd $ROS_WS_PATH && \
pushd src && git clone https://github.com/eric-wieser/ros_numpy && \
sed -i 's/np.float/float/g' /benchbot/ros_ws/src/ros_numpy/src/ros_numpy/point_cloud2.py && \
popd && \
ln -sv $BENCHBOT_CONTROLLER_PATH src/ && source devel/setup.bash && catkin_make

# Create a place to mount our add-ons, & install manager dependencies
Expand Down
13 changes: 8 additions & 5 deletions docker/sim_omni.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
# Extend NVIDIA's official Docker Image for Isaac Sim. Download instructions:
# https://catalog.ngc.nvidia.com/orgs/nvidia/containers/isaac-sim
FROM nvcr.io/nvidia/isaac-sim:2021.2.1
FROM nvcr.io/nvidia/isaac-sim:2022.2.1

# Fix to address key rotation breaking APT with the official Isaac Sim image
# https://developer.nvidia.com/blog/updating-the-cuda-linux-gpg-repository-key/
RUN apt-key adv --fetch-keys \
https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
# RUN apt-key adv --fetch-keys \
# https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub

# Fix scripts provided with image
RUN sed -i 's/$@/"\0"/' python.sh
RUN sed -i 's/sleep/# \0/' start_nucleus.sh
# RUN sed -i 's/$@/"\0"/' python.sh
# RUN sed -i 's/sleep/# \0/' start_nucleus.sh

RUN echo "$TZ" > /etc/timezone && ln -s /usr/share/zoneinfo/"$TZ" \
/etc/localtime && apt update && apt -y install tzdata

# Overrides to make things play nicely with the BenchBot ecosystem
SHELL ["/bin/bash", "-c"]
Expand Down
4 changes: 2 additions & 2 deletions docker/submission.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ FROM benchbot/core:base
# Install some requirements for BenchBot API & visualisation tools
# (BenchBot supports both python2 & python3, but python3 is preferred)
RUN apt update && apt install -y libsm6 libxext6 libxrender-dev python3 \
python3-pip python3-tk python-pip python-tk
python3-pip python3-tk

# Upgrade to latest pip (OpenCV fails to install because the pip installed by
# Ubuntu is so old). See following issues for details:
Expand All @@ -16,7 +16,7 @@ RUN apt update && apt install -y libsm6 libxext6 libxrender-dev python3 \
# https://github.com/pypa/pip/issues/5599
# I'll move on rather than digressing into how stupid it is that that's the
# state of things...
RUN pip3 install --upgrade pip
#RUN pip3 install --upgrade pip

# Install BenchBot API
ARG BENCHBOT_API_GIT
Expand Down
Binary file added docs/csirod61_logo_small.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 706e5d7

Please sign in to comment.