JSim 2026.06.01-p(1)
Loading...
Searching...
No Matches
frcsim::Integrator Struct Reference

Time-integration helpers for translational and rotational rigid-body dynamics. More...

#include <integrators.hpp>

Static Public Member Functions

static void integrateLinear (Vector3 &position, Vector3 &velocity, const Vector3 &acceleration, double dt) noexcept
static void integrateLinearExplicit (Vector3 &position, Vector3 &velocity, const Vector3 &acceleration, double dt) noexcept
static void integrateAngular (Quaternion &orientation, const Vector3 &angularVelocity, double dt) noexcept
static void integrateAngularVelocity (Vector3 &angularVelocity, const Vector3 &angularAcceleration, double dt) noexcept
static void integrateLinearRK2 (Vector3 &position, Vector3 &velocity, const Vector3 &acceleration, double dt) noexcept

Detailed Description

Time-integration helpers for translational and rotational rigid-body dynamics.

This utility exposes explicit Euler, semi-implicit (symplectic) Euler, and midpoint RK2 variants for linear motion, plus quaternion-based angular integration using q_dot = 0.5 * omega_quat * q.

References: https://en.wikipedia.org/wiki/Semi-implicit_Euler_method https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods https://en.wikipedia.org/wiki/Quaternion#Using_quaternions_as_rotations

Member Function Documentation

◆ integrateAngular()

void frcsim::Integrator::integrateAngular ( Quaternion & orientation,
const Vector3 & angularVelocity,
double dt )
inlinestaticnoexcept

◆ integrateAngularVelocity()

void frcsim::Integrator::integrateAngularVelocity ( Vector3 & angularVelocity,
const Vector3 & angularAcceleration,
double dt )
inlinestaticnoexcept

◆ integrateLinear()

void frcsim::Integrator::integrateLinear ( Vector3 & position,
Vector3 & velocity,
const Vector3 & acceleration,
double dt )
inlinestaticnoexcept

◆ integrateLinearExplicit()

void frcsim::Integrator::integrateLinearExplicit ( Vector3 & position,
Vector3 & velocity,
const Vector3 & acceleration,
double dt )
inlinestaticnoexcept

◆ integrateLinearRK2()

void frcsim::Integrator::integrateLinearRK2 ( Vector3 & position,
Vector3 & velocity,
const Vector3 & acceleration,
double dt )
inlinestaticnoexcept

The documentation for this struct was generated from the following file: