aliases | |
▼C++ support features | |
hash_append generic hashing | Drake uses the hash_append pattern as described by N3980 |
▼Collision Concepts | In the real world, we can rely on the axiom that no two objects can occupy the same space at the same time; the universe provides this constraint for free |
▼Collision Filter Concepts | Collision filters are a purely non-physical concept |
Collision Cliques | |
Collision Filter Groups | |
▼Compliant Contact in Drake | Drake is concerned with the simulation of physical phenomena, including contact between simulated objects |
Detecting Contact | Given two posed geometric shapes in a common frame, the collision detection system is responsible for determining if those shapes are penetrating and characterizing that penetration |
Computing Contact Forces | Consider the definition of a contact with interpenetrating collision elements A and B |
Working with Contacts in Drake | The behavior of a simulation with contact will depend on three factors: |
The Details of Computing Contact Forces | Drake includes a compliant contact model |
Drake Contact Implementation | Drake's compliant point contact model is a coarse approximation of the previous discussion |
▼Multibody Dynamics Concepts | Translating from the mathematics of multibody mechanics to correct code is a difficult process and requires careful discipline to ensure that the resulting code is correct |
▼Terminology and Notation | Drake uses consistent terminology and notation for multibody mechanics |
Notation Basics | We are interested in representing physical quantities like position, orientation, inertia, and spatial velocity |
Frames and Bodies | The most fundamental object in multibody mechanics is the coordinate frame, or just frame |
Multibody Quantities | Quantities of interest in multibody dynamics have distinct types |
Time Derivatives of Multibody Quantities | Scalar quantities: The ordinary first time-derivative of the scalar x is denoted xdot or xDt whereas the ordinary second time-derivative of x is denoted xddot or xDDt |
▼Spatial Algebra | Multibody dynamics involves both rotational and translational quantities, for motion, forces, and mass properties |
Spatial Pose and Transform | A spatial pose, more commonly just pose, provides the location and orientation of a frame B with respect to another frame A |
Spatial Vectors | Spatial vectors are 6-element quantities that are pairs of ordinary 3-vectors |
Spatial Mass Matrix (Spatial Inertia) | A Spatial Mass Matrix (also called Spatial Inertia) M represents the mass, center of mass location, and inertia in a single 6×6 symmetric, mass-weighted positive definite matrix that logically consists of four 3×3 submatrices |
Formulating and Solving Optimization Problems | Drake wraps a number of commercial solvers (+ a few custom solvers) to provide a common interface for convex optimization, mixed-integer convex optimization, and other non-convex mathematical programs |
System Cache Design and Implementation Notes | |
System Scalar Conversion | System scalar conversion refers to cloning a System templatized by one scalar type into an identical System that is templatized by a different scalar type |
options for input/output port specification. | |
▼Modeling Dynamical Systems | Drake uses a Simulink-inspired description of dynamical systems |
▼Automotive Systems | The drake/automotive folder collects automotive-specific System models and related software |
Automotive Plants | Actuated System models related to automotive software |
Automotive Planners and Controllers | System planners and controllers related to automotive software |
Rigid-Body Systems | |
Control Systems | |
Estimators | |
Primitives | |
Sensors | |
Message Passing | These systems enable network communication |