This feed contains pages in the "uni" category.
Im Rahmen einer Vorlesung über Augmented Reality war es vorgesehen, selbst eine kleine AR-Anwendung zu schreiben.
Da meine Kommilitonen und ich kleine Spielkinder sind, kam schnell die Idee auf, eine Aufbauanleitung für ein LEGO-Modell zu augmentieren. Das in der Vorlesung vorgestellte ARToolKit nahm dabei die komplizierteste Arbeit ab: Es erkannte die Marker, stellte eine Transformation zwischen Kamera und Marker bereit und erlaubte es damit in das Kameralivebild mit OpenGL zu zeichnen oder VRML-Modelle einzublenden. So blieb damit dann nur noch die virtuellen Bausteine zu modellieren, den Aufbauplan zu formulieren und einzubinden. Zur Steuerung des ganzen griffen wir aber auf die Tastatur zurücck, um den Aufwand nicht unnötig zu erhöhen.
Abschließend kann ich Linuxnutzern nur noch davon abraten zu versuchen die VRML-Integration von ARToolKit zum laufen zu bekommen. Zumindest im aktuellen Ubuntu Karmic ist die dafür benötigte Bibliothek openvrml nicht vorhanden. Es lässt sich zwar ein Paket aus Debian testing dafür installieren, aber dieses ist dann zu neu für das aktuellste - mittlerweile aber drei Jahre alte - Release von ARToolkit.
Und so sieht das aus, wenn es fertig ist (Direktlink):
During my work on a term paper for "nonlinear finite element method" I encountered the problem to do a study about the convergence of a certain problem.
As the the program we had to use to do the calculations (feap) reads all informations needed to solve the problem from an "so-called" inputfile and writes the results to another file called "outputfile". When there is the need to adjust five parameters, it gets a bit messy to change the inputfile, run FEAP and grab the resulting displacement out of the outputfile for several combinations of the parameters.
As an experienced user the fasted way to accomplish this, is to write a little which automates that. Since the people which evaluated the term paper where quite impressed about it, I am documenting it here too. (I am still wondering how they worked with FEAP for years without such a fairly easy wrapper)
So here is the code:
I reduced the number of parameters to three and removed the part which generates a some gnuplot-code for clarity. Just add another loop if you have more parameters.
In the inputfile all relevant parameters should be also declared as parameters:
...
para
p=2 !load
dx=30 !# of horizontal elmts
dy=10 !# of vertical elmts
nu=0.1 !
...
After calculating the solution, there should be a statement to output the displacement of the node you are interested in:
...
disp,node,0,50
...
The script which puts everything together looks like:
#!/bin/bash
#
#############################################################
# "THE BEER-WARE LICENSE" (Revision 42):
# <robert -at- xenim -dot- de> wrote this file. As long as you
# retain this notice you can do whatever you want
# with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return.
#############################################################
#
function setParm() {
sed -i "s/^\($1=\)[^ ]*/\1$2/" $workfile;
}
INPUT=Igruendung
workfile=Ifound
output=${workfile/I/Out}
result=$INPUT-results
cp $INPUT $workfile
i=0
for nue in 0.1 0.499; do
res=$result-$nue
rm $res
setParm nu $nue
for n in {1..20}; do
dx=$[ $n * 3 ]
dy=$[ $n * 1 ]
setParm dx $dx
setParm dy $dy
echo -n $[ dx*dy*2 ] >> $res
echo -en "\t" >> $res
echo -en "Run $i:\tdx=$dx\tdy=$dy\tnue=$nue ... "
./feap -i$workfile -o$output
val=`grep -A1 '^ Node' $output | tail -n 1 | sed 's/.* //'`
echo $val
echo -en "$val\t" >> $res
rm $output
let i=i+1
echo >> $res
done
done
rm $workfile
Für alle, die mal in die Lage kommen könnten, Flächenträgheitsmomente - auch FTM genannt - von aus Rechtecken zusammengesetzten Flächen berechnen zu müssen, habe ich hier ein OpenOffice-Calc- und MS-Excel-Rechenblatt, das diese langweilige Aufgabe übernimmt. Ein weiteres Feature ist Berechnung der Hauptträgheitsmomente sowie des Winkels in dem diese auftreten. Ich habe das zwar nach bestem Wissen und Gewissen erstellt, aber Garantien kann ich keine geben, so use your brain.
Für manche Dinge muss man einfach ein UML-Diagramm erstellen, obwohl man es für den eigentlichen Zweck (der Planung des ganzen im Vorraus) garnicht braucht. Für einen solchen Fall habe ich ein Pythonscript zusammengeschrieben, dass die Javaquellen durchforstet und daraus den Quelltext für ein MetaUML-Diagramm erstellt.
Das ganze ist nur halbautomatisch, weil man für die Positionierung selbst sorgen muss. Beim ersten Start wird eine Datei, die standardmäßig positions.inc.mp heißt erzeugt. Diese Datei kann man dann bearbeiten, um die Positionierung zu verfeinern, sie wird bei den folgenden Durchläufen automatisch eingebunden und nicht überschrieben.
Desweiteren werden einige Annahmen bezüglich der Formatierung des Javaquellcodes getroffen, die vielleicht nur für meinen Code zutreffen, so zum Beispiel, dass die Definition einer Funktion oder Klasse bis zum { in einer Zeile steht usw. Zum ersten Testen sollte es reichen, die Pfade zum Quellcode anzupassen, mit etwas Glück sollte dann halbwegs valider Quellcode für MetaUML rausfallen, den man dann noch durch mpost oder mptopdf schickt und anschließend eine PostScript- oder PDF-Datei erhält
Hier also das Machwerk (WTFPL). Über Links zu verbesserten oder strukturierteren Versionen in den Kommentaren würde ich mich natürlich freuen 
Update: Inzwischen verwende ich für solche Sachen UML Graph, welches Dateien für die Verwendung mit Graphiz erzeugt.