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

## Functions | |

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

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

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

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