Verständnis für taktile Daten
Lernen Sie die Druckmassestruktur, kalibrieren Sie die Kontaktdetektionsschwellen, implementieren Sie die Logik der Greifendetektion und visualisieren Sie Kontaktereignisse im Laufe der Zeit mit dem Paxini Gen3.
Einheit 2 von 5 · Datenverständnis · ~ 1,5 Stunden
In dieser Einheit lernen Sie die räumliche Struktur des Druckschranks, kalibrieren Sie die Kontaktdetektionsschwellen für Ihren Griff, implementieren Sie die Logik der Greifdetektion und visualisieren Sie Kontaktereignisse im Laufe der Zeit.
Konzept
Die Raumdruckkarte
Das Feld frame.pressure_map ist ein 2D NumPy-Array, in dem jedes Element einen Taxel (Taktylpixel) darstellt. Für die Fingerspitzevariante ist das Array 8×8, das das 14×14 mm Sensorgebiet bei 1,75 mm Spitze abdeckt. Jeder Wert ist in Kilopascals (kPa).
Druck (kPa)
Kraft pro Einheit Fläche. Reichweite: 0
Kontaktbereich (mm2)
Summe der Flächen, auf denen der Druck die Schwelle übersteigt.
Gesamtkraft (N)
Integral des Drucks über den Kontaktbereich. Proportional zur Schließkraft des Griffes. Typischer Griff: 1
Zentroid (Rei, Kol)
Massenzentrum des Kontaktgebiets in der Taxel-Koordinate.
# Erforschen Sie die Druckkartenstruktur import paxini import numpy als np Sensor = paxini.Sensor() Sensor.start.Sensor.kalibrieren() # Null-Offset ohne Kontaktrahmen = Sensor.latest() Print("Array Form:", Frame.Pressure_Map.Form) # (8, 8) "Max Druck:", Frame.Pressure_Map.max(), "kPa") Print "Total Force:", Frame.total_force_n, "N") Print("Kontaktbereich:", Frame.contact_area_mm2, "mm2") Print "Centroid:", Frame.contact_cent) # (Rei,)
Schritt 1
Kontakt-/Nichtkontakt-Schwelle
Die Standardkontaktschwelle beträgt 5 kPa pro Tassel und 0,05 N Gesamtkraft. Diese Standardfunktionen funktionieren für die meisten Einstellungen, müssen jedoch aufgrund der Vorbelastung des Griffers und der Kabelspannung auf dem Sensor angepasst werden.
Führen Sie dieses Kalibrierungs-Skript aus, um das Rußniveau Ihres Sensors zu messen und eine entsprechende Schwelle festzulegen:
Import paxini Import numpy als np Sensor = paxini.Sensor() Sensor.start.Sensor.kalibrieren() # Null-Offset-erst # Muster 100 Bilder ohne Kontaktbasis_Funktionen = [] für i, Rahmen in enumerate(sensor.stream()): Basis_Funktionen.Append(Frame.total_force_n) wenn i >= 99: Bruch_Basis = np.max(bas_Funktionen) empfohlen_Schwelle = Geräusch_Basis * 3.0(f"Gruch_Basis: {Gruch_Basis4f} N") Printf"Empfehlenswert: {Rekommended_set_threshold4f} N) # Applied threshold.\\\comm_sensor:.threshold4f} N)
Typische Werte Geräuschboden beträgt in der Regel 0,005
Schritt 2
Die Logik der Erkennung
Ein einfacher, aber robuster Greifdetektor verwendet drei Bedingungen gleichzeitig: Kontaktflagge wahr, Kontaktbereich über dem Minimum und stabile Zentroid (Zentroid nicht schnell bewegt).
Import paxini Import numpy als np aus Sammlungen Import Deque Sensor = paxini.Sensor.(() Sensor.start.() Sensor.calibrate() Centroid_history = Deque(maxlen=10) # letzten 10 Bilder def ist_stable_grasp(Frame): wenn nicht Frame.in_contact: zurückkehren Falsch wenn Frame.contact_area_mm2 < 8.0: # mindestens ~3 Taxe zurückkehren Falsch Centroid_history.(appendframe.contact_centroid) wenn lencentroid_history) < 5: Rückkehr von False Centroid = np.ay_centroid_history)
Schritt 3
Die Kontakte im Laufe der Zeit im Bild darzustellen
Die Gesamtkraft und der Kontaktzustand über eine 10-Sekunden-Aufzeichnung zu verzeichnen, um die zeitliche Struktur eines Zyklus der Aufnahme und Entlassung zu verstehen:
Import paxini Import numpy als np Import matplotlib.pyplot als plt sensor = paxini.Sensor) sensor.start.() sensor.kalibrieren() Kräfte = [] Kontakte = [] Zeitstempel = [] print("Erfassung von 10 Sekunden
Für die in diesem Bereich verwendete Kraft-Torks-Terminologie siehe Robotik-Glossar.
Einheit 2 ist fertig, wenn...
Sie können die Form der Druckkarte drucken und bestätigen, dass sie (8, 8) für die Fingerspitzevariante ist. Ihre kalibrierte Kontakt Schwelle erzeugt keine falschen Positiven, wenn Sie das Sensorkabel sanft schütteln. Der Greifdetektor druckt "STABLE GRASP" innerhalb von 0,5 Sekunden nach festem Greifen an der Sensoroberfläche.
[← Zurück zum Wegüberblick]







