Modeling Dynamical Systems

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


 System Events
 This page describes how Drake Systems can respond (through an Event) to changes ("triggers") in time, state, and inputs.
 General-purpose Systems such as Gain, Multiplexer, Integrator, and LinearSystem.
 Implementations of controllers that operate as Systems in a block diagram.
 Implementations of estimators that operate as Systems in a block diagram.
 Drake provides a variety of capabilities for sensor modeling.
 Systems implementations and related functions that specifically support dexterous manipulation capabilities in robotics.
 Message Passing
 Systems for publishing/subscribing to popular message passing ecosystems.
 Multibody Systems
 Systems that relate to, or add functionality to, MultibodyPlant.
 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.
 Systems for connecting to external visualization tools/GUIs.
 The examples contain a number of useful System implementations.


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


std::string GenerateHtml (const System< double > &system, int initial_depth=1)
 Generates an html string to "render" the system, with collapsible diagrams. More...

Function Documentation

◆ GenerateHtml()

std::string drake::systems::GenerateHtml ( const System< double > &  system,
int  initial_depth = 1 

Generates an html string to "render" the system, with collapsible diagrams.

Use initial_depth to set the depth to which the subdiagrams are expanded by default (0 for all collapsed, +∞ for all expanded).

The implementation of GenerateHtml has been temporarily removed from Drake due to licensing restrictions. This function will return valid HTML, but will not produce any useful rendering.