Καλή χρονία! 2010!

December 30th, 2009

Το depth mapping και το VideoSubsytem είναι πλέον fully ported σε linux!

ArToolkit Head Tracking :P

December 15th, 2009

Pathfinding Done / Logo Scripts Done

December 15th, 2009

Path Finding Demo / Logo

Ετοίμασα και το κορυφάιο layer του path finding και μπορώ να πώ οτι έχω μια αρκετά καλή και efficient library για να μπορώ να εισάγω 2d χάρτες με εμπόδια και να εξάγω 2d κινήσεις σε μορφή logo scripts! :D

Για του λόγου το αληθές δοκίμασα με το πρόγραμμα kturtle ( apt-get install kturtle ) να κάνω parse το output του προγράμματος μου και έγινε παράγοντας το ίδιο σχήμα με το δικό μου.! :P

Η logo είναι μια πολύ κατάλληλη γλώσσα για την περιγραφή αυτών των απλών κινήσεων του robot ενώ σταδιακά θα προσθέσω κάποια δικά μου extentions τα οποία θα περιγράφουν κινούμενα αντικείμενα , τοποθεσίες , υπορουτίνες και άλλα..!

Σε μια εντολή του ρομπότ που παραδείγματος χάρην ( θεωρώντας οτι έχει και βραχίωνες ) που μπορεί να είναι

be alert for intruders
goto kitchen
get me some cake
come back to me

θα μετασχηματίζεται σε 4 tasks και το δεύτερο και το τελευταίο θα γίνονται resolve σε υπο tasks της μορφής forward , backward και τα λοιπά τα οποία δυναμικά θα αλλάζουν έτσι ώστε να επιτευχθεί ο συγκεκριμένος στόχος σε λογικά πλαίσια.. Επιπλέον κατα το debugging θα είναι πολύ πιο εύκολος ο εντοπισμός του λάθους στην πλοήγηση καθώς θα είναι ανθρωπίνως κατανοητό απευθείας το σετ εντολών του ρομπότ..
Επιπλέον directives όπως το be alert for intruders θα εφαρμόζει μια πολιτική κινήσεων για παράδειγμα με χαμηλότερες ταχύτητες και θα ενεργοποιεί στο οπτικό core πιο ακριβούς ελέγχους..
Αντίθετα αν η πρώτη γραμμή γινόταν από “be alert for intruders” -> “quick”
με το ίδιο σετ εντολών απλά με διαφορετικές πολιτικές στην πραγματοποίηση των κινήσεων θα είχαμε ένα εξίσου καλό αποτέλεσμα..!

Ένας μελλοντικός στόχος του project είναι το να μπορεί κάποιος δίνοντας φωνητικές εντολές με NLP και μια απλή γραμματική να οδηγεί το ρομπότ..!
με τον καιρό και σε περίπτωση που έχει κάνει 100 φορές την διαδρομή θα μπορεί η εντολή get me some cake να γίνεται associate με όλο το tree εντολών ..!

Το επόμενο στάδιο λοιπόν ( και το οποίο ξεκινώ αυτή την στιγμή ) είναι ο generic driver για μοτέρ ο οποίος θα μπορεί να πραγματοποιεί κινήσεις από την scripting language και να επιστρέφει τα αποτελέσματα , ενώ θα μπορεί επίσης να κάνει resolve ανάλογα με την γεωμετρία του robot τις κινήσεις forward πχ σε σήματα για το συγκεκριμένο brand μοτέρ , controller , USB2I2C interface κτλ , ενώ σε συνδυασμό με τις αισθήσεις του ρομπότ ( motion tracking , accelerometers κτλ ) να μπορεί να επανεκτιμά κατα βούληση τα δρομολόγια και στην τελική να αποφανθεί για το κατα πόσο όντως κινείται ή έχει κολλήσει σε έναν τοίχο..

