BETA

Συνέντευξη με τον Bernhard Wymann του TORCS

Εικόνα Billy Toulas

Read the original English Το TORCS είναι ένα σπουδαίο πρότζεκτ ανοιχτού κώδικα το οποίο παρουσιάσαμε πριν λίγο καιρό εδώ στο osarena. Μοναδικό στον τομέα του, με πολλές αρετές αλλά και ελλείψεις σε αμφίβολη πλέον αναπτυξιακή κατάσταση. Ο αρχηγός του πρότζεκτ Bernhard Wymann, μας εξηγεί το τι συμβαίνει με την ανάπτυξη, μας μιλάει για τις αποφάσεις και τους στόχους του, και μας δίνει κάποιες τεχνικές λεπτομέρειες γύρω από το πρότζεκτ.  

Πες μας μερικά πράγματα για σένα, και τον λόγο που ενεπλάκεις με το TORCS. Είσαι φαν των αυτοκινήτων, ή απλά σου αρέσει η ενασχόληση με την τεχνητή νοημοσύνη?

Γεννήθηκα το 1971, ζω στην Ελβετία και σπούδασα μηχανολόγος μηχανικός και πληροφορική, ενώ τώρα δουλεύω ως Senior Software Architect για τα προς το ζην. Τα χόμπι μου αυτή τη στιγμή είναι η φωτογραφία και το TORCS. Επέλεξα το Linux ως το κύριο λειτουργικό μου σύστημα το 1994 (kernel 0.99p14/Slackware ή κάτι τέτοιο, δεν θυμάμαι ακριβώς), αλλά είχα ένα ωραίο παιχνίδι αγώνων αυτοκινήτου στα DOS και αργότερα στα Windows 95. Παρεμπίπτοντος μου αρέσει να βλέπω αγώνες αυτοκινήτου, είναι παράλογο το ξέρω ;-). Έτσι λοιπόν ήμουν αναγκασμένος να χρησιμοποιώ και Windows 95 μόνο και μόνο για να παίζω αυτό το παιχνίδι και να τρέχω και κάποιες άλλες εφαρμογές, και έτσι άρχισα να ψάχνω για εναλλακτικές στο Linux. Νομίζω κάπου στο 1999 ήταν όταν βρήκα το TORCS στο torcs.free.fr, το πρότζεκτ δεν ήταν ακόμα στο sf.net τότε, και το κατέβασα. Για να το τρέξω έπρεπε να χτίσω ένα πειραματικό πακέτο X11, XFree86 τότε, με πειραματική υποστήριξη 3D-FX OpenGL. Τελικά αφού κατάφερα να το κάνω αυτό όλα δούλεψαν μια χαρά και εγώ εντυπωσιάστηκα από το άλμα που κάνει το αυτοκίνητο στην πίστα “dirt-2” και αποφάσισα να δω πως δουλεύει η ανάρτηση. Εξ αιτίας των ενδιαφερόντων μου (ήμουν ήδη μηχανολόγος μηχανικός και είχα αρχίσει τις σπουδές μου στην πληροφορική) άρχισα να βλέπω στα ενδότερα του παιχνιδιού και τελικά ξεκίνησα να γράφω ένα bot. Κάπου στο 2000 ή 2001 έκδοσα το bot και έγινα μέλος της ομάδας του TORCS. Δεν είμαι ιδιαίτερα φαν των αυτοκινήτων, ούτε μου αρέσει συγκεκριμένα η τεχνητή νοημοσύνη. Νομίζω πως με έλκει η τεχνολογία και η συγκίνηση του περίπλοκου. Για παράδειγμα αν τα media προβάλαν πιο πολύ αγώνες με βάρκες, μάλλον και εγώ θα έψαχνα κάτι αντίστοιχο, ποιος ξέρει...

Σου αρέσει λοιπόν το Linux και απ' ότι ξέρω σου αρέσει και ο αερομοντελισμός. Ασχολείσαι καθόλου με το FlightGear, έχεις συνεισφέρει τίποτα? Γενικότερα εκτός από το TORCS, ασχολείσαι και με κάποιο άλλο πρότζεκτ ανοιχτού κώδικα?

