GithubHelp home page GithubHelp logo

fairlight1337 / semrec Goto Github PK

View Code? Open in Web Editor NEW

This project forked from code-iai/semrec

0.0 2.0 0.0 991 KB

Semantic Hierarchy Recorder for (autonomous) hierarchical experiment data that is semantically annotated

License: BSD 2-Clause "Simplified" License

CMake 0.48% C++ 76.40% C 0.38% Python 21.78% Shell 0.72% Gnuplot 0.24%

semrec's Introduction

Semantic Hierarchy Recorder Build Status

The semrec package supplies a ROS driven system with recording capabilities on low (sensor messages), and on high (symbolic) data level. Its sole idea is to keep track of the contexts in which a high level plan execution system performs actions, record its parameters, and give a detailed output about what happened during execution.

Using low level timing information (timestamps), information from different sources can be combined and associated. Given a plan structure, for example images taken from a camera during specific times can be associated with symbolic events.

The semrec system is thought to be used on autonomous robot systems, keeping track of what they do, why they to it (situational context), and what happened during or after their performance.

External Plugin Repository

For additional functionality, consider downloading the semrec_plugins repository. Place it in your ROS workspace and compile as usual, the plugins will automatically be available.

Plugin-based Extension

The plugin based architecture allows for relatively simple extension of the system. Current plugins included and integrated into the system are:

  • ROS interface (connect to the ROS environment, and expose services for starting/altering/ending contexts)
  • Symbolic Log facility (build a hierarchical task tree with timing information, based on contexts delivered through the ROS interface)
  • Exporters:
    • OWL Exporter (save the symbolic plan log in OWL format)
    • DOT Exporter (save the symbolic plan log in DOT format)
  • Prediction component (predict course of action given models of former plan executions)

All necessary directories, and details of what to load and where to find plugins, is stored in a convenient config file (config.cfg). Directories are created automatically by the Semantic Hierarchy Recorder system as needed, and data associated with an active experiment is always stored in its respective folder.

Immediate Usage Instructions

To compile semrec, you will need to install the following (Ubuntu) dependencies:

$ sudo apt-get install libncurses5-dev automake autoconf libconfig++8-dev libjson0-dev

Besides setup and operation of the recorder, you will find yourself in the situation that you want to nicely package the created logs and adjacent data. After first running the recorder and acquiring the logs you need, copy the files package.sh and makedot.sh from the scripts subfolder into your local experiment data folder (by default, this is ~/sr_experimental_data). To package the most current experiment, now just run

$ ./package.sh

and the script will generate a .tar.gz file for you, denoting the current time and date, including the generated .owl file, possibly captured images, and the contents of your mongodb log (roslog.tf, roslog.logged_designators databases). If needed, adjust the script's inner workings to your needs. Per default, makedot.sh generates .pdf files from the logged .dot files if you have activated the dotexporter plugin. If not, this will print a failure, but will move on in packaging your logs.

Afterwards, you will have two additional folders in your experiment data folder:

  • packaging holds the raw files archived into the target .tar.gz file
  • results holds all packaged logs so far

semrec's People

Contributors

airballking avatar bbrieber avatar fairlight1337 avatar gheorghelisca avatar

Watchers

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