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.
<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
- Sensor_Proximity does not compute the penetration between two bodies. It only computes the minimum distance between them.
- 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.
- 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.