Όχι, δεν έχω συνεισφέρει στο FlightGear. Έχω κάνει κάποια πράγματα για άλλα ΕΛ/ΑΚ πρότζεκτ, όπως αναφορές σφαλμάτων/συζητήσεις/patches εδώ και κει, αλλά σε γενικές γραμμές όχι κάτι σημαντικό.

Πες μας τι γίνεται με την ανάπτυξη του TORCS. Η τελευταία σταθερή έκδοση ήταν πριν δύο χρόνια. Τι συμβαίνει?

Όχι αρκετά :-) Εξ αιτίας του φόρτου εργασίας με την δουλειά μου δεν βρήκα χρόνο να δουλέψω στη νέα έκδοση, αλλά πρόσφατα εκδόθηκε η 1.3.2.

Βλέπω ότι οργανώνετε τουρνουά TORCS. Τι ακριβώς είναι αυτά τα τουρνουά και πως μπορεί κάποιος να λάβει μέρος?

Γράφεις έναν AI οδηγό (bot) και λαμβάνεις μέρος στο πρωτάθλημα σε αυτή την ιστοσελίδα, το τελευταίο ήταν το 2009, αλλά θα οργανώσουμε νέο πρωτάθλημα φέτος. Επίσης μπορεί κανείς να λάβει μέρος χρησιμοποιώντας το default AI με μικρές ή και καθόλου τροποποιήσεις, έτσι για πλάκα. Το πρωτάθλημα έχει διάρκεια 10 αγώνων, έναν κάθε 3 ή 4 εβδομάδες. Ο κάθε αγώνας έχει 3 φάσεις: 1. Η φάση του upload. Σε αυτή τη φάση, οι αγωνιζόμενοι μπορούν να κάνουν upload μια πιο ανανεωμένη έκδοση του bot τους (δεν είναι απαραίτητο, αλλά μπορεί κάποιος να θέλει να διορθώσει κάτι στην τεχνητή νοημοσύνη που θα του δώσει καλύτερα αποτελέσματα). 2. Η φάση του αγώνα. Σε αυτή τη φάση, οι αγωνιζόμενοι κατεβάζουν όλα τα ρομπότ στον υπολογιστή τους όπου και θα γίνει ο αγώνας. 3. H φάση της υποβολής. Σε αυτή τη φάση, όλοι οι διαγωνιζόμενοι υποβάλλουν τα αποτελέσματα. Λαμβάνονται υπ όψιν όλα τα αποτελέσματα, και βάση αυτών υπολογίζεται το επίσημο αποτέλεσμα των αγώνων (μέσος όρος όλων των υποβληθέντων αποτελεσμάτων), για λεπτομέρειες δείτε αυτή την ιστοσελίδα.

Το Speed Dreams είναι ένα fork του TORCS που στοχεύει στον εμπλουτισμό του αυθεντικού παιχνιδιού με περισσότερα αυτοκίνητα και καλύτερα γραφικά και φυσική. Γιατί δεν μπορούν αυτοί οι άνθρωποι να συνεισφέρουν στο TORCS?

Θα μπορούσαν (κάποιοι το κάναν σε σημαντικό βαθμό) και είναι ευπρόσδεκτοι, αλλά υπάρχουν λόγοι που υπάρχει αυτό το fork (σημείωσε ότι αυτή είναι υποκειμενική άποψη, και οι άνθρωποι του Speed Dreams μπορεί να το βλέπουν διαφορετικά!)

