Sensor: Proximity

Model ElementThe Sensor_Proximity element defines a sensor between two bodies which monitors their minimum separation. The sensor tracks the state of interference of the two bodies, the minimum distance between them, and the coordinates of the pair of closest points. These quantities can be accessed using the PROXIMITY function for use in defining expressions or for plotting.

Format

<Sensor_Proximity
     id                = "integer"
   [ label             = "string"  ]     
     num_i_graphics    = "integer"
     i_graphics_id     = "integer_list"
   [ i_refine_level    = "integer" ]     
     num_j_graphics    = "integer"
     j_graphics_id     = "integer_list"
   [ j_refine_level    = "integer" ]
/ >

Attributes

id
Element identification number (integer>0). This number is unique among all Sensor_Proximity elements and uniquely identifies the element.
label
The name of the Sensor_Proximity element.
num_i_graphics
Specifies the number of Post_Graphic elements on the first body that are to be considered in evaluating the contact force. num_i_graphics > 0.
i_graphics_id

This is the list of the Post_Graphic element IDs on the first body to be considered for contact. The number of IDs in this list is specified by num_i_graphics.

Note: All the Post_Graphic entities must belong to the same body. For a list of supported graphic types, please see comment 3.
i_refine_level

Specifies the refinement level for the I graphics.

A value of 1 means no refinement. A value of 2 means refine once by adding a node in the center of each triangle to replace one triangle with three triangles.

For higher values, this procedure is applied recursively.

Specifying an index to be greater than five may lead to performance deterioration.

This parameter is optional. The default value is 1.

i_refine_level > 0.

num_j_graphics

Specifies the number of Post_Graphic elements on the second body that are to be considered in evaluating the contact force.

num_j_graphics > 0.

j_graphics_id

This is the list of the Post_Graphic element ids on the second body to be considered for contact. The number of IDs in this list is specified by num_j_graphics.

Note: All the Post_Graphic entities must belong to the same body. For a list of supported graphic types, please see comment 3.
j_refine_level

Specifies the refinement level for the J graphics.

A value of 1 means no refinement. A value of 2 means refine once by adding a node in the center of each triangle to replace one triangle with three triangles.

For higher values, this procedure is applied recursively.

Specifying an index to be greater than five may lead to performance deterioration.

This parameter is optional. The default value is 1.

Example

The image below demonstrates how the Sensor_Proximity element is used to track the minimum distance between a robot end-effector and a work piece.



Figure 1. Minimum Distance Between a Robot End-effector and Workpiece
<Sensor_Proximity
     id                  = "70002"
     num_i_graphics      = "1"
     i_graphics_id       = "90013"
     i_refine_level      = "4"     
     num_j_graphics      = "1"
     j_graphics_id       = "90011"
     j_refine_level      = "2"     
 />

Comments

  1. Sensor_Proximity does not compute the penetration between two bodies. It only computes the minimum distance between them.
  2. The proximity calculation begins by adding a node at the centroid of each triangle. Then, an exhaustive search is carried out for the closest pair of nodes on the two bodies. This procedure is repeated at each time step.
  3. The table below lists the graphic types that are supported by the Sensor_Proximity element for minimum distance calculations.
    Type of Body Supported Graphics Unsupported Graphics
    Rigid Body BoxDefinedFromCorner

    BoxDefinedFromCenter

    Cylinder

    Frustum

    Ellipsoid

    Sphere

    Plane

    Triamesh

    CircleFromRM

    CircelFromRadius

    ArcFromRM

    ArcFromRadius

    Point

    LineMesh

    SPDP

    Outline

    ParamCurve

    ParamSurface

    DeformCurve

    DeformSurface

    UserGra

    Flexible Body Flexible bodies are not supported for proximity calculations.