PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Navigation mittels Triangulation



Spurius
29.06.2008, 13:01
Hallo,
ich versuche gerade, eine Lösung zu finden, um die Position eines Objektes in einer Ebene zu ermitteln. An 3 Punkten in der Ebene befinden sich Baken, und das Objekt scannt einmal im Kreis, sodass es die Winkel der Baken zueinander weiss. Wie kann ich jetzt aus diesen Winkel und den bekannten Abständen der Baken zueinander die Position des Objektes errechnen?
Gruss
Spurius

oberallgeier
29.06.2008, 13:43
Das Stichwort heisst Geometrie, genauer Geometrie der Ebene und es geht ein bisschen um Dreiecke (also nicht NUR um triangulum - drei-winkel). Der "Faulenzer" heisst google oder so. Und der Joker flüstert: mach Dir mal ne Skizze.

Spurius
29.06.2008, 14:20
na du bist ja ein ganz lustiger... habe bereits ein computerprogramm geschrieben, um das problem zu simulieren... mein ansatz ist momentan, 2 allgemeine gerade durch die 2 baken laufen zu lassen und den unbekannten punkt, und dann aus der menge der möglichen punkte den punkt rauszusuchen, der den richtigen schnittwinkel hat. weil es aber 2 mögliche punkte gibt, muss man einen mithilfe der 3. bake ausschliessen, richtig? ist etwas her, dass ich das letzte mal etwas mit vektorieller geometrie gemacht habe...

avion23
29.06.2008, 17:07
Hallo Spurius,
den zweiten Punkt kannst du über logik (z.B. liegt in der Wand)
oder durch den zeitlichen Verlauf ausschließen.

oberallgeier
29.06.2008, 18:07
Hei Spurius,


... An 3 Punkten in der Ebene befinden sich Baken, und
das Objekt scannt einmal im Kreis, sodass es die Winkel der Baken zueinander weiss ...
jut, dann stelln wa uns mal janz dumm. Ist ja nicht schwer, weil analytische Geometrie ist nicht wirklich mein Ding.

Gegeben:
1) Die geometrischen Örter A, B und C von drei Baken.
2) Daher: Zwei Strecken AB und BC mit bekannter Länge.
3) Daher: Der Winkel ABC ist bekannt.
4) Der Winkel alfa, unter dem ich die Streck AB sehe.
5) Der Winkel gamma, unter dem ich die Streck BC sehe.


Gesucht:
Mein Standpunkt S.
([OT] Du weisst ja was ein Standpunkt ist!? Ein Gesichtskreis mit dem Radius Null. [OT/])

Lösungsansatz (?) :
Die beiden Winkel alfa und gamma sind Peripheriewinkel von zwei Kreisabschnitten k1 und k2, die als Sehnen die Strecken AB (k1) und BC (k2) haben. Weil es Kreisabschnitte sind, ist die Lösung eindeutig. Am Schnittpunkt der beiden Kreisabschnitte stehe ich.

Stimmt das so?

Spurius
30.06.2008, 14:47
Ich komm da bei dir nicht ganz mit, was sagst du zu meiner Lösung?

user529
30.06.2008, 15:29
wenn du zwei allgemeine geraden mit einem bekannten winkel schneidest bekommst du unendlich viele punkte.
du musst aus den bekannten winkeln mit hilfe des sinussatzes die drei längen (ABC = Baken S = standpunkt; winkel zwischen strecken: sasb = winkel zwischen SA und SB)

wenn der bot ausserhalb des von den baken aufgespannten dreieckes steht:

auf den normalabstand zwischen S und AC kannst du nun mit zwei sinusfunktionen (winkel asac und csac) und der winkelsumme gleichsetzen. aus winkelsumme, normalabstand und dem winkel asac kannst du nun die position berechnen.

mfg clemens

ps: glaubst du dass dir jemand eine skizze macht und alles vorkaut wenn du nur lang genug wartest?

Spurius
30.06.2008, 16:10
Um Sinus zu verwenden, brauche ich mindestens 2 bekannte Längen oder 2 bekannte Winkel, und weder das eine noch das andere habe ich. wenn ihr eine Skizze wollt, kann ich die natürlich hochladen, ich habe wie gesagt schon ein Programm dafür geschrieben. Von vorkauen war nie die Rede junger Freund.

user529
30.06.2008, 16:12
du hast drei bekannte winkel und drei bekannte längen.

über die winkelsummen kannst du dei beiden daraus entstehenden ansätze gleichsetzen und den normalabstand ausrechnen.

oberallgeier
30.06.2008, 16:14
Hei Spurius,

tut mir leid, dass ich so unverständlich war.


... was sagst du zu meiner Lösung?Ganz einfach, dasselbe wie Du - Du musst ne Fallunterscheidung machen. Das erspare ich mir schon im Ansatz:


Ich komm da bei dir nicht ganz mit ...
Aber klar, das ist doch etwas das Du, das wir alle, gelernt hatten. Na ja, vielleicht nicht gelernt aber gehabt (bist in Mathe/Geo beim Billard gewesen? Ich wars in Geographie...).

L1) Sei AB 10 und BC 5 (cm, Parsec, Werst oder sonst eine Längeneinheit).
L2) Sei der Winkel zwischen AB und BC 145°. Denk dran - ALLES hier im mathematisch positiven Sinn . . . . . . !
L3) Ich sehe AB unter dem Winkel 45 °.
L4) Ich sehe BC unter dem Winkel 30 °.

Lösungsweg: Der Peripheriewinkel ist halb so gross wie der Zentriwinkel.

Lösung:
..............................https://dl.dropbox.com/s/leam7qt29vma59f/navi_17.jpg
L5) Konstruiere ein Dreick auf AB, dessen Schenkel ein gleichseitiges Dreieck mit einem Winkel 2*45 Grad bilden => das ist der Zentriwinkel.
L6) Konstruiere einen Kreisabschnitt um dieses Dreieck, dessen Anfang bei A und dessen Ende bei B ist => k1.
L7) Konstruiere ein Dreick auf BC, dessen Schenkel ein gleichseitiges Dreieck mit einem Winkel 2*30 Grad bilden => das ist der zweite Zentriwinkel.
L6) Konstruiere einen Kreisabschnitt um dieses Dreieck, dessen Anfang bei B und dessen Ende bei C ist => k2.
L7) Der Schnittpunkt der beiden Kreisabschnitte ist die eigene Postion im Maßstab der Baken. Die hat als Peripheriewinkel von k1 nach AB 45° und als Peripheriewinkel von k2 nach BC 30° - und bildet so die Wirklichkeit exakt ab (! Geometrie der Ebene ! - also keine Baken hinterm Horizont nehmen *ggg*).

Ist das so verständlich?

PS: die analytische Lösung schreib ich jetzt aber nicht auf - dazu bin ich zu schreibfaul.
PPS: Zu Lösungsweg: für den Sonderfall, dass der Zentriwinkel 180° ist kennste das als Satz von Thales. Bei dem sind nämlich die Peripheriewinkel 90°. Siehste - Du kennst es DOCH!
PPS: Das erläuternde Bild wird in zwei Tagen oder so gelöscht. >> Entfällt wegen gelegentlichem Interesse am Thema.
PPPS: Die Lösung hat natürlich (wie alle zu diesem Problem) eine Singularität oder zwei: wenn eine der Strecken oder beide unter dem Winkel Null gesehen wird/werden . . . . .


wenn du zwei allgemeine geraden mit einem bekannten winkel schneidest bekommst du unendlich viele punkte. ? ? ? ? Wie geht denn das in der Geometrie der Ebene?

Spurius
30.06.2008, 16:56
Hey Oberallgeier,

danke, das ist mal ne ausführliche Erklärung. Ich denke aber, dass ich das besser gleich vektoriell angehe, weil sich das meiner Meinung nach leichter in einen µC implementieren lässt, ich meld mich dann auf jeden Fall nochmal, ob mit oder ohne Lösung...

rockin_santa
02.07.2008, 08:08
Hi Spurius,

ich knobel auch gerade an der Ortsbestimmung in der Ebene über mehrere Baken. Allerdings sagt mir die Laufzeitmessung mehr zu als die Winkelmessung, da mein Bot dann keine Suchdrehungen vollziehen muss.
Ich habe mir aber auch über dieses Problem meine Gedanken gemacht und ich würde es anders realisieren. Ich würde einen Magnetfeldsensor nehmen, um die "absolute" Ausrichtung des Bots im (hoffentlich homogenen) Magnetfeld bestimmen. Dann eine Bake peilen und ich habe eine Standlinie, auf der ich mich befinde. Dann den Winkel einer zweiten Bake abnehmen und ich habe zwei sich kreuzende Geraden in einer Ebene. Zur Sicherheit kann ich dann noch weitere Baken hinzunehmen und mir dann 2 Standlinien herauspicken, die möglichst rechtwinklig zu einander stehen.
Da Du Baken aufstellst, nehme ich an, dass das Revier des Bots gleich bleiben wird. Dann kannst Du auch gut ein paar mal mit dem Magnetfeldsensor über den Platz rennen und schauen, wie homogen es ist. Evt. begrenzte Bereiche, an denen z.B. Kabel verlaufen, durch Odometrie befahren.

