PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Virtueller Bumper ? (entschieden)



PICture
12.07.2010, 00:22
Hallo !

Ich möchte bei meinem künstlichen Tieren (k.T.) und Raumpfleger einen sehr einfachen virtuellen Bumper anwenden (wie im Code skizziert), weil der Getriebemotor zu stark bzw. zu schwach ist um eine Änderung des Motorstroms beim Hinernis ganz einfach und sicher festzustellen.

Wenn das k.T. fährt die meisten Hindernisse (ausser höhen Möbel, Wänden, usw.) durch, dann ist nur die Neigung bzw. abruptes Bremsen sicher erkennbar.

Hat das schon jemand probiert und Erfahrungen damit gemacht ?

Ich würde mich wirklich über Berichte sehr freuen, weil ich keine Zeit für unnötige Experimente verlieren möchte. :)

MfG



X X = Befestigung
|
| F = Faden
|
| M = permanenter Magnet
|
|F R = Reedkontakt (evtl. mit Spule)
|
|
|
|
|
/ \
( M )
\_/ _
_______ __/ \__
---|_______|--- ---|_( X )_|---
R \_/

TobiKa
12.07.2010, 00:33
Vielleicht wäre ein Hallsensor besser

PICture
12.07.2010, 00:52
Hallo TobiKa!

Danke für deine blitzschnelle Antwort um die Zeit ! :)

Ein Hallsensor wäre sicher besser. Sorry, ich habe vergessen, dass ich nur max. 2,4 V zur Verfügung habe.

Nach deiner Antwort, scheint meine "verrükte" Idee nicht ganz sinnlos zu sein. Ich denke dass mit durch die Spule von Reedrelais fliessender Strom lässt sich die Empfidligkeit des "Sensors" erhöhen (falls nötig).

MfG

TobiKa
12.07.2010, 00:55
Wenns dir wirklich nur um an und aus geht, dann reicht sicher n Reed Relais mit z.B. nem Neodym... wäre auch einfacher umzusetzen.
Es gibt Reed Relais auch ohne Spule! Ich denke das ist eher das was du suchst.

Kann nich schlafen, is so warm ;)

PICture
12.07.2010, 01:08
Ich werde dann sicher damit ein bißchen experimentieren müssen, aber zumindest hat es Sinn. :)