Κάποια links τα οποία έχουν ενδιαφέρον είναι η γλώσσα Esperanto που είναι μια τεχνητή γλώσσα με συντακτικό χωρίς ιδιοματισμούς ενώ επίσης τα anime Ergo Proxy και Eve No Jikan τα οποία είδα τελευταία και είναι πηγή έμπνευσης με το cyber punk περιεχόμενο τους!!

Αυτά λοιπόν!
Συνεχίζω τον κώδικα μου!

World Mapping routing operational :)

December 14th, 2009

Path Demo

Στην παραπάνω εικόνα βλέπετε ένα test case..
Τα κίτρια είναι τα blocks που επέλεξε ο A*
Και οι κόκκινες γραμμές τα βέλτιστα waypoints για το robot

0 - A * Implementation
1 - Εξαγωγή ευθειών και στροφών της διαδρομής
2 - Εκκαθάριση περιττών κόμβων
3 - Εξαγωγή high-level λίστας οδηγιών για τον “driver” των moter του GuardDog με πλήρη υπολογισμός ακτίνων στροφής!

World Mapping has a scale

December 8th, 2009

Προσέθεσα στο WorldMapping την αίσθηση της κλίμακας , πλέον κάθε block είναι 15 εκατοστά ενώ το σημειακό μας αντικείμενο πλέον είναι 4x4 blocks δηλαδή 60x60 εκατοστά ένα στρογγυλό νούμερο ( για τους Βαβυλώνιους &#59;) ) για αυτό και κάθε εμπόδιο στον κόσμο έχει κοντά του μια σκιά έτσι ώστε να αποφεύγονται οριακές καταστάσεις!

Επίσης αρκετές βελτιώσεις έχω κάνει στο path planning ( στο παρακάτω screenshot φαίνονται κάποια zig zag ) , λογικά από αύριο θα μπορεί να ακολουθεί καμπύλες στροφές και όσο πιο δυνατόν σύντομες αποστάσεις γίνεται!

PathPlanning + Size

Nice Projects! :)

December 8th, 2009

GuarDDoG running linux :)

December 7th, 2009

Από σήμερα ο dedicated υπολογιστής πάνω στο GuardDog τρέχει Linux :)

Η διανομή που εγκατέστησα στον σκληρό του δίσκο είναι Ubuntu x64 ( τα οποία μου βρίσκονταν πρόχειρα :p &#59;) ) και θα χρησιμοποιηθεί μέχρι να έχω κάποιο stable subset από packages τα οποία θα θέλω να τρέχει..

Στην συνέχεια κατα πάσα πιθανότητα θα φτιάξω ένα image βασισμένο σε Arch Linux x64 με τον kernel και τα πιο απαραίτητα services με στόχο να χωρέσει ( μαζί με το πρόγραμμα του GuarDDoG ) σε περίπου 512 ή 1024 MB Compact Flash ( αυτή που χρησιμοποιώ είναι 2GB )

Γενικά αυτή την στιγμή που κοιτάζω το leveling τιμών είναι
2 GB - 18,50 €
8 GB - 25,00 €
16 GB - 48,99 €
32 GB - 77,00 €

Ενώ ένα Solid State SATA II Drive κοστίζει
30GB - 95,00 €
και θα έλυνε και τα προβλήματα των write cycles

Τα links και οι τιμές είναι ένα snapshot του 7/12/2009 και κατα πάσα πιθανότητα δεν θα είναι valid για πολύ καιρό.. :>>
Η καλύτερη λύση πάντως σε κάθε περίπτωση είναι μια πολύ lite flavour του Linux η οποία κατα πάσα πιθανότητα θα τρέχει πλήρως από την RAM και θα χρησιμοποιεί το permenant storage μόνο το πρόγραμμα του GuardDog για αποθήκευση νέων αντικειμένων , καταστάσεων , ρυθμίσεων κτλ..!

Ακολουθεί Screenshot από το installation!

Guard Dog Linux installation