Kraftmessendes Servo?

2 Antworten

Du musst den Sensor Tiefpassfiltern. Also zB das Signal über einen Besselfilter oder dergleichen schicken dann wirds dadurch geglättet. Eine andere Möglichkeit wäre ein gleitender Mittelwert.

Wenns besonders schnell gehen soll kannst du auch immer über 16 Werte mitteln allerdings verlierst du dadurch Abtastfrequenz.

Einfaches Differenzieren wie bei dir ist aber meist sehr Fehleranfällig. Um das zu lösen gibts unterschiedliche Methoden so kann man zB die Daten in einem Bereich durch ein allgemeines Polynom approximieren und darüber die Ableitung berechnen, solche Methoden sind allerdings mehr oder weniger komplex liefern aber idR bessere Lösungen.


FloTec09 
Beitragsersteller
 23.08.2023, 17:32

Ja, das ist leider das Problem, ich bin erst 13 Jahre alt und kenne solche komplizierten berechnungsartem nicht, wenn ich eine Erklärung dafür finden könnte, werde ich das mal probieren, aber Danke!

0
Kelec  23.08.2023, 17:33
@FloTec09

Zumindest für Tiefpassfilter und Mittelwertfilter findest du fertige Codes für den Arduino.

0
FloTec09 
Beitragsersteller
 23.08.2023, 17:34
@Kelec

Super! Das mit dem Mittelwert habe ich sowieso schon oft verwendet, daran habe ich einfach nicht gedacht....

1
Kelec  23.08.2023, 17:39
@FloTec09

Ja mitteln ist die einfachstw Möglichkeit erwarte dir aber keine All zu großen Wunder auch wenns natürlich deutlich besser wird ;)

Geht es dir eigentlich nur um den Motorschutz oder verfolgst du ein anderes Ziel?

0
FloTec09 
Beitragsersteller
 23.08.2023, 17:45
@Kelec

Nein, ich will damit eigentlich nur Einen Greifer für meinen Roboterarm bauen, der fühlt, wenn er zugreift.. 😁

0
FloTec09 
Beitragsersteller
 23.08.2023, 17:46
@Kelec

Und ich glaube ich werde einen Tiefpassfilter anstattdessen Mittelwerts verwenden...

0
Kelec  23.08.2023, 18:45
@FloTec09

Dazu musst du nicht die merken wenn der Strom ansteigt sondern du kannst einen Grenzwert für den Strom festlegen.

Da der Strom mit der Kraft korreliert bedeutet ein Stromgrenzwert gleichzeitig auch einen Kraftgrenzwert.

Im wesentlichen reicht es dann zu erkennen dass man zB 10ms lang über diesem Grenzwert ist und kann damit erkennen ob man ein Objekt gegriffen hat oder nicht.

Wenn die Kraft genau sein muss geht man im übrigen den Weg den Strom des Motors mit der Elektronik zu begrenzen. Wenn nun der Motor im Stromgrenzwert hängt und nicht weiter dreht kann man so erkennen dass er etwas gegriffen hat.

0
FloTec09 
Beitragsersteller
 23.08.2023, 20:23
@Kelec

Oja, auch daran habe ich aus unerklärlichen Gründen nicht gedacht🤣😁 ich glaube ich werde beide Methoden implementieren, die man dann wechseln kann....

0

Berechne den Durchschnitt der letzten 10 Inputs und nimm diesen Wert dann. Dann sind einzelne Ausreißer geglättet.

Oder akzeptiere nur einen Wert der in einem Bereich um den Durchschnittswert liegt. Bei einem Ausreißer nimmst du dann den letzten gemessenen Wert, der gültig war.


FloTec09 
Beitragsersteller
 23.08.2023, 17:30

Danke! Das werde ich mal probieren....

0
Kelec  23.08.2023, 17:29

In dem Fall wäre die Implementierung über mit 16 Werten etwas Effizienter sofern man mit Ganzzahlwerten rechnet.

0