JSim 2026.06.01-p(1)
Loading...
Searching...
No Matches
frcsim::PrismaticJoint Class Reference

Slider joint that permits translation along one axis and constrains all other relative motion. More...

#include <prismatic_joint.hpp>

Inheritance diagram for frcsim::PrismaticJoint:
frcsim::JointBase

Public Member Functions

 PrismaticJoint (RigidBody *body_a, RigidBody *body_b, const Vector3 &axis_local)
const Vector3axisLocal () const
void setLimits (double min_displacement_m, double max_displacement_m)
bool hasLimits () const
double minDisplacement () const
double maxDisplacement () const
void setMotorTarget (double target_velocity_mps, double max_force_n)
bool hasMotor () const
double motorTargetVelocity () const
double motorMaxForce () const
void solveConstraint (double dt_s, int iterations) override
double constraintError () const override
Public Member Functions inherited from frcsim::JointBase
virtual ~JointBase ()=default
JointType type () const
RigidBodybodyA ()
RigidBodybodyB ()
const RigidBodybodyA () const
const RigidBodybodyB () const
const Vector3anchorA () const
const Vector3anchorB () const
void setAnchorA (const Vector3 &anchor)
void setAnchorB (const Vector3 &anchor)
bool isEnabled () const
void setEnabled (bool enabled)
double breakForceThreshold () const
void setBreakForceThreshold (double force_n)
bool isBroken () const
void resetBroken ()
virtual void warmStart ()

Additional Inherited Members

Protected Member Functions inherited from frcsim::JointBase
 JointBase (JointType type, RigidBody *body_a, RigidBody *body_b)
Protected Attributes inherited from frcsim::JointBase
JointType type_
RigidBodybody_a_ {nullptr}
RigidBodybody_b_ {nullptr}
Vector3 anchor_a_ {}
Vector3 anchor_b_ {}
bool is_enabled_ {true}
bool is_broken_ {false}
double break_force_threshold_ {1e6}

Detailed Description

Slider joint that permits translation along one axis and constrains all other relative motion.

Physics principle: constrained rigid-body dynamics with one translational degree of freedom. Optional limits and motor targets are enforced with impulse constraints.

Reference: https://en.wikipedia.org/wiki/Slider-crank_linkage

Constructor & Destructor Documentation

◆ PrismaticJoint()

frcsim::PrismaticJoint::PrismaticJoint ( RigidBody * body_a,
RigidBody * body_b,
const Vector3 & axis_local )
inline

Member Function Documentation

◆ axisLocal()

const Vector3 & frcsim::PrismaticJoint::axisLocal ( ) const
inline

◆ constraintError()

double frcsim::PrismaticJoint::constraintError ( ) const
overridevirtual

Implements frcsim::JointBase.

◆ hasLimits()

bool frcsim::PrismaticJoint::hasLimits ( ) const
inline

◆ hasMotor()

bool frcsim::PrismaticJoint::hasMotor ( ) const
inline

◆ maxDisplacement()

double frcsim::PrismaticJoint::maxDisplacement ( ) const
inline

◆ minDisplacement()

double frcsim::PrismaticJoint::minDisplacement ( ) const
inline

◆ motorMaxForce()

double frcsim::PrismaticJoint::motorMaxForce ( ) const
inline

◆ motorTargetVelocity()

double frcsim::PrismaticJoint::motorTargetVelocity ( ) const
inline

◆ setLimits()

void frcsim::PrismaticJoint::setLimits ( double min_displacement_m,
double max_displacement_m )
inline

◆ setMotorTarget()

void frcsim::PrismaticJoint::setMotorTarget ( double target_velocity_mps,
double max_force_n )
inline

◆ solveConstraint()

void frcsim::PrismaticJoint::solveConstraint ( double dt_s,
int iterations )
overridevirtual

Implements frcsim::JointBase.


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