IOException.de » Timo Mueller http://www.ioexception.de Ausgewählter Nerdkram von Informatikstudenten der Uni Ulm Wed, 19 Mar 2014 22:01:00 +0000 de-DE hourly 1 http://wordpress.org/?v=3.9.1 AF Ubiquitous Computing – Projektskizze ‘MAMPF’ http://www.ioexception.de/2010/05/30/af-ubiquitous-computing-projektskizze-mampf/ http://www.ioexception.de/2010/05/30/af-ubiquitous-computing-projektskizze-mampf/#comments Sun, 30 May 2010 14:07:37 +0000 http://www.ioexception.de/?p=562 Die Küche ist wohl weiterhin einer der traditionsreichsten Plätze in der modernen Gesellschaft. Auch wenn es Feministinnen nicht gefallen wird, so steht „Oma“ für ein Qualitätsmerkmal im Bereich der zünftigen Küche. Handschriftliche Rezeptsammlungen sind auch heute noch in modernen Küchen zu finden. Dabei handelt es sich nicht selten um über Generationen gesammelte Werke. Als Kind lernt man meist schon durch Selbstversuch, dass der Topf über eine Herdplatte erwärmt wird und lernt so recht schnell wie unsere Gesellschaft zu warmen Speisen gelangt.

Mit unserem Projekt wollen wir das Kochen nicht neu erfinden. Vielmehr handelt es sich bei der Multifunctional and Adaptive Meal Preparation Facility (MAMPF) um ein Konzept, welches zeigen soll, dass ubiquitäre Unterstützung auch im Bereich der Küche sinnvoll einzubringen ist. Dafür möchten wir einige der festgefahrenen Methoden aufbrechen und uns überlegen, wie diese sinnvoll zu verändern bzw. zu erweitern sind. Oft beschränkt sich ein Haushalt auf eine gut abzählbare Menge von immer wiederkehrenden Gerichten. Dies hat zum Einen den Grund, dass diese Gerichte Lieblingsspeisen sind, zum Anderen liegt dies an Zeit- und Motivationsmängel, sich die Zubereitung eines neuen Gerichtes anzueignen.
Durch ein System, welches Rezepte bereitstellt und Unterstützung für den Kochvorgang anbietet, kann möglicherweise diese Hürde etwas herabgesetzt werden. Durch maschinenlesbare Rezepte lassen sich auch sehr einfach Inhaltsstoffe überprüfen, beispielsweise zur Vermeidung von Unverträglichkeiten beziehungsweise Allergien oder für eine gesündere Ernährung.

Ein solches Format bringt neben der Möglichkeit zur Kochunterstützung eine Fülle weiterer Eigenschaften. So können Rezepte sehr gut kategorisiert, durchsucht, getauscht, bewertet oder modifiziert werden. Damit wäre es auch möglich Rezepte über eine Online-Plattform für andere zugänglich zu machen. Die klassische Bedienung soll so verändert werden, dass eine einfachere Handhabung möglich ist. Ein Kochvorgang zum Aufkochen von Wasser beginnt meistens, indem man einen Topf mit Wasser füllt, sich eine geeignete Platte auf dem Herd aussucht und anschließend das Bedienelement für diese Platte auf die höchste Stufe stellt.
Bei unserem Konzept soll vor Allem diese letzte Indirektionsstufe wegfallen, indem das System sowohl weiß, wo sich das Kochgeschirr befindet, als auch, wie dieses anzusteuern ist. Dies nennt sich dann ‘zoneless cooking’.

Es handelt sich in diesem Punkt um eine Machbarkeitsstudie, da wir aus Kostengründen keine große Fläche aus vielen kleinen Induktionsspulen zur Verfügung haben. Derartige Produkte werden auch von den großen Firmen erforscht, die leider nicht an einer Beteiligung an diesem Projekt interessiert waren. Daher wird mit drei einfachen Induktionskochplatten das Prinzip der Topferkennung und des gezielten Ansteuerns umgesetzt, welches auf eine großflächige Induktionsmatrix übertragbar ist.

Die MAMPF stellt dann schließlich ein vielseitiges Küchensystem dar, das den Benutzer bei Bedarf in weiten Teilen unterstützt. Dies bedeutet, dass der Benutzer des Systems in keinster Weise in seinen Möglichkeiten eingeschränkt werden soll und auch künftig in gewohnter Weise kochen kann. Die gebotene Unterstützung umfasst mehrere Bereiche wie erhöhte Sicherheit, einen neuen Ansatz der Interaktion sowie Begleitung durch Rezepte.

Die Darstellung des Systemzustandes, sowie aller Anweisungen für ein Rezept, werden auf einem Monitor über der Kochplatte angezeigt. Bedient wird das System über einen in die Kochplatte eingelassenen, berührungsempfindlichen TabletPC. Die Bedienfläche ist somit von der Ausgabe getrennt, kann aber auch die Ausgabe für eine direkte Interaktion darstellen. Hiermit ist es möglich auch von entfernten Geräten auf die Kocheinheit zuzugreifen und Änderungen am System durchzuführen.

Mithilfe einer Datenbank sollen Benutzerinformationen gesammelt werden. Diese Informationen erlauben später eine genauere Berechnung der benötigten Kochdauer oder das sortieren von bestimmten Rezepten.

