Printserver auf Asus WL-500g Premium
March 21st, 2008 @ 17:30Auf meinem Router, ein WL-500g Premium von Asus, läuft FreeWRT in der aktuellen Version. Nachdem der LPT-to-USB Konverter schon eine ganze Weile rumliegt, habe ich ihn heute endlich mal angeschlossen.
Damit der USB-Drucker funktioniert, muss das USB-Printer Modul im Kernel von FreeWRT ausgewählt sein. Eine entsprechende Meldung im Log, das man mittels logread einsehen kann, verrät, dass der Drucker korrekt erkannt wurde.
Mar 21 16:53:55 (none) user.info kernel: usb.c: registered new driver usblp
Mar 21 16:53:55 (none) user.info kernel: printer.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 1 proto 2 vid 0x067B pid 0×2305
Um den Print-Server dann in Betrieb zu nehmen, müssen einige Voraussetzungen erfüllt werden. Da der Router über vergleichsweise wenig RAM verfügt, entschied ich mich für p910nd (und nicht für cups) als Server. Nach der Installation des Pakets, kann der Server auch gleich gestartet werden.
/etc/init.d/S70p910nd
Die Konfiguration kann bei Bedarf in der rc.conf unter /etc angepasst werden.
In der Standardkonfiguration nutzt der Server /dev/usb/lp0 und lauscht auf Port 9100.
Ein schneller Test mittels telnet ergab, dass der Server soweit funktioniert.
Mar 21 17:01:01 (none) lpr.notice p9100d[534]: Connection from 192.168.1.11 port 39597 accepted
Mar 21 17:01:07 (none) lpr.notice p9100d[534]: Finished job: 10 bytes received, 0 bytes sent
Auf dem Client muss dann letztendlich noch der Drucker eingerichtet werden. Dazu in Cups einen neuen Drucker hinzufügen. Als Gerät wählt man “APP/Socket/HP JetDirect” und als Adresse socket://<ip des Router>:9100. Anschließend noch das richtige PPD File für den Drucker auswählen oder hochladen. Und schon kann im Netzwerk gedruckt werden.
Ergebnis: Man kann vom jeden Rechner im Netzwerk drucken und ein Kabel weniger im Salat unterm Schreibtisch
Gates @ Stanford
March 14th, 2008 @ 20:16Auf dem Campus der Stanford University gibt es u.a. das Gates Building. Namensgeber für dieses Gebäude ist Bill Gates, seines Zeichens Gründer von Microsoft.
![]()
Scheinbar gibt es aber auch ein Paar Linux-Fans unter den Studenten.
Auf jeden Fall findet man auf dem Bürgersteig vor dem Gebäude folgende Markierung.
![]()
ganz schoen windig….
March 2nd, 2008 @ 19:19Particle-Filter
December 29th, 2007 @ 15:40Partikelfilter sind ja wieder gerade in aller Munde. Zumindest bei Fahrern von Diesel-PKW. Ich meine aber eine spezielle Variante, nämlich den Particle-Filter aus dem Bereich der Robotik. Im Spezialfall der Lokalisierung bekannt unter dem Namen Monte-Carlo Lokalisierung (MCL).
Mit Hilfe der MCL kann sich unser RobbiTobbi anhand seiner Odometrie und zusätzlicher Sensoren (bspw. Abstandssensoren) in einer ihm bekannten Umgebung lokalisieren.
Beispiel für die Monte-Carlo Lokalisierung:
![]()
- Der Roboter befindet sich in einem Gang und kann vor- und rückwärts fahren. Zu Beginn werden die Partikelpositionen zufällig gleichverteilt aus dem Zustandsraum gezogen. Es entsteht die in (a) dargestellte gleichmäßige Verteilung der Partikel über den gesamten Zustandsraum.
- Anschließend detektiert der Roboter mittels seines Sensors eine Tür. Die Partikel werden anhand des Sensormodells p(z | x) neu gewichtet. Die Höhe der Balken in (b) entspricht dem unterschiedlichen Gewicht der Partikel. Wie man sieht, verfügen die Partikel in der Nähe einer der drei Türen über höhere Gewichte. Abgesehen von den entsprechend der Sensormessung angepassten Gewichten ist die Partikelmenge unverändert.
- Durch einen Resampling-Vorgang und Anwendung des Bewegungsmodells erhalten wir eine neue Partikelmenge. Innerhalb der neuen Partikelmenge, die durch Resampling aus der vorherigen Menge entstanden ist, sind die Gewichte aller Partikel nun wieder gleich. Die Partikel sind jedoch gehäuft an den drei wahrscheinlichsten Positionen anzutreffen, wie (c) zeigt.
- In der in (d) angedeuteten Situation erhält der Roboter wieder eine Sensormessung einer Tür. Durch Gewichtung der Partikel der aktuellen Partikelmenge entsprechend dieser Sensormessung verändert sich der Belief des Roboters.
- (e) zeigt die neu entstandene Partikelmenge nach einem Resampling-Vorgang. Die meisten Partikel befinden sich nun gemeinsam in einer Region vor der zweiten Tür. Wie man anhand dieses Beispiels erkennen kann, approximiert MCL mit Hilfe eines Partikel-Filters die gesuchte Verteilung bel(x). Der Roboter ist in der Lage, seine Position zu bestimmen.
C++ Implementierung für das Beispiel:
particlefilterex.tar.gz
Um das Beispiel selbst auszuführen benötigt man g++, gnuplot (zur Visualisierung) und LaTeX (pdf erzeugen).