Das ganze Prinzip ist aus der terrestrischen Navigation (http://de.wikipedia.org/wiki/Terrestrische_Navigation) geklaut :-b

Vielleicht hilft es Dir ja

gruß

rockin_santa

HeXPloreR
07.08.2008, 17:58
hallo,

braucht man den wirklich ein magnetfeld dazu??...ist es denn nicht ausreichend wenn mindestens zwei IR-Baken (vielleicht unterschiedlich moduliert?) anwesend sind, die über einen festen nullpunkt (etwa an der fahrtrichtung->nach vorne gekoppelt) und sobald der sensor ein signal empfängt (1.signal) = winkel relativ zum nullpunkt; sucht er das andere (2.signal - ggf anders modulierte)...daraus werden dann zwei geraden errechnet deren "übrigens einziger"schnittpunkt in der ebene, der standpunkt ist...das einzige wofür nun noch eine dritte bake benötigt wird ist die situation das die zwei baken auch auf EINER geraden mit dem bot stehen könnten und somit eine einzige position nicht ausgegeben werden kann bzw sie quasi auf der gesamten geraden ist. Das problem lässt sich auch mit einer erneuten messung an einem anderen ort umgehen...allerdings stimmt es schon je größer der winkel in dem sie sich schneiden (relativ zum bot gesehen - steht er also zwischen den baken, nicht ganz auf einer geraden wird er es ausgeben können-->großer winkel...nur so in etwa genau 180grad sind eben ein problem). Wenn der bot dementsprechend ausserhalb beider baken knapp mit ihnen auf einer geraden steht, so erhälst du wahrscheinlich nur noch ein signal weil das andere verdeckt ist, und wenn du ein zweites bekommst ist der winkel einfach zu klein um ein eine annehmbare (reproduzierbare)position auszugeben.

Aus gründen des zeitverlustes zum erneuten messen sollte man also alleine dafür schon drei IR-Baken nehmen...wobei die erkennung von zweien ausreicht...

Damit ist das problem der Position ja schon mal erledigt!! oder nicht?

GPS sagt ja auch erstmal nichts über meine richtung aus...das wird nämlich erste dazu errechnet mit mindestens zwei GPS-Positionen... frage mich immer wozu ich ein magnetfeld messen sollte, wo ich doch schöne baken setze? Irgendein ziel muß ich ja auch irgendwie bestimmen damit eine position ihren sinn erhält....aber zu sagen das mein ziel im norden liegt ( also es sei denn natürlich es ist denn wirklich so) versteh ich persönlich irgendwie nicht, dazu braucht es dann aber keine baken mehr...

Das system der terrestrischen Navigation beruht auf der erfassung einer position im dreidimensionalen raum (H x B x T ; X Y Z/-X-Y-Z) hier mal kugel (nicht Google) genannt ...welche dann mit vorliegendem karten material verglichen werden muß..und erst mindestens eine wiederholung mit änderung lässt eine navigation --> also richtungsbestimmung zu

mfg

HeXPloreR
07.08.2008, 18:21
nochmal eine frage: wenn ich zwei punkte male (baken) dadurch geraden ziehe, die sich in der mitte...sagen wir mal auf einem einfachen blatt papier...kreuzen, und das mein standort sein soll bzw des objekts...wieviele schnittpunkte ergeben sich dann nochmal genau bzw welche kann ich denn dann als unbrauchbar rausrechnen?? (<-- das ist die frage)...meine ja nur wenn ich von der zahl "1" nicht weniger als "1" runterrechnen wollte, wo lande ich denn dann...und wenn ich ja nur eine "1" habe weil ja auch nur "1" mal ein objekt das ich bestimmen will, warum sollte ich überhaupt die wahl zwischen mehreren positionen haben...wenn ich allerdings mehrere positionen errechnet habe (durch oben genannte mehrere messungen) dann kann man sie grafisch verbinden um eine wegstrecke zu erzeugen.

mfg

rockin_santa
07.08.2008, 20:43
Hallo HeXPloreR, ich arbeite mal die Fragen der Reihe nach ab;


braucht man den wirklich ein magnetfeld dazu??
Nein, nicht zwingend, allerdings reicht es nicht, den Winkel zwischen zwei Objekten zu messen, um damit einen Ort zu bestimmen. Man erhält dann einen Kreisbogen zwischen beiden Objekten, auf dem man sich irgendwo befindet. Gut, dann machen wir es auch noch zwischen zwei anderen Objekten, dann hat man zwei sich schneidende Kreisbögen. Technisch und mathematisch zumindest möglich. Hat man die Position, kann man dann auch die Roboterausrichtung im Raum über das Peilen einer Bake berechnen.
Ich persönlich finde den Ansatz mit dem Kompassmodul einfach attraktiver, da es sicherlich weitaus weniger mathematischer Aufwand sein wird und das Magnetfeld gibt es ja schon gratis dazu. Desweiteren hat man eine zweite unabhängige Größe, die man zusätzlich verwenden kann, um eventuelle Fehlmessungen zu erkennen. Wenn die Magnetfeldausrichtung nicht mit der Peilung der Objekte übereinstimmt, wird der Ort falsch berechnet sein. Man muss hier allerdings berücksichtigen, dass das tatsächliche Magnetfeld nicht zu 100 % homogen ist und jeder Bot ein Eigenmagnetfeld mit sich herumfährt. Erschwerend kommt noch hinzu, dass sich dieses über die Zeit hin verändern kann, wenn man ein magnetisches Chassis hat.


...ist es denn nicht ausreichend wenn mindestens zwei IR-Baken (vielleicht unterschiedlich moduliert?) anwesend sind, die über einen festen nullpunkt (etwa an der fahrtrichtung->nach vorne gekoppelt) und sobald der sensor ein signal empfängt (1.signal) = winkel relativ zum nullpunkt; sucht er das andere (2.signal - ggf anders modulierte)
Das man die IR-Baken unterschiedlich moduliert, ist sowieso nötig, um sie auseinander halten zu können.
Deine Idee, einen festen Nullpunkt mittels Baken zu setzen, habe ich nicht ganz nachvollziehen können. Aber wenn ich das richtig verstehe, glaube ich, der Ansatz funktioniert so nicht:
Bei zwei Baken in Reihe kann ich nur dann meine eigene Ausrichtung messen, wenn ich mich auch auf der Geraden befinde.
Eine Bake anpeilen, und den Bot dabei drehen reicht auch nicht, da sich diese ja irgendwo in der Nähe befindet und ich verschiedene Ausrichtungen habe, wenn ich mich in verschiedenen Ecken aufhalte. Angenommen, Du könntest einen Kirchturm in einiger Entfernung nehmen, würde es gehen, da sich die eigene Ausrichtung nur unwesentlich verändert, wenn der Bot über den Rasen bügelt.


Aus gründen des zeitverlustes zum erneuten messen sollte man also alleine dafür schon drei IR-Baken nehmen...wobei die erkennung von zweien ausreicht...
Richtig, und dann schon im Vorfeld auswählen, welche beiden Geraden das genauere Ergebnis liefern.


Damit ist das problem der Position ja schon mal erledigt!! oder nicht?
Genau, was fehlt ist die eigene Ausrichtung in der Ebene. Diese ist dann über das Peilen einer Bake errechenbar.


GPS sagt ja auch erstmal nichts über meine richtung aus...das wird nämlich erste dazu errechnet mit mindestens zwei GPS-Positionen...
GPS ist ein Verfahren, dass nur mit Laufzeitmessung arbeitet. In der Tat bekommt man nur den eigenen Ort, nicht aber die eigene Ausrichtung. Deshalb greift ein Schiff ja auch auf den Kompass zurück. Will man nämlich losfahren, muss man erst wissen, wohin. Beim Navigationssystem wird mittels zeitlich versetzter Messung die Ausrichtung ermittelt. Hier geht es auch, da man beim losfahren eh als Mensch visuell "navigiert", bis das Navi die Ausrichtung hat.


frage mich immer wozu ich ein magnetfeld messen sollte, wo ich doch schöne baken setze? Irgendein ziel muß ich ja auch irgendwie bestimmen damit eine position ihren sinn erhält....aber zu sagen das mein ziel im norden liegt ( also es sei denn natürlich es ist denn wirklich so) versteh ich persönlich irgendwie nicht, dazu braucht es dann aber keine baken mehr...
Wie gesagt, bei Winkelmessung von Baken ist eine Magnetfeldmessung nicht nötig. Man reduziert nur den mathematischen Aufwand. Für mich persönlich attraktiv, andere sagen sicherlich "Hey, was ne schöne Herausvorderung, das schaff ich".
Die Magnetfeldmessung dient ja auch nur der Bestimmung der Eigenausrichtung. Peile ich den relativen Winkel zwischen zwei Baken erhalte ich einen Kreisbogen, peile ich den relativen Winkel zwischen der Nord-Süd-Achse und einem Objekt erhalte ich eine Standlinie. Zwei sich kreuzende Standlinien ergeben genauso einen Ort wie zwei sich kreuzende Kreisbögen. In einem Fall brauche ich mindestens 3 Baken, im anderen Fall reichen mir 2 plus die eigene Ausrichtung. Im Idealfall.


Das system der terrestrischen Navigation beruht auf der erfassung einer position im dreidimensionalen raum (H x B x T ; X Y Z/-X-Y-Z) hier mal kugel (nicht Google) genannt ...welche dann mit vorliegendem karten material verglichen werden muß..und erst mindestens eine wiederholung mit änderung lässt eine navigation --> also richtungsbestimmung zu
Ja und Nein, natürlich befindet man sich bei der terrestrischen Navigation im Raum, allerdings ja auf der Oberfläche der Kugel (Wasser), weswegen es eine Navigation in der Ebene ist. Ich spreche hier von der Seefahrt, bei der Luftfahrt wird glaub ich hauptsächlich mit elektronischer Navigation (Funkpeilung, Laufzeitmessung) und dem Sichtflug gearbeitet.


nochmal eine frage: wenn ich zwei punkte male (baken) dadurch geraden ziehe, die sich in der mitte...sagen wir mal auf einem einfachen blatt papier...kreuzen, und das mein standort sein soll bzw des objekts...wieviele schnittpunkte ergeben sich dann nochmal genau bzw welche kann ich denn dann als unbrauchbar rausrechnen?? (<-- das ist die frage)...meine ja nur wenn ich von der zahl "1" nicht weniger als "1" runterrechnen wollte, wo lande ich denn dann...und wenn ich ja nur eine "1" habe weil ja auch nur "1" mal ein objekt das ich bestimmen will, warum sollte ich überhaupt die wahl zwischen mehreren positionen haben...wenn ich allerdings mehrere positionen errechnet habe (durch oben genannte mehrere messungen) dann kann man sie grafisch verbinden um eine wegstrecke zu erzeugen.
Ich weiss nicht genau, ob ich diese Frage richtig verstehe, ist etwas unklar vormuliert. aber ich versuch es mal:
Also angenommen, Du hast einen Haufen gut plazierter Baken und Dein Bot sitzt irgendwo dazwischen. Dann bekommst du ja bei der Winkelmessung sich kreuzende Linien (oder Kreisbögen, allerdings kann man sich das mit den Geraden wohl besser vorstellen), den so genannten Standlinien. Da reichen 2 Geraden zur Positionsbestimmung, idealer Weise. Stehen die Baken ungünstig, sollte man andere anpeilen. In jedem Fall steht der Bot aber erstmal auf der Stelle und es kreuzen sich alle Geraden in einem Punkt. Ich würde so vorgehen, dass ich am Anfang 3 oder gar 4 Standlinien ermitteln lasse und der Bot sich die beiden herauspickt, deren Winkel zueinander am nahsten an dem idealen Winkel von 90° herankommt. Die übrigen soll er wieder vergessen. Es bleibt aber eine Position, egal wie viele Standlinien ich übereinander lege. Man hat nicht die Wahl zwischen mehreren Positionen sondern nur zwischen mehreren Baken um die genauesten Messungen zu wählen.
Um die Verwirrung komplett zu machen: Genau genommen ergibt sich bei mehr als zwei Standlinien kein Punkt, sondern ein Dreieck. Dieses resultiert aus Messungenauigkeiten und ist praktisch nicht zu verhindern. In der Navigation wird es deswegen auch Fehlerdreieck genannt und man sagt, dass der Mittelpunkt dieses Dreiecks der angenommene Standort ist. Es ist genau genug und ich wage zu behaupten, dass der Schnittpunkt zweier Standlinien einem Bot genau genug ist, trotz Meßungenauigkeiten.

Macht man während des Fahrens des Bots mehrere Messungen so kann man graphisch diese verbinden und erhält die Kurslinie.


So, ich hoffe , Du konntest etwas mit den Antworten anfangen.

Gruß

rockin_santa

HeXPloreR
07.08.2008, 22:29
hey rockin_santa,

wow das ja mal was 8-[ ...so schlecht liege ich ja garnicht mit meinen ausführungen

Aber nur noch mal zum verständnis, ich dachte mir das mit dem "eigenen nullpunkt" in etwa so:

wenn ich also annehmen kann mein wert für eine position die der sensorservo hat auf dem der sensor montiert ist, genau nach vorne in fahrt/laufrichtung (wo bei eine gezogene gerade durch die längsachse der objekts verläuft - 1. gerade) zeigt wäre 90°, weil er sich ja dreht (ca 180° nehm ich mal weils sich gut rechnet damit)...dann wäre die linke maximale ausrichtung 0° und die rechte 180°. Wenn ich nun da irgendwo drin stehe, idealer weise würde ich mit diesem aufbau auch noch die 180° wo die baken stehen abdecken, dann würde sich mein sensor von der mitte nach (hier mal) links drehen dabei ein signal einer bake empfangen, deren wert wäre also zwischen 0-90°, wenn ich jetz also genau wüßte um wieviel grad sich der sensor bis zum empfang verstellt hat, hätte ich den ersten winkel damit ja relativ zu der ersten geraden - wo bei es keinen unterschied macht ob ich den kompletten linken anschlag ausgenutz habe, weil ich ja moduliertes IR-licht verwende und entweder eine doppeltmessung der gleichen bake dadurch verhindern kann/verwerfe oder beim rücklauf nochmals entgegenkommend messe...wobei man diesen wert besser noch mit verarbeitet um zu mitteln...nun dreht sich der sensor nach rechts, über den nullpunkt der ja eigentlich 90°ist, ab da beginnt dann auch erst die nächste winkelmessung bis er die nächste bake trifft da auch wieder für die genauigkeit bis zum anschlag messen und dann zurück--->messwerte mitteln, und wieder haben wir einen winkel relativ zur "90°nullgeraden". fahre ich jetzt vor und wiederhole das ganze, bekomme ich die besagte kurslinie, bis ich nicht mehr mit einem sensor messen kann, weil ungünstige position :( ...dann lohnt es sich den ersten "90°nullpunkt samt servo um 90° grad nach rechts zu drehen und darüber einen zweiten der dann den linken bereich erfasst, damit habe ich dann sogar die möglichkeit parallel zu rechnen und spare mir eine gewissen rechenzeit. weiterhin besteht das problem wenn man genau in reihe mit den baken steht, allerdings nur wenn sie wirklich einfach im raum anstatt in den ecken stehen. da hilft es nichts...entweder dritte bake, oder eine einrechnung der vorhandene zwei in eine "null-nix-zu-messen-nicht anhalten-zone" ...das wäre zum beispiel für jeden durchgang (wenn man die baken denn mal zum spaß verschieben möchte) eine neue, sobald errechnet 2. feste gerade....

Okay es macht auch sinn ggf wie bei turnieren eine definierte baken anordnung zu wählen denn es bezieht sich die position ja nur auf die ebene in relation zu den baken, und es nutz mir nichts wenn ich vorher kein "spielfeld mit zielen" vorgegeben habe (und deshalb bräuchte ich kein Magnetfeld messen)...aber wie schnell oder langsam das ist steht außer frage...dennoch kann ich damit sehr gut meine position bestimmen. ich kenne mich da nicht so aus aber wird ein ziel nicht auch eventuell durch eine speziell modulierte IR-quelle gesetzt...oder schwarze linie oder durch graustufen...aber das ist ja wieder was völlig anderes...

:-b

mfg

HeXPloreR
07.08.2008, 22:44
@ rockin_santa...ach ja, das hier ist nicht mein thread...aber danke schön nochmal...hoffe Spurius hilft es auch weiter ;) ...und sorry, bin neu habe es noch nicht so drauf mit den zitaten

rockin_santa
08.08.2008, 03:05
@HeXPloreR

Arg, ich glaube, in Deinen Gedankengängen ist irgendwo der Wurm drin. Du mischst hier auch zwei unterschiedliche Themen, was mich etwas verwirrt. Das eine ist die Vorgehensweise der Peilung. Die lasse ich hier mal aussen vor, da wir bei der hiesigen Diskussion über die Navigationsmöglichkeiten bisher davon ausgehen, dass wir schon genau genug Baken peilen können.


wenn ich also annehmen kann mein wert für eine position die der sensorservo hat auf dem der sensor montiert ist, genau nach vorne in fahrt/laufrichtung (wo bei eine gezogene gerade durch die längsachse der objekts verläuft - 1. gerade) zeigt wäre 90°, weil er sich ja dreht (ca 180° nehm ich mal weils sich gut rechnet damit)...dann wäre die linke maximale ausrichtung 0° und die rechte 180°. Wenn ich nun da irgendwo drin stehe, idealer weise würde ich mit diesem aufbau auch noch die 180° wo die baken stehen abdecken, dann würde sich mein sensor von der mitte nach (hier mal) links drehen dabei ein signal einer bake empfangen, deren wert wäre also zwischen 0-90°, wenn ich jetz also genau wüßte um wieviel grad sich der sensor bis zum empfang verstellt hat, hätte ich den ersten winkel damit ja relativ zu der ersten geraden - wo bei es keinen unterschied macht ob ich den kompletten linken anschlag ausgenutz habe, weil ich ja moduliertes IR-licht verwende und entweder eine doppeltmessung der gleichen bake dadurch verhindern kann/verwerfe oder beim rücklauf nochmals entgegenkommend messe...wobei man diesen wert besser noch mit verarbeitet um zu mitteln...nun dreht sich der sensor nach rechts, über den nullpunkt der ja eigentlich 90°ist, ab da beginnt dann auch erst die nächste winkelmessung bis er die nächste bake trifft da auch wieder für die genauigkeit bis zum anschlag messen und dann zurück--->messwerte mitteln, und wieder haben wir einen winkel relativ zur "90°nullgeraden". fahre ich jetzt vor und wiederhole das ganze, bekomme ich die besagte kurslinie, bis ich nicht mehr mit einem sensor messen kann, weil ungünstige position
Wenn ich Dich richtig verstehe, willst du die eigene Längsrichtung des Bots als Referenzgerade nehmen, von der Du aus den Winkel zwischen dieser Geraden und der Geraden, die durch die Bake und den Winkelsensor geht, bestimmst. Dann kennst Du aber nur den Winkel zwischen den beiden Geraden, die durch je eine Bake und deinen Winkelsensor geht. Deine 90° Nullgerade ist aber keine Referenz, mit der Du rechnen kannst, weil die Ausrichtung Deines Bots nicht bekannt ist. Hierfür hätte ich ja dann den Magnetfeldsensor genommen. Ohne diesen hast du dann ja nur den besagten Kreisbogen.
Ich versteh nicht ganz, wie Du dann schon losfährst, ein Bot hat zu diesem Zeitpunkt noch keine Position ermittelt.


Okay es macht auch sinn ggf wie bei turnieren eine definierte baken anordnung zu wählen denn es bezieht sich die position ja nur auf die ebene in relation zu den baken, und es nutz mir nichts wenn ich vorher kein "spielfeld mit zielen" vorgegeben habe (und deshalb bräuchte ich kein Magnetfeld messen)...aber wie schnell oder langsam das ist steht außer frage...dennoch kann ich damit sehr gut meine position bestimmen. ich kenne mich da nicht so aus aber wird ein ziel nicht auch eventuell durch eine speziell modulierte IR-quelle gesetzt...oder schwarze linie oder durch graustufen...aber das ist ja wieder was völlig anderes...
Also die jeweilige absolute Position der einzelnen Baken in der Ebene müssen bekannt sein. Aber es ist unerheblich, ob sie irgendwie geometrisch zueinander ausgerichtet sind. Idealerweise sollten sie weit von einander wegstehen.
Wie schon gesagt, ein Magnetfeldsensor ist nicht nötig, verringert aber den mathematischen Aufwand und ist eine zusätzliche Redundanz.

Du sprichts hier von Zielen. Was stellst Du Dir darunter vor? Aufgabenziele, wie z.B. einen Gegenstand finden?


Zur Mechanik noch ne kleine Anmerkung: Ich hätte meinen IR-Empfänger soweit abgeschirmt, dass ein möglichst kleiner Einfallswinkel besteht, ihm also Scheuklappen aufgesetzt. Das Ding auf einen Schrittmotor, der einen Schrittwinkel von höchstens 0,6° hat, montiert und munter drehen lassen. Somit hat man eine lineare Funktion zwischen den 360° eines Kreises und der Schrittanzahl einer Umdrehung. Ggf. kann man den Schrittmotor noch zusätzlich übersetzen.


Gruß

rockin_santa

jeffrey
08.08.2008, 10:11
nochmal eine frage: wenn ich zwei punkte male (baken) dadurch geraden ziehe, die sich in der mitte...sagen wir mal auf einem einfachen blatt papier...kreuzen, und das mein standort sein soll bzw des objekts...wieviele schnittpunkte ergeben sich dann nochmal genau bzw welche kann ich denn dann als unbrauchbar rausrechnen?? (<-- das ist die frage)...meine ja nur wenn ich von der zahl "1" nicht weniger als "1" runterrechnen wollte, wo lande ich denn dann...und wenn ich ja nur eine "1" habe weil ja auch nur "1" mal ein objekt das ich bestimmen will, warum sollte ich überhaupt die wahl zwischen mehreren positionen haben...wenn ich allerdings mehrere positionen errechnet habe (durch oben genannte mehrere messungen) dann kann man sie grafisch verbinden um eine wegstrecke zu erzeugen.

mfg
hi,
also 2 baken reichen nicht, es gibt unendlich viele punkte mit gleichem winkel zu beiden punkten (thales lässt grüßen).
mfg jeffrey

oberallgeier
08.08.2008, 10:35
... 2 baken reichen nicht, ... unendlich viele punkte ...Da hätte dem Kollegen ein kurzer Blick in mein früheres, ausführliches Posting (hier, weiter oben) reichen sollen. Irgendwie scheinen mir Mäuse beim Hochscrollen etwas viel Widerstand zu haben . . .

rockin_santa
08.08.2008, 12:42
thales lässt grüßen

genau, eben besagte kreisbögen

HeXPloreR
08.08.2008, 17:00
hey,

ja einen schönen gruß zurück an unseren lieben thales...aber wenn ich das so richtig verstanden habe sagt der satz aus des es einen rechten winkel in unserem dreieck geben muß um diesen kreis über alle ecke zu ziehen...

allerdings sind wir uns doch wohl einig das es durchaus anders geformte dreiecke gibt die diesen weg dann nicht zulassen, es sei denn ich könnte mir eine senkrechte einzeichnen sonst sehe ich keinen anderen weg, doch wenn ich das tue kann ich ja gleich auch meine position auf dem papier bestimmen....

Also ich sehe das überhaupt noch nicht so, ich sehe den sinn nicht einen herrn thales darum zu bitten mir bei meinem problem der positionierung zu helfen, damit er mir dann sagt das es ein rechtwinkliges dreieck gibt...aber wozu das??

jetzt muß mir doch mal einer sagen warum ich unendlich viele (oder auch nur zwei) stand-/schnittpunkte bei einer einzigen messung bekomme?? (Dieses ungenauigkeitsdreieck durch messabweichungen mal ausgeklammert)

Ich möchte meine position: diese bekomme ich über mindestens zwei baken in der ebene (2 - dimensional), nur in dem fall nicht wenn ich mit den baken in reihe ganz rechts oder ganz links aussen stehe, was eine gerade (teoretisch 2 mal übereinander) ergibt und ich dann einfach nur ein signal empfangen kann.

Zumindest sind wir uns ja einig das der bot wissen muß wie das spielfeld aussieht in dem er sich bewegt.

Nehmen wir mal an das spielfeld ist 1m x 2m, und die zwei baken stehen rechte und linke ecke einer kurzen seite. Nehmen wir weiter an das ich durchaus mit den sich ändernden winkel bei bewegung meine ausrichtung in dem spielfeld errechnen kann, von mir aus auch noch über die räder gekoppelt an meine 90° sensorservo ausrichtung. Nehmen wir weiter an das mein objekt das einzige sich dort bewegende ist.

Da kein ziel/aufgabe definiert ist, ist es damit dann erledigt.

Liegt der mir anerklärte gedankenfehler möglicherweise beim ignorieren des thales meinerseits...

hab eigentlich recht gut in Mathematik aufgepasst...und mache mir nun echt sorgen ;)

mfg

rockin_santa
09.08.2008, 00:37
guten morgen,


ja einen schönen gruß zurück an unseren lieben thales...aber wenn ich das so richtig verstanden habe sagt der satz aus des es einen rechten winkel in unserem dreieck geben muß um diesen kreis über alle ecke zu ziehen...

Richtig, der Herr Thales hat ausschließlich mit dem rechten Winkel gearbeitet, als er den Thaleskreis "erfand". Er ist aber ein gutes Beispiel für die Situation des Bots, wenn dieser einen Winkel zwischen zwei Baken misst.
Dies geht natürlich auch mit jedem anderen Winkel, nur ist das dann kein Halbkreis, sonderen eine andere Kurve.
In beiden Fällen hat man eine Kurve mit einer unendlichen Anzahl von Punkten, auf der sich der Bot befinden kann, aber der Bot weiß nicht, wo.
Deswegen brauchst Du entweder eine zweite Kurve durch 2 andere Baken, sodass sich ein Schnittpunkt bildet oder Du brauchst eine weitere Referenz, z.b. ein Magnetfeld.


jetzt muß mir doch mal einer sagen warum ich unendlich viele (oder auch nur zwei) stand-/schnittpunkte bei einer einzigen messung bekomme?? (Dieses ungenauigkeitsdreieck durch messabweichungen mal ausgeklammert)
Erstmal, mit einer Messung kommst Du nicht weit.
Entweder Du misst ausgehend von Deinem Standort den Winkel zwischen zwei Baken, oder Du misst den Winkel zwischen einer Magnetfeldausrichtung und einer Bake.
In beiden Fällen hast Du 2 Messungen und diese ergeben dann erst eine Kurve, auf der Dein Bot sich befindet; im zweiten Fall ist es sogar eine Gerade.
Erst der Schnittpunkt zweier Kurven ergibt tatsächlich eine Position.
Und während das Gehirn hier einfache geometrische Zeichnungen verarbeiten könnte, muss man seinem Bot Kurvendiskussion in den Quellcode mitgeben.


Ich möchte meine position: diese bekomme ich über mindestens zwei baken in der ebene (2 - dimensional), nur in dem fall nicht wenn ich mit den baken in reihe ganz rechts oder ganz links aussen stehe, was eine gerade (teoretisch 2 mal übereinander) ergibt und ich dann einfach nur ein signal empfangen kann.
Nein, Du brauchst mindestens 3 Baken, im idealen Fall, in dem die Baken günstig stehen.
Oder mindestens 2 Baken, wenn die relative Ausrichtung des "Winkelsensors" mit einer absoluten Ausrichtung verglichen werden kann.
(Ich gehe hier immer davon aus, dass der Bot zuerst seine Position bestimmt, bevor er überhaupt losfährt.)


Zumindest sind wir uns ja einig das der bot wissen muß wie das spielfeld aussieht in dem er sich bewegt.
Nein, muss er nicht, er muss nur die abslouten Werte seiner Referenzen im Raum kennen.
Also die absoluten Positionen der Baken.
Meine Planung bezüglich der Botnavigation sieht einige günstig plazierte Baken in meinem Garten vor, das Erkennen der Gartengrenzen wird dann über die Hinderniserkennung laufen.
Seine Karte wird also am Anfang ein großes weißes Quadrat sein.
Lediglich beim Messen der Bakenpositionen für das Koordinatensystem muss ich sehr sorgfältig sein.


Nehmen wir mal an das spielfeld ist 1m x 2m, und die zwei baken stehen rechte und linke ecke einer kurzen seite. Nehmen wir weiter an das ich durchaus mit den sich ändernden winkel bei bewegung meine ausrichtung in dem spielfeld errechnen kann, von mir aus auch noch über die räder gekoppelt an meine 90° sensorservo ausrichtung. Nehmen wir weiter an das mein objekt das einzige sich dort bewegende ist.
Ok, wenn Dein Bot zur Positionsbestimmung schon fahren darf, reichen in der Tat 2 Baken aus, wenn sie nicht ungünstig stehen. Allerdings brauchst Du in diesem Fall die Odometrie als zweite Referenz, der Bot muss wissen, wie weit er gefahren ist. Mit einer Bake und Odometrie lässt sich die eigene Ausrichtung im Raum bestimmen.


Da kein ziel/aufgabe definiert ist, ist es damit dann erledigt.
Jo, der Bot könnte nun nach Hause fahren ;-)


