Το Project αποκτάει καινούργιο "εγκέφαλο"

February 3rd, 2008

Και το όνομα αυτού Intel D201GLY2 με Celeron 1.2Ghz 512MB Ram και compact flash ?σκληρό δίσκο"..

Mainboard #1

Ενδιαφέρουσα πατέντα είναι το αυτοσχέδιο κουμπί ( βλέπε 2 γυμνά καλώδια
με προστατευτική ταινία που αναλαμβάνουν το άνοιξε κλείσε της motherboard και θα αντικατασταθούν από το κουμπί χαλασμένου mouse :))

Για την τροφοδοσία αγόρασα ένα τροφοδοτικό προς το παρόν αλλά και το PicoPSU που στο μέλλον θα τροφοδοτεί την motherboard από τα 12 Volt που θα βγάζει η μπαταρία..

PicoPSU

Το λειτουργικό που επιλέχθηκε (παρά την αρχική μου ιδέα για ένα mini distro linux , πχ Mepis) είναι τα WinXP Professional , χωρίς page files/οπτικά εφέ/ήχους και με απενεργοποιημένα όλα τα περιττά Services..
Ουσιαστικά το λειτουργικό θα πρέπει να διαθέτει απλά DirectX9.0 και τους drivers για τα διάφορα κομμάτια του (Wireless , Cameras , Graphics Chip κτλ ) και φυσικά Remote Desktop :) ..

Η εγκατάσταση του λειτουργικού δεν είναι η τυπική εύκολη διαδικασία καθώς δεν υπάρχουν CD/DVD-ROM drives.. Άρα θα έπρεπε να γίνει μέσω USB stick ή Over Network..
Αφού το πάλεψα με BartPE , NLite , PeToUSB , HP USB Disk Storage Format Tool , WinImage , usb_prep8 και bootsect κατάφερα να δημιουργήσω μια Nlited installation των windows γύρω στα 430 MB που να χωράει στο USB stick (470Μ&#914&#59;) και το οποίο περιείχε μόνο τα απαραίτητα..
Παρ`όλα όμως τα format , τις προσπάθειες και τις ρυθμίσεις στο BIOS ( το οποίο υποστηρίζει USB boot..) ο υπολογιστής αρνιόταν πεισματικά να λειτουργήσει..

Γι`αυτό τον λόγο έψαξα λίγο για over Ethernet , DHCP installations των Windows με TFTP και βρήκα την λύση στο πρόβλημα μου..
Όποιοςδήποτε ενδιαφέρεται να δοκιμάσει ένα τέτοιο installation μπορεί να το κάνει ακολουθώντας αυτές τις οδηγιές ( http://www.tzim.net/?win_netinstall ) . Εκτός του κομματιού ανέυρεσης των .sys αρχείων της κάρτας δικτύου της mainboard θα έλεγα οτι είναι απλή η διαδικασία..

Εφαρμόζοντας την λοιπόν ο υπολογιστής ξεκινόντας bootαρε κανονικά και μετά από κάποια ώρα (περισσότερη από την συνιθισμένη για ένα installation και λογικό λόγω του “σκληρού του” .. ) Τα WinXP μπήκαν και έτρεχαν κανονικότατα , ενώ πρώτες δουλειές ήταν η απενεργοποίηση του PageFile , και των λοιπών περιττών και πιθανά hard drive intensive ρυθμίσεων..
Μετά από ολοήμερη λειτουργία installation/configuration και με μια ντουζίνα restart ο υπολογιστής κόλλησε κατά το loading screen , φοβίζοντας τον ιδιοκτήτη του , ενώ με ένα δεύτερο restart δεν έβρησκε boot drive..

Αυτό ήταν , η Compact Flash μετά από μια μέρα εργασίας πέθανε..

Οι επιλογές τώρα είναι :
1) Αγορά καινούργιας ακριβότερης Flash με την ελπίδα οτι δεν θα έχει την τύχη της φθηνής πρώτης
2) Αγορά Compact Flash microdrive (δλδ mini σκληρού..!) http://en.wikipedia.org/wiki/Microdrive
3) Αγορά σκληρού δίσκου για laptop.. Θα προσθέσει κάποιο βάρος στην κατασκευή , μεγαλύτερη κατανάλωση ρεύματος , έχει μηχανικά μέρη που σημαίνει οτι είναι αδύναμο σε πτώσεις χτυπήματα κτλ , αλλά από την άλλη έχει την καλύτερη δυνατή απόδοση/χωρητικότητα..

