Code Monkey home page Code Monkey logo

blockfactory's Introduction

BlockFactory

Build Status (Linux/macOS) (master) Codacy Badge License

BlockFactory is a framework for dataflow programming that allows wrapping C and C++ algorithms. It provides an abstraction inspired by Simulink where algorithms are represented as blocks that can exchange data through signals.

Users of this project can easily wrap their algorithms inside the provided software interfaces obtaining C++ classes that can be executed by generic engines. BlockFactory implements and provides full support of the following engines:

  • Simulink
  • Simulink Coder

The main purpose of BlockFactory is rapid prototyping of discrete systems (stateless and stateful). Taking as an example the supported Simulink engine, it simplifies and streamlines the process of creating a block. You don't have be an expert of its complex APIs! Furthermore, with Simulink Coder you can generate C++ code from a Simulink model. You can then deploy the automatically generated C++ class from an arbitrarily complex model to your preferred target platform.

The same code of the blocks is shared among all the supported engines. This means that the same shared library containing your blocks can either be loaded into Simulink during runtime or called by the executable built from the automatically generated code, without any modification.

If you need to run your code inside an unsupported engine (e.g. Scilab), you can implement it yourself with minimal effort.

How we conceived BlockFactory

BlockFactory for many years represented the back-end of robotology/wb-toolbox, a Simulink Toolbox for rapid prototyping of humanoid robots whole-body controllers. The toolbox was recently refactored and its core components became BlockFactory.

Despite its roots in robotics, now BlockFactory is very generic! You can use it to wrap your own C / C++ libraries to simulate power converters, design communication systems, benchmark motor drives, interface with exotic devices, and all applications that come in your mind. Its potential is endless.

Build bridges, not walls

Where to start

Citing this work

Please cite the following publication if you are using either BlockFactory or derived projects for your own research:

@article{FerigoControllers2020,
	title = {A generic synchronous dataflow architecture to rapidly prototype and deploy robot controllers},
	author = {Ferigo, Diego and Traversaro, Silvio and Romano, Francesco and Pucci, Daniele},
	url = {https://journals.sagepub.com/doi/10.1177/1729881420921625},
	doi = {10.1177/1729881420921625},
	journal = {International Journal of Advanced Robotic Systems},
	year = {2020},
}

Maintainers

This repository is maintained by:

@traversaro

blockfactory's People

Contributors

diegoferigo avatar traversaro avatar codacy-badger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.