Bdsim

screenshot of Bdsim

Simulate dynamic systems expressed in block diagram form using Python

Overview:

The BDSim Python package, developed by the QUT Centre for Robotics, is a Python 3 package designed for modeling and simulating continuous-time, discrete-time, or hybrid dynamic systems. It allows systems to be visualized in a block diagram format using Python objects. This tool is particularly useful for robotics and vision applications.

Features:

  • Block Diagram Creation: Easily create block diagrams using Python code rather than manual drawing.
  • Flexible Data Communication: Wires can transmit various Python types such as scalars, lists, NumPy arrays, and objects.
  • Extensive Block Library: Includes over 70 blocks for linear, nonlinear functions, display blocks, and dynamics.
  • Custom Block Addition: Users can easily add their own blocks by creating a class.
  • Support for Subsystems: Subsystems can be independently instantiated multiple times and nested within a system.
  • Automatic Discovery of Blocks: Blocks from other toolboxes like the Robotics Toolbox for Python and Machine Vision Toolbox for Python are automatically included.
  • Execution in Headless Configuration: Can be executed without a graphical interface, ideal for embedded systems.
  • Graphical Editor: Python-based editor for creating block diagrams with a JSON file for storage.

Summary:

The BDSim Python package offers a powerful tool for modeling and simulating dynamic systems using block diagrams in Python. With features like custom block addition, support for various Python types for data communication, and an extensive block library, BDSim is a versatile solution for robotics and vision applications. The ability to execute diagrams in a headless configuration and the inclusion of a graphical editor further enhance its functionality.