1. Έχουν διαφορετικό στόχο: Θέλουν σαν αποτέλεσμα ένα πλήρες, όμορφο παιχνίδι αγώνων, και πιστεύω ότι τα καταφέρνουν πολύ καλά. Ο δικός μου στόχος όμως είναι διαφορετικός: Πιστεύω ότι υπάρχουν αρκετά καλά παιχνίδια αγώνων αυτοκινήτου στα ράφια, απλά πήγαινε στο μαγαζί και αγόρασε τα. Η μοναδικότητα του TORCS όμως έγκειται στην ευκολία μετατροπής του, την συμβατότητα, τις πολύ καλές επιδόσεις και την σταθερότητα. Έτσι προσκαλεί τον κόσμο να παίξει με το περιεχόμενό του και τον κώδικά του. Έχω απαντήσει σε ερωτήματα υποστήριξης για πάνω από 100 ερευνητικά πρότζεκτ που χρησιμοποιούν το TORCS για διάφορα πράγματα, οπότε πιστεύω πως έχει την θέση του. H απόδειξη ότι εγώ και οι συνεχιστές μου τα πήγαμε καλά είναι το Speed Dreams και άλλα fork που υπάρχουν. Αν δεν τα είχαμε πάει καλά δεν θα χρησιμοποιούσαν το TORCS σαν βάση για το πρότζεκτ τους έτσι δεν είναι? Επίσης, ένα από τα οφέλη του ανοιχτού κώδικα είναι η δημιουργία forks στις περιπτώσεις που οι στόχοι διαφέρουν, και πιστεύω ότι αυτό είναι λογικό και σπουδαίο.

2. Αν έχεις πολύ περιεχόμενο στο παιχνίδι (για παράδειγμα 300 αυτοκίνητα) και κάνεις μια αλλαγή στην μηχανή φυσικής θα πρέπει να προσαρμόσεις όλα τα αυτοκίνητα. Έτσι από άποψης συντήρησης, το πολύ υλικό δεν είναι θεμιτό πράγμα από την στιγμή που έχεις λίγους και όχι σταθερούς συνεισφέροντες. Θα ήθελα βέβαια να έχω περισσότερες πίστες που δεν είναι τόσο σημαντικές σε ο,τι αφορά την εξομοίωση. Το ίδιο ισχύει και για την τεχνητή νοημοσύνη, για παράδειγμα όταν εισάγω στάση pits με ξεχωριστά μονοπάτια και έχω 20 τεχνητές νοημοσύνες, τότε θα έχω πολύ δουλειά να κάνω.

3. Αποφυγή της χρήσης “προβληματικού περιεχομένου”, πχ πίστες με textures από αμφίβολες πηγές, αληθινά αυτοκίνητα που παραβιάζουν trademark, προστατευόμενα σχέδια κλπ. Εγώ ακόμη δουλεύω στο ξεκαθάρισμα του TORCS από τέτοια πράγματα.

4. Ποιότητα. Πολλές συνεισφορές δεν συνάδουν με τα στάνταρ ποιότητας και έτσι οι άνθρωποι απογοητεύονται επειδή είναι δύσκολο να το κάνουν σωστά. Έτσι εγώ ψάχνω για συνεισφέροντες που θα με βοηθήσουν να κάνω το παρόν υλικό καλύτερο/τέλειο, και όχι να αυξήσω το υλικό σε μέγεθος. Για παράδειγμα, θα ήταν ωραίο να είχα άτομα που θα με βοηθούσαν να δημιουργήσουμε τεκμηρίωση, να βελτιώσουμε την ιστοσελίδα, να αντικαταστήσουμε τα προβληματικά αυτοκίνητα που υπάρχουν, να ανανεώσουμε τις παλιές πίστες κλπ.

Πόσο δύσκολο είναι να φτιάξεις τεχνητή νοημοσύνη για οδήγηση?

Εξαρτάται από το τι εννοείς όταν λες νοημοσύνη, και σε πιο πλαίσιο. Πχ ένα TORCS bot που απλά ακολουθεί αργά αργά την κεντρική γραμμή του δρόμου είναι μερικές γραμμές κώδικα, οπότε η δημιουργία του είναι κάτι πολύ εύκολο. Αν θέλεις να κερδίσεις έναν αγώνα TRB (TORCS Racing Board) με αποφυγή σύγκρουσης, προσπεράσεις, pit stops κλπ, είναι αρκετά δύσκολο :-) Ο καλύτερος τρόπος για να πάρεις μια γεύση είναι το robot tutorial, το οποίο σε καθοδηγεί βήμα προς βήμα στην δημιουργία ενός πλήρως λειτουργικού bot (ικανού να κάνει pit stops, προσπεράσεις, αποφυγή σύγκρουσης κλπ). Υπάρχουν και κάποια άλλα διεθνή πρωταθλήματα αφιερωμένα στην έρευνα AI του TORCS. Ρίξτε μια ματιά σε αυτή την ιστοσελίδα.