Einfacher scheint mir ein Neigungssensor zu sein, mir fehlt jedoch praktische Erfahrung. :(

Möglicherweise wäre eine von im Code skizzierten monostabilen Varianten für alle Richtungen besser, da die Bewegungsrichtung der Steuerung bekannt ist ?

Mir scheinen die mechanische Konstruktionen zu kompliziert zum Basteln zu sein und werde demnächst versuchen den wachsenden bei mechanischer Belastung eines DC Motors Abstand von Impulsen an seinen Bürsten (rein digital jedoch ohne µC) auszuwerten um beim Anfahren eines Hindernises "echten" Bumper zu emmulieren (siehe dazu https://www.roboternetz.de/phpBB2/viewtopic.php?p=504934#504934 ).

MfG

1. Variante
_
/ _ \
/ / \ \
( ( O ) )
\ \_/ / <
\ _ / \
\ Metallring
/
Leitungen <-----o-------o<
zur Steuerung <-------\ O /<---- Metallkugel
--- in Metalldelle



2. Variante Metallkugel
/
/
_<
/ \
<--|-----------|<--- Metallring
\_/
/
Leitungen /
zur Steuerung /<--- Metallfeder
/
/
<--------/
-------------
Botboden

ranke
12.07.2010, 09:10
Picture,
für Dein k.T. sehe ich folgende prinzipielle Nachteile des virtuellen Bumpers gegenüber einem "echten" Bumper:

1. Der Virtuelle gibt nur kurz Kontakt beim Anstoß. Der echte gibt solange Kontakt, wie die Berührung zum Hindernis da ist. Das k.T. weiss also nicht, wann es wieder freigefahren ist.
2. Der Virtuelle reagiert nur auf kräftige Anstöße. Schleifende Anstöße und Anstöße aus langsamer Fahrt werden nicht erkannt.
3. Der Virtuelle ist anfällig gegen Kippen (z.B. Teppichkante, Schwelle, unebener Boden).
4. Nachdem Du bei Deinen Konstruktionen einen großen Wert auf sparsamen Energieumsatz legst, ist der 4. Nachteil (schaltet auch bei zu schnellem Gasgeben) wahrscheinlich nicht von Belang.

Ansonsten wären prinzipiell wohl alle gezeigten Konstruktionen geeignet. Der Reedkontakt ist vielleicht nicht so optimal, weil die meisten eine "elliptische Charakteristik" haben: in Richtung der Anschlüsse muss man weiter mit dem Magneten weggehen , damit er schaltet, quer zu den Anschlüssen schaltet er schneller.
Mein Favourit wäre wohl die Kombination aus 1 und 3: Pendel mit elektrisch leitenden Gewicht in Metallring (man kann statt dem Faden einen kräftigen Draht nehmen und am Ende zu einer 180° Öse biegen, die man in eine ebensolche einhängt. Das gibt ein Pendel mit Freiheit in alle Richtungen und die elektrische Zuleitung zum Pendel iat auch schon dabei). Bei Flipperautomaten sehen die "Tilt"-Sensoren so aus.

oberallgeier
12.07.2010, 09:18
Kennst Du herbie? Dort ist eine Spiralfeder in einem Metallring ein praktischer Bumper/Sensor - und sieht aus wie ein Mäuseschwanz. Vielleicht ist das etwas für Dich? Schau mal hier, (http://www.solarbotics.com/assets/documentation/khm_herbie_the_mousebot_manual.pdf) gleich auf der ersten Seite, da sieht man den Sensor in Großaufnahme, auf Seite 11 und 12 Einzelteile und Zusammenbau.

................http://www.solarbotics.com/assets/images/k_hm/khm_black_-_dcn9679_ps.jpg

PICture
12.07.2010, 10:31
Hallo!

@ ranke!

Danke sehr für deine detailierte Analise meinen verrückten Ideen ! :)

Ich versuche zu allen deinen Bemerkungen kurz meine Stellung nehmen.

1. Beim Anfahren eines Hindernisses, wenn genügender Grip der Antriebsräder vorhanden ist, wird der Motor ganz angehalten, sonst stark gebremst (verlangsamt) und der Abstand zwishen Impulsen viel grösser als beim Freifahren. Ich möchte das auswerten und somit sollte mein rein elektronischer vertueller Bumper den "echten" fast perfekt emmulieren (ersetzen).

2. Wenn ich den Abstand zwischen den Impulsen ziemlich genau "messe", kann ich den Antriebsmotor bei leichten Vergrösserung des Abstands fast sofort stoppen (also bei leichter Berührung des Hindernisses).

3. Da gebe ich dir völlig Recht und sehe bisher keine elektronische Lösung, wenn z.B. der Antriebsrad beim Anfahren eines Hindernisses in der Luft hängen würde, wird das Hindernis gar nicht erkant. Dabei sind die mechanische Lösungen im Vorteil.

4. Das verstehe ich nicht ganz, da der wirtuelle Bumper sollte nur bei einer Drehzahl die unter eigestellter als Grenze liegt schliessen. Die Geschwindigkeit ist permanent und es gibt kein Gasgeben.

Dein Beispiel mit Flipperautomaten ist für mich ein Beweis, dass solche Lösung schon praktisch ausprobiert und zuverlässig ist. Ich befürchte nur wahrscheinlich unbegründet, dass es während der Fahrt die Kugel pendeln könnte. Meine alle k.T. werden sich aber langsam bewegen.

Ich überlege gerade, ob man nicht einen Neigungssensor, anstatt mit Quicksilber, mit Salzwasser bauen könnte. Es wäre nur eine kleine Öffnung im Behälter nötig, damit durch Elektrolyse erzeugter, leider gesundheitschädlicher Chlor ausweichen kann. Aber mit Strömen in µA bereich sollte es kein Problem werden.

Ich bedanke mich sehr für deinen Favoriten, den ich mir sogar basteln traue und er ist für mich sicher ungschlagbar einfacher als jede elektronische Lösung. Damit werde ich dann experimentieren und bin fast sicher das es klappt. :)

Ich denke, dass es auch mit beliebigen Metalstück, anstatt einer Kugel gehen sollte, da ich keine Metallkugel zur Hand habe und es kein Messsensor seien muß ...

@ oberallgeier

Von dem Namen kenne ich Herbie schon, näher aber nicht. Herzlichen Dank für dein Link, den ich mir sicher sehr genau durchstudieren werde, weil wachrscheinlich ich die Konstruktion sogar nachbauen könnte.

Leider suche ich einen Sensor zum evtl Nachbauen, der im Bot drinn ist, reagiert aber auf Berührung eines Hindernises durch Umfang des Bots und ohne umfangreichen Modifikazionen kann ich es leider nicht direkt anwenden, da meine K.T. möglichst klein/niedrig seien sollten. :(

Trotzdem vielen Dank für deine Hilfsbereitschaft :)

MfG

ranke
12.07.2010, 11:41
4. Das verstehe ich nicht ganz, da der wirtuelle Bumper sollte nur bei einer Drehzahl die unter eigestellter als Grenze liegt schliessen. Die Geschwindigkeit ist permanent und es gibt kein Gasgeben.


Ich hatte mir schon gedacht, dass Deine k.T. eher langsame Bewegungen machen. Dann ist der Einwand für Dich ohne Bedeutung.



Ich befürchte nur wahrscheinlich unbegründet, dass es während der Fahrt die Kugel pendeln könnte.


Das wäre schon möglich. Eventuell durch Luftflügel oder Permanentmagnet (Wirbelströme) das Pendel dämpfen? Man wird auch den Luftspalt zwischen Kugel und Ring experimentell ermitteln müssen.



Ich überlege gerade, ob man nicht einen Neigungssensor, anstatt mit Quicksilber, mit Salzwasser bauen könnte.


Keine gute Idee: 1. wird Dir das Salzwasser die Kontakte korrodieren (wenn Du nicht alles aus Gold oder Platin machst), 2. Benetzt das Salzwasser viel zu gut, ein dünner Wasserfilm bleibt noch zwischen den Kontakten, obwohl der Tropfen längst woanders ist. Quecksilber benetzt sehr schlecht und nimmt als Tropfen immer die Form einer breitgequetschten Kugel an. Wenn Du einen Sensor in dieser Bauform machen willst, nimm eine Kugel aus einem alten Kugellager.

PICture
12.07.2010, 12:19
Noch mat vielen Dank für deine sehr hilfreiche Ratschläge. Ich denke, das eine Kugel am besten wäre. Es muss aber experimental optimaler Gewicht/Trägheit ermittelt werden, damit das Pendeln und Reaktionszeit möglichst klein werden. Auslösend wird der erste Kurzschluss, und danach kann auf Berühigung des "Pendels " abgewartet werden.

Wichtig ist auch das es beim Anfahren nicht gleich Hindernis erkannt wird. Das ganze für mich obwohl so einfach, so kompliziert seien scheint. Aber dafür habe ich genug Zeit um das Optimale zu finden.

Ich habe mich im Gymnysium u.a. für Chemie stark interressiert und oft in meinem "Labor" im Keller eine Elektrolyse eines Salzwassers im Glas durchgeführt. Ich habe damals selber rausgefunden, das in Salzwasser gesteckte zwei Kohlenstifte aus alten Batterien mit angelöteten an die Messingkapen Leitungen nach Umhüllung mit geschmolzener Kerze gar nicht korrodiert haben. Deswegen ist mir jetzt diese verrücke Idee eingefallen, weil sie für mich einfacher zum Realisieren wäre. :)

