PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kollisionsdetektor mit Accelerometer??



nortsys
19.01.2011, 21:32
Hallo, kann man mit einen Accelerometer einen Kollisionsdetektor realisieren? Dadurch könnten die Bumper entfallen. Leider habe ich nirgends etwas gefunden wo soetwas umgesetzt worden ist. Oder habe ich das mit den Beschleunigungssensor falsch verstanden .


Gruß Nortsys

ranke
20.01.2011, 07:53
Das sollte schon gehen. Die Airbag und Gurtstraffer Auslösung in Autos geht wohl auch so. Allerdings ist es mit einem Bumper einfacher, den Ort des Anstoßens aufzulösen, das Accelerometer sagt ja nur, dass die Fahrgeschwindigkeit rapide gegen Null gesunken ist, aber ob das links oder rechts angegangen ist, wird man kaum feststellen können. In manchen Situationen (sehr langsame Geschwindigkeiten, Anstoßen an nachgiebige Hindernisse oder Ausfädeln aus einer verklemmten Position) sieht mir der Bumper überlegen aus.

nortsys
20.01.2011, 09:54
Hallo Ranke,
Vielen Dank für die schnelle Antwort. Ich hatte an ein 3D Accelerometer gedacht. Da kann man ja alle Richtungen abfrühstücken. Und der mechanische Aufwand ist gleich Null.

RoboHolIC
20.01.2011, 11:45
Aus zwei orthogonalen Accelerometerachsen kann man die Stoßrichtung grundsätzlich ermitteln. Ich würde den Sensor geradeeben so weich aufhängen, daß die Eigenvibrationen der Roboterbasis sich nicht nennenswert auf die Sensorsignale auswirken. Stöße, i.d.R. sehr hohe Beschleunigungen, sollten dann schon ablesbar sein.

Soweit die theoretischen Überlegungen. In der Praxis wird man sehen müssen, ob man Bumps zuverlässig erkennen kann (einkanaliger ADC, Wandlungszeiten). Eventuell gibt es Sensoren mit I2C, die eine MIN/MAX-Funktion haben - das wäre genial. Oder man wertet einen analog ausgebenden Sensor mit Komparatoren aus.

In jedem Fall wäre das mal was anderes und es hat seine Fallstricke an anderen Stellen als die mechanischen Bumper.

oberallgeier
20.01.2011, 12:52
Ob dieser 6€-Sensor (klick), (http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=28515) ein dreiachsiger Beschleunigungssensor, noch erhältlich ist, weiß ich nicht. Damit lässt sich mit wenig Aufwand schön experimentieren, siehe Beispiel hier. (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=522674#522674) Der zugehörige Code ist in diesem Thread mehrfach vorhanden, dazu noch Diskussionen.

ranke
20.01.2011, 13:20
Ich hatte an ein 3D Accelerometer gedacht. Da kann man ja alle Richtungen abfrühstücken

Wenn man annimmt, dass der Roboter auf ein stehendes Hindernis auffährt, dann ist klar aus welcher Richtung der Stoß kommt, das muss man nicht extra noch messen. Das Accelerometer wird aber nicht feststellen, ob das Hindernis links, rechts oder frontal vor dem Roboter steht. Mit unterteilten Bumpern kann man das besser feststellen und eventuell angemessener reagieren.

nortsys
20.01.2011, 13:52
Das Accelerometer wird aber nicht feststellen, ob das Hindernis links, rechts oder frontal vor dem Roboter steht

Bei einer abgerundeten Frontpartie sollte das möglich sein, da sowohl die x- als auch die y-Achse betroffen ist.

@ oberallgeier: Danke für den Hinweis, hatte ich auch schon in's Auge gefasst. oder das hier:
http://www.pollin.de/shop/dt/NjU4OTgxOTk-/Bausaetze_Module/Module/3_Achsen_Beschleunigungssensor_Modul.html

ranke
20.01.2011, 15:33
Bei einer abgerundeten Frontpartie sollte das möglich sein, da sowohl die x- als auch die y-Achse betroffen ist.

Anstöße können natürlich verschieden aussehen. Bei einem relativ moderaten Anstoß wird das Fahrzeug der Masse m in einer kurzen Zeitspanne von der vorherigen Fahrgeschwindigkeit v (Vektor) auf Fahrgeschwindigkeit Null verzögert. Der dabei wirkende mechanische Impuls (Vektor) (der das elektrische Ausgangssignal bestimmt) ist in Größe und Richtung ausschließlich von m und v bestimmt. Die Rundung der Stoßstange spielt dabei keine Rolle (zumindest ist das in meiner Formelsammlung nicht angegeben).

Bei einem heftigeren Anstoß, wenn das Fahrzeug also nicht mehr ausschließlich rollt sondern rutscht (schleudert), hängt die Bewegung auch von der Kraftrichtung der Anstoßkraft (und damit der Form der Stoßstange) ab. Das Fahrzeug steht nach einem solchen Anstoß auch nicht mehr in der ursprünglichen Fahrtrichtung. Wenn man so etwas dedektieren will könnte das mit einem Beschleunigungssensor gehen (aber wahrscheinlich schwierig, weil das Quersignal viel geringer ist als das starke Anprallsignal in Fahrtrichtung). Besser wäre da wahrscheinlich ein Kreiselsensor (Gyro) zusätzlich zum Beschleunigungssensor.

Was auch möglich wäre ist die Verwendung von (mindestens) 2, räumlich getrennten Beschleunigungsaufnehmern. Unter Berücksichtigung der Tatsache, das das Chassis elastisch nachgiebt, sollten die Werte der Sensoren unterschiedlich aussehen, je nachdem wo der Anstoßpunkt sitzt.

Thoralf
21.01.2011, 08:57
sicher kommt es auf den Roboter an, welches Sensorsystem die besten Ergebnisse liefert.
Für einen Flugroboter (z.B. ein Blimp) wäre sicher eine Bumperschürze zu schwer. Dort könnte ein 3D-Accelerometer gute Ergebnisse bringen.
Für Bodenfahrzeuge oder Schiffe genügt 2D.
Allerdings muß man beim Preis des ELV-Sensors über die Achsenzahl auch nicht mehr nachdenken ;-)
Bei Fahrzeugen kann man ein Beschleunigungssignal genausogut über die meist vorhandenen Inkrementalsensoren der Räder beziehen.
Man muss aber beachten, dass zumindest beim Losfahren auch immer ein Beschleunigungssignal entsteht, das von der Fahrsteuerung natürlich ignoriert werden muss.

oberallgeier
21.01.2011, 09:24
... beachten, dass zumindest beim Losfahren auch immer ein Beschleunigungssignal entsteht ...Auch beim Abbremsen und scharfen Kurven, Beispiel siehe Video (https://www.roboternetz.de/phpBB2/viewtopic.php?t=45658) mit meinem WALL R.

Thoralf
21.01.2011, 10:14
yepp, stimmt.
Das Steuerprogramm wird dadurch ziemlich verkompliziert. Eine weitere Schikane sind weiche Hindernisse, die beim anstossen nur ein schwaches Beschleunigungssignal ergeben. Ein Bumper gibt da schon ein vernünftigeres Signal ab.