Liegt der mir anerklärte gedankenfehler möglicherweise beim ignorieren des thales meinerseits...
Wenn ich das richtig verstehe, liegt der Gedankenfehler irgendwo zwischen uns. Mir war nicht klar, daß Du die Odometrie als zusätzliche Referenz eingeplant hast.
Es sah so aus, als würdest Du die eigene Botausrichtung als gegeben vorraussetzen, was ohne Odometrie und nur mit 2 Baken nicht möglich ist.
Wenn Du aber erst mittels einer Bake und einer definierten gefahrenen Strecke die eigene Ausrichtung bestimmst, kannst Du anschließend über das Peilen zweier Baken eine Ortsbestimmung durchführen. Allerdings bist Du dann eine gewisse Strecke "blind" gefahren, und nur wenn Dein Bot nah an der Bake steht und sie passiert, also nicht drauf zu oder von der Bake weg fährt, kannst Du mit einer kurzen Strecke vernünftig die Ausrichtung bestimmen.


hab eigentlich recht gut in Mathematik aufgepasst...und mache mir nun echt sorgen Zwinkern
Jeder Bot kann soviel wie sein "Herrchen" ihm mitgibt. ;-)

Gruß

rockin_santa

oberallgeier
09.08.2008, 09:19
... Jeder Bot kann soviel wie sein "Herrchen" ihm mitgibt. Ich hatte das immer etwas anders dargestellt: Der Computer tut das, was man ihm sagt. Man sagt aber nicht immer das, was mein meint, dass man es sagt.

