촉각적 인 자료 를 이해 하는 것
압력 배열 구조를 배우고, 접촉 감지 임대값을 정렬하고, 포착 감지 논리를 구현하고, Paxini Gen3로 시간이 지남에 따라 접촉 이벤트를 시각화하십시오.
5중 2부 · 데이터를 이해 · ~1.5시간
이 단위에서는 압력 배열의 공간 구조를 배우고, 지갑의 접촉 감지 임대도를 캘리버하고, 잡기 감지 논리를 구현하고, 시간이 지남에 따라 접촉 이벤트를 시각화 할 수 있습니다.
개념
공간 압력 지도
프레임.프레스_맵 필드는 2D NumPy 매리이며, 각 요소는 한 taxel (타클 픽셀) 를 나타냅니다. 손가락 끝 변종에 대해서는 매리 8×8이며, 14.14mm 센싱 영역을 1.75mm 피치에서 커버합니다. 각 값은 킬로파스칼 (kPa) 이다.
압력 (kPa)
면적 단위당 힘. 범위: 0
접촉 영역 (mm2)
압력이 열을 초과하는 기체 부위의 합. 손가락 끝과 물체의 전형적인 접촉은 15
전체 힘 (N)
접촉 영역에 대한 압력의 일원. 포착체로 닫는 힘에 비례한다. 전형적인 포착: 1
중앙선 (열, 기둥)
대량중심은 대접 영역의 대접 좌표입니다. 물체가 미끄러지면 변합니다.
# 압력 지도 구조를 탐구 # (8, 8) "Max 압력:", frame.pressure_map.max(), "kPa") print "Total force:", frame.total_force_n, "N") print "Contact area:", frame.contact_area_mm2, "mm2") print "Centroid:", frame.contact_cent) # (줄,) float
단계 1
접촉 대 비 접촉 문턱
기본 접촉 임기는 5 kPa/타클에당 0.05 N의 전체 힘이다. 이 기본 설정들은 대부분의 설정에 효과가 있지만, 지갑의 전부하와 센서에 대한 케이블 스트레스로 인해 조정이 필요할 수 있습니다.
이 캘리브레이션 스크립트를 실행하여 센서의 휴식 소음 수준을 측정하고 적절한 임대값을 설정합니다.
import paxini import numpy as np sensor = paxini.Sensor() sensor.start.() sensor.calibrate() # zero-offset first # Sample 100 frames without contact baseline_forces = [] for i, frame in enumerate(sensor.stream()): baseline_forces.append(frame.total_force_n) if i >= 99: break_floor = np.max(bas_forces) recommended_threshold = noise_floor * 3.0(f"Noise floor print: {noise_floor4f} N") printf"recommended contact threshold: {recommended_setthreshold4f} N) ◎###recommended threshold.\\conc:threshold: n)
유통적인 값 노이즈 바닥은 보통 0.005
단계 2
잡기 탐지 논리
단순하지만 강력한 포착 탐지기는 3가지 조건을 동시에 사용한다. 접촉 플래그가 진실, 접촉 영역은 최소 이상이며, 안정적인 중부 (중부선이 빠르게 움직이지 않는다). 이것은 빛 붓 접촉에서 거짓 긍정을 제거합니다.
import paxini import numpy as np from collections import deque sensor = paxini.Sensor.(() sensor.start.() sensor.calibrate() centroid_history = deque(maxlen=10) # 마지막 10개의 프레임 def은_stable_grasp(frame): 프레임이 아닌 경우: 반환 프레임.인_kontakt: 프레임이 아닌 경우: 반환 프레임.kontakt_area_mm2 < 8.0: # 최소 ~3개의 세너를 반환합니다. false centroid_history.appendframe.contact_centroid) lencentroid_history) < 5: false centroid = np.ay_centroid_history) centroid_std = centro.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.std.st: < 0.5개의 세너의 경우: < 0.5개의 세너
단계 3
시간 을 거쳐 접촉 에 관한 사건 을 시각화 하는 것
10초 기록에 걸쳐 전체 힘과 접촉 상태를 그려서 포착 및 방출 주기의 시간 구조를 이해합니다.
import paxini import numpy as np import matplotlib.pyplot as plt sensor = paxini.Sensor) sensor.start() sensor.calibrate() 힘 = [\] 연락처 = [\] 시간표 = []print("10초 기록
현장에서 사용되는 힘 동전 용어에 대해서는 [로봇학 방언자리](
2부대 완료...
압력 지도 모양을 인쇄하고 손가락 끝 변종에 대해 (8, 8) 인 것을 확인 할 수 있습니다. 센서 케이블을 부드럽게 흔들 때 가정된 접촉 문턱은 거짓 긍정적 인 결과를 발생시키지 않습니다. 포착 탐지기는 센서 표면을 단단히 잡은 0.5 초 이내에 "STABLE GRASP"를 인쇄합니다. 접촉 이벤트 그래프는 포착 및 방출 시 명확한 상승/하락 가장자리를 보여줍니다.
[← 경로 개요로 돌아가]







