Drake
Modeling Dynamical Systems

Modules

 Primitives
 General-purpose Systems such as Gain, Multiplexer, Integrator, and LinearSystem.
 
 Controllers
 Implementations of controllers that operate as Systems in a block diagram.
 
 Estimators
 Implementations of estimators that operate as Systems in a block diagram.
 
 Sensors
 Models of sensors that operate as Systems in a block diagram.
 
 Automotive Systems
 The drake/automotive folder collects automotive-specific System models and related software.
 
 Manipulation
 Systems implementations that specifically support dexterous manipulation capabilities in robotics.
 
 Message Passing
 Systems for publishing/subscribing to popular message passing ecosystems.
 
 Stochastic Systems
 This page describes the implementation details of modeling a stochastic system in Drake and writing algorithms that explicitly leverage the stochastic modeling framework.
 
 Visualization
 Systems for connecting to external visualization tools/GUIs.
 
 Examples
 The examples contain a number of useful System implementations.
 
 (Attic) Rigid-Body Systems
 These systems are being replaced with drake::multibody::multibody_plant::MultibodyPlant and drake::geometry::SceneGraph.
 

Classes

class  SceneGraph< T >
 SceneGraph serves as the nexus for all geometry (and geometry-based operations) in a Diagram. More...
 
class  MultibodyPlant< T >
 MultibodyPlant is a Drake system framework representation (see systems::System) for the model of a physical system consisting of a collection of interconnected bodies. More...
 

Detailed Description

Drake uses a Simulink-inspired description of dynamical systems.

Includes basic building blocks (adders, integrators, delays, etc), physics models of mechanical systems, and a growing list of sensors, actuators, controllers, planners, estimators.

All dynamical systems derive from the drake::systems::System base class, and must explicitly declare all drake::systems::State, drake::systems::Parameters, and noise/disturbances inputs. The drake::systems::Diagram class permits modeling complex systems from libraries of parts.

For a "Hello, World!" example of writing a dynamical system, see simple_continuous_time_system.cc and/or simple_discrete_time_system.cc. For an example of a system that uses some of the more advanced features, such as typed input, output, state, and parameter vectors, see simple_car.h .