HeXPloreR
09.08.2008, 14:03
Moin,

hmm....also nur schon nochmal vorab, wenn ich mich über geraden und winkel unterhalte, dann weiss ich ganz ehrlich gesagt immer noch nicht wie da eine kurve rein kommt...und sogar du sagts es ja selber, du stellst mit zusätzlichen sensoren das "spielfeld fest" in dem der bot sich bewegen sollte, und dazu willst du baken benutzen die eine positionsortung durch eine genaue beschreibung der baken ermöglicht. Nur was mir immer noch kopfzerbrechen macht ist das du zusätzlich ein magnetfeld benutzen willst...obwohl sich dein koordinatensystem ja nur auf dein "spielfeld beziehen kann"...das einzige wofür das dann gut, ist eine aussage darüber zu treffen in welchem verhältnis dein spielfeld zur nordrichtung oder umgerechnet jeder anderen richtung steht...dein ebene in der er sich bewegt bleibt aber immer noch gleich, durch gabe des koordinatensystems...demnach ist es unerheblich ob es sich das spielfeld/ausgemesse gelände richtung norden oder SSW verdreht befindet.

Natürlich ist mir weiterhin bewußt das man je nach Aufgabenstellung und zusätzlichen infos sein ding macht, aber ich spreche doch nur über eine einfache position, also einen punkt (beinhaltet nicht direkt auch eine Ausrichtung)...nicht mehr und nicht weniger.
Ferner sind wir ja schon überein gekommen das man die baken in ein koordinatensystem einträgt (spielfeld erklären), welches man dem bot mit geben sollte - denn sonst hat men wirklich nichts geschafft.
Angesprochene probleme lassen sich aber auch damit befriedigend lösen, nun weiß ich allerdings nicht wie sich sowas in z.B. Bascom oder C, implementieren lässt, weil ich noch keinerlei erfahrung darüber habe was ein weiteres diskutieren mit mir für den einen oder anderen ggf unmöglich macht. Aber sollte ich widererwartend auf probleme bei meinen überlegungen stoßen die ich jetzt vielleicht noch nicht bedacht habe/kenne, und gezwungen bin auch über thales und co. zu sinnieren dann werde ich das natürlich tun.

Ausserdem drängt sich mir irgendwie die gadanke auf das sich dieses system mit dem thales eher eignet um mit Ultraschall seine position zu bestimmen da es mit laufzeitberechnung arbeitet...ich aber soweit ich das lese von modulierten IR-Baken ausgehe...könnte das eventuell möglich sein :-k

mfg

jeffrey
09.08.2008, 16:32
hoi,
mit 2 baken geht´s nun mal nicht ohne zusätzlich sensoren. thales dient dazu als gegenbeispiel. das ist ja das gute, wenn man eine aussage wiederlegen will, muss man nur ein gegenbeispiel finden. will man eine aussage beweisen, muss man es allgemein tun ;-)
also wenn du zwischen den beiden baken 90° misst, dann befindest du dich irgendwo auf dem thales kreis. also unendlich viele positionen sind möglich.
misst du einen anderen winkel als 90°, dann gibt es eben keinen halbkreis mehr, sonder eine andere kurve. wobei das meiner meinung nach wieder ein kreis ist, wobei allerdings der mittelpunkt nicht auf der strecke ab liegt.
das mit dem fahren eine rstrecke gibt es auch bei der schiffsnavigation, weiß grad nimmer genau wie das heißt. dazu peiltz man eine punkt an, fährt dann eine bestimmte strecke in eine bestimmte richtung, nd peilt den punkt wieder an.
mfg jeffrey

oberallgeier
09.08.2008, 17:00
... misst du einen anderen winkel als 90°, dann gibt es eben keinen halbkreis mehr, sonder eine andere kurve. wobei das meiner meinung nach wieder ein kreis ist ...Wozu soll ich dazu einen Ratschlag oder Kommentar geben, wenn das Zeugs eh nicht gelesen wird? (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=382648#382648) Für mich heißt das: es war vergebliche Mühe von mir.

jeffrey
09.08.2008, 17:15
hallo,
@oberallgeier: ich bin doch deiner meinung. der kommentar war an hexplorer gerichtet.
mfg jeffery

HeXPloreR
09.08.2008, 18:17
hmm, ich greife das mal eben hier auf: wenn ich zwischen irgendetwas 90° messe, dann kann ich das nur tun in einem bezug auf mich...wenn ich also 90° messen kann, muß es auch diesen bezug geben?! ...nicht wahr?!

bildliches gedankenspiel: wenn ich also eine bake empfange die genau vor mir ist, und ich drehe mich rechts rum und auf 90° (ich hab mein geodreieck immer dabei) empfange ich die andere bake ...dann weiß ich wie weit diese durch einfache funktion voneinander entfernt stehen und auch auch meine position dazu weil ich kann ja nun die längen der katheten berechnen...was ich allerdings auch schon ab dem zeitpunkt kann wo ich weiß das die baken 90° über meine position stehen...denn wie gesagt ich brauche den thales nicht wenn ich sowieso ein 90° winkel als gegeben sehe bzw haben muß um nur noch einen dazu zu finden.

Eine gute idee ist es wohl diese position mittels thales zu überprüfen aber keiner hat etwas von standortverifizierung gesagt, meiner meinung nach hörte es sich immer so an als wenn er einfach mal mitmachen muß. Und da auch der thales mit den werten arbeitet die man mittels seinem einen oder zwei gleichartigen IR-sensoren der berechnung übergibt kann es doch dort genauso zu fehlern kommen.
Da es in meinen ausführungen um moduliertes IR-licht geht und fehlermessungen bzw ungenauigkeiten in der messung theoretisch nicht vorgesehen sind, bleiben sie ausgeschlossen...und somit ist die rechnung dann auch korrekt.

Und jetzt nochmal, wirklich widersprechen tut mir auch jeffreys nicht finde ich, denn anscheinend sagt auch er das man sehr wohl seine position an zwei sternen (zu einer bestimmten uhrzeit) ermitteln kann, und nach einer gewissen zeit einer zweiten messung, daraus den kurs nämlich die richtung in der man sich bewegt um den es wenn überhaupt erste sekundär geht, bestimmen kann...wo bei man aber auch dort eine ungefähre richtung angeben muß (sonst fährt man nach dort oder dort) ...und allein der dazu genommene kompass, sagt nämlich aus das ich einen ort beschrieben habe (nordpol genannt) ...durch die richtung der nadel angezeigt, allerdings ziemlich selbständig...doch müßte ich diesen punkt eben auch definieren wenn ich ihn nicht schon von dem bekommen hätte der mal da war (von mir aus auch nur rechnerisch) und gemerkt hat das er dort plötzlich merkwürdige dinge anzeigt...und somit eine richtung definiert wurde. Also gebe ich dem doch informationen mit die als selbstverständlich gegegben angesehen werden.

Und ich finde für einen bot ist die erde als erklärtes "spielfeld" doch etwas groß, oder??...also definiere ich mein eigenes Koordinatensystem und schwub..ich sage ihm gehe von deinem standpunkt (ermittelt über die zwei baken) direkt zur ziel koordinate...der kurs interessiert dabei nicht da ich mich ja durch positionen also schnittpunkte berechne und punkte bekanntlich kein vorne oder hinten haben.

Also ich nehme also zwei bekannte sterne relativ zu mir(punkt) um meine position zu bestimmen. Durch zeitlich versetzte mehrfachmessung weil der himmel sich ja bewegt (oder war es andersrum ;) ) nun muß ich die von meinem altmodischen sechstanten ermittelten werte in bezug zum nordpol bringen --->kurs. Anmerken sollte man noch das es hier nicht möglich ist mit den anzupeilenden sternen auf einer linie zu stehen.

das ganze geht auch im kleinen über zwei baken, und wenn man die möglichkeit ausschliesst das mein bot (dann nämlich ist er nicht nur als punkt zu sehen) durch die wand fährt um mit den baken auf eine linie überhaupt erst kommen zu können denn sie stehen ja bekanntlich in den ecken dann funktioniert es ganz genauso, dazu braucht man keine zusätzlichen taster, eher eine gute programmierung die dem kleinen sagt das er mal nicht weiter fährt weil er ja quasie noch nen körper hat ;) ---->also so eine art gedachter (definierte) kreis um ihn (dem sensordrehpunkt natürlich)rum
...wie hieß das noch bei CNC wenn man werkzeug mit verschieden durchmessern einbringen muß, die dann trotzdem nicht das werkstück komplett wegfräsen...also sowas ähnliches sollte es sein

...bahnkorrektur!! oder sicherheitsabstand


mfg

HeXPloreR
10.08.2008, 09:35
guten morgen,

ich habe darüber sinniert (geschlafen) :cheesy: wie dem geneigtem leser des (gesamten)threads hoffentlich auch, ist folgendendes mir nicht entgangen:

1. thales funktioniert nur in einem rechtwinkligem dreieck.
2. habe ich kein rechtwinkliges dreieck, macht die benutzung keinen sinn weil man ja keinen bezug mehr zu dem rechtwinkligem dreiecke hat, es sei denn...
3. ...man versucht ( und mehr ist es nicht) auf alle sich ergebenden dreiecke (bei jeder x beliebigen messung) den thales anzuwenden und iregndwann mal einen schnittpunkt aus zwei messungen zu treffen dessen sich ergebendes dreiecke die 90° aufweißt.
4. da man nun nur nahekommende werte besitzt (die überhaupt keinen echten bezug mehr zur position haben) , wundert es auch nicht das man allein dadurch schon so viele ungenauigkeiten in kauf nimmt, das man das genauso gut mit dem viel zitierten "eimer-porc-code" umschreiben kann.

Also:
wenn in einem dreiecke der winkel gamma mit 90° (zwei baken = zwei rechtwinklige dreiecke, demnach auch zwei konstanten: gamma1, gamma2) gegeben sein muß, dann benötige ich nur meinen winkel alpha (alpha1, alpha2) dazu ( den ich messe über meine (zwei) sensorbewegung relativ zur längsachse - 180° jeweils links und rechts = 360°), um meinen längen abstände zu der bake zu bestimmen, die in meinem auch gegeben koordinatensystem beschrieben sein muß (sowie die andere auch) um innerhalb dieses systems meine position, also einen punkt zu bestimmen.

Wenn ich also eine bake auf meinen koordinatennullpunkt links unten setze. Anschliessend die ander bake rechts oben auf den maximal werten meines systems, dann kann ich doch immer schön meine position bestimmen, mit nur zwei baken. Das nenne ich dann eine sehr gute anordnung meiner baken.


mfg

jeffrey
10.08.2008, 09:56
hi,
ich glaub du willst es einfach net verstehen. es wurde jetzt so oft erwähnt.
guck dir des hier an:
http://oberallgeier.ob.funpic.de/navi_17.jpg
mfg jeffrey

HeXPloreR
10.08.2008, 10:22
hi,

ja, hab geguckt....und sehe das ich das sehr gut benutzen könnte wenn ich einen Ultraschallsensor nehmen wollte. Ich mir also erste umständlich winkel erechnen muß die ich bei meinen überlegungen mit IR schon längst habe.
Deine skizze enthält auserdem schon mal einen fehler, denn 2 x alpha ist nicht automatisch gleich (=) winkel alpha, denn wenn das so wäre bräuchte ich nicht mehr viel rechnen (und schon garnicht mehr mit thales, der wie gesagt nur besagt das ein rechtwinkliges dreiecke vorhanden ist um ihn überhaupt verwenden zu können) denn wenn 2alpha das doppelte von alpha ist muß es auch ein rechtwinkliges dreieck sein...rechne es doch mal nach: alpha = 45°, so dann 2alpha = 90°, was bleibt für den anderen winkel übrig ... und dazu bemühe ich keinen thales wenn es nicht notwendig ist.

Also kann man doch sagen: wenn ich mich nicht genau in einem rechtwinkeligen dreieck als ein eckpunkt befinde kann ich mit dem thales somit nichts anfangen. und um das irgendwann feststellen zu müssen müßte ich immerzu messen, um irgendwann einen schnittpunkt gefunden zu haben der einen thales berechtigt.

aber warum sollte ich einen bestimmten punkt suchen bzw anfahren müssen wenn ich doch einen zufälligen punkt (standpunkt) suche.