Είναι δυνατόν να γίνει χρήση αυτής της τεχνητής νοημοσύνης σε αληθινά ρομποτικά αυτοκίνητα? Έχει γίνει τέτοια χρήση ποτέ? Επίσης, σας έχει πλησιάσει κάποιο από τα “άλλα” ανοιχτού κώδικα παιχνίδια αγώνων αυτοκινήτου (Vdrift, Rigs of Rods) ζητώντας κάποιου είδους implementation ή βοήθειας σε αυτόν τον τομέα?

Δεν μπορείς να χρησιμοποιήσεις άμεσα αυτή την τεχνητή νοημοσύνη σε αληθινά αυτοκίνητα γιατί το input είναι διαφορετικό. Στο TORCS η τεχνητή νοημοσύνη έχει πρόσβαση σε πολλά αξιόπιστα δεδομένα, ενώ ένα αληθινό αυτοκίνητο έχει πολλά αναξιόπιστα δεδομένα που θα πρέπει να αναλυθούν πρώτα. Αυτό είναι πολύ δύσκολο (πχ η ανάλυση καρέ βίντεο στην κατανόηση του παρόντος περιβάλλον). To TORCS έχει χρησιμοποιηθεί για έρευνα τεχνητής νοημοσύνης πραγματικής οδήγησης, αλλά αλλάχθηκαν τα input του robot σε ποιο ρεαλιστικά input αισθητήρων (προσομοίωση “θορύβου” αισθητήρα κλπ). Άλλα πρότζεκτ ανοιχτού κώδικα δεν ζήτησαν ποτέ υποστήριξη για την τεχνητή νοημοσύνη, μπορεί να ρίξανε μια ματιά στον κώδικα, μπορεί και όχι, ποιος ξέρει :-) Ένα μέρος κώδικα του "berniw" AI πάντως, έχει περάσει σε εμπορικό παιχνίδι.

Υπάρχουν ιδέες ή σχέδια για το μέλλον του TORCS?

Ναι, έχω πολλές ιδέες και μερικά σχέδια ;-) Το μακροπρόθεσμο σχέδιο είναι το διαδικτυακό παιχνίδι multiplayer, για το οποίο έχει γίνει ήδη το πρώτο βήμα που ήταν το “trb car set”. Το επόμενο βήμα είναι τα training sessions με δυνατότητα προσαρμογής του αυτοκινήτου (σε εξέλιξη), περισσότερους κανόνες (πχ μπλε και κίτρινες σημαίες, service cars), συλλογή και προβολή δεδομένων τηλεμετρίας (που περιλαμβάνει και τα replay). Για τους ερευνητές χρειαζόμαστε καλύτερη τεκμηρίωση, και καθαρό mode γραμμής εντολών για AI training sessions με script. Αυτό είναι επίσης πολύ σημαντικό. Αν δεις το αρχείο README του πακέτου TORCS, θα βρεις και άλλες πολλές ιδέες. Φυσικά δεν χρειάζεται να μπουν όλα στο εκτελέσιμο του ίδιου του TORCS, πχ ένας καλύτερος editor/generator πιστών θα ήταν ο,τι πρέπει, αλλά αυτό θα μπορούσε να γραφτεί σε backends για διάφορες εξομοιώσεις (τέτοιες που θα μπορούσες να φτιάξεις μια πίστα για το TORCS, το Speeddreams, το vDrift και άλλα παιχνίδια). Ρίξτε μια ματιά στον δικτυακό track generator του TORCS/Speed Dreams σε αυτή την ιστοσελίδα.

  • Σχόλια

0 Comments:

Scroll to Top