Skip to content

Tactile Fusion

Tactile fusion — contact detection, grip stability, surface classification.

Cluster: Physical AI | Type: component | MCP Tools: 8

Overview

Simulated tactile data

tactile_fusion processes tactile arrays supplied by callers. It does not include hardware drivers for real tactile sensors.

Tactile sensing and simulated grip-control block that processes caller-supplied taxel-grid pressure data into high-level contact state. Detects contact events and spatial slip heuristics, estimates grip stability, classifies surface texture, computes centre-of-pressure and contact area, and computes adaptive proportional grip-control deltas. It is useful for prototyping manipulation workflows, but it is not a hardware driver or safety controller.

When to use:

  • Detecting contact and slip during robotic grasping to trigger reactive grip adjustment
  • Classifying surface material (smooth, rough, compliant) from tactile pressure patterns
  • Computing simulated grip-force adjustments before handing decisions to a separate motor-control or hardware layer

Example:

from mvp.tactile_fusion import TactileFusionBlock, TactileFusionInput

block = TactileFusionBlock(name="tactile_fusion")
result = block.infer(TactileFusionInput(
    op="estimate_grip_stability",
    taxel_grid=[[0.1, 0.4, 0.1], [0.5, 0.9, 0.5], [0.1, 0.4, 0.1]],
    total_force=4.2,
))
# result.value.grip_stability → float [0, 1]; result.value.slip_detected → bool

Works well with: sensory_fusion, motor_control, embodiment

Public API

TactileFusionInput(BaseModel)

Input for tactile fusion operations.

Field Type Default
op Literal['detect_contact', 'estimate_grip_stability', 'classify_surface', 'adaptive_grip', 'fuse_tactile', 'calibrate', 'get_contact_history', 'set_thresholds', 'get_info', 'get_capabilities', 'reset'] 'detect_contact'
taxel_grid list[list[float]] Field(default_factory=list)
total_force float 0.0
force_xyz list[float] Field(default_factory=list)
torque_xyz list[float] Field(default_factory=list)
target_force float 0.0
current_force float 0.0
force_profiles list[dict] Field(default_factory=list)
contact_threshold float \| None None
kp_gain float \| None None
metadata dict Field(default_factory=dict)

TactileFusionOutput(BaseModel)

Output from tactile fusion operations.

Field Type Default
op str required
maturity str 'simulation_only'
prohibited_use list[str] Field(default_factory=lambda: ['live_grip_control'])
permitted_use list[str] Field(default_factory=lambda: ['simulation'])
contact_detected bool False
grip_stability float 0.0
surface_class str ''
force_delta float 0.0
fused_reading dict Field(default_factory=dict)
contact_history list[dict] Field(default_factory=list)
thresholds dict Field(default_factory=dict)
capabilities dict Field(default_factory=dict)
slip_detected bool False
center_of_pressure list[float] Field(default_factory=list)
contact_area float 0.0
metadata dict Field(default_factory=dict)
degraded bool False
degradation_reason str \| None None
confidence float 0.0
confidence_applicable bool True
calibration_source str \| None None
requires_handoff_warning bool False
requires_review bool False
agentic_evidence dict \| None None

TactileFusionBlock(AIBlock[TactileFusionInput, TactileFusionOutput, dict])

Tactile sensing with contact detection, grip stability, and surface classification.

Field Type Default
name str 'tactile_fusion'
state dict field(default_factory=dict)
resource_bounds ResourceBounds field(default_factory=ResourceBounds)
usage ResourceUsage field(default_factory=ResourceUsage)
planner TactileFusionSurfacePlanner \| None None

Methods:

infer(data: TactileFusionInput) -> Result[TactileFusionOutput]

MCP Tools

Operation Source
ops tactile_fusion_mcp
help tactile_fusion_mcp
classify_surface tactile_fusion_mcp
get_info tactile_fusion_mcp
get_capabilities tactile_fusion_mcp
list_patterns tactile_fusion_mcp
explain_classification tactile_fusion_mcp
list_strategies tactile_fusion_mcp