MfG

oberallgeier
12.07.2010, 15:56
... in Salzwasser gesteckte zwei Kohlenstifte aus alten Batterien ... gar nicht korrodiert ...Kohle bzw. Graphit ist sehr korrosionsfest. In einer Version (Quecksilberverfahren) der industriellen Chlor-Alkali-Elektrolyse werden Graphitanoden verwendet, die gegen das anfallende Chlorgas beständig sind . . .
... Kontakte korrodieren (wenn Du nicht alles aus Gold oder Platin machst) ...Nur der Vollständigkeit halber dazu: auch etliche Edelstähle gehen ganz gut (4529 oder SMO, allgemein: Mo-Gehalt möglichst hoch, > 4 .. 6%), Hastelloy geht sehr gut - lieber nicht nach dem Preis fragen, mal von Kupfer- und anderen Legierungen abgesehen, die mit einer Opferanode arbeiten.

Richard
12.07.2010, 16:23
Oft werden solche Flüssigkeits-Schalter auch mit Wechselspannung
betrieben damit weniger Korrosion auftritt.

Gruß Richard

PICture
12.07.2010, 17:56
Hallo!

Das alles oben geschriebene stimmt, aber für unnützliche Spielzeuge lohn es sich einfach nicht, so wie in der Industie, aus teuersten Materialien zu bauen. Wenn ich mir noch erinnern kann, wird für fast alle chemische Reaktionen (zumindest in Schulen) immer ein Glasbehälter gennomen und ich habe bisher kein korrodiertes Glas gesehen.

