plasmodic / ecto

ecto is a dynamically configurable Directed Acyclic processing Graph (DAG) framework.
http://ecto.willowgarage.com/
BSD 3-Clause "New" or "Revised" License
97 stars 37 forks source link

Ecto

Ecto is a hybrid C++/Python development framework for constructing and maintaining pipelines. In Ecto, pipelines are constructed in terms of processing units, Cells, connected by data paths, Tendrils, that form Directed Acyclic Graphs, Plasms. Cells are typically written in C++, tendrils may be any type, and the plasm may be executed in a variety of clever ways. Python is uses as a the graph DSL.

Ecto may be found useful in domains such as perception, audio, or robotics.

To get started see the online docs at http://plasmodic.github.io/ecto/

Get and Build Ecto

These instructions are useful if you wish to work with Ecto from source, as a standalone library.

source ^^^^^^

We use git for our source control. You can get a copy of our repo by doing the following::

git clone git://github.com/plasmodic/ecto.git

dependencies ^^^^^^^^^^^^ Ecto requires

On ubuntu you can get most of these through apt::

sudo apt-get install cmake libboost-all-dev python-dev python-argparse python-yaml libgtest-dev

To build the docs, you should use a very recent version of Sphinx::

sudo easy_install -U sphinx

build ^^^^^ To build you should just follow a normal cmake recipe::

cd ecto mkdir -p build cd build cmake .. make

test ^^^^ To validate ecto using our test suite, you may::

cd ecto/build make ctest

This should report zero test errors. If it does report an error, please tell us about it here: https://github.com/plasmodic/ecto/issues/new

docs ^^^^ To create the latest documentation for Ecto::

sudo pip install -U catkin_sphinx sphinx-build -b html ./doc/source/ ./doc/build

To build documentation for the kitchen: ::

sphinx-build -b html ./doc/kitchen/ ./doc/build/

Then you can open up ecto/build/doc/html/index.html locally.

install ^^^^^^^ To install Ecto on your machine::

cd ecto/build make install

use ^^^ See the documentation (http://plasmodic.github.io/ecto/) for detailed usage instructions.