mfg

HeXPloreR
10.08.2008, 11:03
nur mal so zum nachdenken, bei deinem winkel gamma sieht man es doch ziemlich gut,oder meinst du nicht, also wenn die gadachte gerade zur hypotenuse nicht 90°(senkrechte) dann kann man auch denn thales nicht anwenden.

Also halten wir fest: wenn mir feste orte in ihrem relativen abstand (auch winkelabstand) bekannt sind (baken, sterne) dann nur deswegen weil ich sie mit einem bezug zu einem anderen ort setze (koordinatensystem der karte, magnetischer oder geoNordpol) dann benötige ich keinen thales...sind die positionen unbekannte, suche ich mit thales do lange bis ich über drei punkte ein rechtwinkliges dreiecke spanne kann ...also für einen winkel dann ein wert von 90° errechnet wird...somit habe ich einen punkt der noch nicht in bezug zu meinem raum/ebene steht...das könnte der pol sein, aber wenn ich nur bestimmen wollte wo ich stehe, in bezug zu den baken reicht es doch aus wenn ich die beziehung derer zu meinem garten oder spielfeld habe.

jeffrey
10.08.2008, 11:33
hi,
@hexplorer: 1. das bild ist nicht von mir. aber ist ja egal.
2. veriss einfach mal thales. der hilft hier überhaupt net weiter!
3. ich versteh net wirklich von was du redest. aber ich denke das funktioniert so nicht. mal einfach mal ne skizze, in der man sieht, was du meinst, bzw. du wirst dann beim zeichnen vermutlich schon feststellen, dass es so nicht geht, wie du es meinst. du brauchst nun mal mindestens 3 baken! und lass mal irgendwelche magnetfelder, etc weg. weil die helfene nicht wirklich weiter. die orientierung an der position lässt sich damit bestimmen, aber darum geht es hier nicht.
mfg jeffrey

HeXPloreR
10.08.2008, 15:03
ach so, plötzlich doch kein thales mehr...versteh ich nicht

Worum geht es denn nochmal genau hier? Vielleicht reden wir aneinander vorbei...

ps: und dieses bild ist von mir

ich wage sogar soweit zu gehen das ich nur eine definierte bake in diesem system benötige...+ einen nullpunkt, aber den brauche ich sowieso sobalt es um eine begrenzte fläche geht. Um ein ziel nun anzusteuer ( muß es durch eine koordinate beschrieben werden (oder schon sein z.B die bake)...welches dann mit dem ermittelten kurs über zwei gemessene positionen verglichen werden soll.

PS: Vielen Dank @ Rockin_Santa das Du also mit mir einer Meinung bist...ich werde Dich jetzt nicht zitiren, wie genau ich dazu komme das zu sagen!
...übrignes sehe ich aber auch keine odometrie in diesem system vor.
Warum das: weil ich über zwei positionen auch meinen weg berechnen kann. Und auch bei der odometrie muß ich erst fahren um das zu messen.

mfg

jeffrey
10.08.2008, 22:04
hallo,
ich wollte nie thales verwenden, ich habe bereits oben geschrieben:

hoi,
mit 2 baken geht´s nun mal nicht ohne zusätzlich sensoren. thales dient dazu als gegenbeispiel. [...]
und wenn man deine skizze anschaut, verwendest du auch 3 baken B1, C1 und B2.
mfg jeffrey

HeXPloreR
10.08.2008, 22:20
C1 ist keine Bake.

sondern nur die umgesetzte konsequenz aus der tatsache das ich einen 90° winkel als gegeben betrachten muß, damit nur noch ein winkel gemessen werden muß und damit sich alle längen und fehlender winkel im dreiecke berechnen lassen...

Ich habe noch eine andere skizzen im kopf wo man es besser sehen wird...
...ebenso eine skizze die das einzige problem der aufstellung im freien raum beschreibt...wo bei ich die lösung schon habe, mir aber noch die theoretische mathematische umsetzung kopfzerbrechen bereitet.

wie viele schon festgestellt haben ist : gedacht nicht gleich gemacht

mfg

jeffrey
10.08.2008, 22:31
hallo,
wenn c1 unbekannt ist, funktioniert das so nicht, weil dann die längen a,b und c unbekannt sind. und damit deine position nicht berechnet werden kann.
mfg jeffrey

rockin_santa
10.08.2008, 22:38
Guten Abend, Zusammen


@HeXPloreR

Tut mir ja leid zu sagen, aber Du hast es nicht begriffen.


ach so, plötzlich doch kein thales mehr...versteh ich nicht
Thales brauchst Du nicht, um Deine Position zu bestimmen, sondern um zu verstehen, daß ein gemessener Winkel zwischen zwei Baken keinen Punkt sondern eine Kurve ergibt.


ich wage sogar soweit zu gehen das ich nur eine definierte bake in diesem system benötige...+ einen nullpunkt[...]
Wo Dein Nullpunkt liegt, ist völlig unerheblich. In meinem Fall liegt er sogar außerhalb des befahrbaren Gebietes. Aber das ist nur Nebensache. Ich zitiere Dich mal aus einem deiner vorherigen Beiträge:


wenn in einem dreiecke der winkel gamma mit 90° (zwei baken = zwei rechtwinklige dreiecke, demnach auch zwei konstanten: gamma1, gamma2) gegeben sein muß, dann benötige ich nur meinen winkel alpha (alpha1, alpha2) dazu ( den ich messe über meine (zwei) sensorbewegung relativ zur längsachse - 180° jeweils links und rechts = 360°), um meinen längen abstände zu der bake zu bestimmen
Hier machst Du zwei Denkfehler, und dort sitzt das Kaninchen im Salz, bzw. der Hase im Pfeffer:

1.) Du nimmst an, daß Du die Abstände zu den Baken kennst, denn Du willst über Pythagoras mit Hilfe des Winkels und der bekannten Länge der Hypothenuse Deine Position bestimmen. In diesem Fall gibt es unendlich viele Lösungen, da die Längen der Katheten damit nicht bestimmt werden können.
Im Beispiel des rechten Winkels hättest Du - oh Wunder - genau den Thaleskreis. Daher seine Erwähnung.

2.) Du misst relativ zur Längsachse. Diese ist aber nicht absolut! Du kannst sie nicht als Referenz nehmen. Genau hier wäre der häufig genannte Magnetfeldsensor das fehlende Puzzleteil. Damit könntest Du die Ausrichtung des Bots bestimmen und von da an als Referenz nehmen.

Klar soweit?


PS: Vielen Dank @ Rockin_Santa das Du also mit mir einer Meinung bist...ich werde Dich jetzt nicht zitiren, wie genau ich dazu komme das zu sagen!
...übrignes sehe ich aber auch keine odometrie in diesem system vor.
Warum das: weil ich über zwei positionen auch meinen weg berechnen kann. Und auch bei der odometrie muß ich erst fahren um das zu messen.
Ich bin gewiss nicht Deiner Meinung, wie Du mir hier gezeigt hast.
Du kannst nur Deine Position über zwei Baken messen, wenn Du die Botausrichtung kennst. Die kannst Du nur kennen, wenn Du sie mittels einer Bake und Odometrie bestimmt hast.

Ein gutgemeinter Rat, HeXPloreR:
Wenn Du es jetzt immernoch nicht auf dem Schirm hast, empfehle ich Dir, Deine Botnavigation zu überdenken. Da Du weder einen Magnetfeldsensor, noch Odometrie einbeziehen willst, läuft Deine Positionsbestimmung auf das Peilen von mindestens 4 Baken mit anschließender nicht trivialer Kurvendiskussion heraus. Ich bezweifle, daß Du das in Quellcode gegossen bekommst. Ich persönlich bin auch nicht das Programmierass, weswegen ich mir diese Kurvendiskussion von vornherein spare.
Ich empfehle den Magnetfeldsensor als zusätzliche Referenz, da dies mit einer etwas einfacheren Formel zu schaffen ist. Thema Cosinussatz.
Da Du Dich aber gegen den Magnetfeldsensor zu sträuben scheinst, nimm Dir die Odometrie zu Hilfe. Damit wird es um einiges leichter.

Ich gönn Dir echt, daß du das hinbekommst.

Gruß, rockin_santa


So, jetzt noch eine kleine Exkursion:
Jeffrey schrieb:

das mit dem fahren eine rstrecke gibt es auch bei der schiffsnavigation, weiß grad nimmer genau wie das heißt. dazu peiltz man eine punkt an, fährt dann eine bestimmte strecke in eine bestimmte richtung, nd peilt den punkt wieder an.
Richtig, diese wird Versegelungspeilung genannt.
Hierbei peilt man das Objekt, fährt dann einige Zeit mit bekannter Geschwindigkeit und einem bekannten Kurs (ohne Kurswechsel!) und peilt das gleiche Objekt erneut.
Dies funktioniert nur, wenn die Geschwindigkeit und der Kurs über Grund bekannt ist.
Auf unsere Botnavigation übertragen: Wenn Du einen Magnetfeldsensor (Kompass) und Odometrie (Geschwindigkeit/Zeit) benutzt, reicht Dir eine Bake zur Positionsbestimmung.
Eine Versegelungspeilung gilt übrigens als Notlösung, wenn man in der terrestrischen Navigation wirklich nur ein Objekt optisch peilen kann. Da das Fahrzeug faktisch immer durch Wind und Strom versetzt wird, und dieser Versatz nur geschätzt werden kann, ist sie immer ungenau und sollte auch so bewertet werden.

HeXPloreR
11.08.2008, 05:55
Hey guten morgen,

ich könnte hier auch den höhensatz erwähnen doch dennoch hätte er hier keinerlei verwendung für mich.
Weiter ergibt sich aus einem gemessenen winkel zwischen zwei objekten ...eben ein winkel, und wenn ich annehme dann einen kreis über beide objekte zu ziehen, dann kann das nur über mich als mittelpunkt geschehen, da ich aber keinen radius benennen kann...ist es auch nicht möglich den "thales"-kreis hier einzubringen.
Da ich aber einen 90° winkel in einem sich ergeben dreieck vorraus setzen kann, wenn ich einen winkel alpha immer weiter aufziehe bis er sein ziel trifft. Und ja, ich gehe davon aus das mir die abständer der baken zum (auch klar egal wo) gelegtem Nullpunkt bekannt sind bevor ich losfahre...damit ich die position mit meiner karte/ koordinaten in verbindung bringe. Und wenn ich mir zwei sterne am himmel anschaue, kann ich auch nicht wirklich frei entscheiden welche ich nehme, denn darauf muß ich mich immer wieder beziehen...sie also schnell wieder finden/erkennen können...und die sind ja auch immer irgendwie zufällig gestellt...das ist mein ansatz.

Und richtig ist auch das dies art der peilung ungenau ist, wenn man sich unkontolliert in einem medium bewegt. Aber tun wir das hier?
...mal vorraus gesetzt es ist kein sturm anwesend der meinen kleinen süßen bot in die ecke drückt...
Nur zur aufklärung da ich mich anscheinend immer noch rechtfertigen muß wie es geschehen soll..es ist weiter oben schon beschrieben...und wartet nur noch auf seine zeichnerische umsetzung...diese werde ich mal etwas genauer darstellen denn ich denke es lohnt sich schon da mal einen genauer blick drauf zu tun.
Ich wundere mich sogar das ich gleich zwei denkfehler haben soll, diese aber noch nicht sehe...ich schaue mir das aber gerne nochmal genauer an, damit ich mich nicht festbeiße... ;)

Odometrie entfällt für mich weil ich einen hexapoden plane ins feld zu schicken.


mfg

jeffrey
11.08.2008, 10:47
hi,

[...]
Da ich aber einen 90° winkel in einem sich ergeben dreieck vorraus setzen kann, wenn ich einen winkel alpha immer weiter aufziehe bis er sein ziel trifft. Und ja, ich gehe davon aus das mir die abständer der baken zum (auch klar egal wo) gelegtem Nullpunkt bekannt sind bevor ich losfahre...

ja klar, dass ist ja logisch, wenn ich nicht weiß wo die baken sind, bringt eine relative position zu den baken ja auch nichts ;-)


Und richtig ist auch das dies art der peilung ungenau ist, wenn man sich unkontolliert in einem medium bewegt. Aber tun wir das hier?
...mal vorraus gesetzt es ist kein sturm anwesend der meinen kleinen süßen bot in die ecke drückt...

die peilung ist genau, wenn man die winkel entsprechend genau messen kann


Nur zur aufklärung da ich mich anscheinend immer noch rechtfertigen muß wie es geschehen soll..es ist weiter oben schon beschrieben...und wartet nur noch auf seine zeichnerische umsetzung...diese werde ich mal etwas genauer darstellen denn ich denke es lohnt sich schon da mal einen genauer blick drauf zu tun.

du musst dich hier nicht rechtfetigen. du musst einfach nur zeigen, dass dein ansatz funktioniert, wobei ich (und einige andere hier) das bezweifle, außer wir haben dich alle total falsch verstanden. schreib einfach eine formel für die position auf, in der nur die baenposition und der winkel vorkommt. wenn du das hin bekommst (und die formel natürlich auch stimmt ;-)) dann glaub ich dir, dass dein ansatz stimmt.