Wenn es z.B. wegen Korrosion nicht mehr funktionieren sollte, wird es billig neu gebaut und erneuert. Ich tendiere momentan zum Salzwasserschalter, weil es für mich einfacher zu bauen ist und Wasser finde ich besser als Metall, wenn es um Bewegungseigenschaften geht.

Als Behälter möchte ich ganz kleine Flasche von Tropfen nehmen und die Kohlenelektroden von oben durch Verschluß einführen, das in Ruhezustand der Schalter (Kontakt) geöffnet wäre. Dann sollte beim Anstossen eines Hindernises das sich bewegendes Salzwasser den Schalter schliessen.

Praktisch muss ich das natürlich ausprobieren und das notwendige ändern. Die Anzahl nötigen Elektroden ist auch noch nicht bekannt. Es ist auch möglich, dass bei enem J-FET Impedanzwandler an den Elektroden (wie bei PH-Meter) sogar Leitungswasser ohne Salz genug leitend wird und ein Kunststoffbehälter ausreicht.

Nach nochmaligen Überdenken meines Bedarfs habe ich letztendlich entschieden, dass ich beide virtuelle Bumper (Motor als Impulsgeber und Neigungssensor) anwenden werde, weil keiner einzeln alle mögliche Fälle beim Anfahren eines Hindernises völlig deckt.

Ich lasse mich aber sehr gerne abraten, wenn ich damit falsch liege und bedanke mich sehr herzlich bei allen Diskutanten für riesiege Hife, vor allem wenn es um Erfahrung geht. :)

MfG

ranke
13.07.2010, 11:02
Ich lasse mich aber sehr gerne abraten


Dann will ich es nochmal versuchen O:)

Probier doch erstmal aus, wie sich der Wassertropfen verhält, wenn Du ichn auf eine Oberfäche (Glas, oder was Du verwenden willst) bringst. Du wirst feststellen, dass man das Glas ziemlich stark verkippen muss, damit er sich bewegt (nicht umsonst hat man sieht man oft haftende Wassertropfen an senkrechten Fenstern). Ich vermute, dass man daraus keinen vernünftigen Sensor bauen kann. Andere Probleme machen noch Verdunstung, Kondensation und die nie konstant zu haltenden Benetzungseigenschaften der beteiligten Oberflächen.

PICture
13.07.2010, 11:57
Hallo!

Vielen Dank für deinen Beitrag, der mich zum Denken bewegt. ! :)

Ich habe mich bisher eben für zwei virtuelle Bumper für mit µC mit nur 6 I/O's gesteurte k.T. entschieden.

1. Überwachung der Impulse vom Antriebsmotor zum Stoppen und weiter nach Programm, wenn er über festgelegter Grenze gebremst wird.

2. Neigungssensor zum Stoppen des Antriebsmotors, wenn er zwar normal dreht aber z.B. ein Rad/Kette in der Luft "hängt". Dann sollte die Steuerung festgelegte Zeit abwarten und wenn die Neigung immer noch besteht um Hilfe z.B. mit Piezo "rufen".

Das sollte für meine k.T. reichen, aber wegen zu kleiner Erfahrung werde ich nie sicher, bevor ich es nicht ausprobiere. Die einfachste und günstigste fertige Neigungssensoren können auch erst bei Neigung min. 15° reagieren und die Steuerung kann kurze Impulse wehränd "normaller" Fahrt ignorieren. Ich bin immer noch verweifelt zwischen Metall und Wasser ... O:)

