Add Contact/Friction

Add Contact/Friction

This page explains how to take geometry and as eMesh and make it engage in contact. This process has two steps: 1.) add the eMesh to the contact geometries and 2.) add friction pairs to contact geometry pairs.

Add Contact

add_body_contact!(m, name, e_mesh; i_prop, c_prop, body, joint, dh)

Creates a body with the contact geometry and inertia specified by the inputs. Internally, this function calls add_contact! and add_body!.

source
add_contact!(m, name, e_mesh; c_prop, body)

Adds contact geometry without creating a new body. In addition to being used by other functions, this function allows you to add contact geometry to an imported mechanism, or add multiple contact geometries to a single body.

source
add_body!(m, name, e_mesh; i_prop, body, joint, dh)

Adds a body to the mechanism with whose inertia properties are those of the contact geometry in e_mesh and inertia properties in i_prop. In addition to being used by other functions, this function is helpful to create bodies with specific inertia properties in an intuitive manner.

source
as_tri_eMesh(e_mesh)
as_tri_eMesh(e_mesh, is_repair)

Converts an eMesh to a mesh that contains only triangles. You need to do this before adding an eMesh as contact geometry.

source
as_tet_eMesh(e_mesh)

Converts an eMesh to a mesh that contains only tetrahedrons. You need to do this before adding an eMesh as contact geometry.

source

Add Friction

Friction applies between user-selected contact pairs. This model has two friction contact models. The first is a piece-wise linear regularization of Coulomb friction. The second is a 6-DOF bristle friction model.

add_friction_regularize!(m, mesh_id_1, mesh_id_2; μs, μd, χ, v_tol, n_quad_rule)

Adds regularized friction to a scenario. Returns the added contact instruction.

source
add_friction_bristle!(m, mesh_id_1, mesh_id_c; τ, k̄, μs, μd, χ, n_quad_rule, magic)

Adds bristle friction to a scenario. Returns the added contact instruction.

source