fnivek / srp_md

Semantic Robot Programming with Multiple Demonstrations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SRP-MD

This is a repo for semantic robot programing with multiple goal demonstrations.

TODO

Please see the issues page.

Install

TODO explain how to build docker images or install dependencies

Dependencies

  • libDAI
    • libgmp-dev
    • cimg-dev
  • PyQt5
  • ROS Melodic

How to Run

roslaunch srp_md srp_md.launch

Software Design

Design principles:

  • Modularity - so that we can publish and reuse code pieces
    • Avoid dependency on ROS if possible
    • Keep functional units separate
    • Avoid dependencies between units
  • Research code - we should always strive to write exceptional code, but this is research code not production code and does not need to live up to high standards
  • We follow the ROS style guides for C++ and Python

The primary programing language will be python primarily because it will be quicker to develop the code base in python. Other languages will be used as needed, e.g. C++ for PCL or Javascript for web interface.

Major components:

  • Sense
  • Plan
  • Act
  • Learn
  • UI
  • Eval
  • Robot Interface
  • Glue/Main

Sense

This module estimates the state of the world.

Plan

This module plans a set of actions to take to move the world from an initial state to a desired state.

Act

This module encapsulates the behavior of the robot.

Learn

This module learns a desired goal state from several demonstrations

UI

This module provides methods for a human to interact with the software and robot.

Eval

This module implements experiments and metrics to understand and benchmark the software.

Robot Interface

This module translates software commands into real robot actions.

Glue/Main

This module is the code that puts everything together in one place.

About

Semantic Robot Programming with Multiple Demonstrations


Languages

Language:Python 85.1%Language:C++ 12.7%Language:CMake 1.2%Language:Shell 1.0%