Μετάβαση στο περιεχόμενο

Περιγραφή

CARLA has been developed from the ground up to support development, training, and validation of autonomous driving systems. In addition to open-source code and protocols, CARLA provides open digital assets (urban layouts, buildings, vehicles) that were created for this purpose and can be used freely. The simulation platform supports flexible specification of sensor suites, environmental conditions, full control of all static and dynamic actors, maps generation and much more.

CARLA 0.9.15

Επίσημη Ιστοσελίδα

Note

Το CARLA χρειάζεται συγκεκριμένο driver γραφικών, και ως εκ τούτου μπορεί να χρησιμοποιηθεί μόνο στο ampere.

Φορτώνουμε το λογισμικό CARLA με την εντολή

$ module load gcc/10.2.0 python/3.7.12-4tsv54n libjpeg/8d-elbcowk libpng/1.6.37 CARLA

Παράδειγμα χρήσης

Ας δούμε το script υποβολής μίας εργασίας που χρησιμοποιεί το CARLA:

SLURM submission script
CARLA-0.9.15-case.sh
#!/bin/bash
#SBATCH -J CARLA-0.9.15-case
#SBATCH -p ampere
#SBATCH --ntasks-per-node=16
#SBATCH --gres=gpu:1
#SBATCH -t 1:00:00

# if this number fails for you, this port might already be in use
# just pick another number
# default is 2000
export CARLA_RPC_PORT=3000

module load gcc/10.2.0 python/3.7.12-4tsv54n libjpeg/8d-elbcowk libpng/1.6.37 CARLA

echo "$(date --iso=s) Starting Carla"

# below, unless -carla-streaming-port is set, it defaults to CARLA_RPC_PORT+1
# (3001 in this example)
# the symbol '&' means it will be executed in the background
CARLA -opengl -RenderOffScreen -nosound -carla-rpc-port=$CARLA_RPC_PORT &

# check if CARLA is up every 5 seconds
while [ -z "$(netstat -tunpl 2>/dev/null | grep Carla | grep $CARLA_RPC_PORT)" ]
do
    sleep 5
    echo "$(date --iso=s) Not found yet"
done

echo "$(date --iso=s) Found!"

# set the weather
config.py -p $CARLA_RPC_PORT --weather ClearNoon

# print help for config.py command
config.py --help

# execute this small python script, which gets CARLA's world
# and prints the object's string form if successful
python3 <<python_file
import carla
client = carla.Client('localhost', $CARLA_RPC_PORT)
client.set_timeout(10.0) # seconds
world = client.get_world()
print(str(world))
python_file

Αυτή η εργασία θέτει το CARLA σε λειτουργία background, αλλάζει τον καιρό στην προσομοίωση, τυπώνει τη βοήθεια για το σκριπτάκι που αλλάζει τις ρυθμίσεις της προσομοίωσης, και τέλος τρέχει ένα μικρό σκριπτ που επιβεβαιώνει ότι ο κόσμος της προσομοίωσης λήφθηκε από τον client.

Note

Εντός script θα πρέπει να βρείτε και να ορίσετε κάποια θύρα που δεν χρησιμοποιείται ήδη από κάποιον άλλον. Στο παράδειγμά μας βάλαμε τυχαία την 3000, εσείς μπορείτε να βάλετε κάποιον άλλον αριθμό. Δεν συνίσταται να παραλείψετε αυτήν την παράμετρο (οπότε θα μπει το default που είναι 2000), ή να βάλετε το ίδιο με το παράδειγμα.

Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε όποια αρχεία χρειαζόμαστε και το script υποβολής της εργασίας, έστω CARLA-0.9.15-case.sh.

# mkdir CARLA-0.9.15-case
# cd CARLA-0.9.15-case

Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:

# sbatch CARLA-0.9.15-case.sh

Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.

Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:

# tail -f *.out