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... | |