Glossary#
Frames#
Term |
Definition |
|---|---|
Homogeneous Transformation |
An element of SE(3) (the Special Euclidean group of rigid motions (rotations + translations) that encodes a 3‑D pose: a rotation and a translation vector. In kdFlex it is represented by |
Pose |
An informal term for a homogeneous transformation that specifies a frame’s location and orientation relative to another frame. |
Passive Attitude Representation |
kdFlex uses a passive (coordinate‑frame‑based) attitude representation. A vector transforms as \({}^a v = {}^aR_b\ {}^b v\), i.e., it is rotated from the “b” frame into the “a” frame. |
Spatial Vector |
An element of se(3) that encodes an angular and a translation 3-vector. In kdFlex it is represented by |
Rigid body transformation |
A 6x6 matrix associated with homogeneous transforms that is is used to transform spatial quantities such as spatial velocities, spatial forces, spatial inertias and more from one frame on a rigid body to another frame on the same rigid body. |
Frame |
A coordinate system that defines a position and orientation in 3‑D space. In kdFlex, a |
FrameContainer |
The container class ( |
Root Frame |
The root from for the frames tree. |
FrameToFrame |
An abstraction representing a directed relationship between two frames, |
oframe |
Origin (or “from”) frame of a |
pframe |
Destination (or “to”) frame of |
EdgeFrameToFrame |
The tree edge type that actually stores the transformation between two adjacent frames in the |
Observing Frame |
The observing frame is defined as the frame that is used to express vector coordinates whose time derivatives such as relative velocity and accelerations are taken. The observing is also at times referred to as the derivative frame. |
Representation Frame |
A vector’s representation frame is the one in which a vector’s coordinates are expressed. |
Relative Pose |
The pose of the “to‑frame” expressed in the “from‑frame” coordinates. The |
Relative Spatial Velocity |
The spatial velocity of the “to‑frame” with respect to the “from‑frame” coordinates. It includes both angular and linear components. The |
Relative Spatial Acceleration |
The spatial acceleration of the “to‑frame” expressed in the “from‑frame” coordinates. The |
Changing Observer / Derivative Frames |
|
OrientedFrameToFrame |
A specialized |
ChainedFrameToFrame |
A lightweight wrapper that represents a concatenation of sequence of |
SpiceFrame |
A specialized |
SpiceFrameToFrame |
The corresponding edge type between a |
Multibody model#
Term |
Definition |
|---|---|
Spatial Operator Algebra (SOA) |
SOA is the broad and unifying mathematical framework that underpins kdFlex’s dynamics engine. It uses a set of system level operators to exploit the rich structure of minimal coordinate dynamics to develop analytical insights (eg. factorization and inversion of the mass matrix) and uses these to develop fast, recursive computational algorithms for solving different problems related to the equations of motion. SOA methods apply to the broad class of multibody systems including those with rigid and flexible bodies, and tree and graph topologies. |
Rotational Inertia Matrix |
A 3×3 symmetric matrix that describes how a body’s mass is distributed about its center of mass. |
Spatial Inertia Matrix |
A 6×6 matrix that combines mass, center‑of‑mass, and inertia tensor into a single object for use in spatial vector algebra. |
Parallel‑Axis Theorem |
A rule that shifts an inertia tensor from one frame to any other frame for a body. There is a version of the parallel-axis theorem for similarly transforming spatial inertias. |
Rigid Body |
A body whose shape and mass distribution do not change over time. |
Flexible Body |
A body that can deform; its internal dynamics are usually represented by modal expansions or finite‑element discretization. |
Body Frame |
The coordinate system attached to a particular body; often used to express velocities, forces, and inertias. |
Multibody System |
A collection of rigid (or flexible) bodies connected by joints and constraints and subject to forces/torques, described by a set of equations of motion. |
Multibody topology |
A multibody topology is the graph‑theoretic structure that describes how the individual bodies in a multibody system are connected by joints (hinges, sliders, etc.). It tells you whether the system is a simple serial chain, a branched tree, or a closed‑loop graph, and it determines the number of independent coordinates, the number of constraints, and the computational strategy that kdFlex will use. |
Newtonian Frame |
The inertial (world) reference frame in kdFlex for dynamics computations. This frame is often the same as the root frame for the frames tree, |
Multibody virtual root body |
The multibody’s virtual root body is a special PhysicalBody that has no parent body. All other bodies in the model are attached to this root (directly or indirectly) through hinges. The root body therefore serves as the anchor for the whole multibody system. The root body’s whose frame is either the same or downstream of the Newtonian frame. |
Subhinge |
A connection between a pair of frames that defines the permissible relative pose between the frames via an algebraic relationship. The dimension of the subspace of permitted relative spatial velocities can range from 0 to 6 and defines the degrees of freedom for the subhinge. Examples of subhinges are pin, prismatic and spherical subhinges. |
Hinge |
A connection between a pair of body nodes attached to parent/child bodies made up of a sequence of subhinges. Examples of hinges are revolute, slider, ball and full 6 dof hinges. A hinge’s body node on the inboard (parent) body is referred to as its onode, and the body node on the outboard (child) body is referred to an its pnode. The onode and pnode frames coincide when the |
onode |
The attachment body node for a hinge on the inboard (parent) body. |
pnode |
The attachment body node for a hinge on the outboard (child) body. |
Joint |
Another term for hinges. |
Generalized Coordinate ( |
A vector of independent variables that parameterizes the configuration of the system at multiple levels (e.g., joint angles, prismatic displacements). |
Generalized Coordinate ( |
The time derivatives of the |
Generalized Velocity ( |
A vector of independent variables that parameterizes the velocities in the system at multiple levels. These are often the time derivatives of the |
Generalized Acceleration ( |
The time derivatives of the |
Generalized Force ( |
The vector of independent variables that serve as the dual of the |
Degrees of Freedom (DOF) |
Number of independent generalized coordinates in the system. |
Hinge DOF |
DOF contributed by a single hinge (e.g., 1 for revolute, 3 for spherical). |
Zero configuration |
The configuration of the multibody system when all the hinge generalized coordinates |
Bilateral Constraint |
A bilateral constraint enforces a algebraic relationship on the relative motion of a pair of bodies. Thus the permitted motion is implicitly restricted by such constraints. This is in contrast with hinges and subhinges where the permissible motion is explicitly parameterized by the |
Loop Constraint |
A type of bilateral constraint that closes a closed‑chain (a kinematic loop) in the multibody tree. It enforces that the relative motion between two non‑parent/child frames satisfies a specific relationship (often equality of pose, velocity, or acceleration). |
Cut‑Joint Loop Constraint |
A cut‑joint loop constraint is a special type of bilateral loop constraint where the permissible relative motion can be represented explicitly by a hinge. Hinges can be replaced by equivalent cut-joint constraints, and this is often done to decompose graph topology systems in a tree system (with hinges) and additional cut-joint constraints where loops have been cut. |
ConVel Loop Constraint |
A ConVel loop constraint (short for constant‑velocity loop constraint) is a special type of bilateral loop constraint that is applied to a loop (closed‑chain) in a multibody model. Unlike a normal kinematic (position‑level) constraint, a ConVel constraint only enforces a relationship at the velocity and acceleration levels. It does not restrict the bodies’ positions; it only forces a particular component of the relative velocity of two bodies to remain constant (usually zero). |
Coordinate Constraint |
A coordinate constraint is a type of bilateral constraint that directly restricts one or more generalized coordinates (the independent configuration variables of the multibody system). Unlike loop constraints that enforce relationships between body poses and velocities, a coordinate constraint enforces a relationship between pairs of coordinates. Such constraints are used for modeling gears and rack and pinion systems. |
Prescribed Subhinge |
A subhinge whose |
Sub‑tree |
A SubTree is a connected subset of bodies (and the hinges that link them) within a larger multibody system. It is defined by a root body and includes every body that can be reached from that root by following only the joints that belong to the SubTree. The root body itself is not considered part of the subtree. SubTree instances can be used to limit computations to just the bodies in the subtree. There can be a arbitrary hierarchy of subtrees defined in a multibody system. |
Sub‑graph |
Sub‑graphs are sub‑trees with additional bilateral constraints.There can be a arbitrary hierarchy of subgraphs defined in a multibody system. The multibody system itself is a unique, top-level special type of subgraph that contains the full set of physical bodies and bilateral constraints defined for the system. |
Node |
A node is is a special kind of Frame that is attached to a PhysicalBody. Body nodes often serve as attachment points for sensor and actuator device models. |
Force Node |
A force node is a special kind of Node that is attached to a PhysicalBody and is used to apply a spatial force (force + moment) to that body. It is the mechanism by which external loads are added to the dynamics equations without modifying the body’s internal structure. |
Constraint Node |
A constraint node is a special kind of Node that is attached to a PhysicalBody and are used as attachment points for cut-joint and other loop constraints. |
Coordinate Provider |
A coordinate‑data provider in kdFlex refers to entities that have generalized coordinates ( |
CoordData Class |
The CoordData class is a container that manages a group of coordinate‑provider objects (CoordBase instances) in the kdFlex dynamics framework. It is used to aggregate and manipulate the generalized coordinates (Q, U, etc.) that belong to a set of bodies or sub‑hinges. |
Compound Body |
A collection of rigid (or flexible) bodies associated with a subgraph of bodies that are treated as a virtual body for simulation purposes. The bodies within the subgraph are said to be embedded within the compound body. Compound bodies do not change the dynamics of the system, and are used to add an abstraction option for simplifying the system topology. Unlike rigid and flexible bodies, compound bodies allow articulation of the internal embedded bodies and thus have variable geometry. In kdFlex a compound body is defined by a |
Body aggregation |
Body aggregation refers to the process of creating a compound body by aggregating a set of bodies into a subgraph and creating a compound body to embed them. |
Multibody properties and algorithms#
Term |
Definition |
|---|---|
Minimal Coordinates |
Coordinate representation that contains only the true degrees of freedom, avoiding redundant variables. |
Redundant Coordinates |
Representation that includes more variables than necessary (e.g., quaternions for orientation, explicit constraints). |
Jacobian matrix |
The Jacobian matrix of a system of equations. In multibody dynamics it maps a vector of generalized coordinates (or velocities) to a vector of Cartesian (spatial) quantities. |
Mass Matrix (\({\cal M}(q)\)) |
In kdFlex the multibody system mass matrix is the configuration dependent matrix that relates the generalized velocity vector |
Composite Rigid Body (CRB) Algorithm |
Efficient recursive method to compute the mass matrix \({\cal M}(q)\). |
Forward Dynamics |
Solving the equations of motion for the |
Inverse Dynamics |
Solving the equations of motion for the |
Hybrid Forward Dynamics |
Hybrid forward dynamics addresses the case where a mix of |
Recursive Newton–Euler (NE) Algorithm |
Recursively computes inverse dynamics for tree topology systems. |
Articulated Body (AB) Algorithm |
Recursive O(N) method to compute forward dynamics (solve for |
Inter‑body forces |
In kdFlex are the equal‑and‑opposite spatial forces that act across the hinges (physical joints) that connect two bodies in a multibody system. They are internal forces—i.e., they do not appear in the external force balance of the whole system, but they are crucial for understanding the loads on each joint and for design‑level analysis. While normally not solved for in the normal forward dynamics procedures, kdFlex provides low-cost ways of computing them on demand. |
Multibody state |
The complete set of |
ODE Solver |
Numerical algorithm (e.g., RK4, implicit trapezoidal) that integrates equations of motion in the form of ordinary differential equations over time. |
Equilibration |
An equilibrium is a configuration of the multibody system in which all generalized forces and moments balance so that the system can remain at rest (or move with constant velocity) without any external actuation. In other words, the net acceleration of every body is zero when the system is held in that configuration. Within kdFlex, equilibration is the process for finding equilibrium configurations. |
Linearization |
Linearization is the process of approximating the nonlinear multibody dynamics of a kdFlex model by a linear, first‑order system around a chosen operating point (typically an equilibrium configuration). The resulting linear model is expressed in state‑space form and is the basis for control‑system design, rapid simulation, and system analysis. Such linearization should always be carried out around equilibrium configurations for meaningful results. |
State space model |
A state‑space model is a compact, first‑order representation of a dynamical system that expresses the system’s evolution in terms of a set of state variables and a set of inputs. In kdFlex it is used to describe the linearized dynamics of a multibody system (rigid or flexible) in a form that is convenient for control‑system design, simulation, and analysis. |
Modal Analysis |
Modal analysis is the process of determining the natural frequencies and the corresponding mode shapes (eigenvectors) of a flexible structure using a linearized model. In kdFlex it is used to recover system modes and frequencies, and develop reduced order models for control system design and analysis. |
Fully Augmented (FA) Model |
An FA model is a multibody representation in which every physical body is treated as an independent entity. Each body is connected to the root (or ground) by a 6‑degree‑of‑freedom hinge, and no body has any children. The motion constraints on each body are defined solely by a set of bilateral constraints. The generalized coordinates for such models are fully redundant. |
Tree Augmented (TA) Model |
A TA model is a compact representation of a multibody system that uses a maximal spanning tree of physical bodies connected by hinges, together with a minimal set of bilateral constraint instances that close any remaining loops. |
Constraint Embedding (CE) Model |
Constraint embedding is the process of embedding constraints directly into a compound body. When applied to all the bilateral constraints on the system, the system’s graph topology is transformed into a tree topology with a mix of physical and compound bodies. This minimal coordinate constraint embedding model dynamics can be solved with fast O(N) AB like algorithms. |
Aggregation Subgraph |
For a list of one or more bilateral constraints, their aggregation subgraph is defined as the minimal subgraph that meets the requirements for embedding the bilateral constraints within a compound body. |
Constraint Kinematics Solver |
In kdFlex the |
Tree-Augmented (TA) dynamics |
A 2-pass recursive forward dynamics algorithm for solving the equations of motion in the presence of explicit bilateral constraints. This method is an alternative to the constraint embedding approach for solving the dynamics of constrained multibody systems. |
Operational Space Compliance Matrix (OSCM) |
The OSCM is the the system mass matrix inverse reflected to the task space and is defined as \(J{\cal M}^{-1} J^*\). kdFlex provides a low-cost recursive algorithm for computing this important quantity for solving equations of motion under constraints, as well as in robotics for whole-body motion control. |