Um dieses Projekt zu realisieren, wird wie bereits erwähnt auf die Technik der Induktion gesetzt. Die Kochplatten werden durch Hardwarenahe-Programmierung über Mikrocontroller angesprochen. Des Weiteren verwenden wir Algorithmen aus der Computer Vision zur Objekterkennung und -tracking, ein selbst spezifiziertes Rezeptformat und ein hohes Maß an Modularität durch die Common Application Library (CAL) des .NET-Frameworks in Verbindung mit dem Model-View-ViewModel-Pattern. Durch dieses Lose-gekoppelte Framework ist es möglich mit fünf Personen unabhängig von den Arbeitsfortschritten der anderen zu entwickeln.

Die Motivation MAMPF umzusetzen besteht darin das Kochen zu vereinfachen. Ungeübte Köche und komplizierte Rezepte sollen nicht mehr im Widerspruch zueinander stehen.

]]>
http://www.ioexception.de/2010/05/30/af-ubiquitous-computing-projektskizze-mampf/feed/ 0
OpenStreetMap-Rendering mit Mapnik http://www.ioexception.de/2010/02/16/openstreetmap-rendering-mit-mapnik/ http://www.ioexception.de/2010/02/16/openstreetmap-rendering-mit-mapnik/#comments Tue, 16 Feb 2010 17:21:01 +0000 http://www.ioexception.de/?p=464 Mit Hilfe des Kartenmaterials von www.openstreetmap.org (OSM) wird einem die Möglichkeit gegeben, zum Teil qualitativ sehr hochwertiges und offenes Kartenmaterial für eigene Anwendungen zu verwenden. Die Vielzahl der Verwendungsmöglichkeiten muss hier nicht weiter erläutert werden.
Allerdings ist die Verwendung der Daten selbst nicht unbedingt trivial. Mittlerweile gibt es zwar in der weiten Welt des Netzes auch ein paar Blogs und Wikis, die einem helfen, dennoch möchte ich an dieser Stelle für eine voraussichtlich mehrteilige Serie den Grundstein legen. Der besteht daraus, aus dem frei verfügbarem Material einen kleinen einzelnen Ausschnitt zu rendern. Zu späteren Zeitpunkten werde ich hoffentlich noch zeigen können, inwiefern das durchaus umfangreiche Material auf die eigenen Bedürfnisse angepasst werden kann. Natürlich ist das ganze kein Hexenwerk und ich möchte auch nicht so tun als ob es eins wäre, weswegen wir am besten mal loslegen.

Da ich selbst in erster Linie Ubuntu benutze und an manchen Stellen der Einsatz von Windows die Angelegenheit nicht unbedingt erleichtert, ist die nachfolgende Anleitung für Ubuntu 9.10 geschrieben. Grundsätzlich sollte sie aber auch für ältere Ubuntu Versionen funktionieren. Unter http://wiki.openstreetmap.org/index.php/Mapnik gibt es weitere Infos, auch für andere Betriebssysteme.

# Subversion-Installation
sudo apt-get install subversion

# der Einfachheit halber arbeitet man am besten direkt im Homeverzeichnis
cd ~

# Mapnik-Installation (Renderer):
sudo apt-get install python-mapnik

# Postgres-Installation (Datenbank)
sudo apt-get install postgresql-8.3-postgis

# Datenbank-Konfiguration
sudo -u postgres -i
createuser username # ja für superuser, username sollte normaler username sein
createdb -E UTF8 -O username gis
createlang plpgsql gis
exit

psql -d gis -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql

echo "ALTER TABLE geometry_columns OWNER TO username; ALTER TABLE spatial_ref_sys OWNER TO username;" | psql -d gis

# Mapnik-Dateien-Checkout für das Rendern:
svn checkout http://svn.openstreetmap.org/applications/rendering/mapnik mapnik/

cd mapnik
mv archive/* ~/mapnik

svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/

cd osm2pgsql
make

psql -f 900913.sql -d gis

cd ..

# Herunterladen und Entpacken des Kartenmaterials
wget http://tile.openstreetmap.org/world_boundaries-spherical.tgz # ca 50MB

cd world_boundaries
wget http://tile.openstreetmap.org/processed_p.tar.bz2 # ca 227MB
tar xvf processed_p.tar.bz2
wget http://tile.openstreetmap.org/shoreline_300.tar.bz2 # ca 46MB
tar xvjf shoreline_300.tar.bz2

# Weitere Datenbankspeisung und Konfiguration:
shp2pgsql -s 900913 -I -g way processed_p shoreline_a | psql -q gis

# Mapnik-Einrichtung
cd ..
vi set-mapnik-env
# Ändern der unteren beiden Werte
export MAPNIK_DBNAME='gis'
export MAPNIK_DBUSER='username' # username von oben und achtet auf die richtigen Anfuehrungszeichen

# osm.xml-Generierung:
source ./set-mapnik-env
./customize-mapnik-map -> $MAPNIK_MAP_FILE

# erstes Rendering
python generate_image.py
]]>
http://www.ioexception.de/2010/02/16/openstreetmap-rendering-mit-mapnik/feed/ 2