Ich wundere mich sogar das ich gleich zwei denkfehler haben soll, diese aber noch nicht sehe...ich schaue mir das aber gerne nochmal genauer an, damit ich mich nicht festbeiße... ;)

naja, ob das 2 denkfehler sind, ka, man kann auch einfach einen großen denkfehler draus machen ;-)

mfg jeffrey

edit: ich hab mal in deine zeichnung eine 2. position eingezeichnet, bei der der winkel alpha1 genau gleich ist, nur mal als kleiner denk anstoß.

HeXPloreR
12.08.2008, 20:23
hi,

nun ja damit hast du schon recht soweit....allerdings ist damit aber auch die andere messung außer acht geblieben und der sich dadurch ändernde schnittpunkt. Wenn ich also mindestens zwei Messungen an verschiedenen orten durchführen muß, um durch diese 2. Ortsmessung die 1.Position zu erhalten und diese dann in beziehung setzen kann, dann weiß ich auch wo ich stehe. Ich sehe das so das damit meine gegeben 2 Baken und dem Koordinatensystem als Voraussetzung erhalten bleiben. Es geht mir wie gesagt vorerst nicht darum wie schnell es geht, sondern ob es möglich ist mit den wenigen "gegebenen externen Gegebenheiten" dieses zu ereichen. Und wenn ich das mit verschiedenen notwendigen Berechnungsverfahren in einklang bringen muß / kann dann habe ich mein ziel erreicht.
Dieses in ein Programm einzubinden ist dann das nachkommende Problem, ebenso wie die hardwaremässige Umsetzung dann aussehen sollte.

mfg

rockin_santa
12.08.2008, 23:08
Hi Zusammen,

Ich habe auch mal ne Skizze gemacht, vielleicht verdeutlicht sie ja das Problem.


Gruß, rockin_santa

HeXPloreR
13.08.2008, 04:06
Moin,

kannst du mir das nochmal mit einer der beiden Ausrichtungen zeigen, und zwar entweder dann vor oder zurück verstellen, du kannst auch gerne eine Bake anvisieren (modulierte Baken = Bake1 = 1/9, Bake2 = 9/10). So würde ich es rein optisch schon machen. Vergesse dann nicht den Bezug der Baken zum Koordinatensystem-Nullpunkt. kannst du mir dann bitte auch die "Thaleskreise" ein zeichnen, und vielleicht noch verdeutlichen wo ein dritter punkt liegen könnte und wie ich daraus an meine Position komme.

Nur nochmal falls ich das ziel der aktion vergessen habe zu erwähnen:
- ich möchte auf den direkten weg zurück zu meinem urschsprung des systems, dem Nullpunkt...an dem ort wo ich das system vorher gemessen habe um einen bezug zu erhalten.

vielen dank schon mal

mfg

Thoralf
13.08.2008, 07:02
hab mir jetzt nicht alles durchgelesen, da das richtige Stichwort NICHT dabei war *ggg* das da lautet "Rückwärtseinschnitt"
Dieses Verfahren wird von den Geodäten eben zu diesem Problem benutzt.
Es wird damit zur Positionsbestimmung keinerlei Nullpunkt benötigt. Die Bestimmung der Winkel zwischen Bake 1 und 2, 2 und 3, oder 1 und 3 genügt.
Bekannt sein muß lediglich der Abstand der Baken voneinander und die Winkel der Verbindungslinien zueinenander.
Googel mal danach. Dafür gibt es einen guten Skript von der TU Dresden.
Hab den mal mit der CC2 getestet und bin zufrieden.

oberallgeier
13.08.2008, 08:27
... nicht alles durchgelesen, .. richtige Stichwort NICHT dabei war ... "Rückwärtseinschnitt" ... von den Geodäten eben zu diesem Problem ... keinerlei Nullpunkt ... Bestimmung der Winkel zwischen Bake 1 und 2, 2 und 3 ... genügt ...
Ich fürchte, dass Dein Hinweis für die bekannte Katz ist, die Feind jeglicher Erkenntnis ist. Genau die Vorgehensweise beim Rückwärtseinschnitt hatte ich in einem Beispiel vorgestellt (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=382648#382648)(aber ohne Stichwort *ggg*), mit einer Skizze belegt, das Beispiel mit einer ausführlichen Punkt-für-Punkt-Anweisung versehen und auch den, dem Lösungsweg zugrundeliegenden, geometrischen Lehrsatz genannt. Möglicherweise hatte das Spurius geholfen (oder erschreckt), der fragt nicht mehr. Ansonsten - dreht sich die Diskussion hier ziemlich im Kreis. Offenbar fehlen elementare geometrische Grundlagen sowie das Wissen darüber, wieviele Bekannte eine Gleichung mit n Unbekannten für eine eindeutige Lösung benötigt. .... und weil von manchen Menschen beliebig viele Erläuterungen nicht angenommen werden.

Thoralf
13.08.2008, 09:01
ja, hast recht. Was du ansatzweise quasi als Anleitung zum Weiterdenken angegeben hast, ist der Rückwärtseinschnitt. Leider wurde der an sich einfache Ansatz ignoriert, schade.
Auf der Basis baue ich schon eine Zeit an einer ziemlich genauen Lösung (muß quasi industrietauglich sein, also robust).
Das mit der Diskussion im Kreis stimmt schon. aber manchmal ergeben sich ja auch daraus interessante neue Ideen. :-)

HeXPloreR
14.08.2008, 11:53
hey,

nur mal ein kleines Beispiel aus dem täglichen Leben:

Ich möchte einen Kühlakku in einem bekannten Elektronikfachmarkt kaufen. Ich besitze eine Kühltuhe und einen Kühlschrank mit Eisfach.

..ich frage den Verkäufer, wo denn die Kühlakkus seien...und er antwortet: "Die verkaufen wir hier garnicht, aber wir haben ausgezeichnete Kühlschränke, wollen Sie mal vielleicht mal schauen hier entlang bitte -->"...auch wenn die Kühlschränke acht super aussehen und sogar kühl halten, was werde ich wohl antworten? :-k

mfg

jeffrey
14.08.2008, 12:34
hey,

nur mal ein kleines Beispiel aus dem täglichen Leben:

Ich möchte einen Kühlakku in einem bekannten Elektronikfachmarkt kaufen. Ich besitze eine Kühltuhe und einen Kühlschrank mit Eisfach.

..ich frage den Verkäufer, wo denn die Kühlakkus seien...und er antwortet: "Die verkaufen wir hier garnicht, aber wir haben ausgezeichnete Kühlschränke, wollen Sie mal vielleicht mal schauen hier entlang bitte -->"...auch wenn die Kühlschränke acht super aussehen und sogar kühl halten, was werde ich wohl antworten? :-k

mfg

häää?????

rockin_santa
14.08.2008, 13:45
Jo, der Vergleich ist zwar etwas holprig, aber wenn Du es so sehen willst:

"Tut mir leid, wir führen hier nur Winkelmessungen zwischen 2 Baken. Eine eindeutige Position können wir hier deswegen nicht anbieten.
Eine eindeutige Position gibt es nur in dem Geschäft mit den 3 Baken und der komplizierten Kurvendiskussion, oder in dem Laden, der auch Magnetfeldsensoren im Bundle mit anbietet, oder dort, wo man auch Odometrie mitbezahlen muss. Ja, die haben eindeutige Positionen in der Auslage."

mfg rockin_santa

oberallgeier
14.08.2008, 16:13
... oder in dem Laden, der auch ... im Bundle mit anbietet, oder dort, wo man auch ... mitbezahlen muss ...
Jetzt weiß ich endlich, warum ich manchmal viel erkläre und keiner versteht mich. Meine Wortwahl ist unzeitgemäss. Sch... ...lecht

HeXPloreR
14.08.2008, 21:14
"Stereoskopie"...und damit ist hier meine Beteiligung an der Gesprächsrunde beendet. Vielen Dank für die Aufmerksamkeit..oder auch nicht...

mfg

jeffrey
15.08.2008, 10:56
Hallo,

"Stereoskopie"...und damit ist hier meine Beteiligung an der Gesprächsrunde beendet. Vielen Dank für die Aufmerksamkeit..oder auch nicht...

mfg
also Stereoskopie hat damit ja nicht wirklich was zu tun.
Darf man dann deine aussage so verstehen, dass du in der Zwischenzeit auch zu dem Ergebnis gekommen bist, dass dein Ansatz mit 2 Baken nicht funktioniert!? Damit das auch für Leser klar wird, die das Thema irgendwann mal durchlesen, nicht, dass diese dann glauben 2 Baken würden ausreichen.

MfG Jeffrey

HeXPloreR
15.08.2008, 15:27
hey,

nein, so darf man es nicht verstehen! naja irgendwie ist es mir egal wer was glaubt oder nicht...für meine zwecke wird ein system mit zwei aktiven Baken ausreichend sein und auch reallisiert werden...

mfg

oberallgeier
15.08.2008, 16:34
... in Mechanik macht mir niemand ein X als Y vor... und vermutlich in Mathe auch nicht.

HeXPloreR
15.08.2008, 17:52
hallo ihr ;)

@jeffrey; oberallgeier: sag mir doch mal wozu du den Rückwärtseinschnitt einsetzt oder planst einzusetzen? Hast du extreme Steigungen oder sogar einen Flugroboter? Hast du eine unbegrenzte Fläche zur verfühgung?

mfg

HeXPloreR
18.08.2008, 14:14
hey,

ich wollte dann doch nochmal direkt auf die Triangulation eingehen und hier meine Lösung des Problems reinstellen.
Da ich plane dieses Problem später mit einem optischen System zu lösen habe ich dem bezüglich der Stereoskopie etwas vorgegriffen...allerdings darf man auch nicht vergessen das ein optisches System im Prinzip auch nichts weiter tut als Lichtsignale von passiv reflektierenden objekten auszuwerten, die eben erst dadurch erfassbar werden da sie sichtbar sind...ebenso wie es ein IR-Sender und entsprechende Sensorik tun kann.

Möge es dem einen oder anderen helfen.

mfg

jeffrey
18.08.2008, 14:22
hallo,
bei deiner zeichnung setzt du ja l1 und l2 als bekannt vorraus. das ist aber bei der triangulation nicht gegeben, da werden nur winkel gemessen. wenn l1 und l2 bekannt sind, dann braucgst du den winkel gar nicht mehr messen, weil dann bei entsprechender bakenanordnung(der eine punkt ist nicht erreichbar) das ergbins nur aus den längen eindeutig berechnet werden kann.
mfg jeffrey

HeXPloreR
18.08.2008, 14:54
hmm,
ja ich versteh was du sagst, aber steht da nicht was von l1 und l2 sind gesucht?!
Diese beiden längen werden über die teilung des gemessen winkels erreicht der in diesem fall niemals über insgesamt 180° liegen kann, durch die teilung kann man das rechtwinklige dreieck ziehen, die dann über die zwei bekannte winkel zur länge der Hypotenuse (jeweils l1 und l2) führen. Die theoretische mittige peilung wird nur durch die praxis beschränkt da man vorraussichtlich des signal eher empfängt als das der mittelpunkt genau erreicht wurde, deshalb sollte man einmal links rum messen und anschliesend rechts rum, um die gemessen winkel zu addieren und den fehlerwinkel zu erhalten der dann durch zwei geteilt wird und zum ersten (halb)winkel addiert werden kann dadurch hat man eine höhere wahrscheinlichkeit den mittenwinkel der bake zu erhalten. Als nächstes erweitert man den erfassungswinkel der sensoren auf 360° und passt die berechnung dazu an...so ist dann auch gewährleistet das der bot stehen kann wie er will.

mfg

HeXPloreR
20.08.2008, 18:54
hey,

also ich nehme das dann mal als akzeptiert auf.


mfg

jeffrey
21.08.2008, 14:05
hoi,

... also ich nehme das dann mal als akzeptiert auf...
ich hab ehrlich gsagt net wirklich blickt, was du da geschrieben hast. schreib doch einfach mal die formel hin, mit der du l1 und l2 berechnest.
mfg jeffrey

ps: ich denke immernoch, dass es so nicht geht.

i_make_it
21.08.2008, 15:56
Ich habe den Thread jetzt nicht komplett gelesen, (habe Aufgehört als es zum xten mal hin und her ging wegen des Thaleskreis und den Kurven)

Für den oder die jenigen die nicht verstehen was es mit dem Thaleskreis auf sich hat und warum mit Winkelmessung drei Barken notwendig sind, gibt es ein einfaches experiment zum Verständniss.

Benötigt wird ein Geodreieck, zwei Stecknadeln, ein Stück stabiler Pappe und ein Stift.

Die beiden Stecknadeln in die Pappe Stecken, Das sind Barke A und Barke B.