Όλες οι επιλογές έχουν να κάνουν με αγορά πάντως :D

No news good news..

December 30th, 2007

Αν και έχω αρκετό καιρό να γράψω , ωστόσο το Project είναι σταθερά πρώτο στο Stack εργασιών μου..
Έχουν πλέον προστεθεί Gaussian Blur , βελτιώνονται οι διάφοροι αλγόριθμοι , και όπως φαίνεται στο παραπάνω video όταν υπάρχει κίνηση στα όρια του οπτικού πεδίου το ρομπότ γυρίζει τα μάτια του για να επικεντρωθεί στην κίνηση..

December 4th, 2007

ις τελευταίες μέρες κάνω ένα reworking του κώδικα που αναλαμβάνει την επικοινωνία μέσω bluetooth , όπου προστέθηκε υποστήριξη για αναπαραγωγή Sound από το mindstorm (προς το παρόν προσέθεσα έναν ήχο συναγερμού,έναν ήχο γαυγίσματος,και έναν σαν sonar scan , ο τελευταίος ακούγεται στο παραπάνω video..)
, προστέθηκε η δυνατότητα για αναπαραγωγή Tones , ενώ επόμενο στο πρόγραμμα είναι η προσθήκη status μπαταρίας (και ταυτόχρoνα και για το laptop) , και η βελτίωση του κώδικα που αναλαμβάνει τις περιστροφές τον μοτέρ με σκοπό πολύ ομαλό ταυτόχρονο έλεγχο πολλών μοτέρ την ίδια στιγμή για life-like κίνηση..

Επίσης θα ήταν ωραίο να φτιάξω ένα πρόγραμμα το οποίο on the fly θα παίρνει input από το μικρόφωνο , θα το σώζει σε wav (εύκολο..) , θα ανεβάζει το wav στο Mindstorm ( επίσης εύκολο.. ) και στην συνέχεια θα παίζει το wav ( επίσης εύκολο.. )..
Προβλήματα είναι αφενός το bandwidth της συσκευής και αφετέρου ο μικρός χώρος αποθήκευσης.. Θα είχε πλάκα όμως.. :p

Ως προς την αντίληψη του κόσμου , οι κάμερες πλέον μπορούν και ξεχωρίζουν την εικόνα που παίρνουν σε ένα background , σε κινούμενες περιοχές οι οποίες γίνονται αυτόματα group και τις διαχωρίζουν σε κατηγορίες έρχεται κίνηση/φεύγει κίνηση..

Web Interface + Primitive Object Stack

November 30th, 2007

Το Project απέκτησε Web-Interface (μέσω του AmmarServer , download it standalone here ) το οποίο δείχνει snapshots του view του robot και μελλοντικά θα μπορεί να δείχνει κάποια stats (uptime,μπαταρία,detected objects,alerts/alarm modes και οτιδήποτε άλλο..) έτσι ωστε να ειδοποιείται το αφεντικό του GuardDog over Internet αλλά και γιατί όχι και μέσω SMS :) ..

Επίσης από σήμερα υπάρχει ένα object stack (προς το παρόν απλοϊκό , εξού και το Primitive στον τίτλο.. Όχι οτι έχει αρχήσει να ξεχωρίζει primitives.. καλά θα ήταν.. :D) που μέσα του θα περιέχει πληροφορίες για τα αντικείμενα που βλέπει και αντιλαμβάνεται το GuardDog , το κατα πόσο κινούνται , το κατα πόσο είναι κάτι αναγνωρίσιμο ή όχι , αν βρίσκονται κοντά ή μακρυά κτλ κτλ..

