Περιγραφή¶
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 CARLA
Παράδειγμα χρήσης¶
Ας δούμε το script υποβολής μίας εργασίας που χρησιμοποιεί το CARLA
:
SLURM submission script
#!/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 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