Das Geodreieck wahlweise mit einer der 45° winkel oder dem 90° zwichen die Nadeln schieben bis beide Schenkel anliegen.
Jetzt lässt sich das dreieck hin und her schieben, wobei die Spitze die Position des Roboters ist und alle erreichbaren Positionen sind die Kreisbahn die der roboter einnehmen kann, wenn er die Barken unter einem Winkel von 45° oder 90° sieht. Bei 90° ist es halt der Thaleskreis.
Und oh Wunder es funktioniert mit allen Winkeln zwichen 0° und 180°.

Eine Positionsbestimmung mit zwei Barken ist also nur möglich bei gleichzeitigem Einsatz von Winkel und Abstands Messung.
Sonst werden immer mindestens drei Barken benötigt.
(Sonderfälle sind alle Positionen außerhalb des von den Barken umschlossem Raum die auf Geraden liegen die durch die Positionen von zwei Barken gehen. Da sieht man nämlich nur noch zwei Barken.)

HeXPloreR
27.08.2008, 14:46
hi,

@jeffreys...ja, leider hast du recht so geht es mit zwei baken nicht, dachte ich könnte über den bekannten abstand zwischen den baken die länge l berechen, allerdings hab ich dabei übersehen das wenn ich den 90°winkel vorrausetze mir durch die verschiebung/halbierung des gemessen winkels zwischen den baken der bezug anscheinend verloren geht, und ich sehe mit der dargestellten einfachen methode keinen weg daran vorbei zu kommen.

...zum glück hat i_make_it es aber auch genannt, nämlich die winkel messung mit gleichzeitiger oder anschliessender abstandsmessung ... z.B. nach dem grundprinzip der "stereoskopie" ( ich weiß ..."skopie" bedeutet soviel wie "sehen, beobachten"...ein bot sieht durch seine sensoren) mit hilfe der triangulation.

wenn man also eine drehbare vorrichtung herstellt die diese vorrausetzungen erfüllt und die aktive IR-Bake so ausführen kann das sie möglichst wenig streut. Dann kann man mit zwei sensoren, einer fest auf den vorrichtung der andere beweglich mit winkelmesssystem verbunden die entfernung messen.
Theoretisch würde ich dann Bake1 mittig erfassen, denn zweiten sensor auch danach suchen lassen,winkel erfassen---> die entfernung l1 berechen. Danach die Bake2 suchen lassen, den bakenwinkel messen (das müßte schon reichen um die position zu bestimmen - der vollständigkeit halber...) den zweiten sensor Bake2 suchen lassen, winkel erfassen ---> l2 berechnen. Beachten müßte man schon mal die richtungen aus der die messungen erfolgen.

Mein problem ist ansich das ich 1. die genauigkeit des winkels in der so eine bake aussendet nicht kenne und nicht bestimmen kann. Kann man das konstruktiv lösen/minimieren?.
Und 2. ich nicht genau weiß wie die werte in den speicher geschrieben werden. Da sich für die die erste messung der entfernung zu Bake1 ja diese kreisbahn ergibt. Müssen dann alle werte die sich durch die rasterung des Koordinatensystems ergeben in den speicher geschrieben werden bis sie durch die zweite messung rausfliegen?
Demnach sollte auch das koordinatensystem sich in einer zweckmässigen grössenordnung (ganze cm?) bewegen, oder?


mfg

jeffrey
27.08.2008, 14:58
Hallo,
wenn du dioe längen messen kannst, brauchst du keine winkel mehr zu messen. dann ist deine position durch eindeutig. du hast dann 3 seiten eines dreiecks, und das reicht aus.
durch eine zusätzlich winkelmessung kann dann noch die ausrichtung des bots in der ebene bestimmt werden.
das speicherproblem verstehe ich nicht ganz. du musst doch nur 2 entfernungen abspeichern. das sollte kein problem sein.
mfg jeffrey

HeXPloreR
27.08.2008, 15:55
hey,

ja stimmt ich habe dann die drei seiten, und damit kenne ich dann auch die winkel...damit kann ich dann alles errechnen was ich brauche. Die winkelmessung der baken benötig ich dann nur noch zur bestimmung der ausrichtung da die baken ja eh beide gesucht werden müssen ist es damit dann auch gleich erledigt.


mfg

i_make_it
28.08.2008, 06:04
Wenn nur mit Entfernungsmessung gearbeitet wird, muß dem Roby vorher der Abstand der Barken mitgeteilt werden damit er seine Position bestimmen kann.

Bei entfernungsmessung und Winkelmessung, kann man in einem unbekannten Gelände einfach die Barken setzen und den Roby mit einer Kartierung beginnen lassen. er kann dann selbstständig alle Hindernisse und Landmarken in Relation zu den Barken setzen.

Ich tüftele momentan an einer Rasterkarte (weil einfacher zu implementieren als Vektorkate) bei der ich 2 I2C Rams nehme und jedes Bit von Speicher eins den selben Rasterpunkt wie in Speicher zwei repräsentiert. So stehen mir 2 Bit für die Zustandsbeschreibung zur Verfügung.

00= unbekannt
01= mögliches Hinderniss (Fernsensor hat ein Echo eingefangen)
10= Rasterzelle ist frei (durch mindestens zwei verschiedene Sensoren oder durchfahren verifiziert)
11= Hinderniss

Später möchte ich mit 3 oder 4Bit arbeiten damit ich bewegliche Hindernisse (Menschen usw) noch mit einem Status für bewegliche Hindernisse versehen kann.
So kann der Roby stark und schwach frequentierte Pfade erkennen und seine Routenplanung entsprechend anpassen.
Bei 265kB Ram komme ich auf 2097152 Speicherzellen, das sind rund 1448 Zellen Kantenlänge. Bei 2cm je Zelle, 28,96Meter.
Was für mein Testgelände mehr als ausreichend ist.

Als Sensor arbeite ich an einer um 361° schwenkbaren Plattform und einer Abwandlung eines FMCW Ultraschall mit Quadranten Antenne.
Da beim orginalen FMCW Verfahren die Eigengeschwindigkeit per Dopplereffekt die Erntfernungsmessung verfälscht, möchte ich FM einsetzen um eine Zeitinformation in das Signal zu modulieren die es ermöglicht die Laufzeit exakt zu bestimmen.
Inwieweit sich da Fehler durch Eigengeschwindigkeit besser kompensieren lassen muß ich noch ermitteln.
Bei stehenden Objekten sollte der selbe Fehler auftreten wie bei MFCW.
Objekte mit Eigenbewegung die also ihren eigenen Dopplereffekt erzeugen sollte ich aber mit genug Aufwand bei der Analyse des reflektierten FM Signals filtern und die Relativgeschwindigkeit ermitteln können.

HeXPloreR
28.08.2008, 09:48
hi i_make_it,

ja ganz genau, der bot muß vorher ein paar Dinge wie den Bakenabstand und deren Position im Koordinatensystem mitbekommen. Das sehe ich selber auch nicht als Problem, denn ich möchte nur nicht mehr als zwei (bis jetzt aktive) Baken benutzen, der Rest ist egal...also umfang der Orientierungseinheit, Dauer der Messung, sowie ob dabei eine Bewegung ausgeführt werden kann oder nicht. Wird halt nur durchs Gewicht und verfügbarer Hardware begrenzt.

Ich möchte es letzt endlich so machen das ich (der bot) ein Lasersignal sende, welches dann von einer passiven (bauartbedingt angepasst, zylindrisch/sphärisch, reflektierend, o.ä.) Bake zurückgeworfen wird(vermutlich abgeschwächt).
Um die Bake selbstständig erkennen zu können benötige ich eine Kamera und Objekterkennung, zur Laserreflex-Erfassung dachte ich an eine Art Nachstsichtmodus (zweite Kamera), da ja bei zuviel Lichteingang ein "overflow" (heißt es so?) in der Kamera ausgelöst wird, der dann das treffen der Bake mit dem Laser und Empfang anzeigen, wonach sich dann die Entfernung berechnen lassen sollte. Möglich ist vielleicht auch die Verfolgung des Laserpionterpunktes mit Kamera, wodurch auch eine Entfernungsmessung statt finden kann, allerdings müssen die Baken auch erkannt werden um den Bezug zum Gelände zu haben.
Vielleicht genügt ja auch eine andere Empfangseinheit, etwas was auch die Laserreflextion aufnimmt? Ultraschall habe ich aber auch noch nicht ausgeschlossen.
Das Messystem soll jedenfalls auch nur dann aktiv sein wenn eine Positionsbestimmung erfolgen soll, oder ein neuer Zielpunkt anvisiert wird (dafür ist das Kamerasystem mit Laser primär gedacht).

Ist alles noch theoretisch, ich muß mir erstmal geeignete Literatur dazu besorgen, um nicht nur in Träumen und Wünschen zu sprechen.
Roboter selbst bauen von Ulli Sommer, ISBN 978-3-7723-4109-0 ; hört sich vielversprechend an, hoffe das es mich weiter bringt. Bestell heute.

Also wenn jemand eine Ideen, nen Tipp oder auch Kritik hat, ich bin da noch völlig offen, solange es mit der Vorraussetzung von zwei Baken (am besten passiv) konform läuft ;)

Wünsche Dir, i_make_it, auf jeden Fall schon mal viel Erfolg und Spaß dabei deine Vorstellungen zu realisieren.

mfg

i_make_it
28.08.2008, 13:12
wenn du mit Laserreflektion arbeiten willst, mach die Baken Hexagonal.
Besorg dir möglichst dünne Spiegel und einen Glasschneider.
Mach dir je Barke 36 gleichseitige Spiegeldreiecke. und stelle so 6 Reflektoren her.
Die arbeiten dann so wie bei den Landvermessern. Der Laser wird Parallel zum eingehenden Strahl zurückgeworfen. (Summer aller Winkel = 180°) Stichwort Prismenreflektor.
Such dir passend zum laser einen Farbfilter im Fotozubehör.
Und bring ringförmig um den laser 6 Fototransistoren an. Alles hinter den Filter und sonst gegen Fremdlicht geschützt.
Der Filter lässt den Laser raus (schwächt ihn dabei leider etwas ab)
der reflektierte Strahl kommt zurück und geht durch den Filter, Licht anderer Wellenlänge wird absorbiert. Ausgänge der Transistoren per Flipflop und Oderglied digitalisieren und zusammenführen.
Ein Digitaleingang reicht zum aufnehmen des Signals. in dem Auswerte Alorythmus noch die Durchlaufverzögerung von Flip-Flop und dem Oderglied berücksichtigen sowie die Ansprechzeit der Laserdiode und der Transistoren und du hast eine passable Laufzeitmessung.
Am besten sind triggerbare Laserdioden geeignet, die sind allerdings locker mal 5 bis 10 mal so teuer wie normale. Ggf. mal bei Laser 2000 nachschauen (auch wegen der Filter).

Da du mit Licht arbeitest, kann es sein das du mit DSPs oder anderen extrem schnellen Bausteinen arbeiten mußt. Ein normaler MC für den "Hausgebrauch" ist in der Regel zu langsam. ich habe mal Versucht einen Tester für LAN-Kabel zu bauen. da habe ich die Eingangselektronik komplett mit Spezial Bausteinen gebaut und per Multiplexing die digitalisierten Messwerte auf 16 Speicherbänke aufgeteilt, damit die Torzeiten für die D-RAMs lang genug waren. Erst nach der Messung hat ein MC die Daten ausgelesen aufbereitet, Ergebnisse berechnet und Visualisiert.

jeffrey
28.08.2008, 13:41
hoi,
wg lasersensor guck mal hier http://www.philohome.com/sensors/lasersensor.htm
des prob ist halt nur, dass du im unebenen gelände dein ziel auch gescheit treffen musst.
mfg jeffrey

HeXPloreR
28.08.2008, 16:12
hey,
vielen dank für die ausführungen...das mit den spiegeln versuche ich mal umzusetzen.
Das mit dem Filter und den Fototransistoren/Fotodioden ist auch super, das probiere ich so auf jeden Fall. Ich habe gleich mal ne skizze gemacht und merke mir diesen Ansatz vor.
Wenn ich das dann richtig verstanden habe, bräuchte ich das ganze zweimal in einem definiertem Abstand zueinander, wobei eines davon den berechnetet winkel übergibt um die Entfernung zu erhalten. Damit umgehe ich dann zwar die komfortable Laufzeitmessung, aber benötige auch keine schnelle Verarbeitung mehr.
Denke mal das die gemachte Drehbewegung bei Aussendung bis zum Empfang im Vergleich zur Lichtgeschwindigkeit nicht so sehr ins Gewicht fällt und damit immer noch eine gute Genauigkeit erreicht wird. Je weiter man von der zu messenden Bake entfernt ist umso wichtiger wird die Genauigkeit des Winkels.

Durch die Kamera, und der Objekterfassung/Verfolgung des Lichtpunktes könnte dann auch sichergestellt werden das ich die richtige bake zum messen anvisiere. Die Kamera wird ja sowieso auch benötigt um einen Zielpunkt zu setzen.

Spare mir dann die Nachtsicht vorerst mal als Zusatzoption ein.


mfg

EDIT(29.08.-11:35): irgendwie rede ich auch nur quatsch: ..wenn ich die reflektion empfange brauche ich immer noch eine schnelle berechnung, und dann kann ich auch gleich die Laufzeit errechnen, ohne erst diesen dummen winkel, ist doch so oder?