Το κομμάτι αυτό του προγράμματος θα είναι πολύ σημαντικό καθώς θα είναι το framework πάνω στο οποίο θα πατάει πάντα όλη η εφαρμογή και για όλα τα θέματα. Γι` αυτό και ακόμα και σε αυτά τα πρώιμα στάδια ανάπτυξης του project χρειάζεται μεγάλη προσοχή και σωστός και αποτελεσματικός σχεδιασμός..

Τέλος σήμερα ανακατασκεύασα τον κορμό του mindstorm από tribot σε μια πλατφόρμα που έχει επίσης 2 μοτέρ για 2 ρόδες μπροστά και μία πίσω αλλά με αρκετά διαφορετική κατανομή βάρους και μια όσο το δυνατόν ψιλη πλατφόρμα που στηρίζει τις κάμερες και μελλοντικά τον βραχίωνα.. Και επέκτεινα τα καλώδια των USB Cams που πλησιάζουν τα 6.5 μέτρα (μετρώντας και το USB hub ) και δίνουν στο mindstorm αρκετή ελευθερία κινήσεων..

Attachments:

Demo Video + Εξελίξεις..

November 29th, 2007

Προστέθηκαν φίλτρα αποκοπής θορύβου , sobel edges και άλλα στην καρδιά των βιβλιοθηκών Image Capture!

Ακολουθεί ένα μικρό Video από ένα Run του προγράμματος..

Πάνω αριστερά φαίνονται με κόκκινο τα σημεία στα οποία εντοπίζει κινητικότητα το πρόγραμμα , δηλαδή ένα (?) κινούμενο (?) αντικείμενο (?) :D , κάτω αριστερά είναι ένα Subtraction του ενός View από το άλλο και κάτω δεξιά Sobel edge detection με αποκοπή θορύβου (για ποιό καθαρή εικόνα..)

Edge Detection!

November 28th, 2007

Το πρόγραμμα από σήμερα μπορεί να εξάγει edge information από μια εικόνα χρησιμοποιώντας τον αλγόριθμο sobel ή ένα precalculated table οπού προυπολογίζονται μια φορά οι διαφορές χρώματος που θεωρούμε edge candidates.. Προς το παρόν τον αλγόριθμο sobel υλοποιεί το shell κομμάτι της εφαρμογής αλλά τελικά η επεξεργασία αυτή θα γίνεται μέσα στο ίδιο το DLL που λαμβάνει την εικόνα όπου με pointer arithmetic θα έχουμε το βέλτιστο αποτέλεσμα ως προς την ταχύτητα επεξεργασίας..
Στο πρόγραμμα προστέθηκε και η δυνατότητα για αυτόματο capture bmp stills τα οποία (πολύ βολικά :p ) αποθηκεύονται στον υποφάκελο Snapshots και περιέχουν στο filename ακριβή μέρα/ώρα καθώς και την κάμερα από την οποία τραβήχθηκαν..

Screenshot του προγράμματος..Screenshot

Καλως ήρθατε..

November 27th, 2007

Καλως ορίσατε στο Guard Dog Robot Blog..
Σε αυτό τον χώρο θα καταγράφονται όλες οι πληροφορίες σχετικά με την εργασία και την πρόοδο της..

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

Το ρομπότ αρχικά θα αποτελείται από δύο Mindstorm NXT kits και 2 USB Cameras ενώ ο σκοπός σε βάθος χρόνου είναι να περάσει σε πλήρες ασύρματο με έναν κεντρικό υπολογιστή αρκετής υπολογιστικής ισχύς ώστε να μπορεί να υποστηρίξει real-time επεξεργασία εικόνας και επαναμετάδοση νέων δεδομένων στο robot..