Skip to content

raisim::contact ​

namespace

Namespaces ​

  • raisim::contact::rank — Values of Single3DContactProblem::rank: the kind of constraint a problem row represents.

Classes ​

  • class BisectionContactSolver — RaiSim's iterative contact solver: a Gauss-Seidel-style sweep over the constraint rows in which each frictional contact is solved with a bisection method.
  • class Single3DContactProblem — One constraint row (contact, joint limit, wire or pin) of the contact problem that the World solves each step; World::getContactProblem() exposes the list.
  • struct TerrainContactLaw — Internal, frozen material history for one mesh quadrature contact during the coupled solve. sinkage is the body's step-start depth below the rest surface; it is below plastic while the body still…
  • struct TerrainContactSolveState — Internal per-solve constants and normal pressure evaluations for an area contact.

Type aliases ​

ContactProblems ​

#include <raisim/contact/BisectionContactSolver.hpp>

cpp
typedef std::vector<contact::Single3DContactProblem, AlignedAllocator<contact::Single3DContactProblem, 64>> ContactProblems

List of constraint rows solved together each step.

Functions ​

solveTerrainContact ​

#include <raisim/contact/TerrainContactLaw.hpp>

cpp
void solveTerrainContact(
    Single3DContactProblem &problem,
    const Vec<3> &freeVelocity,
    double dt)

One block Gauss-Seidel update. freeVelocity excludes this row's existing impulse.

cpp
void solveTerrainContact(
    Single3DContactProblem &problem,
    const Vec<3> &freeVelocity,
    double dt,
    TerrainContactSolveState &state)

Reuse exact evaluations and constants across sweeps of that coupled solve.

prepareTerrainContactSolveState ​

#include <raisim/contact/TerrainContactLaw.hpp>

cpp
TerrainContactSolveState prepareTerrainContactSolveState(
    Single3DContactProblem &problem,
    double dt)

Initialize constants and the tangential inverse for a new coupled solve. Material history and apparent inertia stay fixed during it.

RaiSim — physics for robotics and AI.