Man könnte wahrscheinlich "Metallschalter" (z.B. Kugel+Metallring) in einer dicker Flüssigkeit (z.B. Öl) verlangsamen, oder ?

Was denkst du, reicht es aus, oder fehlt noch was, damit meine sich langsam bewegende k.T. ständig "rumlaufen" und fast nie um Hilfe "rufen" ?

MfG

ranke
13.07.2010, 18:39
Ich versuche jetzt nochmal die Aufgabenstellung zusammenzufassen, so wie ich es verstanden habe: Sofern Deine Motordrehzahlüberwachung zuverlässig funktioniert, wird "normales" Anstoßen gegen Hindernisse zuverlässig erkannt (beide Motoren bleiben stehen). Der Zweck des Neigungssensors ist es, Störungen zu erkennen, bei denen beide Antriebsräder weiterlaufen. Das kann sein: Glatteis (schließen wir bei Indoorbetrieb aus) oder Auffahren auf Hindernisse mit dem Boden, so dass beide Antriebsräder mehr oder weniger in der Luft hängen (wenn ein Rad noch am Boden bleibt wird sich das k.T. solange drehen, bis entweder beide Räder hängen, oder es fährt sich frei oder es stößt beim Drehen an, so dass das Rad das noch am Boden ist blockiert, was die Drehzahlerkennung aktiviert).
Dein Ansatz ist, mit einem Beschleunigungs / Neigungssensor einerseits die Situation zu erkennen, in der sich das k.T. festfährt (Pendelausschlag durch die abrupte Verzögerung) oder andererseits das (hoffentliche) Schiefstehen des k.T. nach dem Festfahren zu erkennen.

Ich bin jetzt im Zweifel, ob der Ansatz überhaupt sinnvoll ist, längeres Schiefstehen mit gleichzeitiger Bewegung kann ja ein normaler Zustand sein (ein Rad auf Boden, das andere auf Teppich), wie soll das unterschieden werden? Das Anstoßen kann so weich geschehen, dass der Sensor gar nicht anders anspricht wie bei einem normalen Fahrmanöver. Wenn das Hindernis mittig unter dem k.T. ist, wird es vielleicht nicht einmal schief stehen.

Ein alternativer Ansatz zum Erkennen, ob ein Rad (oder beide) in der Luft hängen: Man verändert für kurze Zeit den Motorstrom und beobachtet wie schnell sich dabei die Motordrehzahl verändert. Fährt das k.T. normal, dann wird man nur eine langsame (oder keine) Änderung feststellen, weil die Schwungmasse des k.T. zu groß ist. Hängt das Rad in der Luft, dann ist die beschleunigte Masse klein und die Drehzahl wird sich schnell ändern. Die Drehzahl misst Du schon, also brauchst Du dafür nicht einmal einen zusätzlichen Sensor.

PICture
13.07.2010, 19:40
Hallo!

Danke dir sehr für die Zusammenfassung ! :)

Ich möchte es so einfach, wie möglich zu gestalten, weil es nur Spielzeug ist. Im schlimmsten Fall stirbt ein Tier das nichtmal lebt ... :)

Das von dir beschriebener Fall ist sicher realisierbar z.B. mit einer Videokamera, ist mir jedoch zu teuer.

Normaleweise wenn man die Überwachung der Drehzahl softwaremässig so macht, das immer für Mittelwert entsprechende Grenzen nach unten und nach oben festgelegt werden, könnte man ziemlich genau sowohl das Bremsen als auch Beschleunigen eines Rades feststellen und entsprechend reagieren. Das wird sich sogar auf momentane Akkuspannung anpassen und wenn man feste Untergrenze definiert, entfällt auch diese Überwachung. Super !!! :cheesy:

Jetzt dank deinem Gedankenanstoss, bin ich schon ganz sicher, dass ich u.a. keinen Neigungssensor brauche. Besten Dank ... :)

Sollte ich jedoch zukünftig einen Neidungssensor brauchen, kaufe ich mir vorrätig diese:

http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=300447250925&ssPageName=STRK:MEWAX:IT

So wie ich jetzt die ganze Steuerung für meine k.T. sehe, ist ein µC mit 6 I/O's (8-Pin) sogar in SMD oversized. Ich habe aber leder kleinere nicht gefunden ... :(

MfG