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 an introduction to using systems in python, see the dynamical_systems tutorial. For a "Hello, World!" example of writing a dynamical system in C++, see simple_continuous_time_system.cc and/or simple_discrete_time_system.cc.
Modules | |
System Events | |
This page describes how Drake Systems can respond (through an Event) to changes ("triggers") in time, state, and inputs. | |
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 | |
Drake provides a variety of capabilities for sensor modeling. | |
Manipulation | |
Systems implementations and related functions that specifically support dexterous manipulation capabilities in robotics. | |
Multibody Systems | |
Systems that relate to, or add functionality to, MultibodyPlant. | |
Perception | |
Systems for dealing with perception data and/or wrapping basic perception algorithms. | |
Discrete Systems | |
This page describes discrete systems modeled by difference equations (contrast to continuous systems modeled by ordinary differential equations) as well as considerations for implementing these systems in Drake. | |
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. | |
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... | |