Coder Social home page Coder Social logo

quad-arena's Introduction

Quad Arena

Quadcopter simulation environment for control strategies developing

Authors/Maintainers

Dependencies

This library depends on eigen for the linear algebra. The latest git version is required.

git clone https://gitlab.com/libeigen/eigen.git ([email protected]:libeigen/eigen.git)
cd eigen && mkdir build && cmake .. && (sudo) make install

Other (optional) dependencies for improving performances required by Eigen are:

  • Linear Algebra -> LAPACK, BLAS, MKL
  • Multi-threading -> OPENMP, TBB

For dynamics integration the package uses integrator-lib.

git clone --recursive https://github.com/nash169/integrator-lib.git ([email protected]:nash169/integrator-lib.git)
cd /path/to/integrator-lib
waf (./waf) configure build install

Control is handle through control-lib.

git clone --recursive https://github.com/nash169/control-lib.git ([email protected]:nash169/control-lib.git)
cd /path/to/control-lib
waf (./waf) configure build install

If you want to build with the graphics magnum-dynamics is necessary.

git clone --recursive https://github.com/nash169/magnum-dynamics.git ([email protected]:nash169/magnum-dynamics.git)
cd /path/to/magnum-dynamics
waf (./waf) configure build install

For specific compiling configuration refer to the library documentation.

Installation

Clone the repository including the submodules

git clone --recursive https://github.com/nash169/quad-arena.git ([email protected]:nash169/quad-arena.git)

quad-arena relies on WAF compilation tool. Arch provides an updated version of WAF exec in the standard repo

sudo pacman -S waf

For other distros it is better to download the latest version from the official website and move the executable in the library repo

wget 'https://waf.io/waf-2.0.19'
mv waf-2.0.19waf-2.0.19 waf && mv waf /path/to/quad-arena
cd /path/to/kernel-lib
chmod +x waf

Compile and install using waf commands

waf (./waf) configure build

or

waf (./waf) configure && waf (./waf)

Install the library (optional)

(sudo) waf (./waf) install

If you want to make clean installation

(sudo) waf (./waf) distclean configure build install

Compilation options

It is highly recommended to compile with AVX support

waf (./waf) configure --optional-flags

Enable OPENMP multi-threading

waf (./waf) configure --multi-threading

Enable LAPACK

waf (./waf) configure --with-lapack

Enable BLAS

waf (./waf) configure --with-blas

Enable MKL

waf (./waf) configure --with-mkl

Set MKL multi-threading

waf (./waf) configure --mkl-threading=<sequential|openmp|tbb>

By default MKL uses sequential option. If you activate openmp this includes --multi-threading that will be deactivated in this case. In addition if you choose OpenMP multi-threading it is possible select between the GNU (default), gnu, or Intel, intel, version through --mkl-openmp option. Suggested configuration

waf (./waf) configure --optional-flags --with-lapack --with-blas --with-mkl --mkl-threading=tbb

In order to set the desired compiler define the environment variable CXX=<g++,clang++,icpc> (gnu, clang and intel compiler respectively).

Examples

./build/src/examples/take_off_hovering

quad-arena's People

Contributors

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