Giter Club home page Giter Club logo

pockerman / qubic_engine Goto Github PK

View Code? Open in Web Editor NEW
9.0 0.0 0.0 10.2 MB

Collection of C++ based algorithms on numerics, statistics, control, reinforcement learning, machine learning and robotics

Home Page: https://pockerman.github.io/cubic_engine_doc/

CMake 1.34% C++ 55.77% Python 4.72% Shell 0.01% Jupyter Notebook 9.20% HTML 28.42% Objective-C 0.52% C 0.02%
cpp numerics machine-learning filtering physics-simulation statistics reinforcement-learning-algorithms robotics control kalman-filter

qubic_engine's Introduction

Cubic Engine

Various algorithms on numerics, control, reinforcement learning and machine learning. The functionality is split into modules compiled into dynamic libraries. This is shown in the figure below

Dependencies

Installation

Installing the libraries is done via a config_opts.json file. Some of the options are explained below.

  • BUILD_LIBS Flag indicating if the python script should build the libraries
  • CMAKE_BUILD_TYPE Build mode options RELEASE or DEBUG
  • CMAKE_CXX_COMPILER C++ Compiler
  • CMAKE_C_COMPILER C Compiler
  • BLAZE_INCL_DIR Path to the blaze library
  • NLOHMANN_JSON_INCL_DIR Path to the nlohman_json library
  • GTEST_INC_DIR Path to GTest include directory
  • GTEST_LIB_DIR Path to the GTest library "/home/alex/MySoftware/gtest/install/lib"
  • USE_TRILINOS Flag indicating if Trilinos is to be used
  • USE_TRILINOS_LONG_LONG_TYPE Flag indicating if C++ long long type is used with Trilinos
  • TRILINOS_INCL_DIR Path to Trilinos header files
  • TRILINOS_LIB_DIR Path to Trilinos libraries
  • USE_OPEN_CV Flag indicating if OpenCV is to be used
  • OPENCV_INCL_DIR Path to OpenCV headers
  • CMAKE_INSTALL_PREFIX Where the libraries should be installed
  • USE_DISCRETIZATION Generate CMakeLists for discretization library
  • USE_NUMERICS Generate CMakeLists for numerics library
  • USE_RIGID_BODY_DYNAMICS Generate CMakeLists for rigid body dynamics library
  • USE_FVM Use finite volume method
  • BUILD_KERNEL_TESTS Flag indicating if tests should be build
  • BUILD_KERNEL_EXAMPLES Flag indicating if examples should be build
  • USE_RL Flag indicating if RL library should be build
  • USE_ML Flag indicating if ML library should be build
  • USE_ESTIMATION Flag indicating if estimation library should be build
  • USE_PLANNING Flag indicating if planning library should be build
  • USE_CONTROL Flag indicating if control library should be build

After specifying the options, execute the configure.py script.

python configure.py

Documentation

You can find the HTML documentation here

Examples

You can find some example applications below

Images (some are simply wrong :) )

Square transport view 3D

Extended Kalman Filter

Carrot Path Following

State value function

qubic_engine's People

Contributors

pockerman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qubic_engine's Issues

Rethink the ResultHolder class

ResultHolder is meant to be returned from algorithms to indicate in client code whether the operation was successful or not. Thus it should be copy constructed etc

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.