|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Peter König
Datum: Mi, 22.03.2006 11:47:14
Hallo zusammen,
es ist geplant, den c't-Sim im Detail realistischer zu modellieren. Wir
würden in dieses Arbeitspaket gerne so viel praktische Erfahrung wie
möglich mit einfließen lassen, die Sie bereits mit Ihrem c't-Bot
gesammelt haben.
Die folgenden Gedanken sollen eine erste Diskussionsgrundlage liefern,
anhand derer wir gemeinsam die wichtigsten Baustellen im c't-Sim
identifizieren können. Über Vorschläge, Anregungen, Wünsche, Fragen und
Ideen freuen wir uns ebenso wie über Erfahrungsberichte, Listen von
Beispielmessdaten und Patches, die Lösungen für einzelne Aspekte
umsetzen (wie sie bereits schon über diese Liste geschickt wurden).
1. Die Welt:
Je nach Material der Wand oder der Farbe des Bodens liefern Distanz-
oder Liniensensoren des c't-Bot unterschiedliche Werte zurück. Um den
Simulator an die Situation der echten Welt anzupassen, sollten wir uns
auf eine Referenzumgebung einigen, deren Eigenheiten im Simulator
nachgebildet werden. Dabei sollen nicht nur die Sensor-gerechten
Eigenschaften der Materialien eine Rollen spielen, sondern auch der
Preis und der Aufwand, der betrieben werden muss, um die Referenzwelt
nachzubauen. Hier sind Ihre eigenen Erfahrungen besonders wichtig: In
welcher Umgebung lassen Sie Ihren Bot frei laufen? Wo sind Sie auf
Schwierigkeiten gestoßen, wo fühlte sich der Bot zu Hause?
Unser Vorschlag für eine Standardwelt:
* Die Wände bestehen aus brauner Wellpappe. Die ist leicht und billig zu
besorgen (Verpackungskartons), zu Wandelementen zu falten und
aufzustellen. Darüber hinaus reflektiert die Oberfläche nicht ganz so
viel Licht wie weißes Papier, was die Lichtsensoren wieder stören könnte.
* Der Boden besteht aus roher Spanplatte. Diese hat einen einigermaßen
einheitlichen hellen Ton, ist preiswert zu besorgen und ausreichend
glatt und eben, um dem Bot ein bequemes Fortkommen zu erlauben. Größere
Böden können aus mehreren Platten zusammengesetzt werden. Alternative:
Der Boden könnte noch dazu in einer festgelegten Farbe gestrichen werden
(mit RAL-Nummer o.Ä.), oder bedeutet das zu viel Aufwand?
* Löcher bestehen aus schwarzem Tonpapier -- die lassen sich damit ohne
viel Aufwand dem Boden hinzufügen und sind auch nicht so gefährlich für
den Bot wie echte Lücken.
* Linien auf dem Boden kann man mit schwarzem Klebeband oder aus
schwarzen bzw. weißen Papierstreifen aufkleben.
* Die genormten Lichtquellen könnten aus nackten 15-Watt-Glühbirnen mit
Milchglas bestehen -- sie strahlen in alle Richtungen gleichermaßen und
sind nicht so grell, dass sie zu sehr blenden würden, wenn man direkt
hineinblickt. Allerdings sind sie auf Netzspannung angewiesen und müssen
daher per Kabel mit Strom versorgt werden. Für Hinweise auf preiswerte,
einheitliche Lichtquellen mit Batteriespannung, die ebenfalls rundum
Licht ausstrahlen, sind wird dankbar. Denkbar ist hier auch eine
Eigenbau-Lösung, für die wir gerne eine genaue Bauanleitung
veröffentlichen würden.
* Das größte Problem für die Lichtsensoren: Wie ist die Umgebung des
Parcours zu gestalten? Alles, was nicht matt und schwarz ist (Wände,
Möbel, Fenster, Spiegel....), erzeugt Reflektionen, die das Licht weiter
streuen. Am günstigsten wäre natürlich, wenn der gesamte Raum um den
Parcours dunkel und auch noch schwarz gestrichen oder mit dunklem Stoff
abgehängt wird -- ein Aufwand, der für Bot-Testläufe in der Praxis aber
kaum vertretbar sein wird. Oder?
2. Die Sensoren:
Im c't-Sim sorgen die virtuellen Sensoren für stabile Werte (die
Distanzsensoren arbeiten beispielsweise bis auf den Millimeter präzise),
viele der Sensoren des echten c't-Bot liefern dagegen Meßwerte, die in
schneller Folge zwischen gewissen Grenzen schwanken. Ein echter Bot muss
daher auf jeden Fall mit Hilfe einer Filter- oder Glättungsfunktion
einen praktikablen Mittelwert herausrechnen -- Vorschläge hierfür gab es
ja bereits auf dieser Liste zu lesen.
Für den Simulator gibt es hier zwei Möglichkeiten:
1. Entweder man produziert im Simulator ebenfalls künstlich
schwankende Meßwerte, dann kann man auch die Glättung im Simulator
testen (dies erfordert allerdings eine Menge Aufwand, da das Rauschen in
den Signalen ziemlich getreu dem der realen Welt entsprechen muss).
2. Oder der Simulator liefert weiter die idealen Werte -- die
Glättungsfunktionen sollten diese schließlich weitgehend unbeeinflusst
lassen. Dann wird allerdings ein Steuerungscode ohne Glättung im
Simulator bestens funktionieren, der auf einem echten Bot hingegen wegen
des schwankenden Signals problematisch ist.
Aspekte einzelner Sensoren:
* Distanzsensoren: Hier scheint es durchaus Unterschiede zu geben (je
nach Kalibrierung und Material der Wand), ab welcher minimalen
Entfernung zu einem Hindernis die Distanzmessung nicht mehr zuverlässig
ist. Hier wären Tabellen von Ihrer Seite interessant, welche Werte die
Sensoren bei welchem Abstand von der Wand anzeigen (vor allem im Bereich
von 20 - 0 Zentimetern Distanz). Anschließend sollen die virtuellen
Sensoren im Simulator eine entsprechende Kennlinie erhalten.
* Linien- & Abgrundsensoren: Deren Werte sind von diversen Faktoren
abhängig, zwei davon sind die Farbe und die Distanz des Untergrunds.
Hier erfordert die aktuelle Näherungslösung im c't-Sim noch einige
Korrekturen, deren Basis wiederum echte Meßwerte sein sollten -- zum
Beispiel bei rein schwarzem und rein weißem Untergrund (weißes und
schwarzes Tonpapier) und auf dem genormten (Spanplatten-)Boden; alles
gemessen, wenn der Bot auf dem Boden steht, und wenn er 1, 2, und 3 cm
darüber schwebt (gerne auch in feineren Schritten). Allerdings scheint
auch die Umgebungsbeleuchtung die Meßwerte zu beeinflussen -- sie sollte
daher möglichst nur aus einer Handvoll der Norm-Lichtquellen bestehen.
* Lichtsensoren: Der c't-Sim verfügt, wie im c't-Artikel in Heft 5/06
beschrieben, über kein echtes Lichtmodell. Java3D benutzt so etwas zwar
zur Darstellung der 3D-Welt; wie viel Licht auf einzelne Objekte des
Szenegraphen fällt, lässt sich innerhalb der virtuellen Welt allerdings
nicht wieder auslesen (Java3D übergibt die Position und Intensität der
Lichtquellen an OpenGL bzw. DirectX und überlässt den Rest der
Beleuchtung diesen Bibliotheken -- Licht existiert nur in der
Darstellung, nicht in der Modellierung). Im c't-Sim wird daher bislang
nur direktes Licht berücksichtigt. Diese starke Vereinfachung hat
Auswirkungen auf alle Verhaltensweisen, die mit den Lichtsensoren zu tun
haben; gleichzeitig sind beim Nachbau der Musterwelt hier nur ganz
besonders schwer perfekte Bedingungen zu erreichen. Diese Probleme bei
der Modellierung von Licht und Lichtsensorik sind erheblich
grundlegender als die notwendigen Detaillierungen der anderen
Sensortypen; an dieser Stelle sind wir auch offen für Ideen, die
eventuell größere Umbauten des Simulators nach sich ziehen würden. Aber
auch schon mit ein paar beispielhaften Meßwerten bei genauer
Beschreibung der Lichtsituation ist uns geholfen.
Wir freuen uns auf eine lebhafte und konstruktive Diskussion!
Mit freundlichen Grüßen,
Peter König
c't - Magazin für Computertechnik http://www.heise.de/ct/
Heise Zeitschriften Verlag GmbH & Co.KG phone: 0511-5352-300
Helstorfer Str. 7 fax: 0511-5352-417
D-30625 Hannover, Germany eMail: pek@xxxxxxxxxxxx
|
|
|