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
PressureFieldContact.add_body_contact!
— Function.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!
.
PressureFieldContact.add_contact!
— Function.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.
PressureFieldContact.add_body!
— Function.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.
PressureFieldContact.Geometry.as_tri_eMesh
— Function.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.
PressureFieldContact.Geometry.as_tet_eMesh
— Function.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.
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.
PressureFieldContact.add_friction_regularize!
— Function.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.
PressureFieldContact.add_friction_bristle!
— Function.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.