HeXPloreR
28.08.2008, 19:53
upps...den jeffrey hab ich ja noch garnicht gesehen...hast dich ja dazwischen geschummelt was hehe...das ist echt ein guter tipp, vielen dank dafür. Habe mich letzte woche schon mal nach Laserpiontern umgesehen mit denen ich arbeiten wollte, gibt da schon was brauchbares um etwas zu basteln.
In der skizze vom Link steht die Reflextionsfläche ziemlich senkrecht zum Laser, auch wenn sie das Licht diffudiert. Aber die erste Version dort macht es deutlich das der Empfänger nicht zu weit von der Quelle entfernt sein sollte um noch brauchbare Messwerte zu erhalten. Aber habe ich das da richtig gelesen, auf die Laserdiode wird eine Frequenz aufmoduliert durch diesen chip den er verbaut hat, um Störlicht zu elemenieren?. Und was wird denn da als Bake benutzt "catadioptric reflectors"??

Ich hoffe mal das es mit der Spiegelprismenversion schon klappen kann das Problem geringer Unebenheiten zu lösen. Mir reicht es aber schon wenn es überhaupt funktioniert.
Zum waagerecht stehen ist ein Gyroskop eingeplant, es gibt da einen direkt für mein system...kostet halt nur richtig was :( ... zusätzlich die Baken so hoch ziehen das immer getroffen wird...sage mal der Reflektorteil so ca 10cm lang.
Durch die Bauart sollte der Einfallwinkel gleich dem Reflektionswinkel sein. Der parallele Abstand des Sendestrahls und des Reflektionstrahls der dadurch entsteht kommt dabei etwas auf die Grösse der Prismen an, sowie die Stelle auf dem Spiegel. Eine Abänderung der 90° Prismen auf z.B. 88° würde verursachen das die Strahlen sich kreuzen /bzw nicht mehr parallel laufen, was nur bei sehr großen Entfernungen dann zu einem wirklichen Problem werden könnte. Bei Messngen die innerhalb der "Brennweite" stattfinden sollen könnte das vorteilhaft sein.

Also ganz genau gesagt, möchte ich auch zur Entfernungsmessung triangulieren, weshalb ich immer wieder von der Laufzeitmessung wegkomme...dazu muß die Laserreflektion sicher von dem Empfänger erkannt werden, dann wird die Drehbewegung angehalten und die Winkel ausgewertet. :-k


mfg

EDIT : *mal Lupe rausgeholt ...und ganz genau hingeguckt hab* ....weißes Reflektorband??!!! ..sowas habe ich hier noch in rot liegen!! ..das reicht schon als Bake aus...ich bin echt beeindruckt!!!! respekt an den Erbauer =D>

i_make_it
30.08.2008, 18:45
Es muß schon weißes Reflektorband sein oder Dein rotes Band hat genau die Farbe die der Wellenlänge des Lasers entspricht.
Denn Die Farbe eines Objektes entsteht dadurch das alle anderen Wellenlängen absorbiert werden.
Also sollte dein Band z.B.: 650nm haben, dein Laser aber 670nm, dann siehst du gar nichts. Weil dein Laserstrahl einfach absorbiert wird.

Die Reflektorbänder streuen meistens bis zu 40% und Absorbieren auch noch ein bischen was.
Ein Prismenreflektor schluckt ca. 18% wenn jeder Spiegel 9% schluckt (Moderner Silberspiegel). Spezielle Laserspiegel aus monkristallinem Kupfer mit Gold oder Molibdän Beschichtung liegen be ca. 2% kosten aber gut 200€ und mehr pro Stück.

HeXPloreR
30.08.2008, 19:28
hi,

naja ich dachte mir das schon, wollte nur damit feststellen das ich überhaupt nicht auf die idee kam...grade weil ich ja direkt eines auf dem tisch liegen habe, eben nur rot...voll blind bin. ;)
Ich denke das es mit der Spiegelvariante dann deutlich besser funktioniert, ich schaue mir das mal genauer an mit den Berechnungen und Umsetzung.
Also 200 Euronen hab ich für high-tech spiegel grade nicht so eingeplant ;)

Trotzdem schaue ich mal beim Kfz-Kennzeichenhändler meines vertrauens rein, vielleicht hat der ja was schönes reflektierendes rum liegen, bevor ich reflektoren kaufe. Ob diese dinger aus plastik auch gehen, wenn man die Prismen nach aussen macht?. Das wird zu testen sein.


mfg

i_make_it
30.08.2008, 20:49
Du kannst ja für erste tests mit einem Reflektor z.B.: von conrad beginnen.
Artikel-Nr.: 185574 - 62
10,21 EUR
(B x H x T) 70 x 51 x 7 mm

Zum Testen benötigst Du ja erst mal nur 2 Stück da du den Testaufbau so gestalten kannst, das die Reflektorseite immer zum Sensor zeigt.

crazytj
15.09.2011, 10:59
Hi,

ich weiß, der Beitrag hat schon ein paar Jährchen auf dem Buckel, aber ich möchte gerne anderen Suchenden meine Lösung vorstellen....

Ich bin noch ganz frisch dabei und habe mich als Autodidakt durch die Beiträge gewühlt und nach Lösungen gesucht.
Der Ansatz des Rückwärtsschnitts hat mir dabei sehr geholfen, mein aktuelles Projekt etwas voran zu bringen.

Mit meinem ersten Beitrag hier möchte ich anderen Suchenden evtl. helfen.

Leider haben mir die Zeichnungen hier nur bedingt weitergeholfen, da ich für ein Programm nun mal den Rechenweg benötige. Diesen konnte ich mir auch nicht selbst daraus ableiten, dafür liegt mein Mathematikunterricht wohl schon zu lange zurück...

Hier ein paar Tipps/Links zum Thema, die mir sehr geholfen haben. Und anschließend ein kleines C-Programm mit dem Lösungsweg.


http://www.geogebra.org/webstart/geogebra.html Java-Tool für Geometrie
http://www.3eck.org/triangle/de/calculator_advanced.php online Dreiecksberechnung
http://diegeodaeten.de/rueckwaertsschnitt.html Über das Thema Rückwärtsschnitt
http://www.ottmarlabonde.de/L1/VermKunde/ruwesn2.html Rückwärtsschnitt im Detail
Vermessungskunde, Teil 2 von Volker Matthews bei google-books (http://books.google.de/books?id=YmCAyi1a4F0C&pg=PA65&lpg=PA65&dq=&source=bl&ots=oHfqJB_Dz8&sig=UOkj1nXzBmKtFihRp_Qm9mIxYe8&hl=de&ei=cI1nTsS1HIKj4gTVrdC_DA&sa=X&oi=book_result&ct=result&resnum=7&ved=0CFUQ6AEwBg#v=onepage&q&f=false)

und letztendlich die Seite, die mir die Lösung verständlich(im Quelltext) erklärt hat:
http://mesamike.org/geocache/GC1B0Q9/tienstra/ ein schlanker Javascript Rückwärtsschnitt-rechner.

Mit dessen Hilfe habe ich dann folgendes kleines C-Programm geschrieben/portiert.
Die Positionsdaten der Baken werden nicht abgefragt, sondern müssen im oberen Abschnitt eingetragen werden.
Winkel alpha ist der Winkel BC und Winkel gamma ist der Winkel AB.



#include <stdio.h>
#include <math.h>


void calculate(float ANG_ALPHA, float ANG_GAMMA, float* position)
{
float AX,BX,CX,AY,BY,CY,ANG_BETA,AB,AC,BC,ANG_A,ANG_B,AN G_C,COT_A,COT_B,COT_C,COT_ALPHA,COT_BETA,COT_GAMMA ,KA,KB,KC,K,E,N;

// Positionsdaten der BAKEN müssen hier festgelegt werden//
AX=2.9;//a.x
AY=4.18;//a.y

BX=7.1;//b.x
BY=4.58;//b.y

CX=5.28;//c.x
CY=0.56;//c.y
////////////////////////////////////////////////////////////////////

ANG_ALPHA=ANG_ALPHA * M_PI / 180;
ANG_GAMMA=ANG_GAMMA * M_PI / 180;
ANG_BETA=2*M_PI - ANG_ALPHA - ANG_GAMMA;

AB = sqrt( pow((AX-BX),2) + pow((AY-BY),2) );
AC = sqrt( pow((AX-CX),2) + pow((AY-CY),2) );
BC = sqrt( pow((BX-CX),2) + pow((BY-CY),2) );

ANG_A = acos( (pow(AB, 2) + pow(AC,2) - pow(BC,2))/(2*AB*AC) );
ANG_B = acos( (pow(AB, 2) + pow(BC,2) - pow(AC,2))/(2*AB*BC) );
ANG_C = acos( (pow(AC, 2) + pow(BC,2) - pow(AB,2))/(2*AC*BC) );

COT_A = 1/tan(ANG_A);
COT_B = 1/tan(ANG_B);
COT_C = 1/tan(ANG_C);
COT_ALPHA = 1/tan(ANG_ALPHA);
COT_BETA = 1/tan(ANG_BETA);
COT_GAMMA = 1/tan(ANG_GAMMA);

KA = 1/(COT_A - COT_ALPHA);
KB = 1/(COT_B - COT_BETA);
KC = 1/(COT_C - COT_GAMMA);
K = KA + KB + KC;

E = (KA*AX + KB*BX + KC*CX)/K;
N = (KA*AY + KB*BY + KC*CY)/K;
position[0]= E;
position[1]= N;
}


int main()
{
printf("Bitte Winkel alpha (Winkel BC) eingeben:\n");
float alpha;
scanf("%f",&alpha);
printf("Bitte Winkel gamma (Winkel AB) eingeben:\n");
float gamma;
scanf("%f",&gamma);
float position[1];
calculate(alpha, gamma, position);
printf("x: %f\n",position[0]);
printf("y: %f\n",position[1]);
system("PAUSE");
}



Vielleicht hilf das jemanden, würde mich freuen!


Grüße

Tobi

andish
15.10.2011, 15:49
Danke Tobi!
Vielleicht hilft jemanden noch folgende Überlegung:
Ich möchte keine Baken im Haus, da das die Innenarchitektin nicht mag. Im Garten naja.
Daher habe ich mich auf die Suche nach NIR-Absorbern bzw. NIR-Pigmenten gemacht.
Es gibt wirklich was, wird als Wärmeschutz für Autoglas von BASF angeboten, hoffe ich. Mal sehen.
Die Idee ist, dass ich die Baken mit Pinsel (oder für die Profis mit einem Wand-Tintenstrahler) auftrage.
Jede morst durch Strichbreite und Abstand zwischen Strichen ihre ID.
Das Pigment, das ich fand, ist von der Uni Mainz für BASF entwickelt worden, es ist ein 4-fach Naphtalin-Molekül und das Molekül heist Quaterrylen (http://www.informe.basf.es/group/corporate/de/function/conversions:/publish/content/innovations/events-presentations/energy-management/images/BASF_P-422-Boehm.pdf).
Ein andere Hersteller ist LuminoChem, NuNIR5 (http://www.luminochem.com/pict/pdf/LUNIR5mE.pdf). Vielleicht gibt es jemand, der mal irgendwoher ein paar ml ergattert. Bitte Quelle melden ;)

Die Idee ist schon, einen Detektor zu bauen, der mit moduliertem Lichtstrahl die Wand abtastet. Passiv geht es auch, man sollte dann vielleicht vergleichen, welchen Helligkeitswert der Sensor sowohl im IR wie auch im Sichtbaren (z.B. bei blau) liefert. Durch das hoffentlich ungewöhnliche Verhältnis der gepinselten Stellen sollte sich ein ausreichender Kontrast ergeben.

Ich habe schon so einen Sharp Detektor mit einegebauter modulierter Ansteuerung einer LED oder eines Laserpointers da, und werde demnächst mein Glück versuchen.
Leider habe ich als "unsichtbare" Pigmente bisher nur UV-Lumineszenz-Pigmente bekommen können, und die verändern natürlich den optischen Eindruck einer Fläche schon, so dass ich nicht sicher bin, ob ich es damit überhaupt probieren will.

Hat jemand schon mal farbneutrale Mikroprismen in Klarlack zum Aufpinseln gefunden?
Das würde als Reflektor nur selten auffallen (etwa, wenn jemand mit dem direkten Blitz Fotos machte ;)

Ein selbstnivellierenden Laser gabs mal bei *ldi, gibt es bestimmt günstig überall sonst.
Da muss man aber Pause machen für, bei Gewackel tut der nicht.
Würde das jemandem helfen, der nicht sicher ist, wie schepps sein Bot steht?

Ich finde, dass man schön in Bodennähe messen sollte und auch mal ein bisschen mitteln über 2-3 Messungen, dazwischen mit Odometrie überbrücken. Vielleicht gibt es demnächst (aus Schrott-Handies;) billigere 5DOF-Beschleunigungssensoren, die so präzise sind, dass sie mich zwischen zwei Baken-Peilungen die erlittenden Bewegung zum zurückgelegten Weg aufintegrieren (i.e. summieren) lassen.
Maximale Erfolge!

Andis.