|
1 |
| -# AutoDRIVE Simulator Containerization |
| 1 | +# AutoDRIVE Simulator: RZR AEB Function |
2 | 2 |
|
3 |
| -This repository provides the necessary files to build a docker image for AutoDRIVE Simulator. |
| 3 | +This branch hosts the necessary codebase to run a parameter sweep for verification and validation (V&V) of autonomous emergency braking (AEB) functionality of the [RZR digital twin](https://youtu.be/PLW1-sYW6Hw) using [AutoDRIVE Simulator](https://youtu.be/t0CgNR_LgrQ). |
4 | 4 |
|
5 |
| -It is assumed that if the docker container is to take advantage of an NVIDIA GPU, the host machine has been properly configured by installing the necessary NVIDIA drivers, [Docker](https://docs.docker.com/engine/install/), and the |
6 |
| -[NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html). |
| 5 | +This branch, in conjunction with others such as the [palmetto](https://github.com/AutoDRIVE-Ecosystem/AutoDRIVE-Simulator-HPC/tree/palmetto) and [palmetto-webviewer](https://github.com/AutoDRIVE-Ecosystem/AutoDRIVE-Simulator-HPC/tree/palmetto-webviewer) or the [rancher](https://github.com/AutoDRIVE-Ecosystem/AutoDRIVE-Simulator-HPC/tree/rancher) and [rancher-webviewer](https://github.com/AutoDRIVE-Ecosystem/AutoDRIVE-Simulator-HPC/tree/rancher-webviewer), can deploy the said V&V framework on the respective high-performance cloud computing resources. |
7 | 6 |
|
8 |
| -## Building an AutoDRIVE Simulator Docker Image |
| 7 | +## SETUP |
9 | 8 |
|
10 |
| -In order to build a docker image for AutoDRIVE Simulator, run |
| 9 | +1. Clone `rzr-aeb` branch of the `AutoDRIVE-Simulator-HPC` repository. |
| 10 | + ```bash |
| 11 | + $ git clone --single-branch --branch rzr-aeb https://github.com/AutoDRIVE-Ecosystem/AutoDRIVE-Simulator-HPC.git |
| 12 | + ``` |
| 13 | +2. Give executable permissions to all the Python scripts. |
| 14 | + ```bash |
| 15 | + $ cd <path/to/cloned/repo> |
| 16 | + $ sudo chmod +x *.py |
| 17 | + ``` |
| 18 | +4. Install the necessary dependencies as mentioned below. |
| 19 | + [AutoDRIVE Devkit's Python API](https://github.com/Tinker-Twins/AutoDRIVE/tree/AutoDRIVE-Devkit/ADSS%20Toolkit/autodrive_py) has the following dependencies (tested with Python 3.8.10): |
| 20 | + |
| 21 | + - Websocket-related dependencies for communication bridge between [AutoDRIVE Simulator](https://github.com/Tinker-Twins/AutoDRIVE/tree/AutoDRIVE-Simulator) and [AutoDRIVE Devkit](https://github.com/Tinker-Twins/AutoDRIVE/tree/AutoDRIVE-Devkit) (version sensitive): |
| 22 | + |
| 23 | + | Package | Tested Version | |
| 24 | + |---------|----------------| |
| 25 | + | eventlet | 0.33.3 | |
| 26 | + | Flask | 1.1.1 | |
| 27 | + | Flask-SocketIO | 4.1.0 | |
| 28 | + | python-socketio | 4.2.0 | |
| 29 | + | python-engineio | 3.13.0 | |
| 30 | + | greenlet | 1.0.0 | |
| 31 | + | gevent | 21.1.2 | |
| 32 | + | gevent-websocket | 0.10.1 | |
| 33 | + | Jinja2 | 3.0.3 | |
| 34 | + | itsdangerous | 2.0.1 | |
| 35 | + | werkzeug | 2.0.3 | |
| 36 | + |
| 37 | + ```bash |
| 38 | + $ pip3 install eventlet==0.33.3 |
| 39 | + $ pip3 install Flask==1.1.1 |
| 40 | + $ pip3 install Flask-SocketIO==4.1.0 |
| 41 | + $ pip3 install python-socketio==4.2.0 |
| 42 | + $ pip3 install python-engineio==3.13.0 |
| 43 | + $ pip3 install greenlet==1.0.0 |
| 44 | + $ pip3 install gevent==21.1.2 |
| 45 | + $ pip3 install gevent-websocket==0.10.1 |
| 46 | + $ pip3 install Jinja2==3.0.3 |
| 47 | + $ pip3 install itsdangerous==2.0.1 |
| 48 | + $ pip3 install werkzeug==2.0.3 |
| 49 | + ``` |
| 50 | + |
| 51 | + - Generic dependencies for data processing and visualization (usually any version will do the job): |
| 52 | + |
| 53 | + | Package | Tested Version | |
| 54 | + |---------|----------------| |
| 55 | + | numpy | 1.13.3 | |
| 56 | + | pillow | 5.1.0 | |
| 57 | + | opencv-contrib-python | 4.5.1.48 | |
| 58 | + |
| 59 | + ```bash |
| 60 | + $ pip3 install numpy |
| 61 | + $ pip3 install pillow |
| 62 | + $ pip3 install opencv-contrib-python |
| 63 | + ``` |
11 | 64 |
|
12 |
| -`docker build -t autodrive_simulator .` |
| 65 | +## USAGE |
13 | 66 |
|
14 |
| -This will automatically pull the latest AutoDRIVE Simulator release version. To use a specific release version instead, use the VERSION command line argument. For instance, you may run |
| 67 | +1. Download, unzip and launch the AutoDRIVE Simulator by referring to the detailed instructions given [here](https://github.com/AutoDRIVE-Ecosystem/AutoDRIVE/tree/AutoDRIVE-Simulator?tab=readme-ov-file#download-and-run): |
| 68 | + - Download the latest release of the standalone application of AutoDRIVE Simulator for RZR AEB scenario from [here](). |
| 69 | + - Set the execution rights of the standalone application: |
| 70 | + ```bash |
| 71 | + $ cd <path/to/AutoDRIVE Simulator.x86_64> |
| 72 | + $ sudo chmod +x AutoDRIVE\ Simulator.x86_64 |
| 73 | + ``` |
| 74 | + - Run the standalone simulator by double-clicking the standalone executable or via command line interface (CLI): |
| 75 | + ```bash |
| 76 | + $ cd <path/to/AutoDRIVE Simulator.x86_64> |
| 77 | + $ ./ AutoDRIVE\ Simulator.x86_64 |
| 78 | + ``` |
15 | 79 |
|
16 |
| -`docker build -t autodrive_simulator . --build-arg VERSION=Simulator-0.2.0` |
17 |
| - |
18 |
| -For testing purposes, you may want to use a local version of AutoDRIVE Simulator, as opposed to pulling a release version from github. In this case, |
19 |
| -update the Dockerfile with the folder name containing your AutoDRIVE Simulator application, and run |
20 |
| - |
21 |
| -`docker build -t autodrive_simulator . --build-arg VERSION=local` |
| 80 | +3. Execute the [`rzr_aeb`](https://github.com/AutoDRIVE-Ecosystem/AutoDRIVE-Simulator-HPC/blob/rzr-aeb/rzr_aeb.py) Python3 script to run the autonomous emergency braking (AEB) function with RZR, employing the AutoDRIVE Python API. |
| 81 | + ```bash |
| 82 | + $ cd <path/to/rzr_aeb.py> |
| 83 | + $ python3 rzr_aeb.py |
| 84 | + ``` |
0 commit comments