Contact Sensor Output

Discussion in 'MuJoCo HAPTIX Feature Requests' started by Jake George, Jul 2, 2015.

  1. From the documentation:
    "The simulator detects all contact points that fall within a given sensor zone and involve the body to which the sensor is attached. The contact normal forces of all detected contact points are then added up (as scalars and not vectors) and the result is returned as the output of the simulated contact sensors. Thus the sensor units are Newtons."

    Does this mean that we won't be able to distinguish between an indentation of a very sharp probe at high force versus an indentation with a big probe at low force? Since these will produce drastically different neural responses, it is crucial to distinguish between the two. What is the suggested course of action to decipher between the two types of contact?
  2. Emo Todorov

    Emo Todorov Administrator Staff Member

    The API returns the contact force, regardless of the curvature of the contacting surfaces. Think of it as a one-pixel contact sensor; it has no way of knowing what the underlying object shape is, it just returns the contact force acting on its surface. So if you are holding a probe and pushing against a wall, you should get the net contact force regardless of the shape of the probe.

    Depending on how the geometry is modeled, a larger probe may generate one contact point or multiple contact points -- in which case the contact force will be distributed among the multiple contacts. If you know where these contacts will be (say at the vertices of a box probe) and put multiple touch sensor zones there, you will know how much force is coming from which vertex. Note however that when meshes are used, MuJoCo generates at most one contact point per geom pair regardless of how large the geoms are; this is the nature of convex collision detection.

    The new API (just published) gives you the explicit list of contacting geom pairs, so you can get additional information that way. In particular you can tell if one contact is generating a large force or multiple contacts are generating small forces that add up.